summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/workers/modules/resources/eval-dynamic-import-worker.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/workers/modules/resources/eval-dynamic-import-worker.js')
-rw-r--r--testing/web-platform/tests/workers/modules/resources/eval-dynamic-import-worker.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/testing/web-platform/tests/workers/modules/resources/eval-dynamic-import-worker.js b/testing/web-platform/tests/workers/modules/resources/eval-dynamic-import-worker.js
new file mode 100644
index 0000000000..60080d4292
--- /dev/null
+++ b/testing/web-platform/tests/workers/modules/resources/eval-dynamic-import-worker.js
@@ -0,0 +1,29 @@
+// This script is meant to be imported by a module worker. It receives a
+// message from the worker and responds with the list of imported modules.
+const code = 'const sourcePromise = new Promise(resolve => {' +
+ ' if (\'DedicatedWorkerGlobalScope\' in self &&' +
+ ' self instanceof DedicatedWorkerGlobalScope) {' +
+ ' self.onmessage = e => {' +
+ ' resolve(e.target);' +
+ ' };' +
+ ' } else if (\'SharedWorkerGlobalScope\' in self &&' +
+ ' self instanceof SharedWorkerGlobalScope) {' +
+ ' self.onconnect = e => {' +
+ ' resolve(e.ports[0]);' +
+ ' };' +
+ ' } else if (\'ServiceWorkerGlobalScope\' in self &&' +
+ ' self instanceof ServiceWorkerGlobalScope) {' +
+ ' self.onmessage = e => {' +
+ ' resolve(e.source);' +
+ ' };' +
+ ' }' +
+ '});' +
+ 'const importedModulesPromise =' +
+ ' import(\'./export-on-load-script.js\')' +
+ ' .then(module => module.importedModules)' +
+ ' .catch(error => `Failed to do dynamic import: ${error}`);' +
+ 'Promise.all([sourcePromise, importedModulesPromise]).then(results => {' +
+ ' const [source, importedModules] = results;' +
+ ' source.postMessage(importedModules);' +
+ '});';
+eval(code);