summaryrefslogtreecommitdiffstats
path: root/toolkit/components/promiseworker/tests/xpcshell/data/worker.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/promiseworker/tests/xpcshell/data/worker.mjs')
-rw-r--r--toolkit/components/promiseworker/tests/xpcshell/data/worker.mjs36
1 files changed, 36 insertions, 0 deletions
diff --git a/toolkit/components/promiseworker/tests/xpcshell/data/worker.mjs b/toolkit/components/promiseworker/tests/xpcshell/data/worker.mjs
new file mode 100644
index 0000000000..98a4b0ee5b
--- /dev/null
+++ b/toolkit/components/promiseworker/tests/xpcshell/data/worker.mjs
@@ -0,0 +1,36 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/* eslint-env mozilla/worker */
+
+// Trivial worker definition
+
+import { PromiseWorker } from "resource://gre/modules/workers/PromiseWorker.mjs";
+
+var worker = new PromiseWorker.AbstractWorker();
+worker.dispatch = function (method, args = []) {
+ return Agent[method](...args);
+};
+worker.postMessage = function (...args) {
+ self.postMessage(...args);
+};
+worker.close = function () {
+ self.close();
+};
+worker.log = function (...args) {
+ dump("Worker: " + args.join(" ") + "\n");
+};
+self.addEventListener("message", msg => worker.handleMessage(msg));
+self.addEventListener("unhandledrejection", function (error) {
+ throw error.reason;
+});
+
+var Agent = {
+ bounce(...args) {
+ return args;
+ },
+
+ throwError(msg, ...args) {
+ throw new Error(msg);
+ },
+};