tor-browser

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

Debugger-debuggees-19.js (1307B)


      1 // removeAllDebuggees removes all the debuggees.
      2 
      3 var dbg = new Debugger;
      4 
      5 // If we eval in a debuggee, log which debuggee it was.
      6 var log;
      7 dbg.onEnterFrame = function (frame) {
      8  log += 'e';
      9  // frame.environment in all evals below is the global lexical env.
     10  log += frame.environment.parent.object.label;
     11 };
     12 
     13 var g1 = newGlobal({newCompartment: true});
     14 log = '';
     15 g1.eval('Math');
     16 assertEq(log, '');              // not yet a debuggee
     17 
     18 var g1w = dbg.addDebuggee(g1);
     19 assertEq(g1w instanceof Debugger.Object, true);
     20 g1w.label = 'g1';
     21 log = '';
     22 g1.eval('Math');                // now a debuggee
     23 assertEq(log, 'eg1');
     24 
     25 var g2 = newGlobal({newCompartment: true});
     26 log = '';
     27 g1.eval('Math');                // debuggee
     28 g2.eval('Math');                // not a debuggee
     29 assertEq(log, 'eg1');
     30 
     31 var g2w = dbg.addDebuggee(g2);
     32 assertEq(g2w instanceof Debugger.Object, true);
     33 g2w.label = 'g2';
     34 log = '';
     35 g1.eval('Math');                // debuggee
     36 g2.eval('this');                // debuggee
     37 assertEq(log, 'eg1eg2');
     38 
     39 var a1 = dbg.getDebuggees();
     40 assertEq(a1.length, 2);
     41 
     42 assertEq(dbg.removeAllDebuggees(), undefined);
     43 var a2 = dbg.getDebuggees();
     44 assertEq(a2.length, 0);
     45 
     46 log = '';
     47 g1.eval('Math');                // no longer a debuggee
     48 g2.eval('this');                // no longer a debuggee
     49 assertEq(log, '');