dense-elements-hole-negative.js (564B)
1 // The index is negative before code generation. 2 3 let v = {}; 4 let negativeIndex = -1; 5 6 function f(obj) { 7 assertEq(obj[negativeIndex] === v, true); 8 } 9 for (let i = 0; i < 2000; i++) { 10 let obj = {}; 11 obj[1] = {}; 12 obj[negativeIndex] = v; 13 f(obj); 14 } 15 16 // The sign of the index changes after the code generation. 17 18 function g(obj, i) { 19 for (let j = 0; j < 4; j++) { 20 assertEq(obj[i-j] === v, true); 21 } 22 } 23 for (let i = 0; i < 2000; i++) { 24 let obj = {}; 25 obj[1] = {}; 26 let X = 2000 - i; 27 for (let j = 0; j < 10; j++) { 28 obj[X-j] = v; 29 } 30 g(obj, X); 31 }