tor-browser

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

Debugger-multi-03.js (683B)


      1 // Q: But who shall debug the debuggers?  A: jimb
      2 
      3 var log = '';
      4 
      5 function addDebug(g, id) {
      6    var debuggerGlobal = newGlobal({newCompartment: true});
      7    debuggerGlobal.debuggee = g;
      8    debuggerGlobal.id = id;
      9    debuggerGlobal.print = function (s) { log += s; };
     10    debuggerGlobal.eval(
     11        'var dbg = new Debugger(debuggee);\n' +
     12        'dbg.onDebuggerStatement = function () { print(id); debugger; print(id); };\n');
     13    return debuggerGlobal;
     14 }
     15 
     16 var base = newGlobal({newCompartment: true});
     17 var top = base;
     18 for (var i = 0; i < 8; i++)  // why have 2 debuggers when you can have 8
     19    top = addDebug(top, i);
     20 base.eval("debugger;");
     21 assertEq(log, '0123456776543210');