| // Basic call chain. |
| |
| var g = newGlobal(); |
| var result = null; |
| var dbg = new Debugger(g); |
| dbg.onDebuggerStatement = function (frame) { |
| var a = []; |
| assertEq(frame === frame.older, false); |
| for (; frame; frame = frame.older) |
| a.push(frame.type === 'call' ? frame.callee.name : frame.type); |
| a.reverse(); |
| result = a.join(", "); |
| }; |
| |
| g.eval("function first() { return second(); }"); |
| g.eval("function second() { return eval('third()'); }"); |
| g.eval("function third() { debugger; }"); |
| g.evaluate("first();"); |
| assertEq(result, "global, first, second, eval, third"); |