toString is faster than string concat for functions http://jsperf.com/concat-vs-tostring-function
use index for circularReference