iterator-indices-9.js (1104B)
1 // Tests SetPropertyCache sets to object. 2 function test(obj) { 3 let index = 0; 4 for (var s in obj) { 5 if (s.startsWith("test")) { 6 obj[s] = index; 7 } 8 index++; 9 } 10 index = 0; 11 for (var s in obj) { 12 if (s.startsWith("test")) { 13 assertEq(obj[s], index); 14 } 15 index++; 16 } 17 } 18 19 function test2(obj) { 20 let index = 0; 21 var keys = Object.keys(obj); 22 for (var i = 0; i < keys.length; i++) { 23 var s = keys[i]; 24 if (s.startsWith("test")) { 25 obj[s] = index; 26 } 27 index++; 28 } 29 index = 0; 30 var keys = Object.keys(obj); 31 for (var i = 0; i < keys.length; i++) { 32 var s = keys[i]; 33 if (s.startsWith("test")) { 34 assertEq(obj[s], index); 35 } 36 index++; 37 } 38 } 39 40 var arr = []; 41 var arr2 = []; 42 for (var i = 0; i < 2; i++) { 43 var obj = {}; 44 var obj2 = {}; 45 for (var j = 0; j < i * 20; j++) { 46 obj["x_" + i + "_" + j] = 1; 47 obj2["x_" + i + "_" + j] = 1; 48 } 49 obj.testKey = 1; 50 obj2.testKey = 1; 51 arr.push(obj); 52 arr2.push(obj2); 53 } 54 55 with ({}) {} 56 for (var i = 0; i < 2000; i++) { 57 var idx = i % arr.length; 58 test(arr[idx]); 59 test2(arr2[idx]); 60 }