// 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");