tor-browser

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

resumption-07.js (803B)


      1 // Return resumption values to non-debuggee frames.
      2 
      3 load(libdir + 'asserts.js');
      4 
      5 var g = newGlobal({newCompartment: true});
      6 var dbg = new Debugger;
      7 
      8 var log;
      9 
     10 function handlerWithResumption(resumption) {
     11  return function (frame) {
     12    log += 'd';
     13    dbg.removeDebuggee(g);
     14    return resumption;
     15  };
     16 }
     17 
     18 log = '';
     19 dbg.onDebuggerStatement = handlerWithResumption(undefined);
     20 dbg.addDebuggee(g);
     21 assertEq(g.eval('debugger; 42;'), 42);
     22 assertEq(log, 'd');
     23 
     24 log = '';
     25 dbg.onDebuggerStatement = handlerWithResumption({ return: 1729 });
     26 dbg.addDebuggee(g);
     27 assertEq(g.eval('debugger; 42;'), 1729);
     28 assertEq(log, 'd');
     29 
     30 log = '';
     31 dbg.onDebuggerStatement = handlerWithResumption(null);
     32 dbg.addDebuggee(g);
     33 assertEq(g.evaluate('debugger; 42;', { catchTermination: true }), 'terminated');
     34 assertEq(log, 'd');