blob: 7fab0c9fb89b12d96d923e33d5ea36da0c755b95 (
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
33
|
// getLineOffsets correctly places the various parts of a ForStatement.
var g = newGlobal({newCompartment: true});
var dbg = Debugger(g);
dbg.onDebuggerStatement = function (frame) {
function handler(line) {
return {hit: function (frame) { g.log += "" + line; }};
}
var s = frame.eval("f").return.script;
for (var line = 2; line <= 6; line++) {
var offs = s.getLineOffsets(g.line0 + line);
var h = handler(line);
for (var i = 0; i < offs.length; i++) {
assertEq(s.getOffsetLocation(offs[i]).lineNumber, g.line0 + line);
s.setBreakpoint(offs[i], h);
}
}
};
g.log = '';
g.eval("var line0 = Error().lineNumber;\n" +
"function f(n) {\n" + // line0 + 1
" for (var i = 0;\n" + // line0 + 2
" i < n;\n" + // line0 + 3
" i++)\n" + // line0 + 4
" log += '.';\n" + // line0 + 5
" log += '!';\n" + // line0 + 6
"}\n" +
"debugger;\n");
assertEq(g.log, "");
g.f(3);
assertEq(g.log, "235.435.435.436!");
|