| // An onPop handler in a disabled Debugger's frame shouldn't fire. |
| |
| var g = newGlobal(); |
| var dbg = new Debugger(g); |
| g.eval('function f() { debugger; }'); |
| var log; |
| dbg.onEnterFrame = function handleEnterFrame(f) { |
| log += '('; |
| assertEq(f.callee.name, 'f'); |
| f.onPop = function handlePop(c) { |
| log += ')'; |
| assertEq(dbg.enabled, true); |
| }; |
| }; |
| |
| var enable; |
| dbg.onDebuggerStatement = function handleDebugger(f) { |
| dbg.enabled = enable; |
| } |
| |
| |
| // This should fire the onEnterFrame and onPop handlers. |
| log = 'a'; |
| enable = true; |
| g.f(); |
| |
| // This should fire the onEnterFrame handler, but not the onPop. |
| log += 'b'; |
| enable = false; |
| g.f(); |
| |
| // This should fire neither. |
| log += 'c'; |
| dbg.enabled = false; |
| enable = false; |
| g.f(); |
| |
| // This should fire both again. |
| log += 'd'; |
| dbg.enabled = true; |
| enable = true; |
| g.f(); |
| |
| assertEq(log, 'a()b(cd()'); |