tor-browser

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

getelem-getter-bailout.js (864B)


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