// When there are multiple debuggers, their hooks are called in order.

var g = newGlobal();
var log;
var arr = [];

function addDebug(msg) {
    var dbg = new Debugger(g);
    dbg.onDebuggerStatement = function (stack) { log += msg; };
    arr.push(dbg);
}

addDebug('a');
addDebug('b');
addDebug('c');

log = '';
assertEq(g.eval("debugger; 0;"), 0);
assertEq(log, 'abc');

// Calling debugger hooks stops as soon as any hook returns a resumption value
// other than undefined.

arr[0].onDebuggerStatement = function (stack) {
    log += 'a';
    return {return: 1};
};

log = '';
assertEq(g.eval("debugger; 0;"), 1);
assertEq(log, 'a');