{"ScriptPreparationCode":"var objects = [];\r\nfor(var i =0;i\u003C1000;i\u002B\u002B){\r\n var object = {}; // dynamic create object, browser can\u0027t cache it\r\n object[\u0022p1\u0022] = 1\u002Bi;\r\n object[\u0022p2\u0022] = 2\u002Bi;\r\n object[\u0022p3\u0022] = 3\u002Bi;\r\n object[\u0022p4\u0022] = 4\u002Bi;\r\n object[\u0022p5\u0022] = 5\u002Bi;\r\n object[\u0022p6\u0022] = 6\u002Bi;\r\n object[\u0022p7\u0022] = 7\u002Bi;\r\n object[\u0022p8\u0022] = 8\u002Bi;\r\n object[\u0022p9\u0022] = 9\u002Bi;\r\n objects.push(object);\r\n}\r\n\r\nfunction loop1(object){\r\n var keys = Object.keys(object);\r\n var r = 0;\r\n for(var i=0, len2 = keys.length;i\u003Clen2;i\u002B\u002B){\r\n r \u002B= object[keys[i]];\r\n }\r\n \r\n return r;\r\n}\r\n\r\nfunction loop2(object){\r\n var keys = Object.getOwnPropertyNames(object);\r\n var r = 0;\r\n for(var i=0, len2 = keys.length;i\u003Clen2;i\u002B\u002B){\r\n r \u002B= object[keys[i]];\r\n }\r\n \r\n return r;\r\n}\r\n\r\nfunction loop3(object){\r\n var r = 0;\r\n for(var k in object){\r\n r \u002B= object[k];\r\n }\r\n \r\n return r;\r\n}","TestCases":[{"Name":"Object.keys","Code":"for(var j=0,len=objects.length;j\u003Clen;j\u002B\u002B){\r\n\tloop1(objects[j]);\r\n}\r\n","IsDeferred":false},{"Name":"Object.getOwnPropertyNames","Code":"for(var j=0,len=objects.length;j\u003Clen;j\u002B\u002B){\r\n\tloop2(objects[j]);\r\n}","IsDeferred":false},{"Name":"for... in...","Code":"for(var j=0,len=objects.length;j\u003Clen;j\u002B\u002B){\r\n\tloop3(objects[j]);\r\n}","IsDeferred":false}]}