summaryrefslogtreecommitdiffstats
path: root/dom/workers/test/WorkerDebugger_promise_worker.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/workers/test/WorkerDebugger_promise_worker.js')
-rw-r--r--dom/workers/test/WorkerDebugger_promise_worker.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/dom/workers/test/WorkerDebugger_promise_worker.js b/dom/workers/test/WorkerDebugger_promise_worker.js
new file mode 100644
index 0000000000..4b1042e80b
--- /dev/null
+++ b/dom/workers/test/WorkerDebugger_promise_worker.js
@@ -0,0 +1,25 @@
+"use strict";
+
+self.onmessage = function (event) {
+ if (event.data !== "resolve") {
+ return;
+ }
+ // This then-handler should be executed inside the top-level event loop,
+ // within the context of the worker's global.
+ Promise.resolve().then(function () {
+ self.onmessage = function (e) {
+ if (e.data !== "pause") {
+ return;
+ }
+ // This then-handler should be executed inside the top-level event loop,
+ // within the context of the worker's global. Because the debugger
+ // statement here below enters a nested event loop, the then-handler
+ // should not be executed until the debugger statement returns.
+ Promise.resolve().then(function () {
+ postMessage("resumed");
+ });
+ debugger;
+ };
+ postMessage("resolved");
+ });
+};