Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
1 // The script and environment of a non-debuggee frame are inaccessible.
3 load(libdir + 'asserts.js');
5 var g = newGlobal();
6 var dbg = new Debugger;
8 var log;
9 dbg.onDebuggerStatement = function (frame) {
10 log += frame.type;
11 // Initially, 'frame' is a debuggee frame, and we should be able to see its script and environment.
12 assertEq(frame.script instanceof Debugger.Script, true);
13 assertEq(frame.environment instanceof Debugger.Environment, true);
15 // If we make g no longer a debuggee, then trying to touch the frame at
16 // all show throw.
17 dbg.removeDebuggee(g);
18 assertThrowsInstanceOf(() => frame.script, Error);
19 assertThrowsInstanceOf(() => frame.environment, Error);
20 }
22 g.eval('function f() { debugger; }');
24 log = '';
25 dbg.addDebuggee(g);
26 g.f();
27 assertEq(log, 'call');
29 log = '';
30 dbg.addDebuggee(g);
31 g.eval('debugger;');
32 assertEq(log, 'eval');