1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/jit-test/tests/debug/Script-global-02.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,40 @@ 1.4 +// Debugger.Script.prototype.script returns the global the script runs in. 1.5 +// Multi-global version. 1.6 + 1.7 +var dbg = new Debugger; 1.8 + 1.9 +var g1 = newGlobal(); 1.10 +var g1w = dbg.addDebuggee(g1); 1.11 + 1.12 +var g2 = newGlobal(); 1.13 +var g2w = dbg.addDebuggee(g2); 1.14 + 1.15 +var g3 = newGlobal(); 1.16 +var g3w = dbg.addDebuggee(g3); 1.17 + 1.18 +var log = ''; 1.19 +dbg.onDebuggerStatement = function (frame) { 1.20 + log += 'd'; 1.21 + assertEq(frame.script.global, g1w); 1.22 + assertEq(frame.older.script.global, g2w); 1.23 + assertEq(frame.older.older.script.global, g3w); 1.24 + assertEq(frame.older.older.older.script.global, g1w); 1.25 +} 1.26 + 1.27 +g1.eval('function f() { debugger; }'); 1.28 + 1.29 +g2.g1 = g1; 1.30 +g2.eval('function g() { g1.f(); }'); 1.31 + 1.32 +g3.g2 = g2; 1.33 +g3.eval('function h() { g2.g(); }'); 1.34 + 1.35 +g1.g3 = g3; 1.36 +g1.eval('function i() { g3.h(); }'); 1.37 + 1.38 +g1.i(); 1.39 +assertEq(log, 'd'); 1.40 + 1.41 +assertEq(g1w.getOwnPropertyDescriptor('f').value.global, g1w); 1.42 +assertEq(g2w.getOwnPropertyDescriptor('g').value.global, g2w); 1.43 +assertEq(g3w.getOwnPropertyDescriptor('h').value.global, g3w);