getelem-getter-frameiter.js (880B)
1 // Test bailouts in inlined jsop_getelem accesses. 2 3 // Defined outside of the test functions to ensure they're recognised as 4 // constants in Ion. 5 var atom = "prop"; 6 var symbol = Symbol(); 7 8 function testAtom() { 9 var holder = { 10 get [atom]() { 11 new Error().stack; 12 return 1; 13 } 14 }; 15 16 function f() { 17 for (var i = 0; i < 2000; ++i) { 18 var x = holder[atom]; 19 assertEq(x, 1); 20 } 21 } 22 23 for (var i = 0; i < 2; i++) { 24 f(); 25 } 26 } 27 testAtom(); 28 29 function testSymbol() { 30 var holder = { 31 get [symbol]() { 32 new Error().stack; 33 return 1; 34 } 35 }; 36 37 function f() { 38 for (var i = 0; i < 2000; ++i) { 39 var x = holder[symbol]; 40 assertEq(x, 1); 41 } 42 } 43 44 for (var i = 0; i < 2; i++) { 45 f(); 46 } 47 } 48 testSymbol();