From 4db24d6a8786bddfd4d0378cb3777430b3c3827b Mon Sep 17 00:00:00 2001 From: Andrii Furmanets Date: Sat, 9 May 2026 21:35:03 +0300 Subject: [PATCH] fix: track custom module preloads in module resources --- .../src/server/ReactFizzConfigDOM.js | 2 +- .../src/__tests__/ReactDOMFloat-test.js | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/packages/react-dom-bindings/src/server/ReactFizzConfigDOM.js b/packages/react-dom-bindings/src/server/ReactFizzConfigDOM.js index 691e49e563fd..b273d9a89edb 100644 --- a/packages/react-dom-bindings/src/server/ReactFizzConfigDOM.js +++ b/packages/react-dom-bindings/src/server/ReactFizzConfigDOM.js @@ -6552,7 +6552,7 @@ function preloadModule( resumableState.moduleUnknownResources.hasOwnProperty(as); let resources; if (hasAsType) { - resources = resumableState.unknownResources[as]; + resources = resumableState.moduleUnknownResources[as]; if (resources.hasOwnProperty(key)) { // we can return if we already have this resource return; diff --git a/packages/react-dom/src/__tests__/ReactDOMFloat-test.js b/packages/react-dom/src/__tests__/ReactDOMFloat-test.js index 4207fa5e32e0..c3185a4590cc 100644 --- a/packages/react-dom/src/__tests__/ReactDOMFloat-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMFloat-test.js @@ -6532,6 +6532,26 @@ body { ); }); + it('preloads multiple modules with the same custom as value', async () => { + function App() { + ReactDOM.preloadModule('worker-a', {as: 'serviceworker'}); + ReactDOM.preloadModule('worker-b', {as: 'serviceworker'}); + return
hello
; + } + + await act(() => { + renderToPipeableStream().pipe(writable); + }); + + expect(getMeaningfulChildren(document.body)).toEqual( +
+ + +
hello
+
, + ); + }); + it('warns if you provide invalid arguments', async () => { function App() { ReactDOM.preloadModule();