| var g = newGlobal(); |
| g.eval("var success = false"); |
| g.eval("function ponies() {}"); |
| g.eval("function foo() { ponies(); success = false }"); |
| |
| var dbg = new Debugger(g); |
| dbg.onEnterFrame = function(frame) { |
| // The goal here is force an early return on the 'call' instruction, |
| // which should be the 3rd step (callgname, undefined, call) |
| var step = 0; |
| frame.onStep = function() { |
| ++step; |
| if (step == 2) { |
| g.success = true; |
| return; |
| } |
| if (step == 3) |
| return { return: undefined } |
| } |
| frame.onPop = function() { new Error(); /* boom */ } |
| } |
| |
| g.foo(); |
| assertEq(g.success, true); |