summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Debugger-onPromiseSettled-03.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/debug/Debugger-onPromiseSettled-03.js')
-rw-r--r--js/src/jit-test/tests/debug/Debugger-onPromiseSettled-03.js40
1 files changed, 40 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/debug/Debugger-onPromiseSettled-03.js b/js/src/jit-test/tests/debug/Debugger-onPromiseSettled-03.js
new file mode 100644
index 0000000000..2f11252480
--- /dev/null
+++ b/js/src/jit-test/tests/debug/Debugger-onPromiseSettled-03.js
@@ -0,0 +1,40 @@
+// onPromiseSettled handlers on different Debugger instances are independent.
+var g = newGlobal({newCompartment: true});
+var dbg1 = new Debugger(g);
+var log1;
+function h1(promise) {
+ log1 += 's';
+ assertEq(promise.seen, undefined);
+ promise.seen = true;
+}
+
+var dbg2 = new Debugger(g);
+var log2;
+function h2(promise) {
+ log2 += 's';
+ assertEq(promise.seen, undefined);
+ promise.seen = true;
+}
+
+log1 = log2 = '';
+g.settlePromiseNow(new g.Promise(function (){}));
+assertEq(log1, '');
+assertEq(log2, '');
+
+log1 = log2 = '';
+dbg1.onPromiseSettled = h1;
+g.settlePromiseNow(new g.Promise(function (){}));
+assertEq(log1, 's');
+assertEq(log2, '');
+
+log1 = log2 = '';
+dbg2.onPromiseSettled = h2;
+g.settlePromiseNow(new g.Promise(function (){}));
+assertEq(log1, 's');
+assertEq(log2, 's');
+
+log1 = log2 = '';
+dbg1.onPromiseSettled = undefined;
+g.settlePromiseNow(new g.Promise(function (){}));
+assertEq(log1, '');
+assertEq(log2, 's');