tor-browser

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

Script-clearBreakpoint-01.js (691B)


      1 // A breakpoint handler may clear itself.
      2 
      3 var g = newGlobal({newCompartment: true});
      4 var bphits = 0;
      5 var handler = {hit: function (frame) { frame.script.clearBreakpoint(this); bphits++; }};
      6 var dbg = Debugger(g);
      7 var hits = 0;
      8 dbg.onDebuggerStatement = function (frame) {
      9    var offs = frame.script.getLineOffsets(g.line0 + 3);
     10    for (var i = 0; i < offs.length; i++)
     11        frame.script.setBreakpoint(offs[i], handler);
     12    hits++;
     13 };
     14 g.eval("var line0 = Error().lineNumber;\n" +
     15       "debugger;\n" +                    // line0 + 1
     16       "for (var i = 0; i < 4; i++)\n" +  // line0 + 2
     17       "    result = 'ok';\n");           // line0 + 3
     18 assertEq(hits, 1);
     19 assertEq(bphits, 1);