summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/resumption-07.js
blob: 2ba239e81a245b684ebaa33aef938e7036a9d789 (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
32
33
34
// Return resumption values to non-debuggee frames.

load(libdir + 'asserts.js');

var g = newGlobal({newCompartment: true});
var dbg = new Debugger;

var log;

function handlerWithResumption(resumption) {
  return function (frame) {
    log += 'd';
    dbg.removeDebuggee(g);
    return resumption;
  };
}

log = '';
dbg.onDebuggerStatement = handlerWithResumption(undefined);
dbg.addDebuggee(g);
assertEq(g.eval('debugger; 42;'), 42);
assertEq(log, 'd');

log = '';
dbg.onDebuggerStatement = handlerWithResumption({ return: 1729 });
dbg.addDebuggee(g);
assertEq(g.eval('debugger; 42;'), 1729);
assertEq(log, 'd');

log = '';
dbg.onDebuggerStatement = handlerWithResumption(null);
dbg.addDebuggee(g);
assertEq(g.evaluate('debugger; 42;', { catchTermination: true }), 'terminated');
assertEq(log, 'd');