{"ScriptPreparationCode":"var bigdata = {};\r\nfor (var i = 0; i \u003C 100; i\u002B\u002B) {\r\n var usdata = {\r\n name: \u0027user\u0027 \u002B i,\r\n surname: \u0027user\u0027 \u002B i,\r\n friends: {}\r\n };\r\n\r\n for (var j = 0; j \u003C 10; j\u002B\u002B) {\r\n usdata.friends[\u0027friend\u0027 \u002B j] = {\r\n _ref: \u0027firend\u0027 \u002B j\r\n };\r\n }\r\n\r\n bigdata[\u0027user\u0027 \u002B i] = usdata;\r\n}\r\n\r\n\r\nfunction lazyExtend(prev, next) {\r\n if (!prev) return;\r\n for (var k in next) {\r\n var val = next[k];\r\n if (typeof(val) !== \u0027object\u0027) continue;\r\n lazyExtend(prev[k], val);\r\n }\r\n if (!next.toJSON) next.toJSON = jsonAll;\r\n Object.setPrototypeOf(next,prev);\r\n}\r\n\r\nfunction jsonAll() {\r\n var tmp = {};\r\n for(var key in this) {\r\n var to = typeof this[key];\r\n if(to !== \u0027function\u0027)\r\n tmp[key] = this[key];\r\n }\r\n return tmp;\r\n}\r\n\r\n","TestCases":[{"Name":"JSON rw","Code":"var copy = JSON.parse(JSON.stringify(bigdata.user0));","IsDeferred":false},{"Name":"Prototype","Code":"var copy = {};\r\nlazyExtend(bigdata.user0,copy);","IsDeferred":false}]}