tor-browser

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

Debugger-multi-01.js (660B)


      1 // When there are multiple debuggers, their hooks are called in order.
      2 
      3 var g = newGlobal({newCompartment: true});
      4 var log;
      5 var arr = [];
      6 
      7 function addDebug(msg) {
      8    var dbg = new Debugger(g);
      9    dbg.onDebuggerStatement = function (stack) { log += msg; };
     10    arr.push(dbg);
     11 }
     12 
     13 addDebug('a');
     14 addDebug('b');
     15 addDebug('c');
     16 
     17 log = '';
     18 assertEq(g.eval("debugger; 0;"), 0);
     19 assertEq(log, 'abc');
     20 
     21 // Calling debugger hooks continues, even if one returns a resumption value
     22 // other than undefined.
     23 
     24 arr[0].onDebuggerStatement = function (stack) {
     25    log += 'a';
     26    return {return: 1};
     27 };
     28 
     29 log = '';
     30 assertEq(g.eval("debugger; 0;"), 1);
     31 assertEq(log, 'abc');