tor-browser

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

Script-clearBreakpoint-04.js (721B)


      1 // clearBreakpoint clears breakpoints for the current Debugger object only.
      2 
      3 var g = newGlobal({newCompartment: true});
      4 
      5 var hits = 0;
      6 var handler = {
      7    hit: function (frame) {
      8        hits++;
      9        frame.script.clearBreakpoint(handler);
     10    }
     11 };
     12 
     13 function attach(i) {
     14    var dbg = Debugger(g);
     15    dbg.onDebuggerStatement = function (frame) {
     16        var s = frame.script;
     17        var offs = s.getLineOffsets(g.line0 + 2);
     18        for (var i = 0; i < offs.length; i++)
     19            s.setBreakpoint(offs[i], handler);
     20    };
     21 }
     22 for (var i = 0; i < 4; i++)
     23    attach(i);
     24 
     25 g.eval("var line0 = Error().lineNumber;\n" +
     26       "debugger;\n" +      // line0 + 1
     27       "Math.sin(0);\n");   // line0 + 2
     28 assertEq(hits, 4);