blob: 671f63d4bbe806b913124972803f35fae85c4762 (
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
|
// A frame's onPop handler is called only once, even if it is for a function
// called from a loop.
var g = newGlobal({newCompartment: true});
var dbg = new Debugger(g);
var log;
var count;
dbg.onDebuggerStatement = function handleDebug(frame) {
log += 'd';
assertEq(frame.type, "call");
count++;
if (count == 10) {
frame.onPop = function handlePop(c) {
log += ')' + this.arguments[0];
assertEq(c.return, "snifter");
};
}
};
g.eval("function f(n) { debugger; return 'snifter'; }");
log = '';
count = 0;
g.eval("for (i = 0; i < 20; i++) f(i);");
assertEq(count, 20);
assertEq(log, "dddddddddd)9dddddddddd");
|