function run() { var obj = { toJSON: function() { return { key: { toJSON: function() { for (i=0; i!=1<<10; ++i) new Object(); var big = unescape("%udddd"); while (big.length != 0x100000) big += big; for (i=0; i!=32; ++i) new String(big+i); return "whatever"; } }, __iterator__: function() { return { next: function() { return "key"; } } } } } }; var repl = function(id, val) { this[0]++; return val; }; JSON.stringify(obj, repl); } run();