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