1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/jit-test/tests/debug/Object-script-environment-nondebuggee.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,24 @@ 1.4 +// The script and environment of a non-debuggee function are null. 1.5 + 1.6 +var g = newGlobal(); 1.7 +g.eval('function f() { return "from f"; }'); 1.8 + 1.9 +var dbg = new Debugger; 1.10 +var gw = dbg.makeGlobalObjectReference(g); 1.11 +var fw = gw.getOwnPropertyDescriptor('f').value; 1.12 + 1.13 +// g is not a debuggee, so we can't fetch f's script or environment. 1.14 +assertEq(fw.script, null); 1.15 +assertEq(fw.environment, null); 1.16 + 1.17 +// If we add g as a debuggee, we can fetch f's script and environment. 1.18 +dbg.addDebuggee(g); 1.19 +var fscript = fw.script; 1.20 +var fenv = fw.environment; 1.21 +assertEq(fscript instanceof Debugger.Script, true); 1.22 +assertEq(fenv instanceof Debugger.Environment, true); 1.23 + 1.24 +// Removing g as a debuggee makes the script and environment inaccessible again. 1.25 +dbg.removeDebuggee(g); 1.26 +assertEq(fw.script, null); 1.27 +assertEq(fw.environment, null);