tor-browser

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

inlined-accessor-exc-bailout.js (893B)


      1 // |jit-test| --fast-warmup
      2 
      3 // Tests for exception bailout from inlined getter/setter.
      4 
      5 function throwingGetter() {
      6    var o = {};
      7    var count = 0;
      8    Object.defineProperty(o, "getter", {get: function() {
      9        if (count++ === 195) {
     10            throw 1;
     11        }
     12    }});
     13    var ex = null;
     14    try {
     15        for (var i = 0; i < 200; i++) {
     16            o.getter;
     17        }
     18    } catch(e) {
     19        ex = e;
     20    }
     21    assertEq(ex, 1);
     22    assertEq(count, 196);
     23 }
     24 throwingGetter();
     25 
     26 function throwingSetter() {
     27    var o = {};
     28    var count = 0;
     29    Object.defineProperty(o, "setter", {set: function(v) {
     30        if (count++ === 195) {
     31            throw 1;
     32        }
     33    }});
     34    var ex = null;
     35    try {
     36        for (var i = 0; i < 200; i++) {
     37            o.setter = i;
     38        }
     39    } catch(e) {
     40        ex = e;
     41    }
     42    assertEq(ex, 1);
     43    assertEq(count, 196);
     44 }
     45 throwingSetter();