summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Debugger-onEnterFrame-resumption-03.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/debug/Debugger-onEnterFrame-resumption-03.js')
-rw-r--r--js/src/jit-test/tests/debug/Debugger-onEnterFrame-resumption-03.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/debug/Debugger-onEnterFrame-resumption-03.js b/js/src/jit-test/tests/debug/Debugger-onEnterFrame-resumption-03.js
new file mode 100644
index 0000000000..0da20925b0
--- /dev/null
+++ b/js/src/jit-test/tests/debug/Debugger-onEnterFrame-resumption-03.js
@@ -0,0 +1,26 @@
+// If debugger.onEnterFrame returns null, the debuggee is terminated immediately.
+
+load(libdir + "asserts.js");
+
+var g = newGlobal({newCompartment: true});
+g.set = false;
+
+var dbg = Debugger(g);
+var savedFrame;
+dbg.onDebuggerStatement = function (frame) {
+ var innerSavedFrame;
+ dbg.onEnterFrame = function (frame) {
+ innerSavedFrame = frame;
+ return null;
+ };
+ // Using frame.eval lets us catch termination.
+ assertEq(frame.eval("set = true;"), null);
+ assertEq(innerSavedFrame.onStack, false);
+ savedFrame = frame;
+ return { return: "pass" };
+};
+
+savedFrame = undefined;
+assertEq(g.eval("debugger;"), "pass");
+assertEq(savedFrame.onStack, false);
+assertEq(g.set, false);