summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Debugger-clearAllBreakpoints-01.js
blob: d61c9d8a1eacf21a2490f5a4536d48895d6046a5 (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
// clearAllBreakpoints clears breakpoints for the current Debugger object only.

var g = newGlobal();

var hits = 0;
function attach(i) {
    var dbg = Debugger(g);
    var handler = {
        hit: function (frame) {
            hits++;
            dbg.clearAllBreakpoints();
        }
    };

    dbg.onDebuggerStatement = function (frame) {
        var s = frame.script;
        var offs = s.getLineOffsets(g.line0 + 3);
        for (var i = 0; i < offs.length; i++)
            s.setBreakpoint(offs[i], handler);
    };
}
for (var i = 0; i < 4; i++)
    attach(i);

g.eval("var line0 = Error().lineNumber;\n" +
       "debugger;\n" +                      // line0 + 1
       "for (var i = 0; i < 7; i++)\n" +    // line0 + 2
       "    Math.sin(0);\n");               // line0 + 3
assertEq(hits, 4);