@@ -1029,7 +1029,7 @@ function renderFunctionComponent<Props>(
1029
1029
const componentDebugID = debugID ;
1030
1030
const componentName =
1031
1031
( Component : any ) . displayName || Component . name || '' ;
1032
- const componentEnv = request . environmentName ( ) ;
1032
+ const componentEnv = ( 0 , request . environmentName ) ( ) ;
1033
1033
request . pendingChunks ++ ;
1034
1034
componentDebugInfo = ( {
1035
1035
name : componentName ,
@@ -1056,14 +1056,8 @@ function renderFunctionComponent<Props>(
1056
1056
// We've emitted the latest environment for this task so we track that.
1057
1057
task . environmentName = componentEnv ;
1058
1058
1059
- if ( enableOwnerStacks ) {
1060
- warnForMissingKey (
1061
- request ,
1062
- key ,
1063
- validated ,
1064
- componentDebugInfo ,
1065
- task . debugTask ,
1066
- ) ;
1059
+ if ( enableOwnerStacks && validated === 2 ) {
1060
+ warnForMissingKey ( request , key , componentDebugInfo , task . debugTask ) ;
1067
1061
}
1068
1062
}
1069
1063
prepareToUseHooksForComponent ( prevThenableState , componentDebugInfo ) ;
@@ -1256,15 +1250,10 @@ function renderFunctionComponent<Props>(
1256
1250
function warnForMissingKey (
1257
1251
request : Request ,
1258
1252
key : null | string ,
1259
- validated : number ,
1260
1253
componentDebugInfo : ReactComponentInfo ,
1261
1254
debugTask : null | ConsoleTask ,
1262
1255
) : void {
1263
1256
if ( __DEV__ ) {
1264
- if ( validated !== 2 ) {
1265
- return ;
1266
- }
1267
-
1268
1257
let didWarnForKey = request . didWarnForKey ;
1269
1258
if ( didWarnForKey == null ) {
1270
1259
didWarnForKey = request . didWarnForKey = new WeakSet ( ) ;
@@ -1573,6 +1562,21 @@ function renderElement(
1573
1562
} else if ( type === REACT_FRAGMENT_TYPE && key === null ) {
1574
1563
// For key-less fragments, we add a small optimization to avoid serializing
1575
1564
// it as a wrapper.
1565
+ if ( __DEV__ && enableOwnerStacks && validated === 2 ) {
1566
+ // Create a fake owner node for the error stack.
1567
+ const componentDebugInfo : ReactComponentInfo = {
1568
+ name : 'Fragment ',
1569
+ env : ( 0 , request . environmentName ) ( ) ,
1570
+ owner : task . debugOwner ,
1571
+ stack :
1572
+ task . debugStack === null
1573
+ ? null
1574
+ : filterStackTrace ( request , task . debugStack , 1 ) ,
1575
+ debugStack : task . debugStack ,
1576
+ debugTask : task . debugTask ,
1577
+ } ;
1578
+ warnForMissingKey ( request , key , componentDebugInfo , task . debugTask ) ;
1579
+ }
1576
1580
const prevImplicitSlot = task . implicitSlot ;
1577
1581
if ( task . keyPath === null ) {
1578
1582
task . implicitSlot = true ;
@@ -2921,7 +2925,7 @@ function emitErrorChunk(
2921
2925
if ( __DEV__ ) {
2922
2926
let message ;
2923
2927
let stack : ReactStackTrace ;
2924
- let env = request . environmentName ( ) ;
2928
+ let env = ( 0 , request . environmentName ) ( ) ;
2925
2929
try {
2926
2930
if ( error instanceof Error ) {
2927
2931
// eslint-disable-next-line react-internal/safe-string-coercion
@@ -3442,7 +3446,7 @@ function emitConsoleChunk(
3442
3446
}
3443
3447
3444
3448
// TODO: Don't double badge if this log came from another Flight Client.
3445
- const env = request.environmentName();
3449
+ const env = (0, request.environmentName) ();
3446
3450
const payload = [methodName, stackTrace, owner, env];
3447
3451
// $FlowFixMe[method-unbinding]
3448
3452
payload.push.apply(payload, args);
@@ -3611,7 +3615,7 @@ function retryTask(request: Request, task: Task): void {
3611
3615
request . writtenObjects . set ( resolvedModel , serializeByValueID ( task . id ) ) ;
3612
3616
3613
3617
if ( __DEV__ ) {
3614
- const currentEnv = request . environmentName ( ) ;
3618
+ const currentEnv = ( 0 , request . environmentName ) ( ) ;
3615
3619
if ( currentEnv !== task . environmentName ) {
3616
3620
// The environment changed since we last emitted any debug information for this
3617
3621
// task. We emit an entry that just includes the environment name change.
@@ -3629,7 +3633,7 @@ function retryTask(request: Request, task: Task): void {
3629
3633
const json : string = stringify ( resolvedModel ) ;
3630
3634
3631
3635
if ( __DEV__ ) {
3632
- const currentEnv = request . environmentName ( ) ;
3636
+ const currentEnv = ( 0 , request . environmentName ) ( ) ;
3633
3637
if ( currentEnv !== task . environmentName ) {
3634
3638
// The environment changed since we last emitted any debug information for this
3635
3639
// task. We emit an entry that just includes the environment name change.
0 commit comments