summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Frame-onPop-14.js
blob: 82b5c9ec8d4903c6ac96acc354aacc716b24138b (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();
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");