943
};
944
let initializingHandler: null | InitializationHandler = null;
945
let initializingChunk: null | BlockedChunk<any> = null;
946
+let isInitializingDebugInfo: boolean = false;
947
948
function initializeDebugChunk(
949
response: Response,
952
const debugChunk = chunk._debugChunk;
953
if (debugChunk !== null) {
954
const debugInfo = chunk._debugInfo;
955
+ const prevIsInitializingDebugInfo = isInitializingDebugInfo;
956
+ isInitializingDebugInfo = true;
957
try {
958
if (debugChunk.status === RESOLVED_MODEL) {
959
// Find the index of this debug info by walking the linked list.
1018
}
1019
} catch (error) {
1020
triggerErrorOnChunk(response, chunk, error);
1021
+ } finally {
1022
+ isInitializingDebugInfo = prevIsInitializingDebugInfo;
1023
}
1024
}
1025
}
1637
const element: any = handler.value;
1638
switch (key) {
1639
case '3':
1635
- transferReferencedDebugInfo(handler.chunk, fulfilledChunk);
1640
+ if (__DEV__) {
1641
+ transferReferencedDebugInfo(handler.chunk, fulfilledChunk);
1642
+ }
1643
element.props = mappedValue;
1644
break;
1645
case '4':
1655
}
1656
break;
1657
default:
1651
- transferReferencedDebugInfo(handler.chunk, fulfilledChunk);
1658
+ if (__DEV__) {
1659
+ transferReferencedDebugInfo(handler.chunk, fulfilledChunk);
1660
+ }
1661
break;
1662
}
1663
} else if (__DEV__ && !reference.isDebug) {
2095
response,
2096
map,
2097
path.slice(i - 1),
2089
- false,
2098
+ isInitializingDebugInfo,
2099
);
2100
}
2101
case HALTED: {
2167
}
2168
2169
const chunkValue = map(response, value, parentObject, key);
2161
- if (
2162
- parentObject[0] === REACT_ELEMENT_TYPE &&
2163
- (key === '4' || key === '5')
2164
- ) {
2165
- // If we're resolving the "owner" or "stack" slot of an Element array, we don't call
2166
- // transferReferencedDebugInfo because this reference is to a debug chunk.
2167
- } else {
2168
- transferReferencedDebugInfo(initializingChunk, chunk);
2170
+ if (__DEV__) {
2171
+ if (
2172
+ parentObject[0] === REACT_ELEMENT_TYPE &&
2173
+ (key === '4' || key === '5')
2174
+ ) {
2175
+ // If we're resolving the "owner" or "stack" slot of an Element array,
2176
+ // we don't call transferReferencedDebugInfo because this reference is
2177
+ // to a debug chunk.
2178
+ } else if (isInitializingDebugInfo) {
2179
+ // If we're resolving references as part of debug info resolution, we
2180
+ // don't call transferReferencedDebugInfo because these references are
2181
+ // to debug chunks.
2182
+ } else {
2183
+ transferReferencedDebugInfo(initializingChunk, chunk);
2184
+ }
2185
}
2186
return chunkValue;
2187
case PENDING:
2193
response,
2194
map,
2195
path,
2180
- false,
2196
+ isInitializingDebugInfo,
2197
);
2198
case HALTED: {
2199
// Add a dependency that will never resolve.
4280
): void {
4281
const chunks = response._chunks;
4282
let chunk = chunks.get(id);
4267
- if (!chunk) {
4268
- chunk = createResolvedModelChunk(response, model);
4269
- chunks.set(id, chunk);
4270
- initializeModelChunk(chunk);
4271
- } else {
4272
- resolveModelChunk(response, chunk, model);
4273
- if (chunk.status === RESOLVED_MODEL) {
4283
+ const prevIsInitializingDebugInfo = isInitializingDebugInfo;
4284
+ isInitializingDebugInfo = true;
4285
+ try {
4286
+ if (!chunk) {
4287
+ chunk = createResolvedModelChunk(response, model);
4288
+ chunks.set(id, chunk);
4289
initializeModelChunk(chunk);
4290
+ } else {
4291
+ resolveModelChunk(response, chunk, model);
4292
+ if (chunk.status === RESOLVED_MODEL) {
4293
+ initializeModelChunk(chunk);
4294
+ }
4295
}
4296
+ } finally {
4297
+ isInitializingDebugInfo = prevIsInitializingDebugInfo;
4298
}
4299
if (chunk.status === INITIALIZED) {
4300
initializeIOInfo(response, chunk.value);