blob: b51b0e09f84f2723b0d1834457e01051d3fb1d05 (
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
|
// A "while" or a "for" loop should have a single entry point.
var g = newGlobal({newCompartment: true});
var dbg = new Debugger(g);
dbg.onDebuggerStatement = function(frame) {
var s = frame.eval('f').return.script;
// There should be just a single entry point for the first line of
// the function. See below to understand the "+2".
assertEq(s.getLineOffsets(g.line0 + 2).length, 1);
};
function test(code) {
g.eval('var line0 = Error().lineNumber;\n' +
'function f() {\n' + // line0 + 1
code + '\n' + // line0 + 2 -- see above
'}\n' +
'debugger;');
}
test('while (false)\n;');
test('for (;false;)\n;');
test('for (;;) break;\n;');
|