tor-browser

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

breakpoint-gc-04.js (699B)


      1 // Enabled 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 gc({});
     22 assertEq(g.f(), 2);
     23 assertEq(hits, N);