iterator-indices-2.js (669B)
1 function test(obj, expected) { 2 var actual = 0; 3 for (var s in obj) { 4 actual += obj[s]; 5 } 6 assertEq(actual, expected); 7 } 8 9 function test2(obj, expected) { 10 var count = 0; 11 var keys = Object.keys(obj); 12 for (var i = 0; i < keys.length; i++) { 13 var s = keys[i]; 14 if (obj.hasOwnProperty(s)) { 15 count++; 16 } 17 } 18 assertEq(count, expected); 19 } 20 21 var arr = []; 22 for (var i = 0; i < 20; i++) { 23 var obj = {}; 24 for (var j = 0; j < i; j++) { 25 obj["x_" + i + "_" + j] = 1; 26 } 27 arr.push(obj); 28 } 29 30 // Test fixed and dynamic slots 31 with ({}) {} 32 for (var i = 0; i < 2000; i++) { 33 var idx = i % arr.length; 34 test(arr[idx], idx); 35 test2(arr[idx], idx); 36 }