summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Frame-onStep-13.js
blob: b2d4a3c1b1c8099c27c4c2ecce5e30597af65d25 (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
// Stepping over a not-taken "if" that is at the end of the function
// should move to the end of the function, not somewhere in the body
// of the "if".

var g = newGlobal({newCompartment: true});
g.eval(`function f() {        // 1
  var a,c;                    // 2
  debugger;                   // 3
  if(false) {                 // 4
    for(var b=0; b<0; b++) {  // 5
      c = 2;                  // 6
    }                         // 7
  }                           // 8
}                             // 9
`);

var dbg = Debugger(g);
var badStep = false;

dbg.onDebuggerStatement = function(frame) {
  let debugLine = frame.script.getOffsetLocation(frame.offset).lineNumber;
  assertEq(debugLine, 3);
  frame.onStep = function() {
    let foundLine = this.script.getOffsetLocation(this.offset).lineNumber;
    assertEq(foundLine <= 4 || foundLine >= 8, true);
  };
};

g.eval("f();\n");