Source code

Revision control

Copy as Markdown

Other Tools

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