blob: bff152b0dfc7f8bc91e65ff48a951a1eeb5d5151 (
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({newCompartment: true});
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);
|