summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/uncaughtExceptionHook-03.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/debug/uncaughtExceptionHook-03.js')
-rw-r--r--js/src/jit-test/tests/debug/uncaughtExceptionHook-03.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/debug/uncaughtExceptionHook-03.js b/js/src/jit-test/tests/debug/uncaughtExceptionHook-03.js
new file mode 100644
index 0000000000..0924c8f023
--- /dev/null
+++ b/js/src/jit-test/tests/debug/uncaughtExceptionHook-03.js
@@ -0,0 +1,34 @@
+// |jit-test| error: ReferenceError
+// If uncaughtExceptionHook is absent, the debuggee is terminated.
+
+var g = newGlobal({newCompartment: true});
+g.debuggeeGlobal = this;
+g.eval("(" + function () {
+ var dbg = Debugger(debuggeeGlobal);
+ dbg.onDebuggerStatement = function (frame) {
+ if (frame.callee === null) {
+ debuggeeGlobal.log += '1';
+ var cv = frame.eval("f();");
+ debuggeeGlobal.log += '2';
+ assertEq(cv, null);
+ } else {
+ assertEq(frame.callee.name, "f");
+ debuggeeGlobal.log += '3';
+ throw new ReferenceError("oops");
+ }
+ };
+ } + ")();");
+
+function onerror(msg) {
+}
+
+var log = '';
+debugger;
+function f() {
+ try {
+ debugger;
+ } finally {
+ log += 'x';
+ }
+}
+assertEq(log, '132');