|
1 // Basic Script.prototype.getBreakpoints tests. |
|
2 |
|
3 var g = newGlobal(); |
|
4 g.eval("var line0 = Error().lineNumber;\n" + |
|
5 "function f(x) {\n" + // line0 + 1 |
|
6 " if (x < 0)\n" + // line0 + 2 |
|
7 " return -x;\n" + // line0 + 3 |
|
8 " return x;\n" + |
|
9 "}"); |
|
10 |
|
11 var s; |
|
12 var offsets = []; |
|
13 var handlers = []; |
|
14 var dbg = Debugger(g); |
|
15 dbg.onDebuggerStatement = function (frame) { |
|
16 s = frame.eval("f").return.script; |
|
17 var off; |
|
18 |
|
19 for (var i = 0; i < 3; i++) { |
|
20 var off = s.getLineOffsets(g.line0 + 2 + i)[0]; |
|
21 assertEq(typeof off, 'number'); |
|
22 handlers[i] = {}; |
|
23 s.setBreakpoint(off, handlers[i]); |
|
24 offsets[i] = off; |
|
25 } |
|
26 }; |
|
27 g.eval("debugger;"); |
|
28 |
|
29 // getBreakpoints without an offset gets all breakpoints in the script. |
|
30 var bps = s.getBreakpoints(); |
|
31 assertEq(bps.length, handlers.length); |
|
32 for (var i = 0; i < bps.length; i++) |
|
33 assertEq(bps.indexOf(handlers[i]) !== -1, true); |
|
34 |
|
35 // getBreakpoints with an offset finds only breakpoints at that offset. |
|
36 for (var i = 0; i < offsets.length; i++) { |
|
37 var bps = s.getBreakpoints(offsets[i]); |
|
38 assertEq(bps.length, 1); |
|
39 assertEq(bps[0], handlers[i]); |
|
40 } |