tor-browser

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

breakpoint-gc-02.js (753B)


      1 // A Debugger with live breakpoints is live.
      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 
      9 var N = 4;
     10 var hits = 0;
     11 for (var i = 0; i < N; i++) {
     12    var dbg = Debugger(g);
     13    dbg.onDebuggerStatement = function (frame) {
     14        var handler = {hit: function () { hits++; }};
     15        var s = frame.eval("f").return.script;
     16        var offs = s.getLineOffsets(g.line0 + 2);
     17        for (var j = 0; j < offs.length; j++)
     18            s.setBreakpoint(offs[j], handler);
     19    };
     20    g.eval('debugger;');
     21    dbg.onDebuggerStatement = undefined;
     22    dbg = null;
     23 }
     24 
     25 gc();
     26 
     27 assertEq(g.f(), 2);
     28 assertEq(hits, N);