js/src/jit-test/tests/debug/Debugger-debuggees-25.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:fa947eb5a138
1 // Turning debugger off global at a time.
2
3 var g1 = newGlobal();
4 var g2 = newGlobal();
5 var g3 = newGlobal();
6
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 });
22
23 g1.g = g2.g;
24 g2.h = g3.h;
25
26 function name(f) {
27 return f.environment.getVariable("name");
28 }
29
30 var dbg = new Debugger;
31 g3.toggle = function () {
32 var frame;
33
34 // Add all globals.
35 dbg.addDebuggee(g1);
36 dbg.addDebuggee(g3);
37 dbg.addDebuggee(g2);
38
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 };
46
47 g1.eval("(" + function () { f(); } + ")();");
48

mercurial