summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Debugger-multi-01.js
blob: cd29fc6deb25bf53348d0b286f2dabb2d8809883 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// 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');