Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 // Using an environment that is not a debuggee should throw.
3 load(libdir + 'asserts.js');
5 var g = newGlobal();
6 var dbg = new Debugger;
7 let gw = dbg.addDebuggee(g);
8 var log;
10 function check(env) {
11 assertEq(env.inspectable, false);
12 assertThrowsInstanceOf(() => env.type, Error);
13 assertThrowsInstanceOf(() => env.object, Error);
14 assertThrowsInstanceOf(() => env.parent, Error);
15 assertThrowsInstanceOf(() => env.callee, Error);
17 assertThrowsInstanceOf(() => env.names(), Error);
18 assertThrowsInstanceOf(() => env.find('x'), Error);
19 assertThrowsInstanceOf(() => env.getVariable('x'), Error);
20 assertThrowsInstanceOf(() => env.setVariable('x'), Error);
21 }
23 dbg.onDebuggerStatement = function (frame) {
24 log += 'd';
26 let env = frame.environment;
27 dbg.removeDebuggee(g);
28 check(env);
29 }
31 log = '';
32 g.eval('let x = 42; debugger;');
33 assertEq(log, 'd');
35 dbg.addDebuggee(g);
36 g.eval('function f() { }');
37 let env = gw.getOwnPropertyDescriptor('f').value.environment;
38 assertEq(env.type, 'object');
39 dbg.removeDebuggee(g);
40 check(env);