@samitouri / QOS-React-1 / commits / 247fbb452d

[Fizz] Fix non-script modulepreload tracking (#36564)

Minh Vu committed Jun 22, 2026 at 18:47 UTC 247fbb452d8ae7f1ed1919edffc6f58f57be3a1e
2 files changed +29 -1
packages/react-dom-bindings/src/server/ReactFizzConfigDOM.js
+1 -1
@@ -6556,7 +6556,7 @@ function preloadModule(
6556 resumableState.moduleUnknownResources.hasOwnProperty(as);
6557 let resources;
6558 if (hasAsType) {
6559 - resources = resumableState.unknownResources[as];
6559 + resources = resumableState.moduleUnknownResources[as];
6560 if (resources.hasOwnProperty(key)) {
6561 // we can return if we already have this resource
6562 return;
packages/react-dom/src/__tests__/ReactDOMFloat-test.js
+28
@@ -6532,6 +6532,34 @@ body {
6532 );
6533 });
6534
6535 + it('preloads multiple non-script modules with the same as type', async () => {
6536 + function App() {
6537 + ReactDOM.preloadModule('serviceworker one', {as: 'serviceworker'});
6538 + ReactDOM.preloadModule('serviceworker two', {as: 'serviceworker'});
6539 + return <div>hello</div>;
6540 + }
6541 +
6542 + await act(() => {
6543 + renderToPipeableStream(<App />).pipe(writable);
6544 + });
6545 +
6546 + expect(getMeaningfulChildren(document.body)).toEqual(
6547 + <div id="container">
6548 + <link
6549 + rel="modulepreload"
6550 + href="serviceworker one"
6551 + as="serviceworker"
6552 + />
6553 + <link
6554 + rel="modulepreload"
6555 + href="serviceworker two"
6556 + as="serviceworker"
6557 + />
6558 + <div>hello</div>
6559 + </div>,
6560 + );
6561 + });
6562 +
6563 it('warns if you provide invalid arguments', async () => {
6564 function App() {
6565 ReactDOM.preloadModule();