summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Frame-onStep-13.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/debug/Frame-onStep-13.js')
-rw-r--r--js/src/jit-test/tests/debug/Frame-onStep-13.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/debug/Frame-onStep-13.js b/js/src/jit-test/tests/debug/Frame-onStep-13.js
new file mode 100644
index 0000000000..b2d4a3c1b1
--- /dev/null
+++ b/js/src/jit-test/tests/debug/Frame-onStep-13.js
@@ -0,0 +1,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");