blob: 3e77bc89d5c6a532035613ed2abbe11a7232d115 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
// The script and environment of a non-debuggee function are null.
var g = newGlobal({newCompartment: true});
g.eval('function f() { return "from f"; }');
var dbg = new Debugger;
var gw = dbg.makeGlobalObjectReference(g);
var fw = gw.getOwnPropertyDescriptor('f').value;
// g is not a debuggee, so we can't fetch f's script or environment.
assertEq(fw.script, null);
assertEq(fw.environment, null);
// If we add g as a debuggee, we can fetch f's script and environment.
dbg.addDebuggee(g);
var fscript = fw.script;
var fenv = fw.environment;
assertEq(fscript instanceof Debugger.Script, true);
assertEq(fenv instanceof Debugger.Environment, true);
// Removing g as a debuggee makes the script and environment inaccessible again.
dbg.removeDebuggee(g);
assertEq(fw.script, null);
assertEq(fw.environment, null);
|