tor-browser

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

resumption-05.js (966B)


      1 // null resumption value means terminate the debuggee
      2 
      3 var g = newGlobal({newCompartment: true});
      4 g.debuggeeGlobal = this;
      5 g.eval("(" + function () { 
      6        var dbg = new Debugger(debuggeeGlobal);
      7        dbg.onDebuggerStatement = function (frame) {
      8            if (frame.callee === null) {
      9                // The first debugger statement below.
     10                debuggeeGlobal.log += "1";
     11                var cv = frame.eval("f();");
     12                assertEq(cv, null);
     13                debuggeeGlobal.log += "2";
     14            } else {
     15                // The second debugger statement.
     16                debuggeeGlobal.log += "3";
     17                assertEq(frame.callee.name, "f");
     18                return null;
     19            }
     20        };
     21    } + ")()");
     22 
     23 var log = "";
     24 debugger;
     25 
     26 function f() {
     27    log += "4";
     28    try {
     29        debugger;  // the debugger terminates us here
     30    } finally {
     31        log += "5";  // this should not execute
     32    }
     33 }
     34 
     35 assertEq(log, "1432");