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