js/src/jit-test/tests/debug/Object-script-environment-nondebuggee.js

changeset 0
6474c204b198
     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);

mercurial