diff --git a/patches/node/.patches b/patches/node/.patches index f7a1dadefe1..52928aa248e 100644 --- a/patches/node/.patches +++ b/patches/node/.patches @@ -35,3 +35,4 @@ enable_crashpad_linux_node_processes.patch allow_embedder_to_control_codegenerationfromstringscallback.patch src_allow_optional_isolation_termination_in_node.patch test_mark_cpu_prof_tests_as_flaky_in_electron.patch +lib_fix_broadcastchannel_initialization_location.patch diff --git a/patches/node/lib_fix_broadcastchannel_initialization_location.patch b/patches/node/lib_fix_broadcastchannel_initialization_location.patch new file mode 100644 index 00000000000..a95e7c9d309 --- /dev/null +++ b/patches/node/lib_fix_broadcastchannel_initialization_location.patch @@ -0,0 +1,44 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Shelley Vohr +Date: Mon, 27 Feb 2023 12:56:15 +0100 +Subject: lib: fix BroadcastChannel initialization location + +Refs https://github.com/nodejs/node/pull/40532. + +Fixes a bug in the above, wherein BroadcastChannel should have been +initialized in bootstrap/browser instead of bootstrap/node. That +inadvertently made it such that there was incorrect handling of the +DOM vs Node.js implementations of BroadcastChannel. + +This will be upstreamed. + +diff --git a/lib/internal/bootstrap/browser.js b/lib/internal/bootstrap/browser.js +index d0c01ca2a512be549b0fea8a829c05eabbec799a..210a1bb7e929021725b04786bc11d9b3ce09ad04 100644 +--- a/lib/internal/bootstrap/browser.js ++++ b/lib/internal/bootstrap/browser.js +@@ -12,6 +12,10 @@ const { + } = require('internal/util'); + const config = internalBinding('config'); + ++// Non-standard extensions: ++const { BroadcastChannel } = require('internal/worker/io'); ++exposeInterface(globalThis, 'BroadcastChannel', BroadcastChannel); ++ + // https://console.spec.whatwg.org/#console-namespace + exposeNamespace(globalThis, 'console', + createGlobalConsole()); +diff --git a/lib/internal/bootstrap/node.js b/lib/internal/bootstrap/node.js +index 7dd89d5f134b09da2678dd54fa9139466fea179c..f235545b6433c0f1dd335e0bb97cd3dc77616c0f 100644 +--- a/lib/internal/bootstrap/node.js ++++ b/lib/internal/bootstrap/node.js +@@ -237,10 +237,6 @@ const { + queueMicrotask + } = require('internal/process/task_queues'); + +-// Non-standard extensions: +-const { BroadcastChannel } = require('internal/worker/io'); +-exposeInterface(globalThis, 'BroadcastChannel', BroadcastChannel); +- + defineOperation(globalThis, 'queueMicrotask', queueMicrotask); + + const timers = require('timers');