summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Debugger-clearAllBreakpoints-01.js
blob: ea5489a699c2169ae6a8e283aa9d86e34ca446d1 (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({newCompartment: true});

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);