summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Debugger-multi-02.js
blob: f02f0e458d9155e666d2259236ac6ac4e4e9d91e (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
// Test adding hooks during dispatch. The behavior is deterministic and "nice",
// but mainly what we are checking here is that we do not crash due to
// modifying a data structure while we're iterating over it.

var g = newGlobal();
var n = 0;
var hits;

function addDebugger() {
    var dbg = new Debugger(g);
    dbg.onDebuggerStatement = function (stack) {
        hits++;
        addDebugger();
    };
}

addDebugger();  // now there is one enabled Debugger
hits = 0;
g.eval("debugger;");  // after this there are two
assertEq(hits, 1);

hits = 0;
g.eval("debugger;");  // after this there are four
assertEq(hits, 2);

hits = 0;
g.eval("debugger;");  // after this there are eight
assertEq(hits, 4);

hits = 0;
g.eval("debugger;");
assertEq(hits, 8);