Skip to content

Commit 32e5812

Browse files
committed
fix register call order
1 parent 48e91b9 commit 32e5812

File tree

2 files changed

+17
-16
lines changed

2 files changed

+17
-16
lines changed

turbopack/crates/turbopack-ecmascript-runtime/js/src/browser/runtime/base/dev-base.ts

+1-15
Original file line numberDiff line numberDiff line change
@@ -1076,14 +1076,13 @@ function disposeChunk(chunkPath: ChunkPath): boolean {
10761076
* Subscribes to chunk list updates from the update server and applies them.
10771077
*/
10781078
function registerChunkList(
1079-
chunkUpdateProvider: ChunkUpdateProvider,
10801079
chunkList: ChunkList
10811080
) {
10821081
const chunkListScript = chunkList.script;
10831082
const chunkListPath = getPathFromScript(chunkListScript);
10841083
// The "chunk" is also registered to finish the loading in the backend
10851084
BACKEND.registerChunk(chunkListPath as string as ChunkPath);
1086-
chunkUpdateProvider.push([
1085+
globalThis.TURBOPACK_CHUNK_UPDATE_LISTENERS!.push([
10871086
chunkListPath,
10881087
handleApply.bind(null, chunkListPath),
10891088
]);
@@ -1107,16 +1106,3 @@ function registerChunkList(
11071106
}
11081107

11091108
globalThis.TURBOPACK_CHUNK_UPDATE_LISTENERS ??= [];
1110-
1111-
const chunkListsToRegister = globalThis.TURBOPACK_CHUNK_LISTS;
1112-
if (Array.isArray(chunkListsToRegister)) {
1113-
for (const chunkList of chunkListsToRegister) {
1114-
registerChunkList(globalThis.TURBOPACK_CHUNK_UPDATE_LISTENERS, chunkList);
1115-
}
1116-
}
1117-
1118-
globalThis.TURBOPACK_CHUNK_LISTS = {
1119-
push: (chunkList) => {
1120-
registerChunkList(globalThis.TURBOPACK_CHUNK_UPDATE_LISTENERS!, chunkList);
1121-
},
1122-
} satisfies ChunkListProvider;

turbopack/crates/turbopack-ecmascript-runtime/src/browser_runtime.rs

+16-1
Original file line numberDiff line numberDiff line change
@@ -149,14 +149,29 @@ pub async fn get_browser_runtime_code(
149149
);
150150
}
151151

152-
// Registering chunks depends on the BACKEND variable, which is set by the
152+
// Registering chunks and chunk lists depends on the BACKEND variable, which is set by the
153153
// specific runtime code, hence it must be appended after it.
154154
writedoc!(
155155
code,
156156
r#"
157157
const chunksToRegister = globalThis.TURBOPACK;
158158
globalThis.TURBOPACK = {{ push: registerChunk }};
159159
chunksToRegister.forEach(registerChunk);
160+
"#
161+
)?;
162+
if matches!(*runtime_type, RuntimeType::Development) {
163+
writedoc!(
164+
code,
165+
r#"
166+
const chunkListsToRegister = globalThis.TURBOPACK_CHUNK_LISTS || [];
167+
chunkListsToRegister.forEach(registerChunkList);
168+
globalThis.TURBOPACK_CHUNK_LISTS = {{ push: registerChunkList }};
169+
"#
170+
)?;
171+
}
172+
writedoc!(
173+
code,
174+
r#"
160175
}})();
161176
"#
162177
)?;

0 commit comments

Comments
 (0)