tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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();