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');
|