Array.prototype.join with cycles
# Brandon Benvie (13 years ago)
I meant JSON.stringify explicitly specifies how to handle cycles.
# Brandon Benvie (13 years ago)
I realized this is more appropriately filed as a bug (I think it's a spec bug anyway...) and have done so ecmascript#1184.
Given the following:
var x = [1,2,3]; x.push(x); x+"";
What should happen? The behavior demonstrated by V8, Spidermonkey, and Chakra (haven't tested others) is to return the empty string for cycles, thus returning the result '1,2,3,'. However, unless I'm missing something, this behavior is unspecified and an equally valid result would be to infinitely loop or throw a recursion error.
For comparison, JSON.stringify explicitly specifies how to handle recursion.