tor-browser

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

Script-global-02.js (836B)


      1 // Debugger.Script.prototype.script returns the global the script runs in.
      2 // Multi-global version.
      3 
      4 var dbg = new Debugger;
      5 
      6 var g1 = newGlobal({newCompartment: true});
      7 var g1w = dbg.addDebuggee(g1);
      8 
      9 var g2 = newGlobal({newCompartment: true});
     10 var g2w = dbg.addDebuggee(g2);
     11 
     12 var g3 = newGlobal({newCompartment: true});
     13 var g3w = dbg.addDebuggee(g3);
     14 
     15 var log = '';
     16 dbg.onDebuggerStatement = function (frame) {
     17  log += 'd';
     18  assertEq(frame.script.global, g1w);
     19  assertEq(frame.older.script.global, g2w);
     20  assertEq(frame.older.older.script.global, g3w);
     21  assertEq(frame.older.older.older.script.global, g1w);
     22 }
     23 
     24 g1.eval('function f() { debugger; }');
     25 
     26 g2.g1 = g1;
     27 g2.eval('function g() { g1.f(); }');
     28 
     29 g3.g2 = g2;
     30 g3.eval('function h() { g2.g(); }');
     31 
     32 g1.g3 = g3;
     33 g1.eval('function i() { g3.h(); }');
     34 
     35 g1.i();
     36 assertEq(log, 'd');