iterator-indices-borrowed-iterator.js (811B)
1 function test(obj, otherObj) { 2 var total = 0; 3 var keys = Object.keys(obj); 4 var otherKeys = Object.keys(otherObj); 5 if (keys.length != otherKeys.length) { 6 return -1; 7 } 8 for (var i = 0; i < keys.length; i++) { 9 var s = keys[i]; 10 if (otherObj.hasOwnProperty(s)) { 11 total += otherObj[s]; 12 } 13 } 14 15 return total; 16 } 17 18 var arr = []; 19 var arr2 = []; 20 for (var i = 0; i < 20; i++) { 21 var obj = {}; 22 var obj2 = {}; 23 for (var j = 0; j < i; j++) { 24 obj["x_" + i + "_" + j] = 1; 25 obj2["x_" + i + "_" + j] = 2; 26 } 27 arr.push(obj); 28 arr2.push(obj2); 29 } 30 31 with ({}) {} 32 for (var i = 0; i < 2000; i++) { 33 var idx = i % arr.length; 34 assertEq(test(arr[idx], arr2[idx]), idx * 2); 35 } 36 37 assertEq(-1, test({a: 1, b: 1, c: 1}, {a: 2, b: 2})); 38 assertEq(4, test({a: 1, b: 1, c: 1}, {a: 2, b: 2, d: 2}));