1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/jit-test/tests/debug/Debugger-debuggees-25.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,48 @@ 1.4 +// Turning debugger off global at a time. 1.5 + 1.6 +var g1 = newGlobal(); 1.7 +var g2 = newGlobal(); 1.8 +var g3 = newGlobal(); 1.9 + 1.10 +g1.eval("" + function f() { 1.11 + var name = "f"; 1.12 + g(); 1.13 + return name; 1.14 +}); 1.15 +g2.eval("" + function g() { 1.16 + var name = "g"; 1.17 + h(); 1.18 + return name; 1.19 +}); 1.20 +g3.eval("" + function h() { 1.21 + var name = "h"; 1.22 + toggle(); 1.23 + return name; 1.24 +}); 1.25 + 1.26 +g1.g = g2.g; 1.27 +g2.h = g3.h; 1.28 + 1.29 +function name(f) { 1.30 + return f.environment.getVariable("name"); 1.31 +} 1.32 + 1.33 +var dbg = new Debugger; 1.34 +g3.toggle = function () { 1.35 + var frame; 1.36 + 1.37 + // Add all globals. 1.38 + dbg.addDebuggee(g1); 1.39 + dbg.addDebuggee(g3); 1.40 + dbg.addDebuggee(g2); 1.41 + 1.42 + // Remove one at a time. 1.43 + dbg.removeDebuggee(g3); 1.44 + assertEq(name(dbg.getNewestFrame()), "g"); 1.45 + dbg.removeDebuggee(g2); 1.46 + assertEq(name(dbg.getNewestFrame()), "f"); 1.47 + dbg.removeDebuggee(g1); 1.48 +}; 1.49 + 1.50 +g1.eval("(" + function () { f(); } + ")();"); 1.51 +