tor-browser

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

breakpoint-resume-02.js (898B)


      1 // A breakpoint handler hit method can return null to raise an uncatchable error.
      2 
      3 var g = newGlobal({newCompartment: true});
      4 var dbg = Debugger(g);
      5 dbg.onDebuggerStatement = function (frame) {
      6    g.log += 'D';
      7 
      8    function hit(frame) {
      9        g.log += 'H';
     10        return null;
     11    }
     12 
     13    var f = frame.eval("f").return;
     14    var s = f.script;
     15    var offs = s.getLineOffsets(g.line0 + 3);
     16    for (var i = 0; i < offs.length; i++)
     17        s.setBreakpoint(offs[i], {hit: hit});
     18 
     19    var rv = f.call();
     20    assertEq(rv, null);
     21    g.log += 'X';
     22 };
     23 
     24 g.log = '';
     25 g.eval("line0 = Error().lineNumber;\n" +
     26       "function f() {\n" +         // line0 + 1
     27       "    try {\n" +              // line0 + 2
     28       "        log += '3';\n" +    // line0 + 3
     29       "    } catch (exc) {\n" +
     30       "        log += '5';\n" +
     31       "    }\n" +
     32       "}\n" +
     33       "debugger;\n");
     34 assertEq(g.log, 'DHX');