summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/gc/bug-1602741.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--js/src/jit-test/tests/gc/bug-1602741.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/gc/bug-1602741.js b/js/src/jit-test/tests/gc/bug-1602741.js
new file mode 100644
index 0000000000..5f1cc7eca8
--- /dev/null
+++ b/js/src/jit-test/tests/gc/bug-1602741.js
@@ -0,0 +1,24 @@
+// Test that drainJobQueue() drains all jobs, including those queued
+// by FinalizationRegistry callbacks.
+
+let finalizeRan = false;
+let promiseRan = false;
+
+let fr = new FinalizationRegistry(() => {
+ finalizeRan = true;
+ Promise.resolve().then(() => {
+ promiseRan = true;
+ });
+});
+
+fr.register({}, {});
+
+gc();
+
+assertEq(finalizeRan, false);
+assertEq(promiseRan, false);
+
+drainJobQueue();
+
+assertEq(finalizeRan, true);
+assertEq(promiseRan, true);