summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/promise/unhandled-rejections-dead-2.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/promise/unhandled-rejections-dead-2.js')
-rw-r--r--js/src/jit-test/tests/promise/unhandled-rejections-dead-2.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/promise/unhandled-rejections-dead-2.js b/js/src/jit-test/tests/promise/unhandled-rejections-dead-2.js
new file mode 100644
index 0000000000..ef42340fde
--- /dev/null
+++ b/js/src/jit-test/tests/promise/unhandled-rejections-dead-2.js
@@ -0,0 +1,24 @@
+// |jit-test| error:Unhandled rejection
+
+var g = newGlobal({newCompartment: true})
+g.outer = this;
+g.eval(`
+ // Create a new Promise in |outer| using new.target, but with
+ // resolver functions in |g|.
+ var resolvers;
+ var p = Reflect.construct(Promise, [
+ (resolve, reject) => {
+ resolvers = {resolve, reject};
+ }
+ ], outer.Promise);
+
+ resolvers.resolve({
+ get then() {
+ // Throw from the about to be nuked compartment.
+ throw null;
+ }
+ });
+`);
+
+// Nuke CCWs, including the SavedFrame for the Promise resolution info.
+nukeAllCCWs();