summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Script-getLineOffsets-08.js
blob: 8a7fb69e1b8b314e3eb66cd0075fcf70ab8fee4a (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();
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;');