tor-browser

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

gc-08.js (544B)


      1 // Debuggers with enabled onExceptionUnwind hooks should not be GC'd even if
      2 // they are otherwise unreachable.
      3 
      4 load(libdir + "asserts.js");
      5 
      6 var g = newGlobal({newCompartment: true});
      7 var actual = 0;
      8 var expected = 0;
      9 
     10 function f() {
     11    for (var i = 0; i < 20; i++) {
     12        var dbg = new Debugger(g);
     13        dbg.num = i;
     14        dbg.onExceptionUnwind = function (stack, exc) { actual += this.num; };
     15        expected += i;
     16    }
     17 }
     18 
     19 f();
     20 gc();
     21 assertThrowsValue(function () { g.eval("throw 'fit';"); }, "fit");
     22 assertEq(actual, expected);