From b6cdb31c0591ffd4dd9fee7a44554f5d915ba58e Mon Sep 17 00:00:00 2001 From: Yoshiya Hinosawa Date: Sat, 17 Aug 2024 11:16:43 +0900 Subject: fix(ext/node): fix prismjs compatibiliy in Web Worker (#25062) PrismJS uses `WorkerGlobalScope` and `self` for detecting browser's Web Worker context: https://github.com/PrismJS/prism/blob/59e5a3471377057de1f401ba38337aca27b80e03/prism.js#L11 Now the detection logic above is broken when it's imported from Deno's Web Worker context because we only hide `self` (Prism assumes when `WorkerGlobalScope` is available, `self` is also available). This change fixes the above by also hiding `WorkerGlobalScope` global in Node compat mode. closes #25008 --- tests/specs/npm/workers/main.out | 1 + tests/specs/npm/workers/main.ts | 3 +++ tests/specs/npm/workers/worker4.ts | 4 ++++ 3 files changed, 8 insertions(+) create mode 100644 tests/specs/npm/workers/worker4.ts (limited to 'tests/specs') diff --git a/tests/specs/npm/workers/main.out b/tests/specs/npm/workers/main.out index 55ff51cd3..f1f2d6a36 100644 --- a/tests/specs/npm/workers/main.out +++ b/tests/specs/npm/workers/main.out @@ -2,4 +2,5 @@ 1 2 3 +4 [UNORDERED_END] diff --git a/tests/specs/npm/workers/main.ts b/tests/specs/npm/workers/main.ts index f51cf4d90..575580790 100644 --- a/tests/specs/npm/workers/main.ts +++ b/tests/specs/npm/workers/main.ts @@ -7,3 +7,6 @@ new Worker(new URL("./worker2.ts", import.meta.url), { new Worker(new URL("./worker3.ts", import.meta.url), { type: "module", }); +new Worker(new URL("./worker4.ts", import.meta.url), { + type: "module", +}); diff --git a/tests/specs/npm/workers/worker4.ts b/tests/specs/npm/workers/worker4.ts new file mode 100644 index 000000000..fab3f4f9a --- /dev/null +++ b/tests/specs/npm/workers/worker4.ts @@ -0,0 +1,4 @@ +import "npm:@denotest/check-worker-globals"; + +console.log(4); +self.close(); -- cgit v1.2.3