summaryrefslogtreecommitdiff
path: root/cli/tests/testdata/workers
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2023-08-02 03:19:44 +0200
committerGitHub <noreply@github.com>2023-08-02 01:19:44 +0000
commit9d1c32945cf08f3148df006ba1cbfa5f213cffac (patch)
tree635aea0e1e2f380305b5915a310ac76faf3285dc /cli/tests/testdata/workers
parent1cefa831fd74b14121494045a347024502d74e34 (diff)
fix: regression in workers using dynamic imports (#20006)
Closes https://github.com/denoland/deno/issues/19903
Diffstat (limited to 'cli/tests/testdata/workers')
-rw-r--r--cli/tests/testdata/workers/worker_doest_stall_event_loop.ts29
-rw-r--r--cli/tests/testdata/workers/worker_doest_stall_event_loop.ts.out6
2 files changed, 35 insertions, 0 deletions
diff --git a/cli/tests/testdata/workers/worker_doest_stall_event_loop.ts b/cli/tests/testdata/workers/worker_doest_stall_event_loop.ts
new file mode 100644
index 000000000..bfddee2ec
--- /dev/null
+++ b/cli/tests/testdata/workers/worker_doest_stall_event_loop.ts
@@ -0,0 +1,29 @@
+const moduleCode = `
+console.log('module start');
+const hash = await crypto.subtle.digest('SHA-1', new TextEncoder().encode('data'));
+const __default = {};
+export { __default as default };
+console.log('module finish');
+`;
+
+const workerCode = `
+ console.log('worker!');
+
+ globalThis.onmessage = (msg) => {
+ const { moduleCode } = msg.data;
+ (async () => {
+ console.log('before import');
+ await import(URL.createObjectURL(new Blob([ moduleCode ])));
+ console.log('after import');
+ self.postMessage('thanks');
+ })();
+ }
+`;
+const worker = new Worker(URL.createObjectURL(new Blob([workerCode])), {
+ type: "module",
+});
+worker.onmessage = () => {
+ console.log("worker.terminate");
+ worker.terminate();
+};
+worker.postMessage({ moduleCode });
diff --git a/cli/tests/testdata/workers/worker_doest_stall_event_loop.ts.out b/cli/tests/testdata/workers/worker_doest_stall_event_loop.ts.out
new file mode 100644
index 000000000..5ed65b02f
--- /dev/null
+++ b/cli/tests/testdata/workers/worker_doest_stall_event_loop.ts.out
@@ -0,0 +1,6 @@
+worker!
+before import
+module start
+module finish
+after import
+worker.terminate