tor-browser

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

breakpoint-gc-05.js (741B)


      1 // Disabled debuggers keep breakpoint handlers alive.
      2 
      3 var g = newGlobal({newCompartment: true});
      4 g.eval("var line0 = Error().lineNumber;\n" +
      5       "function f() {\n" +     // line0 + 1
      6       "    return 2;\n" +      // line0 + 2
      7       "}\n");
      8 var N = 4;
      9 var hits = 0;
     10 for (var i = 0; i < N; i++) {
     11    var dbg = Debugger(g);
     12    dbg.onDebuggerStatement = function (frame) {
     13        var handler = {hit: function () { hits++; }};
     14        var s = frame.eval("f").return.script;
     15        var offs = s.getLineOffsets(g.line0 + 2);
     16        for (var j = 0; j < offs.length; j++)
     17            s.setBreakpoint(offs[j], handler);
     18    };
     19 }
     20 g.eval('debugger;');
     21 dbg.enabled = false;
     22 gc({});
     23 dbg.enabled = true;
     24 assertEq(g.f(), 2);
     25 assertEq(hits, N);