[Flight] Don't serialize toJSON in Debug path and omit wide arrays (#34759)
There's a couple of issues with serializing Buffer in the debug renders. For one, the Node.js Buffer has a `toJSON` on it which turns the binary data into a JSON array which is very inefficient to serialize compared to the real buffer. For debug info we never really want to resolve these and unlike the regular render we can't error. So this uses the trick where we read the original value. It's still unfortunate that this intermediate gets created at all but at least now we're not serializing it. Second, we have a limit on depth of objects but we didn't have a limit on width like large arrays or typed arrays. This omits large arrays from the payload when possible and make them deferred when there's a debug channel.
Sebastian Markbåge committed
Oct 7, 2025 at 09:59 UTC
3025aa39649ef5106c34cc7896a63d63b2edee91
3 files changed
+529
-291
packages/react-server/src/ReactFlightServer.js
+74
-15
@@ -849,6 +849,49 @@ export function resolveRequest(): null | Request {
849
return null;
850
}
851
852
+function isTypedArray(value: any): boolean {
853
+ if (value instanceof ArrayBuffer) {
854
+ return true;
855
+ }
856
+ if (value instanceof Int8Array) {
857
+ return true;
858
+ }
859
+ if (value instanceof Uint8Array) {
860
+ return true;
861
+ }
862
+ if (value instanceof Uint8ClampedArray) {
863
+ return true;
864
+ }
865
+ if (value instanceof Int16Array) {
866
+ return true;
867
+ }
868
+ if (value instanceof Uint16Array) {
869
+ return true;
870
+ }
871
+ if (value instanceof Int32Array) {
872
+ return true;
873
+ }
874
+ if (value instanceof Uint32Array) {
875
+ return true;
876
+ }
877
+ if (value instanceof Float32Array) {
878
+ return true;
879
+ }
880
+ if (value instanceof Float64Array) {
881
+ return true;
882
+ }
883
+ if (value instanceof BigInt64Array) {
884
+ return true;
885
+ }
886
+ if (value instanceof BigUint64Array) {
887
+ return true;
888
+ }
889
+ if (value instanceof DataView) {
890
+ return true;
891
+ }
892
+ return false;
893
+}
894
+
895
function serializeDebugThenable(
896
request: Request,
897
counter: {objectLimit: number},
@@ -906,6 +949,17 @@ function serializeDebugThenable(
949
enqueueFlush(request);
950
return;
951
}
952
+ if (
953
+ (isArray(value) && value.length > 200) ||
954
+ (isTypedArray(value) && value.byteLength > 1000)
955
+ ) {
956
+ // If this should be deferred, but we don't have a debug channel installed
957
+ // it would get omitted. We can't omit outlined models but we can avoid
958
+ // resolving the Promise at all by halting it.
959
+ emitDebugHaltChunk(request, id);
960
+ enqueueFlush(request);
961
+ return;
962
+ }
963
emitOutlinedDebugModelChunk(request, id, counter, value);
964
enqueueFlush(request);
965
},
@@ -3066,6 +3120,10 @@ function serializeDebugTypedArray(
3120
tag: string,
3121
typedArray: $ArrayBufferView,
3122
): string {
3123
+ if (typedArray.byteLength > 1000 && !doNotLimit.has(typedArray)) {
3124
+ // Defer large typed arrays.
3125
+ return serializeDeferredObject(request, typedArray);
3126
+ }
3127
request.pendingDebugChunks++;
3128
const bufferId = request.nextChunkId++;
3129
emitTypedArrayChunk(request, bufferId, tag, typedArray, true);
@@ -4820,9 +4878,17 @@ function renderDebugModel(
4878
}
4879
4880
if (isArray(value)) {
4881
+ if (value.length > 200 && !doNotLimit.has(value)) {
4882
+ // Defer large arrays. They're heavy to serialize.
4883
+ // TODO: Consider doing the same for objects with many properties too.
4884
+ return serializeDeferredObject(request, value);
4885
+ }
4886
return value;
4887
}
4888
4889
+ if (value instanceof Date) {
4890
+ return serializeDate(value);
4891
+ }
4892
if (value instanceof Map) {
4893
return serializeDebugMap(request, counter, value);
4894
}
@@ -4930,15 +4996,6 @@ function renderDebugModel(
4996
}
4997
4998
if (typeof value === 'string') {
4933
- if (value[value.length - 1] === 'Z') {
4934
- // Possibly a Date, whose toJSON automatically calls toISOString
4935
- // Make sure that `parent[parentPropertyName]` wasn't JSONified before `value` was passed to us
4936
- // $FlowFixMe[incompatible-use]
4937
- const originalValue = parent[parentPropertyName];
4938
- if (originalValue instanceof Date) {
4939
- return serializeDateFromDateJSON(value);
4940
- }
4941
- }
4999
if (value.length >= 1024) {
5000
// Large strings are counted towards the object limit.
5001
if (counter.objectLimit <= 0) {
@@ -5036,10 +5093,6 @@ function renderDebugModel(
5093
return serializeBigInt(value);
5094
}
5095
5039
- if (value instanceof Date) {
5040
- return serializeDate(value);
5041
- }
5042
-
5096
return 'unknown type ' + typeof value;
5097
}
5098
@@ -5058,12 +5111,15 @@ function serializeDebugModel(
5111
value: ReactClientValue,
5112
): ReactJSONValue {
5113
try {
5114
+ // By-pass toJSON and use the original value.
5115
+ // $FlowFixMe[incompatible-use]
5116
+ const originalValue = this[parentPropertyName];
5117
return renderDebugModel(
5118
request,
5119
counter,
5120
this,
5121
parentPropertyName,
5066
- value,
5122
+ originalValue,
5123
);
5124
} catch (x) {
5125
return (
@@ -5114,12 +5170,15 @@ function emitOutlinedDebugModelChunk(
5170
value: ReactClientValue,
5171
): ReactJSONValue {
5172
try {
5173
+ // By-pass toJSON and use the original value.
5174
+ // $FlowFixMe[incompatible-use]
5175
+ const originalValue = this[parentPropertyName];
5176
return renderDebugModel(
5177
request,
5178
counter,
5179
this,
5180
parentPropertyName,
5122
- value,
5181
+ originalValue,
5182
);
5183
} catch (x) {
5184
return (
packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js
+424
-276
@@ -5,6 +5,9 @@
5
6
import {patchSetImmediate} from '../../../../scripts/jest/patchSetImmediate';
7
8
+import fs from 'fs/promises';
9
+import path from 'path';
10
+
11
let React;
12
let ReactServer;
13
let cache;
@@ -156,9 +159,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
159
[
160
"Object.<anonymous>",
161
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
159
- 125,
162
+ 128,
163
109,
161
- 105,
164
+ 108,
165
50,
166
],
167
],
@@ -180,9 +183,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
183
[
184
"Object.<anonymous>",
185
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
183
- 125,
186
+ 128,
187
109,
185
- 105,
188
+ 108,
189
50,
190
],
191
],
@@ -191,25 +194,25 @@ describe('ReactFlightAsyncDebugInfo', () => {
194
[
195
"delay",
196
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
194
- 83,
197
+ 86,
198
12,
196
- 82,
199
+ 85,
200
3,
201
],
202
[
203
"getData",
204
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
202
- 107,
205
+ 110,
206
13,
204
- 106,
207
+ 109,
208
5,
209
],
210
[
211
"Component",
212
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
210
- 114,
213
+ 117,
214
26,
212
- 113,
215
+ 116,
216
5,
217
],
218
],
@@ -228,9 +231,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
231
[
232
"Object.<anonymous>",
233
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
231
- 125,
234
+ 128,
235
109,
233
- 105,
236
+ 108,
237
50,
238
],
239
],
@@ -239,17 +242,17 @@ describe('ReactFlightAsyncDebugInfo', () => {
242
[
243
"getData",
244
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
242
- 107,
245
+ 110,
246
13,
244
- 106,
247
+ 109,
248
5,
249
],
250
[
251
"Component",
252
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
250
- 114,
253
+ 117,
254
26,
252
- 113,
255
+ 116,
256
5,
257
],
258
],
@@ -274,9 +277,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
277
[
278
"Object.<anonymous>",
279
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
277
- 125,
280
+ 128,
281
109,
279
- 105,
282
+ 108,
283
50,
284
],
285
],
@@ -285,25 +288,25 @@ describe('ReactFlightAsyncDebugInfo', () => {
288
[
289
"delay",
290
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
288
- 83,
291
+ 86,
292
12,
290
- 82,
293
+ 85,
294
3,
295
],
296
[
297
"getData",
298
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
296
- 108,
299
+ 111,
300
21,
298
- 106,
301
+ 109,
302
5,
303
],
304
[
305
"Component",
306
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
304
- 114,
307
+ 117,
308
20,
306
- 113,
309
+ 116,
310
5,
311
],
312
],
@@ -322,9 +325,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
325
[
326
"Object.<anonymous>",
327
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
325
- 125,
328
+ 128,
329
109,
327
- 105,
330
+ 108,
331
50,
332
],
333
],
@@ -333,17 +336,17 @@ describe('ReactFlightAsyncDebugInfo', () => {
336
[
337
"getData",
338
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
336
- 109,
339
+ 112,
340
21,
338
- 106,
341
+ 109,
342
5,
343
],
344
[
345
"Component",
346
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
344
- 114,
347
+ 117,
348
20,
346
- 113,
349
+ 116,
350
5,
351
],
352
],
@@ -363,9 +366,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
366
[
367
"Component",
368
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
366
- 116,
369
+ 119,
370
60,
368
- 113,
371
+ 116,
372
5,
373
],
374
],
@@ -387,9 +390,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
390
[
391
"Object.<anonymous>",
392
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
390
- 125,
393
+ 128,
394
109,
392
- 105,
395
+ 108,
396
50,
397
],
398
],
@@ -398,17 +401,17 @@ describe('ReactFlightAsyncDebugInfo', () => {
401
[
402
"delay",
403
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
401
- 83,
404
+ 86,
405
12,
403
- 82,
406
+ 85,
407
3,
408
],
409
[
410
"getData",
411
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
409
- 108,
412
+ 111,
413
21,
411
- 106,
414
+ 109,
415
5,
416
],
417
],
@@ -427,9 +430,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
430
[
431
"Component",
432
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
430
- 116,
433
+ 119,
434
60,
432
- 113,
435
+ 116,
436
5,
437
],
438
],
@@ -438,9 +441,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
441
[
442
"InnerComponent",
443
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
441
- 122,
444
+ 125,
445
35,
443
- 119,
446
+ 122,
447
5,
448
],
449
],
@@ -621,9 +624,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
624
[
625
"Object.<anonymous>",
626
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
624
- 585,
627
+ 588,
628
40,
626
- 566,
629
+ 569,
630
49,
631
],
632
[
@@ -653,9 +656,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
656
[
657
"Object.<anonymous>",
658
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
656
- 585,
659
+ 588,
660
40,
658
- 566,
661
+ 569,
662
49,
663
],
664
[
@@ -672,25 +675,25 @@ describe('ReactFlightAsyncDebugInfo', () => {
675
[
676
"delay",
677
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
675
- 83,
678
+ 86,
679
12,
677
- 82,
680
+ 85,
681
3,
682
],
683
[
684
"getData",
685
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
683
- 568,
686
+ 571,
687
13,
685
- 567,
688
+ 570,
689
5,
690
],
691
[
692
"Component",
693
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
691
- 573,
694
+ 576,
695
36,
693
- 572,
696
+ 575,
697
5,
698
],
699
],
@@ -709,9 +712,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
712
[
713
"Object.<anonymous>",
714
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
712
- 585,
715
+ 588,
716
40,
714
- 566,
717
+ 569,
718
49,
719
],
720
[
@@ -728,17 +731,17 @@ describe('ReactFlightAsyncDebugInfo', () => {
731
[
732
"getData",
733
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
731
- 568,
734
+ 571,
735
13,
733
- 567,
736
+ 570,
737
5,
738
],
739
[
740
"Component",
741
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
739
- 573,
742
+ 576,
743
36,
741
- 572,
744
+ 575,
745
5,
746
],
747
],
@@ -758,9 +761,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
761
[
762
"Component",
763
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
761
- 575,
764
+ 578,
765
60,
763
- 572,
766
+ 575,
767
5,
768
],
769
],
@@ -779,9 +782,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
782
[
783
"Object.<anonymous>",
784
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
782
- 585,
785
+ 588,
786
40,
784
- 566,
787
+ 569,
788
49,
789
],
790
[
@@ -798,25 +801,25 @@ describe('ReactFlightAsyncDebugInfo', () => {
801
[
802
"delay",
803
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
801
- 83,
804
+ 86,
805
12,
803
- 82,
806
+ 85,
807
3,
808
],
809
[
810
"getData",
811
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
809
- 568,
812
+ 571,
813
13,
811
- 567,
814
+ 570,
815
5,
816
],
817
[
818
"Component",
819
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
817
- 574,
820
+ 577,
821
22,
819
- 572,
822
+ 575,
823
5,
824
],
825
],
@@ -835,9 +838,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
838
[
839
"Component",
840
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
838
- 575,
841
+ 578,
842
60,
840
- 572,
843
+ 575,
844
5,
845
],
846
],
@@ -846,9 +849,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
849
[
850
"InnerComponent",
851
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
849
- 581,
852
+ 584,
853
40,
851
- 578,
854
+ 581,
855
5,
856
],
857
],
@@ -923,9 +926,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
926
[
927
"Object.<anonymous>",
928
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
926
- 892,
929
+ 895,
930
109,
928
- 879,
931
+ 882,
932
80,
933
],
934
],
@@ -944,9 +947,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
947
[
948
"Object.<anonymous>",
949
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
947
- 892,
950
+ 895,
951
109,
949
- 879,
952
+ 882,
953
80,
954
],
955
],
@@ -963,9 +966,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
966
[
967
"Object.<anonymous>",
968
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
966
- 892,
969
+ 895,
970
109,
968
- 879,
971
+ 882,
972
80,
973
],
974
],
@@ -1037,9 +1040,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
1040
[
1041
"Object.<anonymous>",
1042
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1040
- 1006,
1043
+ 1009,
1044
109,
1042
- 997,
1045
+ 1000,
1046
94,
1047
],
1048
],
@@ -1122,9 +1125,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
1125
[
1126
"Object.<anonymous>",
1127
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1125
- 1091,
1128
+ 1094,
1129
109,
1127
- 1067,
1130
+ 1070,
1131
50,
1132
],
1133
],
@@ -1218,9 +1221,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
1221
[
1222
"Object.<anonymous>",
1223
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1221
- 1187,
1224
+ 1190,
1225
109,
1223
- 1170,
1226
+ 1173,
1227
63,
1228
],
1229
],
@@ -1237,17 +1240,17 @@ describe('ReactFlightAsyncDebugInfo', () => {
1240
[
1241
"fetchThirdParty",
1242
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1240
- 90,
1243
+ 93,
1244
40,
1242
- 88,
1245
+ 91,
1246
3,
1247
],
1248
[
1249
"Component",
1250
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1248
- 1183,
1251
+ 1186,
1252
24,
1250
- 1182,
1253
+ 1185,
1254
5,
1255
],
1256
],
@@ -1269,17 +1272,17 @@ describe('ReactFlightAsyncDebugInfo', () => {
1272
[
1273
"fetchThirdParty",
1274
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1272
- 90,
1275
+ 93,
1276
40,
1274
- 88,
1277
+ 91,
1278
3,
1279
],
1280
[
1281
"Component",
1282
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1280
- 1183,
1283
+ 1186,
1284
24,
1282
- 1182,
1285
+ 1185,
1286
5,
1287
],
1288
],
@@ -1288,25 +1291,25 @@ describe('ReactFlightAsyncDebugInfo', () => {
1291
[
1292
"delay",
1293
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1291
- 83,
1294
+ 86,
1295
12,
1293
- 82,
1296
+ 85,
1297
3,
1298
],
1299
[
1300
"getData",
1301
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1299
- 1172,
1302
+ 1175,
1303
13,
1301
- 1171,
1304
+ 1174,
1305
5,
1306
],
1307
[
1308
"ThirdPartyComponent",
1309
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1307
- 1178,
1310
+ 1181,
1311
24,
1309
- 1177,
1312
+ 1180,
1313
5,
1314
],
1315
],
@@ -1325,17 +1328,17 @@ describe('ReactFlightAsyncDebugInfo', () => {
1328
[
1329
"fetchThirdParty",
1330
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1328
- 90,
1331
+ 93,
1332
40,
1330
- 88,
1333
+ 91,
1334
3,
1335
],
1336
[
1337
"Component",
1338
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1336
- 1183,
1339
+ 1186,
1340
24,
1338
- 1182,
1341
+ 1185,
1342
5,
1343
],
1344
],
@@ -1344,17 +1347,17 @@ describe('ReactFlightAsyncDebugInfo', () => {
1347
[
1348
"getData",
1349
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1347
- 1172,
1350
+ 1175,
1351
13,
1349
- 1171,
1352
+ 1174,
1353
5,
1354
],
1355
[
1356
"ThirdPartyComponent",
1357
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1355
- 1178,
1358
+ 1181,
1359
24,
1357
- 1177,
1360
+ 1180,
1361
5,
1362
],
1363
],
@@ -1379,17 +1382,17 @@ describe('ReactFlightAsyncDebugInfo', () => {
1382
[
1383
"fetchThirdParty",
1384
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1382
- 90,
1385
+ 93,
1386
40,
1384
- 88,
1387
+ 91,
1388
3,
1389
],
1390
[
1391
"Component",
1392
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1390
- 1183,
1393
+ 1186,
1394
24,
1392
- 1182,
1395
+ 1185,
1396
5,
1397
],
1398
],
@@ -1398,25 +1401,25 @@ describe('ReactFlightAsyncDebugInfo', () => {
1401
[
1402
"delay",
1403
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1401
- 83,
1404
+ 86,
1405
12,
1403
- 82,
1406
+ 85,
1407
3,
1408
],
1409
[
1410
"getData",
1411
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1409
- 1173,
1412
+ 1176,
1413
13,
1411
- 1171,
1414
+ 1174,
1415
5,
1416
],
1417
[
1418
"ThirdPartyComponent",
1419
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1417
- 1178,
1420
+ 1181,
1421
18,
1419
- 1177,
1422
+ 1180,
1423
5,
1424
],
1425
],
@@ -1435,17 +1438,17 @@ describe('ReactFlightAsyncDebugInfo', () => {
1438
[
1439
"fetchThirdParty",
1440
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1438
- 90,
1441
+ 93,
1442
40,
1440
- 88,
1443
+ 91,
1444
3,
1445
],
1446
[
1447
"Component",
1448
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1446
- 1183,
1449
+ 1186,
1450
24,
1448
- 1182,
1451
+ 1185,
1452
5,
1453
],
1454
],
@@ -1454,17 +1457,17 @@ describe('ReactFlightAsyncDebugInfo', () => {
1457
[
1458
"getData",
1459
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1457
- 1173,
1460
+ 1176,
1461
13,
1459
- 1171,
1462
+ 1174,
1463
5,
1464
],
1465
[
1466
"ThirdPartyComponent",
1467
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1465
- 1178,
1468
+ 1181,
1469
18,
1467
- 1177,
1470
+ 1180,
1471
5,
1472
],
1473
],
@@ -1562,9 +1565,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
1565
[
1566
"Object.<anonymous>",
1567
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1565
- 1526,
1568
+ 1529,
1569
40,
1567
- 1509,
1570
+ 1512,
1571
62,
1572
],
1573
[
@@ -1594,9 +1597,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
1597
[
1598
"Object.<anonymous>",
1599
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1597
- 1526,
1600
+ 1529,
1601
40,
1599
- 1509,
1602
+ 1512,
1603
62,
1604
],
1605
[
@@ -1613,25 +1616,25 @@ describe('ReactFlightAsyncDebugInfo', () => {
1616
[
1617
"delay",
1618
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1616
- 83,
1619
+ 86,
1620
12,
1618
- 82,
1621
+ 85,
1622
3,
1623
],
1624
[
1625
"getData",
1626
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1624
- 1511,
1627
+ 1514,
1628
13,
1626
- 1510,
1629
+ 1513,
1630
25,
1631
],
1632
[
1633
"Component",
1634
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1632
- 1521,
1635
+ 1524,
1636
13,
1634
- 1520,
1637
+ 1523,
1638
5,
1639
],
1640
],
@@ -1650,9 +1653,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
1653
[
1654
"Object.<anonymous>",
1655
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1653
- 1526,
1656
+ 1529,
1657
40,
1655
- 1509,
1658
+ 1512,
1659
62,
1660
],
1661
[
@@ -1669,17 +1672,17 @@ describe('ReactFlightAsyncDebugInfo', () => {
1672
[
1673
"getData",
1674
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1672
- 1511,
1675
+ 1514,
1676
13,
1674
- 1510,
1677
+ 1513,
1678
25,
1679
],
1680
[
1681
"Component",
1682
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1680
- 1521,
1683
+ 1524,
1684
13,
1682
- 1520,
1685
+ 1523,
1686
5,
1687
],
1688
],
@@ -1699,9 +1702,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
1702
[
1703
"Component",
1704
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1702
- 1522,
1705
+ 1525,
1706
60,
1704
- 1520,
1707
+ 1523,
1708
5,
1709
],
1710
],
@@ -1723,9 +1726,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
1726
[
1727
"Object.<anonymous>",
1728
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1726
- 1526,
1729
+ 1529,
1730
40,
1728
- 1509,
1731
+ 1512,
1732
62,
1733
],
1734
[
@@ -1742,25 +1745,25 @@ describe('ReactFlightAsyncDebugInfo', () => {
1745
[
1746
"delay",
1747
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1745
- 83,
1748
+ 86,
1749
12,
1747
- 82,
1750
+ 85,
1751
3,
1752
],
1753
[
1754
"getData",
1755
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1753
- 1511,
1756
+ 1514,
1757
13,
1755
- 1510,
1758
+ 1513,
1759
25,
1760
],
1761
[
1762
"Component",
1763
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1761
- 1521,
1764
+ 1524,
1765
13,
1763
- 1520,
1766
+ 1523,
1767
5,
1768
],
1769
],
@@ -1779,9 +1782,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
1782
[
1783
"Component",
1784
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1782
- 1522,
1785
+ 1525,
1786
60,
1784
- 1520,
1787
+ 1523,
1788
5,
1789
],
1790
],
@@ -1790,9 +1793,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
1793
[
1794
"Child",
1795
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1793
- 1516,
1796
+ 1519,
1797
28,
1795
- 1515,
1798
+ 1518,
1799
5,
1800
],
1801
],
@@ -1875,9 +1878,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
1878
[
1879
"Object.<anonymous>",
1880
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1878
- 1839,
1881
+ 1842,
1882
40,
1880
- 1823,
1883
+ 1826,
1884
57,
1885
],
1886
[
@@ -1907,9 +1910,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
1910
[
1911
"Object.<anonymous>",
1912
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1910
- 1839,
1913
+ 1842,
1914
40,
1912
- 1823,
1915
+ 1826,
1916
57,
1917
],
1918
[
@@ -1926,25 +1929,25 @@ describe('ReactFlightAsyncDebugInfo', () => {
1929
[
1930
"delay",
1931
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1929
- 83,
1932
+ 86,
1933
12,
1931
- 82,
1934
+ 85,
1935
3,
1936
],
1937
[
1938
"getData",
1939
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1937
- 1825,
1940
+ 1828,
1941
13,
1939
- 1824,
1942
+ 1827,
1943
25,
1944
],
1945
[
1946
"Component",
1947
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1945
- 1834,
1948
+ 1837,
1949
23,
1947
- 1833,
1950
+ 1836,
1951
5,
1952
],
1953
],
@@ -1963,9 +1966,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
1966
[
1967
"Object.<anonymous>",
1968
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1966
- 1839,
1969
+ 1842,
1970
40,
1968
- 1823,
1971
+ 1826,
1972
57,
1973
],
1974
[
@@ -1982,17 +1985,17 @@ describe('ReactFlightAsyncDebugInfo', () => {
1985
[
1986
"getData",
1987
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1985
- 1825,
1988
+ 1828,
1989
13,
1987
- 1824,
1990
+ 1827,
1991
25,
1992
],
1993
[
1994
"Component",
1995
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
1993
- 1834,
1996
+ 1837,
1997
23,
1995
- 1833,
1998
+ 1836,
1999
5,
2000
],
2001
],
@@ -2012,9 +2015,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
2015
[
2016
"Component",
2017
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2015
- 1835,
2018
+ 1838,
2019
60,
2017
- 1833,
2020
+ 1836,
2021
5,
2022
],
2023
],
@@ -2033,9 +2036,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
2036
[
2037
"Object.<anonymous>",
2038
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2036
- 1839,
2039
+ 1842,
2040
40,
2038
- 1823,
2041
+ 1826,
2042
57,
2043
],
2044
[
@@ -2052,25 +2055,25 @@ describe('ReactFlightAsyncDebugInfo', () => {
2055
[
2056
"delay",
2057
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2055
- 83,
2058
+ 86,
2059
12,
2057
- 82,
2060
+ 85,
2061
3,
2062
],
2063
[
2064
"getData",
2065
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2063
- 1825,
2066
+ 1828,
2067
13,
2065
- 1824,
2068
+ 1827,
2069
25,
2070
],
2071
[
2072
"Component",
2073
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2071
- 1834,
2074
+ 1837,
2075
23,
2073
- 1833,
2076
+ 1836,
2077
5,
2078
],
2079
],
@@ -2084,9 +2087,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
2087
[
2088
"Component",
2089
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2087
- 1835,
2090
+ 1838,
2091
60,
2089
- 1833,
2092
+ 1836,
2093
5,
2094
],
2095
],
@@ -2171,9 +2174,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
2174
[
2175
"Object.<anonymous>",
2176
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2174
- 2135,
2177
+ 2138,
2178
40,
2176
- 2117,
2179
+ 2120,
2180
80,
2181
],
2182
[
@@ -2203,9 +2206,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
2206
[
2207
"Object.<anonymous>",
2208
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2206
- 2135,
2209
+ 2138,
2210
40,
2208
- 2117,
2211
+ 2120,
2212
80,
2213
],
2214
[
@@ -2222,25 +2225,25 @@ describe('ReactFlightAsyncDebugInfo', () => {
2225
[
2226
"delay",
2227
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2225
- 83,
2228
+ 86,
2229
12,
2227
- 82,
2230
+ 85,
2231
3,
2232
],
2233
[
2234
"delayTrice",
2235
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2233
- 2125,
2236
+ 2128,
2237
13,
2235
- 2123,
2238
+ 2126,
2239
5,
2240
],
2241
[
2242
"Bar",
2243
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2241
- 2130,
2244
+ 2133,
2245
13,
2243
- 2129,
2246
+ 2132,
2247
5,
2248
],
2249
],
@@ -2259,9 +2262,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
2262
[
2263
"Object.<anonymous>",
2264
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2262
- 2135,
2265
+ 2138,
2266
40,
2264
- 2117,
2267
+ 2120,
2268
80,
2269
],
2270
[
@@ -2278,17 +2281,17 @@ describe('ReactFlightAsyncDebugInfo', () => {
2281
[
2282
"delayTrice",
2283
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2281
- 2125,
2284
+ 2128,
2285
13,
2283
- 2123,
2286
+ 2126,
2287
5,
2288
],
2289
[
2290
"Bar",
2291
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2289
- 2130,
2292
+ 2133,
2293
13,
2291
- 2129,
2294
+ 2132,
2295
5,
2296
],
2297
],
@@ -2310,9 +2313,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
2313
[
2314
"Object.<anonymous>",
2315
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2313
- 2135,
2316
+ 2138,
2317
40,
2315
- 2117,
2318
+ 2120,
2319
80,
2320
],
2321
[
@@ -2329,33 +2332,33 @@ describe('ReactFlightAsyncDebugInfo', () => {
2332
[
2333
"delay",
2334
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2332
- 83,
2335
+ 86,
2336
12,
2334
- 82,
2337
+ 85,
2338
3,
2339
],
2340
[
2341
"delayTwice",
2342
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2340
- 2119,
2343
+ 2122,
2344
13,
2342
- 2118,
2345
+ 2121,
2346
5,
2347
],
2348
[
2349
"delayTrice",
2350
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2348
- 2124,
2351
+ 2127,
2352
15,
2350
- 2123,
2353
+ 2126,
2354
5,
2355
],
2356
[
2357
"Bar",
2358
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2356
- 2130,
2359
+ 2133,
2360
13,
2358
- 2129,
2361
+ 2132,
2362
5,
2363
],
2364
],
@@ -2374,9 +2377,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
2377
[
2378
"Object.<anonymous>",
2379
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2377
- 2135,
2380
+ 2138,
2381
40,
2379
- 2117,
2382
+ 2120,
2383
80,
2384
],
2385
[
@@ -2393,25 +2396,25 @@ describe('ReactFlightAsyncDebugInfo', () => {
2396
[
2397
"delayTwice",
2398
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2396
- 2119,
2399
+ 2122,
2400
13,
2398
- 2118,
2401
+ 2121,
2402
5,
2403
],
2404
[
2405
"delayTrice",
2406
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2404
- 2124,
2407
+ 2127,
2408
15,
2406
- 2123,
2409
+ 2126,
2410
5,
2411
],
2412
[
2413
"Bar",
2414
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2412
- 2130,
2415
+ 2133,
2416
13,
2414
- 2129,
2417
+ 2132,
2418
5,
2419
],
2420
],
@@ -2433,9 +2436,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
2436
[
2437
"Object.<anonymous>",
2438
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2436
- 2135,
2439
+ 2138,
2440
40,
2438
- 2117,
2441
+ 2120,
2442
80,
2443
],
2444
[
@@ -2452,17 +2455,17 @@ describe('ReactFlightAsyncDebugInfo', () => {
2455
[
2456
"delay",
2457
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2455
- 83,
2458
+ 86,
2459
12,
2457
- 82,
2460
+ 85,
2461
3,
2462
],
2463
[
2464
"delayTwice",
2465
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2463
- 2120,
2466
+ 2123,
2467
13,
2465
- 2118,
2468
+ 2121,
2469
5,
2470
],
2471
],
@@ -2481,9 +2484,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
2484
[
2485
"Object.<anonymous>",
2486
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2484
- 2135,
2487
+ 2138,
2488
40,
2486
- 2117,
2489
+ 2120,
2490
80,
2491
],
2492
[
@@ -2500,9 +2503,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
2503
[
2504
"delayTwice",
2505
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2503
- 2120,
2506
+ 2123,
2507
13,
2505
- 2118,
2508
+ 2121,
2509
5,
2510
],
2511
],
@@ -2575,9 +2578,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
2578
[
2579
"Object.<anonymous>",
2580
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2578
- 2544,
2581
+ 2547,
2582
109,
2580
- 2533,
2583
+ 2536,
2584
58,
2585
],
2586
],
@@ -2599,9 +2602,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
2602
[
2603
"Object.<anonymous>",
2604
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2602
- 2544,
2605
+ 2547,
2606
109,
2604
- 2533,
2607
+ 2536,
2608
58,
2609
],
2610
],
@@ -2610,25 +2613,25 @@ describe('ReactFlightAsyncDebugInfo', () => {
2613
[
2614
"delay",
2615
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2613
- 83,
2616
+ 86,
2617
12,
2615
- 82,
2618
+ 85,
2619
3,
2620
],
2621
[
2622
"getData",
2623
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2621
- 2535,
2624
+ 2538,
2625
14,
2623
- 2534,
2626
+ 2537,
2627
5,
2628
],
2629
[
2630
"Component",
2631
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2629
- 2541,
2632
+ 2544,
2633
20,
2631
- 2540,
2634
+ 2543,
2635
5,
2636
],
2637
],
@@ -2647,9 +2650,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
2650
[
2651
"Object.<anonymous>",
2652
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2650
- 2544,
2653
+ 2547,
2654
109,
2652
- 2533,
2655
+ 2536,
2656
58,
2657
],
2658
],
@@ -2658,17 +2661,17 @@ describe('ReactFlightAsyncDebugInfo', () => {
2661
[
2662
"getData",
2663
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2661
- 2535,
2664
+ 2538,
2665
23,
2663
- 2534,
2666
+ 2537,
2667
5,
2668
],
2669
[
2670
"Component",
2671
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2669
- 2541,
2672
+ 2544,
2673
20,
2671
- 2540,
2674
+ 2543,
2675
5,
2676
],
2677
],
@@ -2747,9 +2750,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
2750
[
2751
"Object.<anonymous>",
2752
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2750
- 2711,
2753
+ 2714,
2754
40,
2752
- 2699,
2755
+ 2702,
2756
56,
2757
],
2758
[
@@ -2779,9 +2782,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
2782
[
2783
"Object.<anonymous>",
2784
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2782
- 2711,
2785
+ 2714,
2786
40,
2784
- 2699,
2787
+ 2702,
2788
56,
2789
],
2790
[
@@ -2798,17 +2801,17 @@ describe('ReactFlightAsyncDebugInfo', () => {
2801
[
2802
"delay",
2803
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2801
- 83,
2804
+ 86,
2805
12,
2803
- 82,
2806
+ 85,
2807
3,
2808
],
2809
[
2810
"Component",
2811
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2809
- 2707,
2812
+ 2710,
2813
20,
2811
- 2706,
2814
+ 2709,
2815
5,
2816
],
2817
],
@@ -2827,9 +2830,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
2830
[
2831
"Object.<anonymous>",
2832
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2830
- 2711,
2833
+ 2714,
2834
40,
2832
- 2699,
2835
+ 2702,
2836
56,
2837
],
2838
[
@@ -2846,9 +2849,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
2849
[
2850
"Component",
2851
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2849
- 2707,
2852
+ 2710,
2853
20,
2851
- 2706,
2854
+ 2709,
2855
5,
2856
],
2857
],
@@ -2941,9 +2944,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
2944
[
2945
"Object.<anonymous>",
2946
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2944
- 2900,
2947
+ 2903,
2948
40,
2946
- 2879,
2949
+ 2882,
2950
42,
2951
],
2952
[
@@ -2973,9 +2976,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
2976
[
2977
"Object.<anonymous>",
2978
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2976
- 2900,
2979
+ 2903,
2980
40,
2978
- 2879,
2981
+ 2882,
2982
42,
2983
],
2984
[
@@ -2992,17 +2995,17 @@ describe('ReactFlightAsyncDebugInfo', () => {
2995
[
2996
"",
2997
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
2995
- 2886,
2998
+ 2889,
2999
15,
2997
- 2885,
3000
+ 2888,
3001
15,
3002
],
3003
[
3004
"Component",
3005
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
3003
- 2895,
3006
+ 2898,
3007
19,
3005
- 2894,
3008
+ 2897,
3009
5,
3010
],
3011
],
@@ -3021,9 +3024,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
3024
[
3025
"Object.<anonymous>",
3026
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
3024
- 2900,
3027
+ 2903,
3028
40,
3026
- 2879,
3029
+ 2882,
3030
42,
3031
],
3032
[
@@ -3040,17 +3043,17 @@ describe('ReactFlightAsyncDebugInfo', () => {
3043
[
3044
"",
3045
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
3043
- 2886,
3046
+ 2889,
3047
15,
3045
- 2885,
3048
+ 2888,
3049
15,
3050
],
3051
[
3052
"Component",
3053
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
3051
- 2895,
3054
+ 2898,
3055
19,
3053
- 2894,
3056
+ 2897,
3057
5,
3058
],
3059
],
@@ -3072,9 +3075,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
3075
[
3076
"Object.<anonymous>",
3077
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
3075
- 2900,
3078
+ 2903,
3079
40,
3077
- 2879,
3080
+ 2882,
3081
42,
3082
],
3083
[
@@ -3091,9 +3094,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
3094
[
3095
"Component",
3096
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
3094
- 2895,
3097
+ 2898,
3098
25,
3096
- 2894,
3099
+ 2897,
3100
5,
3101
],
3102
],
@@ -3112,9 +3115,9 @@ describe('ReactFlightAsyncDebugInfo', () => {
3115
[
3116
"Object.<anonymous>",
3117
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
3115
- 2900,
3118
+ 2903,
3119
40,
3117
- 2879,
3120
+ 2882,
3121
42,
3122
],
3123
[
@@ -3131,9 +3134,154 @@ describe('ReactFlightAsyncDebugInfo', () => {
3134
[
3135
"Component",
3136
"/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
3134
- 2895,
3137
+ 2898,
3138
25,
3136
- 2894,
3139
+ 2897,
3140
+ 5,
3141
+ ],
3142
+ ],
3143
+ },
3144
+ {
3145
+ "time": 0,
3146
+ },
3147
+ {
3148
+ "time": 0,
3149
+ },
3150
+ {
3151
+ "awaited": {
3152
+ "byteSize": 0,
3153
+ "end": 0,
3154
+ "name": "RSC stream",
3155
+ "owner": null,
3156
+ "start": 0,
3157
+ "value": {
3158
+ "value": "stream",
3159
+ },
3160
+ },
3161
+ },
3162
+ ]
3163
+ `);
3164
+ }
3165
+ });
3166
+
3167
+ it('can track async file reads', async () => {
3168
+ const filename = path.join(__dirname, 'test-file.txt');
3169
+ async function Component() {
3170
+ const buffer = await fs
3171
+ .readFile(filename) // This loads a Buffer.
3172
+ // TODO: For some reason, without this we're extracting the wrong promise.
3173
+ .then(v => v);
3174
+ const text = buffer.toString('utf8');
3175
+ return text.slice(0, 26);
3176
+ }
3177
+
3178
+ const stream = ReactServerDOMServer.renderToPipeableStream(
3179
+ <Component />,
3180
+ {},
3181
+ );
3182
+
3183
+ const readable = new Stream.PassThrough(streamOptions);
3184
+
3185
+ const result = ReactServerDOMClient.createFromNodeStream(readable, {
3186
+ moduleMap: {},
3187
+ moduleLoading: {},
3188
+ });
3189
+ stream.pipe(readable);
3190
+
3191
+ expect(await result).toBe('Lorem ipsum dolor sit amet');
3192
+
3193
+ await finishLoadingStream(readable);
3194
+ if (
3195
+ __DEV__ &&
3196
+ gate(
3197
+ flags =>
3198
+ flags.enableComponentPerformanceTrack && flags.enableAsyncDebugInfo,
3199
+ )
3200
+ ) {
3201
+ expect(getDebugInfo(result)).toMatchInlineSnapshot(`
3202
+ [
3203
+ {
3204
+ "time": 0,
3205
+ },
3206
+ {
3207
+ "env": "Server",
3208
+ "key": null,
3209
+ "name": "Component",
3210
+ "props": {},
3211
+ "stack": [
3212
+ [
3213
+ "Object.<anonymous>",
3214
+ "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
3215
+ 3179,
3216
+ 40,
3217
+ 3167,
3218
+ 36,
3219
+ ],
3220
+ ],
3221
+ },
3222
+ {
3223
+ "time": 0,
3224
+ },
3225
+ {
3226
+ "awaited": {
3227
+ "end": 0,
3228
+ "env": "Server",
3229
+ "name": "Object.readFile",
3230
+ "owner": {
3231
+ "env": "Server",
3232
+ "key": null,
3233
+ "name": "Component",
3234
+ "props": {},
3235
+ "stack": [
3236
+ [
3237
+ "Object.<anonymous>",
3238
+ "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
3239
+ 3179,
3240
+ 40,
3241
+ 3167,
3242
+ 36,
3243
+ ],
3244
+ ],
3245
+ },
3246
+ "stack": [
3247
+ [
3248
+ "Component",
3249
+ "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
3250
+ 3171,
3251
+ 7,
3252
+ 3169,
3253
+ 5,
3254
+ ],
3255
+ ],
3256
+ "start": 0,
3257
+ "value": {
3258
+ "status": "halted",
3259
+ },
3260
+ },
3261
+ "env": "Server",
3262
+ "owner": {
3263
+ "env": "Server",
3264
+ "key": null,
3265
+ "name": "Component",
3266
+ "props": {},
3267
+ "stack": [
3268
+ [
3269
+ "Object.<anonymous>",
3270
+ "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
3271
+ 3179,
3272
+ 40,
3273
+ 3167,
3274
+ 36,
3275
+ ],
3276
+ ],
3277
+ },
3278
+ "stack": [
3279
+ [
3280
+ "Component",
3281
+ "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
3282
+ 3173,
3283
+ 7,
3284
+ 3169,
3285
5,
3286
],
3287
],
packages/react-server/src/__tests__/test-file.txt
new
+31
@@ -0,0 +1,31 @@
1
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed varius diam ut lectus suscipit, ac faucibus tellus fermentum. Phasellus rutrum bibendum tellus, eu malesuada metus dignissim sed. Pellentesque et quam libero. Donec ultricies massa vitae justo maximus, ultricies ultrices diam dictum. Ut in lectus non diam porttitor accumsan ac hendrerit tortor. Interdum et malesuada fames ac ante ipsum primis in faucibus. Donec a massa augue. Sed vitae purus id sapien luctus mattis. Maecenas imperdiet vehicula rhoncus.
2
+
3
+Etiam non tincidunt sapien, rhoncus fermentum ipsum. Cras id gravida felis. Phasellus finibus, mauris eu viverra auctor, augue tellus elementum sem, a vestibulum ligula purus vel erat. Nulla facilisi. Curabitur nulla ligula, viverra et elementum quis, sollicitudin sit amet nisl. Aenean vitae tortor mauris. Fusce iaculis risus eget lacus faucibus, quis congue dolor egestas. Integer viverra tellus tortor, vitae malesuada lorem ultricies vitae. Ut lacinia diam non ante pellentesque posuere. Suspendisse at posuere nunc, eget viverra elit. Vestibulum sit amet maximus lorem.
4
+
5
+Proin fermentum lacus non convallis gravida. Morbi a blandit nisi. Nam posuere lacus vitae molestie aliquam. Cras enim orci, elementum et urna vel, vehicula gravida neque. Etiam quis odio at odio aliquet lobortis ac et sapien. Nulla commodo, ante eget sodales facilisis, magna elit pretium odio, a consectetur dui tortor at erat. Morbi quis laoreet metus. Sed iaculis sodales nisi, ut pharetra magna laoreet eu.
6
+
7
+In iaculis, dolor quis consectetur fringilla, justo quam viverra turpis, eget dictum lectus nisl nec mi. Phasellus suscipit, leo ut tincidunt molestie, odio purus ornare ex, sagittis ornare erat nunc vel magna. Morbi malesuada risus nec turpis ultricies molestie dapibus nec justo. Vestibulum tempus bibendum purus, nec sodales libero convallis at. Fusce ipsum nibh, fringilla at sapien sit amet, malesuada suscipit lorem. Fusce et libero a dui gravida ultrices. Vestibulum quis lobortis velit. Morbi ut nisl lobortis, tempus sapien et, convallis mi. Integer varius, felis eu egestas dignissim, risus augue tristique elit, ultricies interdum arcu nibh et lectus. Integer enim mi, viverra eget scelerisque at, gravida eget justo. Nullam eget dolor id orci fringilla ultricies. In id luctus erat. Donec quis magna quis neque congue venenatis sit amet vel turpis. Donec congue tortor eu massa ullamcorper, ut imperdiet lectus posuere. Maecenas quis lorem quis nulla vehicula varius.
8
+
9
+Suspendisse tristique elit et luctus suscipit. Nunc quis justo luctus, malesuada velit vitae, accumsan tellus. Nunc ex sem, efficitur vitae semper et, consectetur quis turpis. Donec et tincidunt est, vitae varius sem. Aliquam at luctus dolor. Etiam pretium justo lectus, quis tempus quam feugiat ac. Suspendisse vitae sollicitudin erat, ut interdum felis. Cras lacinia tincidunt tempus. Vivamus congue et lectus quis suscipit. Fusce ultricies justo eget mi elementum, vitae consectetur lacus varius. Praesent fermentum in risus sit amet malesuada. Mauris semper sapien ornare pulvinar venenatis. Suspendisse potenti.
10
+
11
+Donec vestibulum purus et est cursus hendrerit. Vivamus pharetra ligula dolor, ut commodo felis accumsan sed. Integer pulvinar mollis metus, at cursus turpis laoreet ac. Maecenas lectus felis, dapibus eu ligula at, lacinia pharetra ex. Duis id tortor a metus pulvinar tincidunt. Suspendisse at lacus a nulla feugiat malesuada. Ut tincidunt interdum placerat. Fusce tincidunt elit in convallis elementum. Etiam commodo felis ut neque dapibus, ac finibus ante auctor. Sed tincidunt massa vitae sapien semper suscipit.
12
+
13
+Donec euismod sagittis lacus, eu lacinia tortor rutrum eu. Donec et sapien lacus. Aliquam non commodo magna, vitae commodo tortor. Vivamus vel urna eget ante varius condimentum. Etiam non purus pharetra, pharetra sem eu, maximus felis. Integer nec urna justo. Etiam a dolor tempor, posuere odio non, maximus metus. Vivamus malesuada mi libero, a viverra velit tempus vitae. Quisque accumsan sed nisi a venenatis. Donec malesuada erat at lacus tincidunt, sed euismod est ultricies. Fusce id posuere nisl. Aliquam erat volutpat. Morbi non erat iaculis turpis interdum facilisis. Nunc risus elit, laoreet quis ante sed, aliquam pharetra massa. Fusce cursus urna nec pharetra interdum.
14
+
15
+Etiam pharetra, metus nec malesuada efficitur, dui ipsum blandit felis, id cursus elit orci at eros. Phasellus suscipit lobortis est. Praesent egestas, est et scelerisque consectetur, neque velit dapibus elit, quis hendrerit nisi felis a nulla. Quisque facilisis rutrum varius. Integer quis libero sit amet erat tincidunt semper a vel quam. Curabitur rutrum fringilla consequat. Fusce in metus ut odio luctus viverra viverra et nulla. Vestibulum a lacinia augue, feugiat egestas diam. Proin elit arcu, venenatis quis elementum in, rutrum quis tortor. Integer vel lacus urna. Suspendisse pharetra sapien at ullamcorper hendrerit. Etiam nibh ipsum, vulputate eu pulvinar nec, pulvinar id odio.
16
+
17
+Proin tincidunt, augue id tristique dictum, nisi sem congue orci, non faucibus erat nibh ac metus. Curabitur leo massa, hendrerit a venenatis sed, aliquam ac ligula. Fusce facilisis vulputate dui ut sollicitudin. Phasellus tellus lacus, viverra at dui sit amet, facilisis accumsan nisi. Phasellus dui lectus, lobortis consequat convallis sed, luctus non dui. Duis tempus urna sed libero ullamcorper, placerat luctus enim dignissim. Mauris vitae odio mauris. Donec eget tortor vitae nibh laoreet viverra at eget urna. Integer in ex arcu. Vestibulum tellus erat, tempus sit amet neque nec, tristique maximus neque. Vivamus efficitur nisi massa, ut tempus lacus interdum quis. Cras posuere erat nec convallis viverra. Aenean efficitur nibh et augue maximus pretium. Aliquam hendrerit nulla dui. Donec elit enim, hendrerit ultricies orci sed, blandit elementum quam.
18
+
19
+Donec fringilla pretium ligula, sed imperdiet orci mattis quis. Mauris ullamcorper fermentum libero fringilla molestie. Sed laoreet, nisl in viverra convallis, enim tortor tincidunt elit, in consequat diam metus non libero. Quisque eleifend lobortis lobortis. Donec porta eget justo faucibus sagittis. Phasellus lacus diam, convallis tristique metus at, placerat luctus justo. Fusce vestibulum urna eget dictum vulputate. Nam non nisl bibendum risus vehicula rutrum nec vel purus. Morbi nec diam laoreet quam sodales malesuada. Suspendisse efficitur, magna vel sodales semper, neque nulla aliquam nisi, hendrerit mollis justo libero vel mi.
20
+
21
+Etiam tellus neque, vulputate quis justo sit amet, dapibus suscipit est. Morbi pulvinar ipsum risus, eu lacinia felis viverra eget. Quisque massa justo, aliquam non ornare sit amet, maximus maximus dui. Pellentesque aliquam fermentum libero sed aliquet. Nulla consequat ultrices commodo. Donec condimentum consectetur nulla, id euismod metus facilisis eget. Fusce at mauris blandit, mollis ex nec, dignissim ex. Proin nec facilisis arcu. In vestibulum at erat vel ultrices. Mauris lacinia elementum nibh rhoncus egestas. Duis lobortis magna eget sem consequat, ac malesuada orci gravida. Duis cursus quam augue, a condimentum velit scelerisque eget. Donec dapibus pellentesque tellus. Nulla malesuada, purus id efficitur volutpat, felis odio faucibus metus, scelerisque hendrerit enim velit in urna.
22
+
23
+Nulla massa felis, semper eget consectetur ac, scelerisque vitae mi. Praesent sit amet sagittis metus. Curabitur mollis ex quis erat faucibus mattis. Nullam risus lacus, suscipit sed luctus vel, dictum id odio. In et dictum elit. Aliquam quis consectetur metus. In feugiat, urna ac porttitor auctor, est arcu porta est, vel lobortis erat elit quis nunc. Nulla quis nibh vel sem fringilla semper sed quis ipsum. Morbi vehicula, urna non rhoncus hendrerit, velit purus accumsan purus, vel elementum arcu dui sit amet leo. Aenean ultricies orci ac ante placerat, id auctor magna sodales. Nam sit amet laoreet lectus. Etiam ligula velit, dignissim vel tincidunt at, dictum nec lacus. Nam non eleifend enim, sit amet dictum lectus. Suspendisse potenti. Suspendisse eget ante a mauris placerat lobortis sed eu dui.
24
+
25
+Nam et porta elit, vel interdum mauris. Vivamus eu elit nec nisl bibendum hendrerit. Morbi ornare mollis lacus non finibus. Praesent id orci ex. Donec commodo viverra dictum. Phasellus in lacus tellus. Curabitur at lorem efficitur leo dignissim varius at eu est. Vivamus justo erat, hendrerit id volutpat nec, euismod eget odio. Mauris et vulputate tellus, in maximus nunc. Vestibulum ante ligula, suscipit nec nibh in, placerat pellentesque neque.
26
+
27
+Nunc in accumsan ligula, quis accumsan diam. Fusce tincidunt neque a turpis ornare, id convallis quam convallis. Donec at luctus ipsum. Nam id enim ante. Fusce condimentum consectetur justo, in hendrerit lacus vehicula ut. Vestibulum ut hendrerit risus. Donec blandit ut magna eget aliquet. Donec sit amet faucibus ante. Suspendisse condimentum, mauris id aliquam ultricies, erat mi tincidunt eros, sit amet blandit urna purus vitae orci. Maecenas in faucibus ipsum, quis gravida ex. Sed tincidunt in ipsum id dignissim. Duis dui nisl, interdum at est non, rutrum porttitor felis. Sed at nibh dolor. Etiam cursus scelerisque leo.
28
+
29
+Morbi vel arcu ullamcorper, tristique eros sed, condimentum sapien. Duis suscipit consequat tincidunt. Proin commodo erat in velit cursus lobortis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque id metus luctus, commodo sapien iaculis, pharetra massa. Phasellus fringilla sagittis lacus, ac laoreet massa sollicitudin ac. Aliquam luctus ex non semper dictum. Morbi vel arcu vel purus aliquet tempus. Curabitur ultrices rutrum facilisis. Morbi enim lectus, ornare quis sem bibendum, aliquet imperdiet ex. Vestibulum commodo sed neque et fermentum. Vestibulum enim elit, lobortis vitae convallis ut, auctor in velit.
30
+
31
+Vestibulum semper vulputate elit, at volutpat quam. Nullam id scelerisque libero, nec facilisis lacus. Nulla quis rhoncus arcu. Aliquam erat volutpat. In viverra, diam id rutrum volutpat, ligula dui tristique ex, et pulvinar elit ex a est. Cras magna augue, porta vel tempus vitae, placerat et felis. In ex elit, mattis vitae molestie pretium, tempus vitae tortor. Integer vehicula orci magna, in ultrices nulla volutpat sit amet. Pellentesque odio erat, hendrerit at lacinia sit amet, tempus sit amet risus. Curabitur ut laoreet justo, nec fermentum nibh. Integer tincidunt mattis sem eu cursus.