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 // Turning debugger off global at a time.
3 var g1 = newGlobal();
4 var g2 = newGlobal();
5 var g3 = newGlobal();
7 g1.eval("" + function f() {
8 var name = "f";
9 g();
10 return name;
11 });
12 g2.eval("" + function g() {
13 var name = "g";
14 h();
15 return name;
16 });
17 g3.eval("" + function h() {
18 var name = "h";
19 toggle();
20 return name;
21 });
23 g1.g = g2.g;
24 g2.h = g3.h;
26 function name(f) {
27 return f.environment.getVariable("name");
28 }
30 var dbg = new Debugger;
31 g3.toggle = function () {
32 var frame;
34 // Add all globals.
35 dbg.addDebuggee(g1);
36 dbg.addDebuggee(g3);
37 dbg.addDebuggee(g2);
39 // Remove one at a time.
40 dbg.removeDebuggee(g3);
41 assertEq(name(dbg.getNewestFrame()), "g");
42 dbg.removeDebuggee(g2);
43 assertEq(name(dbg.getNewestFrame()), "f");
44 dbg.removeDebuggee(g1);
45 };
47 g1.eval("(" + function () { f(); } + ")();");