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');