getelem-getter-own.js (1062B)
1 // Test for inlined getters for jsop_getelem accesses, where the getter is an 2 // own property. 3 4 // Defined outside of the test functions to ensure they're recognised as 5 // constants in Ion. 6 var atom1 = "prop1"; 7 var atom2 = "prop2"; 8 var sym1 = Symbol(); 9 var sym2 = Symbol(); 10 11 function testAtom() { 12 var holder = { 13 get [atom1]() { return 1; }, 14 get [atom2]() { return 2; }, 15 }; 16 17 function f() { 18 for (var i = 0; i < 1000; ++i) { 19 var x = holder[atom1]; 20 var y = holder[atom2]; 21 assertEq(x, 1); 22 assertEq(y, 2); 23 } 24 } 25 26 for (var i = 0; i < 2; i++) { 27 f(); 28 } 29 } 30 testAtom(); 31 32 function testSymbol() { 33 var holder = { 34 get [sym1]() { return 1; }, 35 get [sym2]() { return 2; }, 36 }; 37 38 function f() { 39 for (var i = 0; i < 1000; ++i) { 40 var x = holder[sym1]; 41 var y = holder[sym2]; 42 assertEq(x, 1); 43 assertEq(y, 2); 44 } 45 } 46 47 for (var i = 0; i < 2; i++) { 48 f(); 49 } 50 } 51 testSymbol();