react-dom 19.1.0 → 19.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,7 +16,6 @@ var React = require("react"),
16
16
  REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
17
17
  REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
18
18
  REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
19
- REACT_PROVIDER_TYPE = Symbol.for("react.provider"),
20
19
  REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
21
20
  REACT_CONTEXT_TYPE = Symbol.for("react.context"),
22
21
  REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
@@ -29,8 +28,15 @@ var React = require("react"),
29
28
  REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"),
30
29
  REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"),
31
30
  REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"),
32
- MAYBE_ITERATOR_SYMBOL = Symbol.iterator,
33
- isArrayImpl = Array.isArray,
31
+ MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
32
+ function getIteratorFn(maybeIterable) {
33
+ if (null === maybeIterable || "object" !== typeof maybeIterable) return null;
34
+ maybeIterable =
35
+ (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
36
+ maybeIterable["@@iterator"];
37
+ return "function" === typeof maybeIterable ? maybeIterable : null;
38
+ }
39
+ var isArrayImpl = Array.isArray,
34
40
  scheduleMicrotask = queueMicrotask;
35
41
  function flushBuffered(destination) {
36
42
  "function" === typeof destination.flush && destination.flush();
@@ -38,6 +44,9 @@ function flushBuffered(destination) {
38
44
  function writeChunk(destination, chunk) {
39
45
  0 !== chunk.length && destination.write(chunk);
40
46
  }
47
+ function byteLengthOfChunk(chunk) {
48
+ return Buffer.byteLength(chunk, "utf8");
49
+ }
41
50
  function closeWithError(destination, error) {
42
51
  "function" === typeof destination.error
43
52
  ? destination.error(error)
@@ -218,6 +227,7 @@ ReactDOMSharedInternals.d = {
218
227
  M: preinitModuleScript
219
228
  };
220
229
  var PRELOAD_NO_CREDS = [],
230
+ currentlyFlushingRenderState = null,
221
231
  scriptRegex = /(<\/|<)(s)(cript)/gi;
222
232
  function scriptReplacer(match, prefix, s, suffix) {
223
233
  return "" + prefix + ("s" === s ? "\\u0073" : "\\u0053") + suffix;
@@ -230,21 +240,30 @@ function createRenderState(
230
240
  onHeaders,
231
241
  maxHeadersLength
232
242
  ) {
243
+ externalRuntimeConfig =
244
+ "string" === typeof nonce ? nonce : nonce && nonce.script;
233
245
  var inlineScriptWithNonce =
234
- void 0 === nonce
235
- ? "<script>"
236
- : '<script nonce="' + escapeTextForBrowser(nonce) + '">',
237
- idPrefix = resumableState.idPrefix;
238
- externalRuntimeConfig = [];
239
- var bootstrapScriptContent = resumableState.bootstrapScriptContent,
246
+ void 0 === externalRuntimeConfig
247
+ ? "<script"
248
+ : '<script nonce="' + escapeTextForBrowser(externalRuntimeConfig) + '"',
249
+ nonceStyle = "string" === typeof nonce ? void 0 : nonce && nonce.style,
250
+ inlineStyleWithNonce =
251
+ void 0 === nonceStyle
252
+ ? "<style"
253
+ : '<style nonce="' + escapeTextForBrowser(nonceStyle) + '"',
254
+ idPrefix = resumableState.idPrefix,
255
+ bootstrapChunks = [],
256
+ bootstrapScriptContent = resumableState.bootstrapScriptContent,
240
257
  bootstrapScripts = resumableState.bootstrapScripts,
241
258
  bootstrapModules = resumableState.bootstrapModules;
242
259
  void 0 !== bootstrapScriptContent &&
243
- externalRuntimeConfig.push(
244
- inlineScriptWithNonce,
260
+ (bootstrapChunks.push(inlineScriptWithNonce),
261
+ pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
262
+ bootstrapChunks.push(
263
+ ">",
245
264
  ("" + bootstrapScriptContent).replace(scriptRegex, scriptReplacer),
246
265
  "\x3c/script>"
247
- );
266
+ ));
248
267
  bootstrapScriptContent = [];
249
268
  void 0 !== importMap &&
250
269
  (bootstrapScriptContent.push('<script type="importmap">'),
@@ -266,9 +285,10 @@ function createRenderState(
266
285
  segmentPrefix: idPrefix + "S:",
267
286
  boundaryPrefix: idPrefix + "B:",
268
287
  startInlineScript: inlineScriptWithNonce,
288
+ startInlineStyle: inlineStyleWithNonce,
269
289
  preamble: createPreambleState(),
270
290
  externalRuntimeScript: null,
271
- bootstrapChunks: externalRuntimeConfig,
291
+ bootstrapChunks: bootstrapChunks,
272
292
  importMapChunks: bootstrapScriptContent,
273
293
  onHeaders: onHeaders,
274
294
  headers: importMap,
@@ -295,109 +315,119 @@ function createRenderState(
295
315
  scripts: new Map(),
296
316
  moduleScripts: new Map()
297
317
  },
298
- nonce: nonce,
318
+ nonce: { script: externalRuntimeConfig, style: nonceStyle },
299
319
  hoistableState: null,
300
320
  stylesToHoist: !1
301
321
  };
302
322
  if (void 0 !== bootstrapScripts)
303
- for (importMap = 0; importMap < bootstrapScripts.length; importMap++) {
304
- var scriptConfig = bootstrapScripts[importMap];
305
- idPrefix = inlineScriptWithNonce = void 0;
306
- bootstrapScriptContent = {
307
- rel: "preload",
308
- as: "script",
309
- fetchPriority: "low",
310
- nonce: nonce
311
- };
312
- "string" === typeof scriptConfig
313
- ? (bootstrapScriptContent.href = maxHeadersLength = scriptConfig)
314
- : ((bootstrapScriptContent.href = maxHeadersLength = scriptConfig.src),
315
- (bootstrapScriptContent.integrity = idPrefix =
316
- "string" === typeof scriptConfig.integrity
317
- ? scriptConfig.integrity
318
- : void 0),
319
- (bootstrapScriptContent.crossOrigin = inlineScriptWithNonce =
320
- "string" === typeof scriptConfig || null == scriptConfig.crossOrigin
321
- ? void 0
322
- : "use-credentials" === scriptConfig.crossOrigin
323
- ? "use-credentials"
324
- : ""));
325
- scriptConfig = resumableState;
326
- var href = maxHeadersLength;
327
- scriptConfig.scriptResources[href] = null;
328
- scriptConfig.moduleScriptResources[href] = null;
329
- scriptConfig = [];
330
- pushLinkImpl(scriptConfig, bootstrapScriptContent);
331
- onHeaders.bootstrapScripts.add(scriptConfig);
332
- externalRuntimeConfig.push(
333
- '<script src="',
334
- escapeTextForBrowser(maxHeadersLength)
335
- );
336
- nonce &&
337
- externalRuntimeConfig.push('" nonce="', escapeTextForBrowser(nonce));
338
- "string" === typeof idPrefix &&
339
- externalRuntimeConfig.push(
340
- '" integrity="',
341
- escapeTextForBrowser(idPrefix)
342
- );
343
- "string" === typeof inlineScriptWithNonce &&
344
- externalRuntimeConfig.push(
345
- '" crossorigin="',
346
- escapeTextForBrowser(inlineScriptWithNonce)
347
- );
348
- externalRuntimeConfig.push('" async="">\x3c/script>');
349
- }
323
+ for (importMap = 0; importMap < bootstrapScripts.length; importMap++)
324
+ (idPrefix = bootstrapScripts[importMap]),
325
+ (nonceStyle = inlineScriptWithNonce = void 0),
326
+ (inlineStyleWithNonce = {
327
+ rel: "preload",
328
+ as: "script",
329
+ fetchPriority: "low",
330
+ nonce: nonce
331
+ }),
332
+ "string" === typeof idPrefix
333
+ ? (inlineStyleWithNonce.href = maxHeadersLength = idPrefix)
334
+ : ((inlineStyleWithNonce.href = maxHeadersLength = idPrefix.src),
335
+ (inlineStyleWithNonce.integrity = nonceStyle =
336
+ "string" === typeof idPrefix.integrity
337
+ ? idPrefix.integrity
338
+ : void 0),
339
+ (inlineStyleWithNonce.crossOrigin = inlineScriptWithNonce =
340
+ "string" === typeof idPrefix || null == idPrefix.crossOrigin
341
+ ? void 0
342
+ : "use-credentials" === idPrefix.crossOrigin
343
+ ? "use-credentials"
344
+ : "")),
345
+ (idPrefix = resumableState),
346
+ (bootstrapScriptContent = maxHeadersLength),
347
+ (idPrefix.scriptResources[bootstrapScriptContent] = null),
348
+ (idPrefix.moduleScriptResources[bootstrapScriptContent] = null),
349
+ (idPrefix = []),
350
+ pushLinkImpl(idPrefix, inlineStyleWithNonce),
351
+ onHeaders.bootstrapScripts.add(idPrefix),
352
+ bootstrapChunks.push(
353
+ '<script src="',
354
+ escapeTextForBrowser(maxHeadersLength),
355
+ '"'
356
+ ),
357
+ externalRuntimeConfig &&
358
+ bootstrapChunks.push(
359
+ ' nonce="',
360
+ escapeTextForBrowser(externalRuntimeConfig),
361
+ '"'
362
+ ),
363
+ "string" === typeof nonceStyle &&
364
+ bootstrapChunks.push(
365
+ ' integrity="',
366
+ escapeTextForBrowser(nonceStyle),
367
+ '"'
368
+ ),
369
+ "string" === typeof inlineScriptWithNonce &&
370
+ bootstrapChunks.push(
371
+ ' crossorigin="',
372
+ escapeTextForBrowser(inlineScriptWithNonce),
373
+ '"'
374
+ ),
375
+ pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
376
+ bootstrapChunks.push(' async="">\x3c/script>');
350
377
  if (void 0 !== bootstrapModules)
351
- for (
352
- bootstrapScripts = 0;
353
- bootstrapScripts < bootstrapModules.length;
354
- bootstrapScripts++
355
- )
356
- (bootstrapScriptContent = bootstrapModules[bootstrapScripts]),
357
- (inlineScriptWithNonce = maxHeadersLength = void 0),
358
- (idPrefix = {
378
+ for (nonce = 0; nonce < bootstrapModules.length; nonce++)
379
+ (nonceStyle = bootstrapModules[nonce]),
380
+ (maxHeadersLength = importMap = void 0),
381
+ (inlineScriptWithNonce = {
359
382
  rel: "modulepreload",
360
383
  fetchPriority: "low",
361
- nonce: nonce
384
+ nonce: externalRuntimeConfig
362
385
  }),
363
- "string" === typeof bootstrapScriptContent
364
- ? (idPrefix.href = importMap = bootstrapScriptContent)
365
- : ((idPrefix.href = importMap = bootstrapScriptContent.src),
366
- (idPrefix.integrity = inlineScriptWithNonce =
367
- "string" === typeof bootstrapScriptContent.integrity
368
- ? bootstrapScriptContent.integrity
386
+ "string" === typeof nonceStyle
387
+ ? (inlineScriptWithNonce.href = bootstrapScripts = nonceStyle)
388
+ : ((inlineScriptWithNonce.href = bootstrapScripts = nonceStyle.src),
389
+ (inlineScriptWithNonce.integrity = maxHeadersLength =
390
+ "string" === typeof nonceStyle.integrity
391
+ ? nonceStyle.integrity
369
392
  : void 0),
370
- (idPrefix.crossOrigin = maxHeadersLength =
371
- "string" === typeof bootstrapScriptContent ||
372
- null == bootstrapScriptContent.crossOrigin
393
+ (inlineScriptWithNonce.crossOrigin = importMap =
394
+ "string" === typeof nonceStyle || null == nonceStyle.crossOrigin
373
395
  ? void 0
374
- : "use-credentials" === bootstrapScriptContent.crossOrigin
396
+ : "use-credentials" === nonceStyle.crossOrigin
375
397
  ? "use-credentials"
376
398
  : "")),
377
- (bootstrapScriptContent = resumableState),
378
- (scriptConfig = importMap),
379
- (bootstrapScriptContent.scriptResources[scriptConfig] = null),
380
- (bootstrapScriptContent.moduleScriptResources[scriptConfig] = null),
381
- (bootstrapScriptContent = []),
382
- pushLinkImpl(bootstrapScriptContent, idPrefix),
383
- onHeaders.bootstrapScripts.add(bootstrapScriptContent),
384
- externalRuntimeConfig.push(
399
+ (nonceStyle = resumableState),
400
+ (inlineStyleWithNonce = bootstrapScripts),
401
+ (nonceStyle.scriptResources[inlineStyleWithNonce] = null),
402
+ (nonceStyle.moduleScriptResources[inlineStyleWithNonce] = null),
403
+ (nonceStyle = []),
404
+ pushLinkImpl(nonceStyle, inlineScriptWithNonce),
405
+ onHeaders.bootstrapScripts.add(nonceStyle),
406
+ bootstrapChunks.push(
385
407
  '<script type="module" src="',
386
- escapeTextForBrowser(importMap)
408
+ escapeTextForBrowser(bootstrapScripts),
409
+ '"'
387
410
  ),
388
- nonce &&
389
- externalRuntimeConfig.push('" nonce="', escapeTextForBrowser(nonce)),
390
- "string" === typeof inlineScriptWithNonce &&
391
- externalRuntimeConfig.push(
392
- '" integrity="',
393
- escapeTextForBrowser(inlineScriptWithNonce)
411
+ externalRuntimeConfig &&
412
+ bootstrapChunks.push(
413
+ ' nonce="',
414
+ escapeTextForBrowser(externalRuntimeConfig),
415
+ '"'
394
416
  ),
395
417
  "string" === typeof maxHeadersLength &&
396
- externalRuntimeConfig.push(
397
- '" crossorigin="',
398
- escapeTextForBrowser(maxHeadersLength)
418
+ bootstrapChunks.push(
419
+ ' integrity="',
420
+ escapeTextForBrowser(maxHeadersLength),
421
+ '"'
422
+ ),
423
+ "string" === typeof importMap &&
424
+ bootstrapChunks.push(
425
+ ' crossorigin="',
426
+ escapeTextForBrowser(importMap),
427
+ '"'
399
428
  ),
400
- externalRuntimeConfig.push('" async="">\x3c/script>');
429
+ pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
430
+ bootstrapChunks.push(' async="">\x3c/script>');
401
431
  return onHeaders;
402
432
  }
403
433
  function createResumableState(
@@ -428,18 +458,19 @@ function createResumableState(
428
458
  };
429
459
  }
430
460
  function createPreambleState() {
431
- return {
432
- htmlChunks: null,
433
- headChunks: null,
434
- bodyChunks: null,
435
- contribution: 0
436
- };
461
+ return { htmlChunks: null, headChunks: null, bodyChunks: null };
437
462
  }
438
- function createFormatContext(insertionMode, selectedValue, tagScope) {
463
+ function createFormatContext(
464
+ insertionMode,
465
+ selectedValue,
466
+ tagScope,
467
+ viewTransition
468
+ ) {
439
469
  return {
440
470
  insertionMode: insertionMode,
441
471
  selectedValue: selectedValue,
442
- tagScope: tagScope
472
+ tagScope: tagScope,
473
+ viewTransition: viewTransition
443
474
  };
444
475
  }
445
476
  function createRootFormatContext(namespaceURI) {
@@ -450,48 +481,93 @@ function createRootFormatContext(namespaceURI) {
450
481
  ? 5
451
482
  : 0,
452
483
  null,
453
- 0
484
+ 0,
485
+ null
454
486
  );
455
487
  }
456
488
  function getChildFormatContext(parentContext, type, props) {
489
+ var subtreeScope = parentContext.tagScope & -25;
457
490
  switch (type) {
458
491
  case "noscript":
459
- return createFormatContext(2, null, parentContext.tagScope | 1);
492
+ return createFormatContext(2, null, subtreeScope | 1, null);
460
493
  case "select":
461
494
  return createFormatContext(
462
495
  2,
463
496
  null != props.value ? props.value : props.defaultValue,
464
- parentContext.tagScope
497
+ subtreeScope,
498
+ null
465
499
  );
466
500
  case "svg":
467
- return createFormatContext(4, null, parentContext.tagScope);
501
+ return createFormatContext(4, null, subtreeScope, null);
468
502
  case "picture":
469
- return createFormatContext(2, null, parentContext.tagScope | 2);
503
+ return createFormatContext(2, null, subtreeScope | 2, null);
470
504
  case "math":
471
- return createFormatContext(5, null, parentContext.tagScope);
505
+ return createFormatContext(5, null, subtreeScope, null);
472
506
  case "foreignObject":
473
- return createFormatContext(2, null, parentContext.tagScope);
507
+ return createFormatContext(2, null, subtreeScope, null);
474
508
  case "table":
475
- return createFormatContext(6, null, parentContext.tagScope);
509
+ return createFormatContext(6, null, subtreeScope, null);
476
510
  case "thead":
477
511
  case "tbody":
478
512
  case "tfoot":
479
- return createFormatContext(7, null, parentContext.tagScope);
513
+ return createFormatContext(7, null, subtreeScope, null);
480
514
  case "colgroup":
481
- return createFormatContext(9, null, parentContext.tagScope);
515
+ return createFormatContext(9, null, subtreeScope, null);
482
516
  case "tr":
483
- return createFormatContext(8, null, parentContext.tagScope);
517
+ return createFormatContext(8, null, subtreeScope, null);
484
518
  case "head":
485
519
  if (2 > parentContext.insertionMode)
486
- return createFormatContext(3, null, parentContext.tagScope);
520
+ return createFormatContext(3, null, subtreeScope, null);
487
521
  break;
488
522
  case "html":
489
523
  if (0 === parentContext.insertionMode)
490
- return createFormatContext(1, null, parentContext.tagScope);
524
+ return createFormatContext(1, null, subtreeScope, null);
491
525
  }
492
526
  return 6 <= parentContext.insertionMode || 2 > parentContext.insertionMode
493
- ? createFormatContext(2, null, parentContext.tagScope)
494
- : parentContext;
527
+ ? createFormatContext(2, null, subtreeScope, null)
528
+ : parentContext.tagScope !== subtreeScope
529
+ ? createFormatContext(
530
+ parentContext.insertionMode,
531
+ parentContext.selectedValue,
532
+ subtreeScope,
533
+ null
534
+ )
535
+ : parentContext;
536
+ }
537
+ function getSuspenseViewTransition(parentViewTransition) {
538
+ return null === parentViewTransition
539
+ ? null
540
+ : {
541
+ update: parentViewTransition.update,
542
+ enter: "none",
543
+ exit: "none",
544
+ share: parentViewTransition.update,
545
+ name: parentViewTransition.autoName,
546
+ autoName: parentViewTransition.autoName,
547
+ nameIdx: 0
548
+ };
549
+ }
550
+ function getSuspenseFallbackFormatContext(resumableState, parentContext) {
551
+ parentContext.tagScope & 32 && (resumableState.instructions |= 128);
552
+ return createFormatContext(
553
+ parentContext.insertionMode,
554
+ parentContext.selectedValue,
555
+ parentContext.tagScope | 12,
556
+ getSuspenseViewTransition(parentContext.viewTransition)
557
+ );
558
+ }
559
+ function getSuspenseContentFormatContext(resumableState, parentContext) {
560
+ resumableState = getSuspenseViewTransition(parentContext.viewTransition);
561
+ var subtreeScope = parentContext.tagScope | 16;
562
+ null !== resumableState &&
563
+ "none" !== resumableState.share &&
564
+ (subtreeScope |= 64);
565
+ return createFormatContext(
566
+ parentContext.insertionMode,
567
+ parentContext.selectedValue,
568
+ subtreeScope,
569
+ resumableState
570
+ );
495
571
  }
496
572
  function pushTextInstance(target, text, renderState, textEmbedded) {
497
573
  if ("" === text) return textEmbedded;
@@ -499,6 +575,9 @@ function pushTextInstance(target, text, renderState, textEmbedded) {
499
575
  target.push(escapeTextForBrowser(text));
500
576
  return !0;
501
577
  }
578
+ function pushSegmentFinale(target, renderState, lastPushedText, textEmbedded) {
579
+ lastPushedText && textEmbedded && target.push("\x3c!-- --\x3e");
580
+ }
502
581
  var styleNameCache = new Map();
503
582
  function pushStyleAttribute(target, style) {
504
583
  if ("object" !== typeof style)
@@ -808,13 +887,25 @@ function flattenOptionChildren(children) {
808
887
  return content;
809
888
  }
810
889
  function injectFormReplayingRuntime(resumableState, renderState) {
811
- 0 === (resumableState.instructions & 16) &&
812
- ((resumableState.instructions |= 16),
813
- renderState.bootstrapChunks.unshift(
814
- renderState.startInlineScript,
815
- 'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});',
816
- "\x3c/script>"
817
- ));
890
+ if (0 === (resumableState.instructions & 16)) {
891
+ resumableState.instructions |= 16;
892
+ var preamble = renderState.preamble,
893
+ bootstrapChunks = renderState.bootstrapChunks;
894
+ (preamble.htmlChunks || preamble.headChunks) && 0 === bootstrapChunks.length
895
+ ? (bootstrapChunks.push(renderState.startInlineScript),
896
+ pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
897
+ bootstrapChunks.push(
898
+ ">",
899
+ 'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});',
900
+ "\x3c/script>"
901
+ ))
902
+ : bootstrapChunks.unshift(
903
+ renderState.startInlineScript,
904
+ ">",
905
+ 'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});',
906
+ "\x3c/script>"
907
+ );
908
+ }
818
909
  }
819
910
  function pushLinkImpl(target, props) {
820
911
  target.push(startChunkForTag("link"));
@@ -989,8 +1080,7 @@ function pushStartInstance(
989
1080
  preambleState,
990
1081
  hoistableState,
991
1082
  formatContext,
992
- textEmbedded,
993
- isFallback
1083
+ textEmbedded
994
1084
  ) {
995
1085
  switch (type) {
996
1086
  case "div":
@@ -1465,9 +1555,11 @@ function pushStartInstance(
1465
1555
  } else JSCompiler_inline_result$jscomp$2 = children$jscomp$5;
1466
1556
  return JSCompiler_inline_result$jscomp$2;
1467
1557
  case "title":
1558
+ var noscriptTagInScope = formatContext.tagScope & 1,
1559
+ isFallback = formatContext.tagScope & 4;
1468
1560
  if (
1469
1561
  4 === formatContext.insertionMode ||
1470
- formatContext.tagScope & 1 ||
1562
+ noscriptTagInScope ||
1471
1563
  null != props.itemProp
1472
1564
  )
1473
1565
  var JSCompiler_inline_result$jscomp$3 = pushTitleImpl(
@@ -1481,12 +1573,14 @@ function pushStartInstance(
1481
1573
  (JSCompiler_inline_result$jscomp$3 = void 0));
1482
1574
  return JSCompiler_inline_result$jscomp$3;
1483
1575
  case "link":
1484
- var rel = props.rel,
1576
+ var noscriptTagInScope$jscomp$0 = formatContext.tagScope & 1,
1577
+ isFallback$jscomp$0 = formatContext.tagScope & 4,
1578
+ rel = props.rel,
1485
1579
  href = props.href,
1486
1580
  precedence = props.precedence;
1487
1581
  if (
1488
1582
  4 === formatContext.insertionMode ||
1489
- formatContext.tagScope & 1 ||
1583
+ noscriptTagInScope$jscomp$0 ||
1490
1584
  null != props.itemProp ||
1491
1585
  "string" !== typeof rel ||
1492
1586
  "string" !== typeof href ||
@@ -1553,12 +1647,13 @@ function pushStartInstance(
1553
1647
  props
1554
1648
  ))
1555
1649
  : (textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"),
1556
- (JSCompiler_inline_result$jscomp$4 = isFallback
1650
+ (JSCompiler_inline_result$jscomp$4 = isFallback$jscomp$0
1557
1651
  ? null
1558
1652
  : pushLinkImpl(renderState.hoistableChunks, props)));
1559
1653
  return JSCompiler_inline_result$jscomp$4;
1560
1654
  case "script":
1561
- var asyncProp = props.async;
1655
+ var noscriptTagInScope$jscomp$1 = formatContext.tagScope & 1,
1656
+ asyncProp = props.async;
1562
1657
  if (
1563
1658
  "string" !== typeof props.src ||
1564
1659
  !props.src ||
@@ -1568,7 +1663,7 @@ function pushStartInstance(
1568
1663
  props.onLoad ||
1569
1664
  props.onError ||
1570
1665
  4 === formatContext.insertionMode ||
1571
- formatContext.tagScope & 1 ||
1666
+ noscriptTagInScope$jscomp$1 ||
1572
1667
  null != props.itemProp
1573
1668
  )
1574
1669
  var JSCompiler_inline_result$jscomp$5 = pushScriptImpl(
@@ -1605,11 +1700,13 @@ function pushStartInstance(
1605
1700
  }
1606
1701
  return JSCompiler_inline_result$jscomp$5;
1607
1702
  case "style":
1608
- var precedence$jscomp$0 = props.precedence,
1609
- href$jscomp$0 = props.href;
1703
+ var noscriptTagInScope$jscomp$2 = formatContext.tagScope & 1,
1704
+ precedence$jscomp$0 = props.precedence,
1705
+ href$jscomp$0 = props.href,
1706
+ nonce = props.nonce;
1610
1707
  if (
1611
1708
  4 === formatContext.insertionMode ||
1612
- formatContext.tagScope & 1 ||
1709
+ noscriptTagInScope$jscomp$2 ||
1613
1710
  null != props.itemProp ||
1614
1711
  "string" !== typeof precedence$jscomp$0 ||
1615
1712
  "string" !== typeof href$jscomp$0 ||
@@ -1661,46 +1758,47 @@ function pushStartInstance(
1661
1758
  : void 0)
1662
1759
  ) {
1663
1760
  resumableState.styleResources[href$jscomp$0] = null;
1664
- styleQueue$jscomp$0
1665
- ? styleQueue$jscomp$0.hrefs.push(
1666
- escapeTextForBrowser(href$jscomp$0)
1667
- )
1668
- : ((styleQueue$jscomp$0 = {
1669
- precedence: escapeTextForBrowser(precedence$jscomp$0),
1670
- rules: [],
1671
- hrefs: [escapeTextForBrowser(href$jscomp$0)],
1672
- sheets: new Map()
1673
- }),
1674
- renderState.styles.set(precedence$jscomp$0, styleQueue$jscomp$0));
1675
- var target = styleQueue$jscomp$0.rules,
1676
- children$jscomp$7 = null,
1677
- innerHTML$jscomp$6 = null,
1678
- propKey$jscomp$9;
1679
- for (propKey$jscomp$9 in props)
1680
- if (hasOwnProperty.call(props, propKey$jscomp$9)) {
1681
- var propValue$jscomp$9 = props[propKey$jscomp$9];
1682
- if (null != propValue$jscomp$9)
1683
- switch (propKey$jscomp$9) {
1684
- case "children":
1685
- children$jscomp$7 = propValue$jscomp$9;
1686
- break;
1687
- case "dangerouslySetInnerHTML":
1688
- innerHTML$jscomp$6 = propValue$jscomp$9;
1689
- }
1690
- }
1691
- var child$jscomp$0 = Array.isArray(children$jscomp$7)
1692
- ? 2 > children$jscomp$7.length
1693
- ? children$jscomp$7[0]
1694
- : null
1695
- : children$jscomp$7;
1696
- "function" !== typeof child$jscomp$0 &&
1697
- "symbol" !== typeof child$jscomp$0 &&
1698
- null !== child$jscomp$0 &&
1699
- void 0 !== child$jscomp$0 &&
1700
- target.push(
1701
- ("" + child$jscomp$0).replace(styleRegex, styleReplacer)
1702
- );
1703
- pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$7);
1761
+ styleQueue$jscomp$0 ||
1762
+ ((styleQueue$jscomp$0 = {
1763
+ precedence: escapeTextForBrowser(precedence$jscomp$0),
1764
+ rules: [],
1765
+ hrefs: [],
1766
+ sheets: new Map()
1767
+ }),
1768
+ renderState.styles.set(precedence$jscomp$0, styleQueue$jscomp$0));
1769
+ var nonceStyle = renderState.nonce.style;
1770
+ if (!nonceStyle || nonceStyle === nonce) {
1771
+ styleQueue$jscomp$0.hrefs.push(escapeTextForBrowser(href$jscomp$0));
1772
+ var target = styleQueue$jscomp$0.rules,
1773
+ children$jscomp$7 = null,
1774
+ innerHTML$jscomp$6 = null,
1775
+ propKey$jscomp$9;
1776
+ for (propKey$jscomp$9 in props)
1777
+ if (hasOwnProperty.call(props, propKey$jscomp$9)) {
1778
+ var propValue$jscomp$9 = props[propKey$jscomp$9];
1779
+ if (null != propValue$jscomp$9)
1780
+ switch (propKey$jscomp$9) {
1781
+ case "children":
1782
+ children$jscomp$7 = propValue$jscomp$9;
1783
+ break;
1784
+ case "dangerouslySetInnerHTML":
1785
+ innerHTML$jscomp$6 = propValue$jscomp$9;
1786
+ }
1787
+ }
1788
+ var child$jscomp$0 = Array.isArray(children$jscomp$7)
1789
+ ? 2 > children$jscomp$7.length
1790
+ ? children$jscomp$7[0]
1791
+ : null
1792
+ : children$jscomp$7;
1793
+ "function" !== typeof child$jscomp$0 &&
1794
+ "symbol" !== typeof child$jscomp$0 &&
1795
+ null !== child$jscomp$0 &&
1796
+ void 0 !== child$jscomp$0 &&
1797
+ target.push(
1798
+ ("" + child$jscomp$0).replace(styleRegex, styleReplacer)
1799
+ );
1800
+ pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$7);
1801
+ }
1704
1802
  }
1705
1803
  styleQueue$jscomp$0 &&
1706
1804
  hoistableState &&
@@ -1710,9 +1808,11 @@ function pushStartInstance(
1710
1808
  }
1711
1809
  return JSCompiler_inline_result$jscomp$6;
1712
1810
  case "meta":
1811
+ var noscriptTagInScope$jscomp$3 = formatContext.tagScope & 1,
1812
+ isFallback$jscomp$1 = formatContext.tagScope & 4;
1713
1813
  if (
1714
1814
  4 === formatContext.insertionMode ||
1715
- formatContext.tagScope & 1 ||
1815
+ noscriptTagInScope$jscomp$3 ||
1716
1816
  null != props.itemProp
1717
1817
  )
1718
1818
  var JSCompiler_inline_result$jscomp$7 = pushSelfClosing(
@@ -1722,7 +1822,7 @@ function pushStartInstance(
1722
1822
  );
1723
1823
  else
1724
1824
  textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"),
1725
- (JSCompiler_inline_result$jscomp$7 = isFallback
1825
+ (JSCompiler_inline_result$jscomp$7 = isFallback$jscomp$1
1726
1826
  ? null
1727
1827
  : "string" === typeof props.charSet
1728
1828
  ? pushSelfClosing(renderState.charsetChunks, props, "meta")
@@ -1780,17 +1880,18 @@ function pushStartInstance(
1780
1880
  target$jscomp$0.push("\n");
1781
1881
  return children$jscomp$8;
1782
1882
  case "img":
1783
- var src = props.src,
1883
+ var pictureOrNoScriptTagInScope = formatContext.tagScope & 3,
1884
+ src = props.src,
1784
1885
  srcSet = props.srcSet;
1785
1886
  if (
1786
1887
  !(
1787
1888
  "lazy" === props.loading ||
1788
1889
  (!src && !srcSet) ||
1789
1890
  ("string" !== typeof src && null != src) ||
1790
- ("string" !== typeof srcSet && null != srcSet)
1891
+ ("string" !== typeof srcSet && null != srcSet) ||
1892
+ "low" === props.fetchPriority ||
1893
+ pictureOrNoScriptTagInScope
1791
1894
  ) &&
1792
- "low" !== props.fetchPriority &&
1793
- !1 === !!(formatContext.tagScope & 3) &&
1794
1895
  ("string" !== typeof src ||
1795
1896
  ":" !== src[4] ||
1796
1897
  ("d" !== src[0] && "D" !== src[0]) ||
@@ -1804,6 +1905,9 @@ function pushStartInstance(
1804
1905
  ("t" !== srcSet[2] && "T" !== srcSet[2]) ||
1805
1906
  ("a" !== srcSet[3] && "A" !== srcSet[3]))
1806
1907
  ) {
1908
+ null !== hoistableState &&
1909
+ formatContext.tagScope & 64 &&
1910
+ (hoistableState.suspenseyImages = !0);
1807
1911
  var sizes = "string" === typeof props.sizes ? props.sizes : void 0,
1808
1912
  key$jscomp$0 = srcSet ? srcSet + "\n" + (sizes || "") : src,
1809
1913
  promotablePreloads = renderState.preloads.images,
@@ -1894,6 +1998,7 @@ function pushStartInstance(
1894
1998
  var preamble = preambleState || renderState.preamble;
1895
1999
  if (preamble.headChunks)
1896
2000
  throw Error("The `<head>` tag may only be rendered once.");
2001
+ null !== preambleState && target$jscomp$0.push("\x3c!--head--\x3e");
1897
2002
  preamble.headChunks = [];
1898
2003
  var JSCompiler_inline_result$jscomp$9 = pushStartSingletonElement(
1899
2004
  preamble.headChunks,
@@ -1912,6 +2017,7 @@ function pushStartInstance(
1912
2017
  var preamble$jscomp$0 = preambleState || renderState.preamble;
1913
2018
  if (preamble$jscomp$0.bodyChunks)
1914
2019
  throw Error("The `<body>` tag may only be rendered once.");
2020
+ null !== preambleState && target$jscomp$0.push("\x3c!--body--\x3e");
1915
2021
  preamble$jscomp$0.bodyChunks = [];
1916
2022
  var JSCompiler_inline_result$jscomp$10 = pushStartSingletonElement(
1917
2023
  preamble$jscomp$0.bodyChunks,
@@ -1930,6 +2036,7 @@ function pushStartInstance(
1930
2036
  var preamble$jscomp$1 = preambleState || renderState.preamble;
1931
2037
  if (preamble$jscomp$1.htmlChunks)
1932
2038
  throw Error("The `<html>` tag may only be rendered once.");
2039
+ null !== preambleState && target$jscomp$0.push("\x3c!--html--\x3e");
1933
2040
  preamble$jscomp$1.htmlChunks = ["<!DOCTYPE html>"];
1934
2041
  var JSCompiler_inline_result$jscomp$11 = pushStartSingletonElement(
1935
2042
  preamble$jscomp$1.htmlChunks,
@@ -2007,16 +2114,13 @@ function hoistPreambleState(renderState, preambleState) {
2007
2114
  renderState = renderState.preamble;
2008
2115
  null === renderState.htmlChunks &&
2009
2116
  preambleState.htmlChunks &&
2010
- ((renderState.htmlChunks = preambleState.htmlChunks),
2011
- (preambleState.contribution |= 1));
2117
+ (renderState.htmlChunks = preambleState.htmlChunks);
2012
2118
  null === renderState.headChunks &&
2013
2119
  preambleState.headChunks &&
2014
- ((renderState.headChunks = preambleState.headChunks),
2015
- (preambleState.contribution |= 4));
2120
+ (renderState.headChunks = preambleState.headChunks);
2016
2121
  null === renderState.bodyChunks &&
2017
2122
  preambleState.bodyChunks &&
2018
- ((renderState.bodyChunks = preambleState.bodyChunks),
2019
- (preambleState.contribution |= 2));
2123
+ (renderState.bodyChunks = preambleState.bodyChunks);
2020
2124
  }
2021
2125
  function writeBootstrap(destination, renderState) {
2022
2126
  renderState = renderState.bootstrapChunks;
@@ -2036,13 +2140,6 @@ function writeStartPendingSuspenseBoundary(destination, renderState, id) {
2036
2140
  writeChunk(destination, id.toString(16));
2037
2141
  return !!destination.write('"></template>');
2038
2142
  }
2039
- function writePreambleContribution(destination, preambleState) {
2040
- preambleState = preambleState.contribution;
2041
- 0 !== preambleState &&
2042
- (writeChunk(destination, "\x3c!--"),
2043
- writeChunk(destination, "" + preambleState),
2044
- writeChunk(destination, "--\x3e"));
2045
- }
2046
2143
  function writeStartSegment(destination, renderState, formatContext, id) {
2047
2144
  switch (formatContext.insertionMode) {
2048
2145
  case 0:
@@ -2181,7 +2278,8 @@ function flushStyleTagsLateForBoundary(styleQueue) {
2181
2278
  hrefs = styleQueue.hrefs,
2182
2279
  i = 0;
2183
2280
  if (hrefs.length) {
2184
- writeChunk(this, '<style media="not all" data-precedence="');
2281
+ writeChunk(this, currentlyFlushingRenderState.startInlineStyle);
2282
+ writeChunk(this, ' media="not all" data-precedence="');
2185
2283
  writeChunk(this, styleQueue.precedence);
2186
2284
  for (writeChunk(this, '" data-href="'); i < hrefs.length - 1; i++)
2187
2285
  writeChunk(this, hrefs[i]), writeChunk(this, " ");
@@ -2202,7 +2300,9 @@ function hasStylesToHoist(stylesheet) {
2202
2300
  function writeHoistablesForBoundary(destination, hoistableState, renderState) {
2203
2301
  currentlyRenderingBoundaryHasStylesToHoist = !1;
2204
2302
  destinationHasCapacity = !0;
2303
+ currentlyFlushingRenderState = renderState;
2205
2304
  hoistableState.styles.forEach(flushStyleTagsLateForBoundary, destination);
2305
+ currentlyFlushingRenderState = null;
2206
2306
  hoistableState.stylesheets.forEach(hasStylesToHoist);
2207
2307
  currentlyRenderingBoundaryHasStylesToHoist &&
2208
2308
  (renderState.stylesToHoist = !0);
@@ -2227,7 +2327,8 @@ function flushStylesInPreamble(styleQueue) {
2227
2327
  var rules = styleQueue.rules,
2228
2328
  hrefs = styleQueue.hrefs;
2229
2329
  if (!hasStylesheets || hrefs.length) {
2230
- writeChunk(this, '<style data-precedence="');
2330
+ writeChunk(this, currentlyFlushingRenderState.startInlineStyle);
2331
+ writeChunk(this, ' data-precedence="');
2231
2332
  writeChunk(this, styleQueue.precedence);
2232
2333
  styleQueue = 0;
2233
2334
  if (hrefs.length) {
@@ -2275,6 +2376,15 @@ function preloadLateStyles(styleQueue) {
2275
2376
  styleQueue.sheets.forEach(preloadLateStyle, this);
2276
2377
  styleQueue.sheets.clear();
2277
2378
  }
2379
+ function pushCompletedShellIdAttribute(target, resumableState) {
2380
+ 0 === (resumableState.instructions & 32) &&
2381
+ ((resumableState.instructions |= 32),
2382
+ target.push(
2383
+ ' id="',
2384
+ escapeTextForBrowser("_" + resumableState.idPrefix + "R_"),
2385
+ '"'
2386
+ ));
2387
+ }
2278
2388
  function writeStyleResourceDependenciesInJS(destination, hoistableState) {
2279
2389
  writeChunk(destination, "[");
2280
2390
  var nextArrayOpenBrackChunk = "[";
@@ -2377,7 +2487,7 @@ function writeStyleResourceAttributeInJS(destination, name, value) {
2377
2487
  writeChunk(destination, escapeJSObjectForInstructionScripts(name));
2378
2488
  }
2379
2489
  function createHoistableState() {
2380
- return { styles: new Set(), stylesheets: new Set() };
2490
+ return { styles: new Set(), stylesheets: new Set(), suspenseyImages: !1 };
2381
2491
  }
2382
2492
  function prefetchDNS(href) {
2383
2493
  var request = currentRequest ? currentRequest : null;
@@ -2782,6 +2892,14 @@ function hoistStyleQueueDependency(styleQueue) {
2782
2892
  function hoistStylesheetDependency(stylesheet) {
2783
2893
  this.stylesheets.add(stylesheet);
2784
2894
  }
2895
+ function hoistHoistables(parentState, childState) {
2896
+ childState.styles.forEach(hoistStyleQueueDependency, parentState);
2897
+ childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
2898
+ childState.suspenseyImages && (parentState.suspenseyImages = !0);
2899
+ }
2900
+ function hasSuspenseyContent(hoistableState) {
2901
+ return 0 < hoistableState.stylesheets.size || hoistableState.suspenseyImages;
2902
+ }
2785
2903
  var bind = Function.prototype.bind,
2786
2904
  REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference");
2787
2905
  function getComponentNameFromType(type) {
@@ -2810,7 +2928,7 @@ function getComponentNameFromType(type) {
2810
2928
  case REACT_PORTAL_TYPE:
2811
2929
  return "Portal";
2812
2930
  case REACT_CONTEXT_TYPE:
2813
- return (type.displayName || "Context") + ".Provider";
2931
+ return type.displayName || "Context";
2814
2932
  case REACT_CONSUMER_TYPE:
2815
2933
  return (type._context.displayName || "Context") + ".Consumer";
2816
2934
  case REACT_FORWARD_REF_TYPE:
@@ -2952,15 +3070,15 @@ function clz32Fallback(x) {
2952
3070
  x >>>= 0;
2953
3071
  return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;
2954
3072
  }
3073
+ function noop() {}
2955
3074
  var SuspenseException = Error(
2956
3075
  "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`."
2957
3076
  );
2958
- function noop$2() {}
2959
3077
  function trackUsedThenable(thenableState, thenable, index) {
2960
3078
  index = thenableState[index];
2961
3079
  void 0 === index
2962
3080
  ? thenableState.push(thenable)
2963
- : index !== thenable && (thenable.then(noop$2, noop$2), (thenable = index));
3081
+ : index !== thenable && (thenable.then(noop, noop), (thenable = index));
2964
3082
  switch (thenable.status) {
2965
3083
  case "fulfilled":
2966
3084
  return thenable.value;
@@ -2968,7 +3086,7 @@ function trackUsedThenable(thenableState, thenable, index) {
2968
3086
  throw thenable.reason;
2969
3087
  default:
2970
3088
  "string" === typeof thenable.status
2971
- ? thenable.then(noop$2, noop$2)
3089
+ ? thenable.then(noop, noop)
2972
3090
  : ((thenableState = thenable),
2973
3091
  (thenableState.status = "pending"),
2974
3092
  thenableState.then(
@@ -3148,6 +3266,11 @@ function dispatchAction(componentIdentity, queue, action) {
3148
3266
  queue.next = componentIdentity;
3149
3267
  }
3150
3268
  }
3269
+ function throwOnUseEffectEventCall() {
3270
+ throw Error(
3271
+ "A function wrapped in useEffectEvent can't be called during rendering."
3272
+ );
3273
+ }
3151
3274
  function unsupportedStartTransition() {
3152
3275
  throw Error("startTransition cannot be called during server rendering.");
3153
3276
  }
@@ -3223,7 +3346,6 @@ function unwrapThenable(thenable) {
3223
3346
  function unsupportedRefresh() {
3224
3347
  throw Error("Cache cannot be refreshed during server rendering.");
3225
3348
  }
3226
- function noop$1() {}
3227
3349
  var HooksDispatcher = {
3228
3350
  readContext: function (context) {
3229
3351
  return context._currentValue;
@@ -3253,16 +3375,16 @@ var HooksDispatcher = {
3253
3375
  useState: function (initialState) {
3254
3376
  return useReducer(basicStateReducer, initialState);
3255
3377
  },
3256
- useInsertionEffect: noop$1,
3257
- useLayoutEffect: noop$1,
3378
+ useInsertionEffect: noop,
3379
+ useLayoutEffect: noop,
3258
3380
  useCallback: function (callback, deps) {
3259
3381
  return useMemo(function () {
3260
3382
  return callback;
3261
3383
  }, deps);
3262
3384
  },
3263
- useImperativeHandle: noop$1,
3264
- useEffect: noop$1,
3265
- useDebugValue: noop$1,
3385
+ useImperativeHandle: noop,
3386
+ useEffect: noop,
3387
+ useDebugValue: noop,
3266
3388
  useDeferredValue: function (value, initialValue) {
3267
3389
  resolveCurrentlyRenderingComponent();
3268
3390
  return void 0 !== initialValue ? initialValue : value;
@@ -3287,9 +3409,9 @@ var HooksDispatcher = {
3287
3409
  );
3288
3410
  overflow = localIdCounter++;
3289
3411
  JSCompiler_inline_result =
3290
- "\u00ab" + resumableState.idPrefix + "R" + JSCompiler_inline_result;
3412
+ "_" + resumableState.idPrefix + "R_" + JSCompiler_inline_result;
3291
3413
  0 < overflow && (JSCompiler_inline_result += "H" + overflow.toString(32));
3292
- return JSCompiler_inline_result + "\u00bb";
3414
+ return JSCompiler_inline_result + "_";
3293
3415
  },
3294
3416
  useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {
3295
3417
  if (void 0 === getServerSnapshot)
@@ -3315,12 +3437,18 @@ var HooksDispatcher = {
3315
3437
  },
3316
3438
  useCacheRefresh: function () {
3317
3439
  return unsupportedRefresh;
3440
+ },
3441
+ useEffectEvent: function () {
3442
+ return throwOnUseEffectEventCall;
3318
3443
  }
3319
3444
  },
3320
3445
  currentResumableState = null,
3321
3446
  DefaultAsyncDispatcher = {
3322
3447
  getCacheForType: function () {
3323
3448
  throw Error("Not implemented.");
3449
+ },
3450
+ cacheSignal: function () {
3451
+ throw Error("Not implemented.");
3324
3452
  }
3325
3453
  },
3326
3454
  prefix,
@@ -3498,13 +3626,37 @@ function describeComponentStackByType(type) {
3498
3626
  }
3499
3627
  return describeComponentStackByType(type);
3500
3628
  }
3501
- if ("string" === typeof type.name)
3502
- return (
3503
- (payload = type.env),
3504
- describeBuiltInComponentFrame(
3505
- type.name + (payload ? " [" + payload + "]" : "")
3506
- )
3507
- );
3629
+ if ("string" === typeof type.name) {
3630
+ a: {
3631
+ payload = type.name;
3632
+ lazyComponent = type.env;
3633
+ var location = type.debugLocation;
3634
+ if (
3635
+ null != location &&
3636
+ ((type = Error.prepareStackTrace),
3637
+ (Error.prepareStackTrace = void 0),
3638
+ (location = location.stack),
3639
+ (Error.prepareStackTrace = type),
3640
+ location.startsWith("Error: react-stack-top-frame\n") &&
3641
+ (location = location.slice(29)),
3642
+ (type = location.indexOf("\n")),
3643
+ -1 !== type && (location = location.slice(type + 1)),
3644
+ (type = location.indexOf("react_stack_bottom_frame")),
3645
+ -1 !== type && (type = location.lastIndexOf("\n", type)),
3646
+ (type = -1 !== type ? (location = location.slice(0, type)) : ""),
3647
+ (location = type.lastIndexOf("\n")),
3648
+ (type = -1 === location ? type : type.slice(location + 1)),
3649
+ -1 !== type.indexOf(payload))
3650
+ ) {
3651
+ payload = "\n" + type;
3652
+ break a;
3653
+ }
3654
+ payload = describeBuiltInComponentFrame(
3655
+ payload + (lazyComponent ? " [" + lazyComponent + "]" : "")
3656
+ );
3657
+ }
3658
+ return payload;
3659
+ }
3508
3660
  }
3509
3661
  switch (type) {
3510
3662
  case REACT_SUSPENSE_LIST_TYPE:
@@ -3514,6 +3666,12 @@ function describeComponentStackByType(type) {
3514
3666
  }
3515
3667
  return "";
3516
3668
  }
3669
+ function isEligibleForOutlining(request, boundary) {
3670
+ return (
3671
+ (500 < boundary.byteSize || hasSuspenseyContent(boundary.contentState)) &&
3672
+ null === boundary.contentPreamble
3673
+ );
3674
+ }
3517
3675
  function defaultErrorHandler(error) {
3518
3676
  if (
3519
3677
  "object" === typeof error &&
@@ -3534,7 +3692,7 @@ function defaultErrorHandler(error) {
3534
3692
  : error.splice(
3535
3693
  0,
3536
3694
  0,
3537
- "%c%s%c ",
3695
+ "%c%s%c",
3538
3696
  "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px",
3539
3697
  " " + JSCompiler_inline_result + " ",
3540
3698
  ""
@@ -3545,7 +3703,6 @@ function defaultErrorHandler(error) {
3545
3703
  } else console.error(error);
3546
3704
  return null;
3547
3705
  }
3548
- function noop() {}
3549
3706
  function RequestInstance(
3550
3707
  resumableState,
3551
3708
  renderState,
@@ -3571,6 +3728,7 @@ function RequestInstance(
3571
3728
  this.fatalError = null;
3572
3729
  this.pendingRootTasks = this.allPendingTasks = this.nextSegmentId = 0;
3573
3730
  this.completedPreambleSegments = this.completedRootSegment = null;
3731
+ this.byteSize = 0;
3574
3732
  this.abortableTasks = abortSet;
3575
3733
  this.pingedTasks = [];
3576
3734
  this.clientRenderedBoundaries = [];
@@ -3636,7 +3794,7 @@ function createRequest(
3636
3794
  null,
3637
3795
  emptyTreeContext,
3638
3796
  null,
3639
- !1
3797
+ null
3640
3798
  );
3641
3799
  pushComponentStack(children);
3642
3800
  resumableState.pingedTasks.push(children);
@@ -3657,15 +3815,17 @@ function pingTask(request, task) {
3657
3815
  }
3658
3816
  function createSuspenseBoundary(
3659
3817
  request,
3818
+ row,
3660
3819
  fallbackAbortableTasks,
3661
3820
  contentPreamble,
3662
3821
  fallbackPreamble
3663
3822
  ) {
3664
- return {
3823
+ fallbackAbortableTasks = {
3665
3824
  status: 0,
3666
3825
  rootSegmentID: -1,
3667
3826
  parentFlushed: !1,
3668
3827
  pendingTasks: 0,
3828
+ row: row,
3669
3829
  completedSegments: [],
3670
3830
  byteSize: 0,
3671
3831
  fallbackAbortableTasks: fallbackAbortableTasks,
@@ -3677,6 +3837,17 @@ function createSuspenseBoundary(
3677
3837
  trackedContentKeyPath: null,
3678
3838
  trackedFallbackNode: null
3679
3839
  };
3840
+ null !== row &&
3841
+ (row.pendingTasks++,
3842
+ (contentPreamble = row.boundaries),
3843
+ null !== contentPreamble &&
3844
+ (request.allPendingTasks++,
3845
+ fallbackAbortableTasks.pendingTasks++,
3846
+ contentPreamble.push(fallbackAbortableTasks)),
3847
+ (request = row.inheritedHoistables),
3848
+ null !== request &&
3849
+ hoistHoistables(fallbackAbortableTasks.contentState, request));
3850
+ return fallbackAbortableTasks;
3680
3851
  }
3681
3852
  function createRenderTask(
3682
3853
  request,
@@ -3692,13 +3863,14 @@ function createRenderTask(
3692
3863
  formatContext,
3693
3864
  context,
3694
3865
  treeContext,
3695
- componentStack,
3696
- isFallback
3866
+ row,
3867
+ componentStack
3697
3868
  ) {
3698
3869
  request.allPendingTasks++;
3699
3870
  null === blockedBoundary
3700
3871
  ? request.pendingRootTasks++
3701
3872
  : blockedBoundary.pendingTasks++;
3873
+ null !== row && row.pendingTasks++;
3702
3874
  var task = {
3703
3875
  replay: null,
3704
3876
  node: node,
@@ -3715,9 +3887,9 @@ function createRenderTask(
3715
3887
  formatContext: formatContext,
3716
3888
  context: context,
3717
3889
  treeContext: treeContext,
3890
+ row: row,
3718
3891
  componentStack: componentStack,
3719
- thenableState: thenableState,
3720
- isFallback: isFallback
3892
+ thenableState: thenableState
3721
3893
  };
3722
3894
  abortSet.add(task);
3723
3895
  return task;
@@ -3735,13 +3907,14 @@ function createReplayTask(
3735
3907
  formatContext,
3736
3908
  context,
3737
3909
  treeContext,
3738
- componentStack,
3739
- isFallback
3910
+ row,
3911
+ componentStack
3740
3912
  ) {
3741
3913
  request.allPendingTasks++;
3742
3914
  null === blockedBoundary
3743
3915
  ? request.pendingRootTasks++
3744
3916
  : blockedBoundary.pendingTasks++;
3917
+ null !== row && row.pendingTasks++;
3745
3918
  replay.pendingTasks++;
3746
3919
  var task = {
3747
3920
  replay: replay,
@@ -3759,9 +3932,9 @@ function createReplayTask(
3759
3932
  formatContext: formatContext,
3760
3933
  context: context,
3761
3934
  treeContext: treeContext,
3935
+ row: row,
3762
3936
  componentStack: componentStack,
3763
- thenableState: thenableState,
3764
- isFallback: isFallback
3937
+ thenableState: thenableState
3765
3938
  };
3766
3939
  abortSet.add(task);
3767
3940
  return task;
@@ -3796,6 +3969,13 @@ function pushComponentStack(task) {
3796
3969
  task.componentStack = { parent: task.componentStack, type: node.type };
3797
3970
  }
3798
3971
  }
3972
+ function replaceSuspenseComponentStackWithSuspenseFallbackStack(
3973
+ componentStack
3974
+ ) {
3975
+ return null === componentStack
3976
+ ? null
3977
+ : { parent: componentStack.parent, type: "Suspense Fallback" };
3978
+ }
3799
3979
  function getThrownInfo(node$jscomp$0) {
3800
3980
  var errorInfo = {};
3801
3981
  node$jscomp$0 &&
@@ -3837,6 +4017,173 @@ function fatalError(request, error) {
3837
4017
  ? ((request.status = 14), closeWithError(request.destination, error))
3838
4018
  : ((request.status = 13), (request.fatalError = error));
3839
4019
  }
4020
+ function finishSuspenseListRow(request, row) {
4021
+ unblockSuspenseListRow(request, row.next, row.hoistables);
4022
+ }
4023
+ function unblockSuspenseListRow(request, unblockedRow, inheritedHoistables) {
4024
+ for (; null !== unblockedRow; ) {
4025
+ null !== inheritedHoistables &&
4026
+ (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
4027
+ (unblockedRow.inheritedHoistables = inheritedHoistables));
4028
+ var unblockedBoundaries = unblockedRow.boundaries;
4029
+ if (null !== unblockedBoundaries) {
4030
+ unblockedRow.boundaries = null;
4031
+ for (var i = 0; i < unblockedBoundaries.length; i++) {
4032
+ var unblockedBoundary = unblockedBoundaries[i];
4033
+ null !== inheritedHoistables &&
4034
+ hoistHoistables(unblockedBoundary.contentState, inheritedHoistables);
4035
+ finishedTask(request, unblockedBoundary, null, null);
4036
+ }
4037
+ }
4038
+ unblockedRow.pendingTasks--;
4039
+ if (0 < unblockedRow.pendingTasks) break;
4040
+ inheritedHoistables = unblockedRow.hoistables;
4041
+ unblockedRow = unblockedRow.next;
4042
+ }
4043
+ }
4044
+ function tryToResolveTogetherRow(request, togetherRow) {
4045
+ var boundaries = togetherRow.boundaries;
4046
+ if (null !== boundaries && togetherRow.pendingTasks === boundaries.length) {
4047
+ for (var allCompleteAndInlinable = !0, i = 0; i < boundaries.length; i++) {
4048
+ var rowBoundary = boundaries[i];
4049
+ if (
4050
+ 1 !== rowBoundary.pendingTasks ||
4051
+ rowBoundary.parentFlushed ||
4052
+ isEligibleForOutlining(request, rowBoundary)
4053
+ ) {
4054
+ allCompleteAndInlinable = !1;
4055
+ break;
4056
+ }
4057
+ }
4058
+ allCompleteAndInlinable &&
4059
+ unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
4060
+ }
4061
+ }
4062
+ function createSuspenseListRow(previousRow) {
4063
+ var newRow = {
4064
+ pendingTasks: 1,
4065
+ boundaries: null,
4066
+ hoistables: createHoistableState(),
4067
+ inheritedHoistables: null,
4068
+ together: !1,
4069
+ next: null
4070
+ };
4071
+ null !== previousRow &&
4072
+ 0 < previousRow.pendingTasks &&
4073
+ (newRow.pendingTasks++,
4074
+ (newRow.boundaries = []),
4075
+ (previousRow.next = newRow));
4076
+ return newRow;
4077
+ }
4078
+ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
4079
+ var prevKeyPath = task.keyPath,
4080
+ prevTreeContext = task.treeContext,
4081
+ prevRow = task.row;
4082
+ task.keyPath = keyPath;
4083
+ keyPath = rows.length;
4084
+ var previousSuspenseListRow = null;
4085
+ if (null !== task.replay) {
4086
+ var resumeSlots = task.replay.slots;
4087
+ if (null !== resumeSlots && "object" === typeof resumeSlots)
4088
+ for (var n = 0; n < keyPath; n++) {
4089
+ var i =
4090
+ "backwards" !== revealOrder &&
4091
+ "unstable_legacy-backwards" !== revealOrder
4092
+ ? n
4093
+ : keyPath - 1 - n,
4094
+ node = rows[i];
4095
+ task.row = previousSuspenseListRow = createSuspenseListRow(
4096
+ previousSuspenseListRow
4097
+ );
4098
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
4099
+ var resumeSegmentID = resumeSlots[i];
4100
+ "number" === typeof resumeSegmentID
4101
+ ? (resumeNode(request, task, resumeSegmentID, node, i),
4102
+ delete resumeSlots[i])
4103
+ : renderNode(request, task, node, i);
4104
+ 0 === --previousSuspenseListRow.pendingTasks &&
4105
+ finishSuspenseListRow(request, previousSuspenseListRow);
4106
+ }
4107
+ else
4108
+ for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
4109
+ (n =
4110
+ "backwards" !== revealOrder &&
4111
+ "unstable_legacy-backwards" !== revealOrder
4112
+ ? resumeSlots
4113
+ : keyPath - 1 - resumeSlots),
4114
+ (i = rows[n]),
4115
+ (task.row = previousSuspenseListRow =
4116
+ createSuspenseListRow(previousSuspenseListRow)),
4117
+ (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
4118
+ renderNode(request, task, i, n),
4119
+ 0 === --previousSuspenseListRow.pendingTasks &&
4120
+ finishSuspenseListRow(request, previousSuspenseListRow);
4121
+ } else if (
4122
+ "backwards" !== revealOrder &&
4123
+ "unstable_legacy-backwards" !== revealOrder
4124
+ )
4125
+ for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
4126
+ (resumeSlots = rows[revealOrder]),
4127
+ (task.row = previousSuspenseListRow =
4128
+ createSuspenseListRow(previousSuspenseListRow)),
4129
+ (task.treeContext = pushTreeContext(
4130
+ prevTreeContext,
4131
+ keyPath,
4132
+ revealOrder
4133
+ )),
4134
+ renderNode(request, task, resumeSlots, revealOrder),
4135
+ 0 === --previousSuspenseListRow.pendingTasks &&
4136
+ finishSuspenseListRow(request, previousSuspenseListRow);
4137
+ else {
4138
+ revealOrder = task.blockedSegment;
4139
+ resumeSlots = revealOrder.children.length;
4140
+ n = revealOrder.chunks.length;
4141
+ for (i = keyPath - 1; 0 <= i; i--) {
4142
+ node = rows[i];
4143
+ task.row = previousSuspenseListRow = createSuspenseListRow(
4144
+ previousSuspenseListRow
4145
+ );
4146
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
4147
+ resumeSegmentID = createPendingSegment(
4148
+ request,
4149
+ n,
4150
+ null,
4151
+ task.formatContext,
4152
+ 0 === i ? revealOrder.lastPushedText : !0,
4153
+ !0
4154
+ );
4155
+ revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
4156
+ task.blockedSegment = resumeSegmentID;
4157
+ try {
4158
+ renderNode(request, task, node, i),
4159
+ pushSegmentFinale(
4160
+ resumeSegmentID.chunks,
4161
+ request.renderState,
4162
+ resumeSegmentID.lastPushedText,
4163
+ resumeSegmentID.textEmbedded
4164
+ ),
4165
+ (resumeSegmentID.status = 1),
4166
+ finishedSegment(request, task.blockedBoundary, resumeSegmentID),
4167
+ 0 === --previousSuspenseListRow.pendingTasks &&
4168
+ finishSuspenseListRow(request, previousSuspenseListRow);
4169
+ } catch (thrownValue) {
4170
+ throw (
4171
+ ((resumeSegmentID.status = 12 === request.status ? 3 : 4),
4172
+ thrownValue)
4173
+ );
4174
+ }
4175
+ }
4176
+ task.blockedSegment = revealOrder;
4177
+ revealOrder.lastPushedText = !1;
4178
+ }
4179
+ null !== prevRow &&
4180
+ null !== previousSuspenseListRow &&
4181
+ 0 < previousSuspenseListRow.pendingTasks &&
4182
+ (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
4183
+ task.treeContext = prevTreeContext;
4184
+ task.row = prevRow;
4185
+ task.keyPath = prevKeyPath;
4186
+ }
3840
4187
  function renderWithHooks(request, task, keyPath, Component, props, secondArg) {
3841
4188
  var prevThenableState = task.thenableState;
3842
4189
  task.thenableState = null;
@@ -3904,9 +4251,9 @@ function renderElement(request, task, keyPath, type, props, ref) {
3904
4251
  var defaultProps = type.defaultProps;
3905
4252
  if (defaultProps) {
3906
4253
  newProps === props && (newProps = assign({}, newProps, props));
3907
- for (var propName$33 in defaultProps)
3908
- void 0 === newProps[propName$33] &&
3909
- (newProps[propName$33] = defaultProps[propName$33]);
4254
+ for (var propName$43 in defaultProps)
4255
+ void 0 === newProps[propName$43] &&
4256
+ (newProps[propName$43] = defaultProps[propName$43]);
3910
4257
  }
3911
4258
  props = newProps;
3912
4259
  newProps = emptyContextObject;
@@ -3966,16 +4313,16 @@ function renderElement(request, task, keyPath, type, props, ref) {
3966
4313
  defaultProps = ref ? type[0] : newProps.state;
3967
4314
  initialState = !0;
3968
4315
  for (ref = ref ? 1 : 0; ref < type.length; ref++)
3969
- (propName$33 = type[ref]),
3970
- (propName$33 =
3971
- "function" === typeof propName$33
3972
- ? propName$33.call(newProps, defaultProps, props, void 0)
3973
- : propName$33),
3974
- null != propName$33 &&
4316
+ (propName$43 = type[ref]),
4317
+ (propName$43 =
4318
+ "function" === typeof propName$43
4319
+ ? propName$43.call(newProps, defaultProps, props, void 0)
4320
+ : propName$43),
4321
+ null != propName$43 &&
3975
4322
  (initialState
3976
4323
  ? ((initialState = !1),
3977
- (defaultProps = assign({}, defaultProps, propName$33)))
3978
- : assign(defaultProps, propName$33));
4324
+ (defaultProps = assign({}, defaultProps, propName$43)))
4325
+ : assign(defaultProps, propName$43));
3979
4326
  newProps.state = defaultProps;
3980
4327
  }
3981
4328
  else defaultProps.queue = null;
@@ -4009,7 +4356,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4009
4356
  (task.formatContext = defaultProps),
4010
4357
  (task.keyPath = initialState);
4011
4358
  else {
4012
- ref = pushStartInstance(
4359
+ initialState = pushStartInstance(
4013
4360
  newProps.chunks,
4014
4361
  type,
4015
4362
  props,
@@ -4018,47 +4365,44 @@ function renderElement(request, task, keyPath, type, props, ref) {
4018
4365
  task.blockedPreamble,
4019
4366
  task.hoistableState,
4020
4367
  task.formatContext,
4021
- newProps.lastPushedText,
4022
- task.isFallback
4368
+ newProps.lastPushedText
4023
4369
  );
4024
4370
  newProps.lastPushedText = !1;
4025
4371
  defaultProps = task.formatContext;
4026
- initialState = task.keyPath;
4372
+ ref = task.keyPath;
4027
4373
  task.keyPath = keyPath;
4028
- 3 ===
4029
- (task.formatContext = getChildFormatContext(defaultProps, type, props))
4030
- .insertionMode
4031
- ? ((keyPath = createPendingSegment(
4032
- request,
4033
- 0,
4034
- null,
4035
- task.formatContext,
4036
- !1,
4037
- !1
4038
- )),
4039
- newProps.preambleChildren.push(keyPath),
4040
- (keyPath = createRenderTask(
4041
- request,
4042
- null,
4043
- ref,
4044
- -1,
4045
- task.blockedBoundary,
4046
- keyPath,
4047
- task.blockedPreamble,
4048
- task.hoistableState,
4049
- request.abortableTasks,
4050
- task.keyPath,
4051
- task.formatContext,
4052
- task.context,
4053
- task.treeContext,
4054
- task.componentStack,
4055
- task.isFallback
4056
- )),
4057
- pushComponentStack(keyPath),
4058
- request.pingedTasks.push(keyPath))
4059
- : renderNode(request, task, ref, -1);
4374
+ if (
4375
+ 3 ===
4376
+ (task.formatContext = getChildFormatContext(defaultProps, type, props))
4377
+ .insertionMode
4378
+ ) {
4379
+ keyPath = createPendingSegment(
4380
+ request,
4381
+ 0,
4382
+ null,
4383
+ task.formatContext,
4384
+ !1,
4385
+ !1
4386
+ );
4387
+ newProps.preambleChildren.push(keyPath);
4388
+ task.blockedSegment = keyPath;
4389
+ try {
4390
+ (keyPath.status = 6),
4391
+ renderNode(request, task, initialState, -1),
4392
+ pushSegmentFinale(
4393
+ keyPath.chunks,
4394
+ request.renderState,
4395
+ keyPath.lastPushedText,
4396
+ keyPath.textEmbedded
4397
+ ),
4398
+ (keyPath.status = 1),
4399
+ finishedSegment(request, task.blockedBoundary, keyPath);
4400
+ } finally {
4401
+ task.blockedSegment = newProps;
4402
+ }
4403
+ } else renderNode(request, task, initialState, -1);
4060
4404
  task.formatContext = defaultProps;
4061
- task.keyPath = initialState;
4405
+ task.keyPath = ref;
4062
4406
  a: {
4063
4407
  task = newProps.chunks;
4064
4408
  request = request.resumableState;
@@ -4113,17 +4457,67 @@ function renderElement(request, task, keyPath, type, props, ref) {
4113
4457
  task.keyPath = type;
4114
4458
  return;
4115
4459
  case REACT_ACTIVITY_TYPE:
4116
- "hidden" !== props.mode &&
4117
- ((type = task.keyPath),
4118
- (task.keyPath = keyPath),
4119
- renderNodeDestructive(request, task, props.children, -1),
4120
- (task.keyPath = type));
4460
+ type = task.blockedSegment;
4461
+ null === type
4462
+ ? "hidden" !== props.mode &&
4463
+ ((type = task.keyPath),
4464
+ (task.keyPath = keyPath),
4465
+ renderNode(request, task, props.children, -1),
4466
+ (task.keyPath = type))
4467
+ : "hidden" !== props.mode &&
4468
+ (type.chunks.push("\x3c!--&--\x3e"),
4469
+ (type.lastPushedText = !1),
4470
+ (newProps = task.keyPath),
4471
+ (task.keyPath = keyPath),
4472
+ renderNode(request, task, props.children, -1),
4473
+ (task.keyPath = newProps),
4474
+ type.chunks.push("\x3c!--/&--\x3e"),
4475
+ (type.lastPushedText = !1));
4121
4476
  return;
4122
4477
  case REACT_SUSPENSE_LIST_TYPE:
4123
- type = task.keyPath;
4124
- task.keyPath = keyPath;
4125
- renderNodeDestructive(request, task, props.children, -1);
4126
- task.keyPath = type;
4478
+ a: {
4479
+ type = props.children;
4480
+ props = props.revealOrder;
4481
+ if (
4482
+ "forwards" === props ||
4483
+ "backwards" === props ||
4484
+ "unstable_legacy-backwards" === props
4485
+ ) {
4486
+ if (isArrayImpl(type)) {
4487
+ renderSuspenseListRows(request, task, keyPath, type, props);
4488
+ break a;
4489
+ }
4490
+ if ((newProps = getIteratorFn(type)))
4491
+ if ((newProps = newProps.call(type))) {
4492
+ defaultProps = newProps.next();
4493
+ if (!defaultProps.done) {
4494
+ do defaultProps = newProps.next();
4495
+ while (!defaultProps.done);
4496
+ renderSuspenseListRows(request, task, keyPath, type, props);
4497
+ }
4498
+ break a;
4499
+ }
4500
+ }
4501
+ "together" === props
4502
+ ? ((props = task.keyPath),
4503
+ (newProps = task.row),
4504
+ (defaultProps = task.row = createSuspenseListRow(null)),
4505
+ (defaultProps.boundaries = []),
4506
+ (defaultProps.together = !0),
4507
+ (task.keyPath = keyPath),
4508
+ renderNodeDestructive(request, task, type, -1),
4509
+ 0 === --defaultProps.pendingTasks &&
4510
+ finishSuspenseListRow(request, defaultProps),
4511
+ (task.keyPath = props),
4512
+ (task.row = newProps),
4513
+ null !== newProps &&
4514
+ 0 < defaultProps.pendingTasks &&
4515
+ (newProps.pendingTasks++, (defaultProps.next = newProps)))
4516
+ : ((props = task.keyPath),
4517
+ (task.keyPath = keyPath),
4518
+ renderNodeDestructive(request, task, type, -1),
4519
+ (task.keyPath = props));
4520
+ }
4127
4521
  return;
4128
4522
  case REACT_VIEW_TRANSITION_TYPE:
4129
4523
  case REACT_SCOPE_TYPE:
@@ -4131,43 +4525,61 @@ function renderElement(request, task, keyPath, type, props, ref) {
4131
4525
  case REACT_SUSPENSE_TYPE:
4132
4526
  a: if (null !== task.replay) {
4133
4527
  type = task.keyPath;
4528
+ newProps = task.formatContext;
4529
+ defaultProps = task.row;
4134
4530
  task.keyPath = keyPath;
4531
+ task.formatContext = getSuspenseContentFormatContext(
4532
+ request.resumableState,
4533
+ newProps
4534
+ );
4535
+ task.row = null;
4135
4536
  keyPath = props.children;
4136
4537
  try {
4137
4538
  renderNode(request, task, keyPath, -1);
4138
4539
  } finally {
4139
- task.keyPath = type;
4540
+ (task.keyPath = type),
4541
+ (task.formatContext = newProps),
4542
+ (task.row = defaultProps);
4140
4543
  }
4141
4544
  } else {
4142
4545
  type = task.keyPath;
4143
- var parentBoundary = task.blockedBoundary;
4144
- ref = task.blockedPreamble;
4145
- var parentHoistableState = task.hoistableState;
4146
- propName$33 = task.blockedSegment;
4147
- propName = props.fallback;
4546
+ ref = task.formatContext;
4547
+ var prevRow = task.row;
4548
+ propName$43 = task.blockedBoundary;
4549
+ propName = task.blockedPreamble;
4550
+ var parentHoistableState = task.hoistableState,
4551
+ parentSegment = task.blockedSegment,
4552
+ fallback = props.fallback;
4148
4553
  props = props.children;
4149
4554
  var fallbackAbortSet = new Set();
4150
4555
  var newBoundary =
4151
4556
  2 > task.formatContext.insertionMode
4152
4557
  ? createSuspenseBoundary(
4153
4558
  request,
4559
+ task.row,
4154
4560
  fallbackAbortSet,
4155
4561
  createPreambleState(),
4156
4562
  createPreambleState()
4157
4563
  )
4158
- : createSuspenseBoundary(request, fallbackAbortSet, null, null);
4564
+ : createSuspenseBoundary(
4565
+ request,
4566
+ task.row,
4567
+ fallbackAbortSet,
4568
+ null,
4569
+ null
4570
+ );
4159
4571
  null !== request.trackedPostpones &&
4160
4572
  (newBoundary.trackedContentKeyPath = keyPath);
4161
4573
  var boundarySegment = createPendingSegment(
4162
4574
  request,
4163
- propName$33.chunks.length,
4575
+ parentSegment.chunks.length,
4164
4576
  newBoundary,
4165
4577
  task.formatContext,
4166
4578
  !1,
4167
4579
  !1
4168
4580
  );
4169
- propName$33.children.push(boundarySegment);
4170
- propName$33.lastPushedText = !1;
4581
+ parentSegment.children.push(boundarySegment);
4582
+ parentSegment.lastPushedText = !1;
4171
4583
  var contentRootSegment = createPendingSegment(
4172
4584
  request,
4173
4585
  0,
@@ -4178,29 +4590,41 @@ function renderElement(request, task, keyPath, type, props, ref) {
4178
4590
  );
4179
4591
  contentRootSegment.parentFlushed = !0;
4180
4592
  if (null !== request.trackedPostpones) {
4181
- newProps = [keyPath[0], "Suspense Fallback", keyPath[2]];
4182
- defaultProps = [newProps[1], newProps[2], [], null];
4183
- request.trackedPostpones.workingMap.set(newProps, defaultProps);
4184
- newBoundary.trackedFallbackNode = defaultProps;
4593
+ newProps = task.componentStack;
4594
+ defaultProps = [keyPath[0], "Suspense Fallback", keyPath[2]];
4595
+ initialState = [defaultProps[1], defaultProps[2], [], null];
4596
+ request.trackedPostpones.workingMap.set(defaultProps, initialState);
4597
+ newBoundary.trackedFallbackNode = initialState;
4185
4598
  task.blockedSegment = boundarySegment;
4186
4599
  task.blockedPreamble = newBoundary.fallbackPreamble;
4187
- task.keyPath = newProps;
4600
+ task.keyPath = defaultProps;
4601
+ task.formatContext = getSuspenseFallbackFormatContext(
4602
+ request.resumableState,
4603
+ ref
4604
+ );
4605
+ task.componentStack =
4606
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(newProps);
4188
4607
  boundarySegment.status = 6;
4189
4608
  try {
4190
- renderNode(request, task, propName, -1),
4191
- boundarySegment.lastPushedText &&
4192
- boundarySegment.textEmbedded &&
4193
- boundarySegment.chunks.push("\x3c!-- --\x3e"),
4194
- (boundarySegment.status = 1);
4609
+ renderNode(request, task, fallback, -1),
4610
+ pushSegmentFinale(
4611
+ boundarySegment.chunks,
4612
+ request.renderState,
4613
+ boundarySegment.lastPushedText,
4614
+ boundarySegment.textEmbedded
4615
+ ),
4616
+ (boundarySegment.status = 1),
4617
+ finishedSegment(request, propName$43, boundarySegment);
4195
4618
  } catch (thrownValue) {
4196
4619
  throw (
4197
4620
  ((boundarySegment.status = 12 === request.status ? 3 : 4),
4198
4621
  thrownValue)
4199
4622
  );
4200
4623
  } finally {
4201
- (task.blockedSegment = propName$33),
4202
- (task.blockedPreamble = ref),
4203
- (task.keyPath = type);
4624
+ (task.blockedSegment = parentSegment),
4625
+ (task.blockedPreamble = propName),
4626
+ (task.keyPath = type),
4627
+ (task.formatContext = ref);
4204
4628
  }
4205
4629
  task = createRenderTask(
4206
4630
  request,
@@ -4213,11 +4637,14 @@ function renderElement(request, task, keyPath, type, props, ref) {
4213
4637
  newBoundary.contentState,
4214
4638
  task.abortSet,
4215
4639
  keyPath,
4216
- task.formatContext,
4640
+ getSuspenseContentFormatContext(
4641
+ request.resumableState,
4642
+ task.formatContext
4643
+ ),
4217
4644
  task.context,
4218
4645
  task.treeContext,
4219
- task.componentStack,
4220
- task.isFallback
4646
+ null,
4647
+ newProps
4221
4648
  );
4222
4649
  pushComponentStack(task);
4223
4650
  request.pingedTasks.push(task);
@@ -4227,30 +4654,49 @@ function renderElement(request, task, keyPath, type, props, ref) {
4227
4654
  task.hoistableState = newBoundary.contentState;
4228
4655
  task.blockedSegment = contentRootSegment;
4229
4656
  task.keyPath = keyPath;
4657
+ task.formatContext = getSuspenseContentFormatContext(
4658
+ request.resumableState,
4659
+ ref
4660
+ );
4661
+ task.row = null;
4230
4662
  contentRootSegment.status = 6;
4231
4663
  try {
4232
4664
  if (
4233
4665
  (renderNode(request, task, props, -1),
4234
- contentRootSegment.lastPushedText &&
4235
- contentRootSegment.textEmbedded &&
4236
- contentRootSegment.chunks.push("\x3c!-- --\x3e"),
4666
+ pushSegmentFinale(
4667
+ contentRootSegment.chunks,
4668
+ request.renderState,
4669
+ contentRootSegment.lastPushedText,
4670
+ contentRootSegment.textEmbedded
4671
+ ),
4237
4672
  (contentRootSegment.status = 1),
4673
+ finishedSegment(request, newBoundary, contentRootSegment),
4238
4674
  queueCompletedSegment(newBoundary, contentRootSegment),
4239
4675
  0 === newBoundary.pendingTasks && 0 === newBoundary.status)
4240
4676
  ) {
4241
- newBoundary.status = 1;
4242
- 0 === request.pendingRootTasks &&
4243
- task.blockedPreamble &&
4244
- preparePreamble(request);
4245
- break a;
4246
- }
4247
- } catch (thrownValue$28) {
4677
+ if (
4678
+ ((newBoundary.status = 1),
4679
+ !isEligibleForOutlining(request, newBoundary))
4680
+ ) {
4681
+ null !== prevRow &&
4682
+ 0 === --prevRow.pendingTasks &&
4683
+ finishSuspenseListRow(request, prevRow);
4684
+ 0 === request.pendingRootTasks &&
4685
+ task.blockedPreamble &&
4686
+ preparePreamble(request);
4687
+ break a;
4688
+ }
4689
+ } else
4690
+ null !== prevRow &&
4691
+ prevRow.together &&
4692
+ tryToResolveTogetherRow(request, prevRow);
4693
+ } catch (thrownValue$30) {
4248
4694
  (newBoundary.status = 4),
4249
4695
  12 === request.status
4250
4696
  ? ((contentRootSegment.status = 3),
4251
4697
  (newProps = request.fatalError))
4252
4698
  : ((contentRootSegment.status = 4),
4253
- (newProps = thrownValue$28)),
4699
+ (newProps = thrownValue$30)),
4254
4700
  (defaultProps = getThrownInfo(task.componentStack)),
4255
4701
  (initialState = logRecoverableError(
4256
4702
  request,
@@ -4260,28 +4706,35 @@ function renderElement(request, task, keyPath, type, props, ref) {
4260
4706
  (newBoundary.errorDigest = initialState),
4261
4707
  untrackBoundary(request, newBoundary);
4262
4708
  } finally {
4263
- (task.blockedBoundary = parentBoundary),
4264
- (task.blockedPreamble = ref),
4709
+ (task.blockedBoundary = propName$43),
4710
+ (task.blockedPreamble = propName),
4265
4711
  (task.hoistableState = parentHoistableState),
4266
- (task.blockedSegment = propName$33),
4267
- (task.keyPath = type);
4712
+ (task.blockedSegment = parentSegment),
4713
+ (task.keyPath = type),
4714
+ (task.formatContext = ref),
4715
+ (task.row = prevRow);
4268
4716
  }
4269
4717
  task = createRenderTask(
4270
4718
  request,
4271
4719
  null,
4272
- propName,
4720
+ fallback,
4273
4721
  -1,
4274
- parentBoundary,
4722
+ propName$43,
4275
4723
  boundarySegment,
4276
4724
  newBoundary.fallbackPreamble,
4277
4725
  newBoundary.fallbackState,
4278
4726
  fallbackAbortSet,
4279
4727
  [keyPath[0], "Suspense Fallback", keyPath[2]],
4280
- task.formatContext,
4728
+ getSuspenseFallbackFormatContext(
4729
+ request.resumableState,
4730
+ task.formatContext
4731
+ ),
4281
4732
  task.context,
4282
4733
  task.treeContext,
4283
- task.componentStack,
4284
- !0
4734
+ task.row,
4735
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(
4736
+ task.componentStack
4737
+ )
4285
4738
  );
4286
4739
  pushComponentStack(task);
4287
4740
  request.pingedTasks.push(task);
@@ -4293,9 +4746,9 @@ function renderElement(request, task, keyPath, type, props, ref) {
4293
4746
  switch (type.$$typeof) {
4294
4747
  case REACT_FORWARD_REF_TYPE:
4295
4748
  if ("ref" in props)
4296
- for (newBoundary in ((newProps = {}), props))
4297
- "ref" !== newBoundary &&
4298
- (newProps[newBoundary] = props[newBoundary]);
4749
+ for (parentSegment in ((newProps = {}), props))
4750
+ "ref" !== parentSegment &&
4751
+ (newProps[parentSegment] = props[parentSegment]);
4299
4752
  else newProps = props;
4300
4753
  type = renderWithHooks(
4301
4754
  request,
@@ -4318,7 +4771,6 @@ function renderElement(request, task, keyPath, type, props, ref) {
4318
4771
  case REACT_MEMO_TYPE:
4319
4772
  renderElement(request, task, keyPath, type.type, props, ref);
4320
4773
  return;
4321
- case REACT_PROVIDER_TYPE:
4322
4774
  case REACT_CONTEXT_TYPE:
4323
4775
  defaultProps = props.children;
4324
4776
  newProps = task.keyPath;
@@ -4385,6 +4837,7 @@ function resumeNode(request, task, segmentId, node, childIndex) {
4385
4837
  (task.blockedSegment = resumedSegment),
4386
4838
  renderNode(request, task, node, childIndex),
4387
4839
  (resumedSegment.status = 1),
4840
+ finishedSegment(request, blockedBoundary, resumedSegment),
4388
4841
  null === blockedBoundary
4389
4842
  ? (request.completedRootSegment = resumedSegment)
4390
4843
  : (queueCompletedSegment(blockedBoundary, resumedSegment),
@@ -4462,17 +4915,20 @@ function retryNode(request, task) {
4462
4915
  "function" === typeof x.then)
4463
4916
  )
4464
4917
  throw (
4465
- (task.node === keyOrIndex && (task.replay = replay),
4918
+ (task.node === keyOrIndex
4919
+ ? (task.replay = replay)
4920
+ : childIndex.splice(node, 1),
4466
4921
  x)
4467
4922
  );
4468
4923
  task.replay.pendingTasks--;
4469
4924
  props = getThrownInfo(task.componentStack);
4470
- key = task.blockedBoundary;
4925
+ key = request;
4926
+ request = task.blockedBoundary;
4471
4927
  type = x;
4472
- props = logRecoverableError(request, type, props);
4928
+ props = logRecoverableError(key, type, props);
4473
4929
  abortRemainingReplayNodes(
4474
- request,
4475
4930
  key,
4931
+ request,
4476
4932
  childNodes,
4477
4933
  name,
4478
4934
  type,
@@ -4497,6 +4953,8 @@ function retryNode(request, task) {
4497
4953
  node$jscomp$0 =
4498
4954
  null === node$jscomp$0[4] ? null : node$jscomp$0[4][3];
4499
4955
  var prevKeyPath = task.keyPath,
4956
+ prevContext = task.formatContext,
4957
+ prevRow = task.row,
4500
4958
  previousReplaySet = task.replay,
4501
4959
  parentBoundary = task.blockedBoundary,
4502
4960
  parentHoistableState = task.hoistableState,
@@ -4507,12 +4965,14 @@ function retryNode(request, task) {
4507
4965
  2 > task.formatContext.insertionMode
4508
4966
  ? createSuspenseBoundary(
4509
4967
  request,
4968
+ task.row,
4510
4969
  fallbackAbortSet,
4511
4970
  createPreambleState(),
4512
4971
  createPreambleState()
4513
4972
  )
4514
4973
  : createSuspenseBoundary(
4515
4974
  request,
4975
+ task.row,
4516
4976
  fallbackAbortSet,
4517
4977
  null,
4518
4978
  null
@@ -4522,6 +4982,11 @@ function retryNode(request, task) {
4522
4982
  task.blockedBoundary = props;
4523
4983
  task.hoistableState = props.contentState;
4524
4984
  task.keyPath = key;
4985
+ task.formatContext = getSuspenseContentFormatContext(
4986
+ request.resumableState,
4987
+ prevContext
4988
+ );
4989
+ task.row = null;
4525
4990
  task.replay = {
4526
4991
  nodes: ref,
4527
4992
  slots: name,
@@ -4557,9 +5022,11 @@ function retryNode(request, task) {
4557
5022
  (task.blockedBoundary = parentBoundary),
4558
5023
  (task.hoistableState = parentHoistableState),
4559
5024
  (task.replay = previousReplaySet),
4560
- (task.keyPath = prevKeyPath);
5025
+ (task.keyPath = prevKeyPath),
5026
+ (task.formatContext = prevContext),
5027
+ (task.row = prevRow);
4561
5028
  }
4562
- task = createReplayTask(
5029
+ childNodes = createReplayTask(
4563
5030
  request,
4564
5031
  null,
4565
5032
  {
@@ -4573,14 +5040,19 @@ function retryNode(request, task) {
4573
5040
  props.fallbackState,
4574
5041
  fallbackAbortSet,
4575
5042
  [key[0], "Suspense Fallback", key[2]],
4576
- task.formatContext,
5043
+ getSuspenseFallbackFormatContext(
5044
+ request.resumableState,
5045
+ task.formatContext
5046
+ ),
4577
5047
  task.context,
4578
5048
  task.treeContext,
4579
- task.componentStack,
4580
- !0
5049
+ task.row,
5050
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(
5051
+ task.componentStack
5052
+ )
4581
5053
  );
4582
- pushComponentStack(task);
4583
- request.pingedTasks.push(task);
5054
+ pushComponentStack(childNodes);
5055
+ request.pingedTasks.push(childNodes);
4584
5056
  }
4585
5057
  }
4586
5058
  childIndex.splice(node, 1);
@@ -4605,22 +5077,17 @@ function retryNode(request, task) {
4605
5077
  renderChildrenArray(request, task, node, childIndex);
4606
5078
  return;
4607
5079
  }
4608
- null === node || "object" !== typeof node
4609
- ? (childNodes = null)
4610
- : ((childNodes =
4611
- (MAYBE_ITERATOR_SYMBOL && node[MAYBE_ITERATOR_SYMBOL]) ||
4612
- node["@@iterator"]),
4613
- (childNodes = "function" === typeof childNodes ? childNodes : null));
4614
- if (childNodes && (childNodes = childNodes.call(node))) {
4615
- node = childNodes.next();
4616
- if (!node.done) {
4617
- props = [];
4618
- do props.push(node.value), (node = childNodes.next());
4619
- while (!node.done);
4620
- renderChildrenArray(request, task, props, childIndex);
5080
+ if ((childNodes = getIteratorFn(node)))
5081
+ if ((childNodes = childNodes.call(node))) {
5082
+ node = childNodes.next();
5083
+ if (!node.done) {
5084
+ props = [];
5085
+ do props.push(node.value), (node = childNodes.next());
5086
+ while (!node.done);
5087
+ renderChildrenArray(request, task, props, childIndex);
5088
+ }
5089
+ return;
4621
5090
  }
4622
- return;
4623
- }
4624
5091
  if ("function" === typeof node.then)
4625
5092
  return (
4626
5093
  (task.thenableState = null),
@@ -4740,6 +5207,105 @@ function renderChildrenArray(request, task, children, childIndex) {
4740
5207
  task.treeContext = replay;
4741
5208
  task.keyPath = prevKeyPath;
4742
5209
  }
5210
+ function trackPostponedBoundary(request, trackedPostpones, boundary) {
5211
+ boundary.status = 5;
5212
+ boundary.rootSegmentID = request.nextSegmentId++;
5213
+ request = boundary.trackedContentKeyPath;
5214
+ if (null === request)
5215
+ throw Error(
5216
+ "It should not be possible to postpone at the root. This is a bug in React."
5217
+ );
5218
+ var fallbackReplayNode = boundary.trackedFallbackNode,
5219
+ children = [],
5220
+ boundaryNode = trackedPostpones.workingMap.get(request);
5221
+ if (void 0 === boundaryNode)
5222
+ return (
5223
+ (boundary = [
5224
+ request[1],
5225
+ request[2],
5226
+ children,
5227
+ null,
5228
+ fallbackReplayNode,
5229
+ boundary.rootSegmentID
5230
+ ]),
5231
+ trackedPostpones.workingMap.set(request, boundary),
5232
+ addToReplayParent(boundary, request[0], trackedPostpones),
5233
+ boundary
5234
+ );
5235
+ boundaryNode[4] = fallbackReplayNode;
5236
+ boundaryNode[5] = boundary.rootSegmentID;
5237
+ return boundaryNode;
5238
+ }
5239
+ function trackPostpone(request, trackedPostpones, task, segment) {
5240
+ segment.status = 5;
5241
+ var keyPath = task.keyPath,
5242
+ boundary = task.blockedBoundary;
5243
+ if (null === boundary)
5244
+ (segment.id = request.nextSegmentId++),
5245
+ (trackedPostpones.rootSlots = segment.id),
5246
+ null !== request.completedRootSegment &&
5247
+ (request.completedRootSegment.status = 5);
5248
+ else {
5249
+ if (null !== boundary && 0 === boundary.status) {
5250
+ var boundaryNode = trackPostponedBoundary(
5251
+ request,
5252
+ trackedPostpones,
5253
+ boundary
5254
+ );
5255
+ if (
5256
+ boundary.trackedContentKeyPath === keyPath &&
5257
+ -1 === task.childIndex
5258
+ ) {
5259
+ -1 === segment.id &&
5260
+ (segment.id = segment.parentFlushed
5261
+ ? boundary.rootSegmentID
5262
+ : request.nextSegmentId++);
5263
+ boundaryNode[3] = segment.id;
5264
+ return;
5265
+ }
5266
+ }
5267
+ -1 === segment.id &&
5268
+ (segment.id =
5269
+ segment.parentFlushed && null !== boundary
5270
+ ? boundary.rootSegmentID
5271
+ : request.nextSegmentId++);
5272
+ if (-1 === task.childIndex)
5273
+ null === keyPath
5274
+ ? (trackedPostpones.rootSlots = segment.id)
5275
+ : ((task = trackedPostpones.workingMap.get(keyPath)),
5276
+ void 0 === task
5277
+ ? ((task = [keyPath[1], keyPath[2], [], segment.id]),
5278
+ addToReplayParent(task, keyPath[0], trackedPostpones))
5279
+ : (task[3] = segment.id));
5280
+ else {
5281
+ if (null === keyPath)
5282
+ if (((request = trackedPostpones.rootSlots), null === request))
5283
+ request = trackedPostpones.rootSlots = {};
5284
+ else {
5285
+ if ("number" === typeof request)
5286
+ throw Error(
5287
+ "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
5288
+ );
5289
+ }
5290
+ else if (
5291
+ ((boundary = trackedPostpones.workingMap),
5292
+ (boundaryNode = boundary.get(keyPath)),
5293
+ void 0 === boundaryNode)
5294
+ )
5295
+ (request = {}),
5296
+ (boundaryNode = [keyPath[1], keyPath[2], [], request]),
5297
+ boundary.set(keyPath, boundaryNode),
5298
+ addToReplayParent(boundaryNode, keyPath[0], trackedPostpones);
5299
+ else if (((request = boundaryNode[3]), null === request))
5300
+ request = boundaryNode[3] = {};
5301
+ else if ("number" === typeof request)
5302
+ throw Error(
5303
+ "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
5304
+ );
5305
+ request[task.childIndex] = segment.id;
5306
+ }
5307
+ }
5308
+ }
4743
5309
  function untrackBoundary(request, boundary) {
4744
5310
  request = request.trackedPostpones;
4745
5311
  null !== request &&
@@ -4763,8 +5329,8 @@ function spawnNewSuspendedReplayTask(request, task, thenableState) {
4763
5329
  task.formatContext,
4764
5330
  task.context,
4765
5331
  task.treeContext,
4766
- task.componentStack,
4767
- task.isFallback
5332
+ task.row,
5333
+ task.componentStack
4768
5334
  );
4769
5335
  }
4770
5336
  function spawnNewSuspendedRenderTask(request, task, thenableState) {
@@ -4793,8 +5359,8 @@ function spawnNewSuspendedRenderTask(request, task, thenableState) {
4793
5359
  task.formatContext,
4794
5360
  task.context,
4795
5361
  task.treeContext,
4796
- task.componentStack,
4797
- task.isFallback
5362
+ task.row,
5363
+ task.componentStack
4798
5364
  );
4799
5365
  }
4800
5366
  function renderNode(request, task, node, childIndex) {
@@ -4804,7 +5370,8 @@ function renderNode(request, task, node, childIndex) {
4804
5370
  previousTreeContext = task.treeContext,
4805
5371
  previousComponentStack = task.componentStack,
4806
5372
  segment = task.blockedSegment;
4807
- if (null === segment)
5373
+ if (null === segment) {
5374
+ segment = task.replay;
4808
5375
  try {
4809
5376
  return renderNodeDestructive(request, task, node, childIndex);
4810
5377
  } catch (thrownValue) {
@@ -4814,10 +5381,13 @@ function renderNode(request, task, node, childIndex) {
4814
5381
  thrownValue === SuspenseException
4815
5382
  ? getSuspendedThenable()
4816
5383
  : thrownValue),
4817
- "object" === typeof node && null !== node)
5384
+ 12 !== request.status && "object" === typeof node && null !== node)
4818
5385
  ) {
4819
5386
  if ("function" === typeof node.then) {
4820
- childIndex = getThenableStateAfterSuspending();
5387
+ childIndex =
5388
+ thrownValue === SuspenseException
5389
+ ? getThenableStateAfterSuspending()
5390
+ : null;
4821
5391
  request = spawnNewSuspendedReplayTask(request, task, childIndex).ping;
4822
5392
  node.then(request, request);
4823
5393
  task.formatContext = previousFormatContext;
@@ -4825,11 +5395,15 @@ function renderNode(request, task, node, childIndex) {
4825
5395
  task.keyPath = previousKeyPath;
4826
5396
  task.treeContext = previousTreeContext;
4827
5397
  task.componentStack = previousComponentStack;
5398
+ task.replay = segment;
4828
5399
  switchContext(previousContext);
4829
5400
  return;
4830
5401
  }
4831
5402
  if ("Maximum call stack size exceeded" === node.message) {
4832
- node = getThenableStateAfterSuspending();
5403
+ node =
5404
+ thrownValue === SuspenseException
5405
+ ? getThenableStateAfterSuspending()
5406
+ : null;
4833
5407
  node = spawnNewSuspendedReplayTask(request, task, node);
4834
5408
  request.pingedTasks.push(node);
4835
5409
  task.formatContext = previousFormatContext;
@@ -4837,31 +5411,36 @@ function renderNode(request, task, node, childIndex) {
4837
5411
  task.keyPath = previousKeyPath;
4838
5412
  task.treeContext = previousTreeContext;
4839
5413
  task.componentStack = previousComponentStack;
5414
+ task.replay = segment;
4840
5415
  switchContext(previousContext);
4841
5416
  return;
4842
5417
  }
4843
5418
  }
4844
5419
  }
4845
- else {
5420
+ } else {
4846
5421
  var childrenLength = segment.children.length,
4847
5422
  chunkLength = segment.chunks.length;
4848
5423
  try {
4849
5424
  return renderNodeDestructive(request, task, node, childIndex);
4850
- } catch (thrownValue$48) {
5425
+ } catch (thrownValue$62) {
4851
5426
  if (
4852
5427
  (resetHooksState(),
4853
5428
  (segment.children.length = childrenLength),
4854
5429
  (segment.chunks.length = chunkLength),
4855
5430
  (node =
4856
- thrownValue$48 === SuspenseException
5431
+ thrownValue$62 === SuspenseException
4857
5432
  ? getSuspendedThenable()
4858
- : thrownValue$48),
4859
- "object" === typeof node && null !== node)
5433
+ : thrownValue$62),
5434
+ 12 !== request.status && "object" === typeof node && null !== node)
4860
5435
  ) {
4861
5436
  if ("function" === typeof node.then) {
4862
- childIndex = getThenableStateAfterSuspending();
4863
- request = spawnNewSuspendedRenderTask(request, task, childIndex).ping;
4864
- node.then(request, request);
5437
+ segment = node;
5438
+ node =
5439
+ thrownValue$62 === SuspenseException
5440
+ ? getThenableStateAfterSuspending()
5441
+ : null;
5442
+ request = spawnNewSuspendedRenderTask(request, task, node).ping;
5443
+ segment.then(request, request);
4865
5444
  task.formatContext = previousFormatContext;
4866
5445
  task.context = previousContext;
4867
5446
  task.keyPath = previousKeyPath;
@@ -4871,9 +5450,12 @@ function renderNode(request, task, node, childIndex) {
4871
5450
  return;
4872
5451
  }
4873
5452
  if ("Maximum call stack size exceeded" === node.message) {
4874
- node = getThenableStateAfterSuspending();
4875
- node = spawnNewSuspendedRenderTask(request, task, node);
4876
- request.pingedTasks.push(node);
5453
+ segment =
5454
+ thrownValue$62 === SuspenseException
5455
+ ? getThenableStateAfterSuspending()
5456
+ : null;
5457
+ segment = spawnNewSuspendedRenderTask(request, task, segment);
5458
+ request.pingedTasks.push(segment);
4877
5459
  task.formatContext = previousFormatContext;
4878
5460
  task.context = previousContext;
4879
5461
  task.keyPath = previousKeyPath;
@@ -4893,9 +5475,10 @@ function renderNode(request, task, node, childIndex) {
4893
5475
  throw node;
4894
5476
  }
4895
5477
  function abortTaskSoft(task) {
4896
- var boundary = task.blockedBoundary;
4897
- task = task.blockedSegment;
4898
- null !== task && ((task.status = 3), finishedTask(this, boundary, task));
5478
+ var boundary = task.blockedBoundary,
5479
+ segment = task.blockedSegment;
5480
+ null !== segment &&
5481
+ ((segment.status = 3), finishedTask(this, boundary, task.row, segment));
4899
5482
  }
4900
5483
  function abortRemainingReplayNodes(
4901
5484
  request$jscomp$0,
@@ -4922,6 +5505,7 @@ function abortRemainingReplayNodes(
4922
5505
  errorDigest = errorDigest$jscomp$0,
4923
5506
  resumedBoundary = createSuspenseBoundary(
4924
5507
  request,
5508
+ null,
4925
5509
  new Set(),
4926
5510
  null,
4927
5511
  null
@@ -4955,44 +5539,69 @@ function abortTask(task, request, error) {
4955
5539
  if (6 === segment.status) return;
4956
5540
  segment.status = 3;
4957
5541
  }
4958
- segment = getThrownInfo(task.componentStack);
5542
+ var errorInfo = getThrownInfo(task.componentStack);
4959
5543
  if (null === boundary) {
4960
5544
  if (13 !== request.status && 14 !== request.status) {
4961
5545
  boundary = task.replay;
4962
5546
  if (null === boundary) {
4963
- logRecoverableError(request, error, segment);
4964
- fatalError(request, error);
5547
+ null !== request.trackedPostpones && null !== segment
5548
+ ? ((boundary = request.trackedPostpones),
5549
+ logRecoverableError(request, error, errorInfo),
5550
+ trackPostpone(request, boundary, task, segment),
5551
+ finishedTask(request, null, task.row, segment))
5552
+ : (logRecoverableError(request, error, errorInfo),
5553
+ fatalError(request, error));
4965
5554
  return;
4966
5555
  }
4967
5556
  boundary.pendingTasks--;
4968
5557
  0 === boundary.pendingTasks &&
4969
5558
  0 < boundary.nodes.length &&
4970
- ((task = logRecoverableError(request, error, segment)),
5559
+ ((segment = logRecoverableError(request, error, errorInfo)),
4971
5560
  abortRemainingReplayNodes(
4972
5561
  request,
4973
5562
  null,
4974
5563
  boundary.nodes,
4975
5564
  boundary.slots,
4976
5565
  error,
4977
- task
5566
+ segment
4978
5567
  ));
4979
5568
  request.pendingRootTasks--;
4980
5569
  0 === request.pendingRootTasks && completeShell(request);
4981
5570
  }
4982
- } else
4983
- boundary.pendingTasks--,
4984
- 4 !== boundary.status &&
4985
- ((boundary.status = 4),
4986
- (task = logRecoverableError(request, error, segment)),
4987
- (boundary.status = 4),
4988
- (boundary.errorDigest = task),
4989
- untrackBoundary(request, boundary),
4990
- boundary.parentFlushed &&
4991
- request.clientRenderedBoundaries.push(boundary)),
4992
- boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
4993
- return abortTask(fallbackTask, request, error);
4994
- }),
4995
- boundary.fallbackAbortableTasks.clear();
5571
+ } else {
5572
+ var trackedPostpones$63 = request.trackedPostpones;
5573
+ if (4 !== boundary.status) {
5574
+ if (null !== trackedPostpones$63 && null !== segment)
5575
+ return (
5576
+ logRecoverableError(request, error, errorInfo),
5577
+ trackPostpone(request, trackedPostpones$63, task, segment),
5578
+ boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
5579
+ return abortTask(fallbackTask, request, error);
5580
+ }),
5581
+ boundary.fallbackAbortableTasks.clear(),
5582
+ finishedTask(request, boundary, task.row, segment)
5583
+ );
5584
+ boundary.status = 4;
5585
+ segment = logRecoverableError(request, error, errorInfo);
5586
+ boundary.status = 4;
5587
+ boundary.errorDigest = segment;
5588
+ untrackBoundary(request, boundary);
5589
+ boundary.parentFlushed && request.clientRenderedBoundaries.push(boundary);
5590
+ }
5591
+ boundary.pendingTasks--;
5592
+ segment = boundary.row;
5593
+ null !== segment &&
5594
+ 0 === --segment.pendingTasks &&
5595
+ finishSuspenseListRow(request, segment);
5596
+ boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
5597
+ return abortTask(fallbackTask, request, error);
5598
+ });
5599
+ boundary.fallbackAbortableTasks.clear();
5600
+ }
5601
+ task = task.row;
5602
+ null !== task &&
5603
+ 0 === --task.pendingTasks &&
5604
+ finishSuspenseListRow(request, task);
4996
5605
  request.allPendingTasks--;
4997
5606
  0 === request.allPendingTasks && completeAll(request);
4998
5607
  }
@@ -5086,10 +5695,28 @@ function queueCompletedSegment(boundary, segment) {
5086
5695
  var childSegment = segment.children[0];
5087
5696
  childSegment.id = segment.id;
5088
5697
  childSegment.parentFlushed = !0;
5089
- 1 === childSegment.status && queueCompletedSegment(boundary, childSegment);
5698
+ (1 !== childSegment.status &&
5699
+ 3 !== childSegment.status &&
5700
+ 4 !== childSegment.status) ||
5701
+ queueCompletedSegment(boundary, childSegment);
5090
5702
  } else boundary.completedSegments.push(segment);
5091
5703
  }
5092
- function finishedTask(request, boundary, segment) {
5704
+ function finishedSegment(request, boundary, segment) {
5705
+ if (null !== byteLengthOfChunk) {
5706
+ segment = segment.chunks;
5707
+ for (var segmentByteSize = 0, i = 0; i < segment.length; i++)
5708
+ segmentByteSize += byteLengthOfChunk(segment[i]);
5709
+ null === boundary
5710
+ ? (request.byteSize += segmentByteSize)
5711
+ : (boundary.byteSize += segmentByteSize);
5712
+ }
5713
+ }
5714
+ function finishedTask(request, boundary, row, segment) {
5715
+ null !== row &&
5716
+ (0 === --row.pendingTasks
5717
+ ? finishSuspenseListRow(request, row)
5718
+ : row.together && tryToResolveTogetherRow(request, row));
5719
+ request.allPendingTasks--;
5093
5720
  if (null === boundary) {
5094
5721
  if (null !== segment && segment.parentFlushed) {
5095
5722
  if (null !== request.completedRootSegment)
@@ -5100,32 +5727,68 @@ function finishedTask(request, boundary, segment) {
5100
5727
  }
5101
5728
  request.pendingRootTasks--;
5102
5729
  0 === request.pendingRootTasks && completeShell(request);
5103
- } else
5104
- boundary.pendingTasks--,
5105
- 4 !== boundary.status &&
5106
- (0 === boundary.pendingTasks
5107
- ? (0 === boundary.status && (boundary.status = 1),
5108
- null !== segment &&
5109
- segment.parentFlushed &&
5110
- 1 === segment.status &&
5111
- queueCompletedSegment(boundary, segment),
5112
- boundary.parentFlushed &&
5113
- request.completedBoundaries.push(boundary),
5114
- 1 === boundary.status &&
5115
- (boundary.fallbackAbortableTasks.forEach(abortTaskSoft, request),
5116
- boundary.fallbackAbortableTasks.clear(),
5117
- 0 === request.pendingRootTasks &&
5118
- null === request.trackedPostpones &&
5119
- null !== boundary.contentPreamble &&
5120
- preparePreamble(request)))
5121
- : null !== segment &&
5122
- segment.parentFlushed &&
5123
- 1 === segment.status &&
5124
- (queueCompletedSegment(boundary, segment),
5125
- 1 === boundary.completedSegments.length &&
5126
- boundary.parentFlushed &&
5127
- request.partialBoundaries.push(boundary)));
5128
- request.allPendingTasks--;
5730
+ } else if ((boundary.pendingTasks--, 4 !== boundary.status))
5731
+ if (0 === boundary.pendingTasks)
5732
+ if (
5733
+ (0 === boundary.status && (boundary.status = 1),
5734
+ null !== segment &&
5735
+ segment.parentFlushed &&
5736
+ (1 === segment.status || 3 === segment.status) &&
5737
+ queueCompletedSegment(boundary, segment),
5738
+ boundary.parentFlushed && request.completedBoundaries.push(boundary),
5739
+ 1 === boundary.status)
5740
+ )
5741
+ (row = boundary.row),
5742
+ null !== row &&
5743
+ hoistHoistables(row.hoistables, boundary.contentState),
5744
+ isEligibleForOutlining(request, boundary) ||
5745
+ (boundary.fallbackAbortableTasks.forEach(abortTaskSoft, request),
5746
+ boundary.fallbackAbortableTasks.clear(),
5747
+ null !== row &&
5748
+ 0 === --row.pendingTasks &&
5749
+ finishSuspenseListRow(request, row)),
5750
+ 0 === request.pendingRootTasks &&
5751
+ null === request.trackedPostpones &&
5752
+ null !== boundary.contentPreamble &&
5753
+ preparePreamble(request);
5754
+ else {
5755
+ if (
5756
+ 5 === boundary.status &&
5757
+ ((boundary = boundary.row), null !== boundary)
5758
+ ) {
5759
+ if (null !== request.trackedPostpones) {
5760
+ row = request.trackedPostpones;
5761
+ var postponedRow = boundary.next;
5762
+ if (
5763
+ null !== postponedRow &&
5764
+ ((segment = postponedRow.boundaries), null !== segment)
5765
+ )
5766
+ for (
5767
+ postponedRow.boundaries = null, postponedRow = 0;
5768
+ postponedRow < segment.length;
5769
+ postponedRow++
5770
+ ) {
5771
+ var postponedBoundary = segment[postponedRow];
5772
+ trackPostponedBoundary(request, row, postponedBoundary);
5773
+ finishedTask(request, postponedBoundary, null, null);
5774
+ }
5775
+ }
5776
+ 0 === --boundary.pendingTasks &&
5777
+ finishSuspenseListRow(request, boundary);
5778
+ }
5779
+ }
5780
+ else
5781
+ null === segment ||
5782
+ !segment.parentFlushed ||
5783
+ (1 !== segment.status && 3 !== segment.status) ||
5784
+ (queueCompletedSegment(boundary, segment),
5785
+ 1 === boundary.completedSegments.length &&
5786
+ boundary.parentFlushed &&
5787
+ request.partialBoundaries.push(boundary)),
5788
+ (boundary = boundary.row),
5789
+ null !== boundary &&
5790
+ boundary.together &&
5791
+ tryToResolveTogetherRow(request, boundary);
5129
5792
  0 === request.allPendingTasks && completeAll(request);
5130
5793
  }
5131
5794
  function performWork(request$jscomp$2) {
@@ -5169,7 +5832,12 @@ function performWork(request$jscomp$2) {
5169
5832
  );
5170
5833
  task.replay.pendingTasks--;
5171
5834
  task.abortSet.delete(task);
5172
- finishedTask(request$jscomp$0, task.blockedBoundary, null);
5835
+ finishedTask(
5836
+ request$jscomp$0,
5837
+ task.blockedBoundary,
5838
+ task.row,
5839
+ null
5840
+ );
5173
5841
  } catch (thrownValue) {
5174
5842
  resetHooksState();
5175
5843
  var x =
@@ -5183,7 +5851,10 @@ function performWork(request$jscomp$2) {
5183
5851
  ) {
5184
5852
  var ping = task.ping;
5185
5853
  x.then(ping, ping);
5186
- task.thenableState = getThenableStateAfterSuspending();
5854
+ task.thenableState =
5855
+ thrownValue === SuspenseException
5856
+ ? getThenableStateAfterSuspending()
5857
+ : null;
5187
5858
  } else {
5188
5859
  task.replay.pendingTasks--;
5189
5860
  task.abortSet.delete(task);
@@ -5231,12 +5902,21 @@ function performWork(request$jscomp$2) {
5231
5902
  chunkLength = request$jscomp$1.chunks.length;
5232
5903
  try {
5233
5904
  retryNode(request, task),
5234
- request$jscomp$1.lastPushedText &&
5235
- request$jscomp$1.textEmbedded &&
5236
- request$jscomp$1.chunks.push("\x3c!-- --\x3e"),
5905
+ pushSegmentFinale(
5906
+ request$jscomp$1.chunks,
5907
+ request.renderState,
5908
+ request$jscomp$1.lastPushedText,
5909
+ request$jscomp$1.textEmbedded
5910
+ ),
5237
5911
  task.abortSet.delete(task),
5238
5912
  (request$jscomp$1.status = 1),
5239
- finishedTask(request, task.blockedBoundary, request$jscomp$1);
5913
+ finishedSegment(request, task.blockedBoundary, request$jscomp$1),
5914
+ finishedTask(
5915
+ request,
5916
+ task.blockedBoundary,
5917
+ task.row,
5918
+ request$jscomp$1
5919
+ );
5240
5920
  } catch (thrownValue) {
5241
5921
  resetHooksState();
5242
5922
  request$jscomp$1.children.length = childrenLength;
@@ -5247,39 +5927,64 @@ function performWork(request$jscomp$2) {
5247
5927
  : 12 === request.status
5248
5928
  ? request.fatalError
5249
5929
  : thrownValue;
5250
- if (
5930
+ if (12 === request.status && null !== request.trackedPostpones) {
5931
+ var trackedPostpones = request.trackedPostpones,
5932
+ thrownInfo = getThrownInfo(task.componentStack);
5933
+ task.abortSet.delete(task);
5934
+ logRecoverableError(request, x$jscomp$0, thrownInfo);
5935
+ trackPostpone(request, trackedPostpones, task, request$jscomp$1);
5936
+ finishedTask(
5937
+ request,
5938
+ task.blockedBoundary,
5939
+ task.row,
5940
+ request$jscomp$1
5941
+ );
5942
+ } else if (
5251
5943
  "object" === typeof x$jscomp$0 &&
5252
5944
  null !== x$jscomp$0 &&
5253
5945
  "function" === typeof x$jscomp$0.then
5254
5946
  ) {
5255
5947
  request$jscomp$1.status = 0;
5256
- task.thenableState = getThenableStateAfterSuspending();
5948
+ task.thenableState =
5949
+ thrownValue === SuspenseException
5950
+ ? getThenableStateAfterSuspending()
5951
+ : null;
5257
5952
  var ping$jscomp$0 = task.ping;
5258
5953
  x$jscomp$0.then(ping$jscomp$0, ping$jscomp$0);
5259
5954
  } else {
5260
5955
  var errorInfo$jscomp$0 = getThrownInfo(task.componentStack);
5261
5956
  task.abortSet.delete(task);
5262
5957
  request$jscomp$1.status = 4;
5263
- var boundary$jscomp$0 = task.blockedBoundary;
5958
+ var boundary$jscomp$0 = task.blockedBoundary,
5959
+ row = task.row;
5960
+ null !== row &&
5961
+ 0 === --row.pendingTasks &&
5962
+ finishSuspenseListRow(request, row);
5963
+ request.allPendingTasks--;
5264
5964
  request$jscomp$0 = logRecoverableError(
5265
5965
  request,
5266
5966
  x$jscomp$0,
5267
5967
  errorInfo$jscomp$0
5268
5968
  );
5269
- null === boundary$jscomp$0
5270
- ? fatalError(request, x$jscomp$0)
5271
- : (boundary$jscomp$0.pendingTasks--,
5272
- 4 !== boundary$jscomp$0.status &&
5273
- ((boundary$jscomp$0.status = 4),
5274
- (boundary$jscomp$0.errorDigest = request$jscomp$0),
5275
- untrackBoundary(request, boundary$jscomp$0),
5276
- boundary$jscomp$0.parentFlushed &&
5277
- request.clientRenderedBoundaries.push(boundary$jscomp$0),
5278
- 0 === request.pendingRootTasks &&
5279
- null === request.trackedPostpones &&
5280
- null !== boundary$jscomp$0.contentPreamble &&
5281
- preparePreamble(request)));
5282
- request.allPendingTasks--;
5969
+ if (null === boundary$jscomp$0) fatalError(request, x$jscomp$0);
5970
+ else if (
5971
+ (boundary$jscomp$0.pendingTasks--,
5972
+ 4 !== boundary$jscomp$0.status)
5973
+ ) {
5974
+ boundary$jscomp$0.status = 4;
5975
+ boundary$jscomp$0.errorDigest = request$jscomp$0;
5976
+ untrackBoundary(request, boundary$jscomp$0);
5977
+ var boundaryRow = boundary$jscomp$0.row;
5978
+ null !== boundaryRow &&
5979
+ 0 === --boundaryRow.pendingTasks &&
5980
+ finishSuspenseListRow(request, boundaryRow);
5981
+ boundary$jscomp$0.parentFlushed &&
5982
+ request.clientRenderedBoundaries.push(boundary$jscomp$0);
5983
+ 0 === request.pendingRootTasks &&
5984
+ null === request.trackedPostpones &&
5985
+ null !== boundary$jscomp$0.contentPreamble &&
5986
+ preparePreamble(request);
5987
+ }
5283
5988
  0 === request.allPendingTasks && completeAll(request);
5284
5989
  }
5285
5990
  } finally {
@@ -5335,6 +6040,7 @@ function preparePreambleFromSegment(
5335
6040
  switch (boundary.status) {
5336
6041
  case 1:
5337
6042
  hoistPreambleState(request.renderState, preamble);
6043
+ request.byteSize += boundary.byteSize;
5338
6044
  segment = boundary.completedSegments[0];
5339
6045
  if (!segment)
5340
6046
  throw Error(
@@ -5367,17 +6073,16 @@ function preparePreamble(request) {
5367
6073
  null === request.completedPreambleSegments
5368
6074
  ) {
5369
6075
  var collectedPreambleSegments = [],
6076
+ originalRequestByteSize = request.byteSize,
5370
6077
  hasPendingPreambles = preparePreambleFromSegment(
5371
6078
  request,
5372
6079
  request.completedRootSegment,
5373
6080
  collectedPreambleSegments
5374
6081
  ),
5375
6082
  preamble = request.renderState.preamble;
5376
- if (
5377
- !1 === hasPendingPreambles ||
5378
- (preamble.headChunks && preamble.bodyChunks)
5379
- )
5380
- request.completedPreambleSegments = collectedPreambleSegments;
6083
+ !1 === hasPendingPreambles || (preamble.headChunks && preamble.bodyChunks)
6084
+ ? (request.completedPreambleSegments = collectedPreambleSegments)
6085
+ : (request.byteSize = originalRequestByteSize);
5381
6086
  }
5382
6087
  }
5383
6088
  function flushSubtree(request, destination, segment, hoistableState) {
@@ -5412,35 +6117,36 @@ function flushSubtree(request, destination, segment, hoistableState) {
5412
6117
  writeChunk(destination, chunks[chunkIdx]);
5413
6118
  chunkIdx < chunks.length && (r = !!destination.write(chunks[chunkIdx]));
5414
6119
  return r;
6120
+ case 3:
6121
+ return !0;
5415
6122
  default:
5416
6123
  throw Error(
5417
6124
  "Aborted, errored or already flushed boundaries should not be flushed again. This is a bug in React."
5418
6125
  );
5419
6126
  }
5420
6127
  }
6128
+ var flushedByteSize = 0;
5421
6129
  function flushSegment(request, destination, segment, hoistableState) {
5422
6130
  var boundary = segment.boundary;
5423
6131
  if (null === boundary)
5424
6132
  return flushSubtree(request, destination, segment, hoistableState);
5425
6133
  boundary.parentFlushed = !0;
5426
6134
  if (4 === boundary.status) {
5427
- var errorDigest = boundary.errorDigest;
6135
+ var row = boundary.row;
6136
+ null !== row &&
6137
+ 0 === --row.pendingTasks &&
6138
+ finishSuspenseListRow(request, row);
6139
+ boundary = boundary.errorDigest;
5428
6140
  destination.write("\x3c!--$!--\x3e");
5429
6141
  writeChunk(destination, "<template");
5430
- errorDigest &&
6142
+ boundary &&
5431
6143
  (writeChunk(destination, ' data-dgst="'),
5432
- writeChunk(destination, escapeTextForBrowser(errorDigest)),
6144
+ writeChunk(destination, escapeTextForBrowser(boundary)),
5433
6145
  writeChunk(destination, '"'));
5434
6146
  destination.write("></template>");
5435
6147
  flushSubtree(request, destination, segment, hoistableState);
5436
- (request = boundary.fallbackPreamble) &&
5437
- writePreambleContribution(destination, request);
5438
- return !!destination.write("\x3c!--/$--\x3e");
5439
- }
5440
- if (1 !== boundary.status)
5441
- return (
5442
- 0 === boundary.status &&
5443
- (boundary.rootSegmentID = request.nextSegmentId++),
6148
+ } else if (1 !== boundary.status)
6149
+ 0 === boundary.status && (boundary.rootSegmentID = request.nextSegmentId++),
5444
6150
  0 < boundary.completedSegments.length &&
5445
6151
  request.partialBoundaries.push(boundary),
5446
6152
  writeStartPendingSuspenseBoundary(
@@ -5448,41 +6154,38 @@ function flushSegment(request, destination, segment, hoistableState) {
5448
6154
  request.renderState,
5449
6155
  boundary.rootSegmentID
5450
6156
  ),
5451
- hoistableState &&
5452
- ((boundary = boundary.fallbackState),
5453
- boundary.styles.forEach(hoistStyleQueueDependency, hoistableState),
5454
- boundary.stylesheets.forEach(
5455
- hoistStylesheetDependency,
5456
- hoistableState
5457
- )),
5458
- flushSubtree(request, destination, segment, hoistableState),
5459
- !!destination.write("\x3c!--/$--\x3e")
5460
- );
5461
- if (boundary.byteSize > request.progressiveChunkSize)
5462
- return (
5463
- (boundary.rootSegmentID = request.nextSegmentId++),
6157
+ hoistableState && hoistHoistables(hoistableState, boundary.fallbackState),
6158
+ flushSubtree(request, destination, segment, hoistableState);
6159
+ else if (
6160
+ !flushingPartialBoundaries &&
6161
+ isEligibleForOutlining(request, boundary) &&
6162
+ (flushedByteSize + boundary.byteSize > request.progressiveChunkSize ||
6163
+ hasSuspenseyContent(boundary.contentState))
6164
+ )
6165
+ (boundary.rootSegmentID = request.nextSegmentId++),
5464
6166
  request.completedBoundaries.push(boundary),
5465
6167
  writeStartPendingSuspenseBoundary(
5466
6168
  destination,
5467
6169
  request.renderState,
5468
6170
  boundary.rootSegmentID
5469
6171
  ),
5470
- flushSubtree(request, destination, segment, hoistableState),
5471
- !!destination.write("\x3c!--/$--\x3e")
5472
- );
5473
- hoistableState &&
5474
- ((segment = boundary.contentState),
5475
- segment.styles.forEach(hoistStyleQueueDependency, hoistableState),
5476
- segment.stylesheets.forEach(hoistStylesheetDependency, hoistableState));
5477
- destination.write("\x3c!--$--\x3e");
5478
- segment = boundary.completedSegments;
5479
- if (1 !== segment.length)
5480
- throw Error(
5481
- "A previously unvisited boundary must have exactly one root segment. This is a bug in React."
5482
- );
5483
- flushSegment(request, destination, segment[0], hoistableState);
5484
- (request = boundary.contentPreamble) &&
5485
- writePreambleContribution(destination, request);
6172
+ flushSubtree(request, destination, segment, hoistableState);
6173
+ else {
6174
+ flushedByteSize += boundary.byteSize;
6175
+ hoistableState && hoistHoistables(hoistableState, boundary.contentState);
6176
+ segment = boundary.row;
6177
+ null !== segment &&
6178
+ isEligibleForOutlining(request, boundary) &&
6179
+ 0 === --segment.pendingTasks &&
6180
+ finishSuspenseListRow(request, segment);
6181
+ destination.write("\x3c!--$--\x3e");
6182
+ segment = boundary.completedSegments;
6183
+ if (1 !== segment.length)
6184
+ throw Error(
6185
+ "A previously unvisited boundary must have exactly one root segment. This is a bug in React."
6186
+ );
6187
+ flushSegment(request, destination, segment[0], hoistableState);
6188
+ }
5486
6189
  return !!destination.write("\x3c!--/$--\x3e");
5487
6190
  }
5488
6191
  function flushSegmentContainer(request, destination, segment, hoistableState) {
@@ -5496,6 +6199,7 @@ function flushSegmentContainer(request, destination, segment, hoistableState) {
5496
6199
  return writeEndSegment(destination, segment.parentFormatContext);
5497
6200
  }
5498
6201
  function flushCompletedBoundary(request, destination, boundary) {
6202
+ flushedByteSize = boundary.byteSize;
5499
6203
  for (
5500
6204
  var completedSegments = boundary.completedSegments, i = 0;
5501
6205
  i < completedSegments.length;
@@ -5508,6 +6212,11 @@ function flushCompletedBoundary(request, destination, boundary) {
5508
6212
  completedSegments[i]
5509
6213
  );
5510
6214
  completedSegments.length = 0;
6215
+ completedSegments = boundary.row;
6216
+ null !== completedSegments &&
6217
+ isEligibleForOutlining(request, boundary) &&
6218
+ 0 === --completedSegments.pendingTasks &&
6219
+ finishSuspenseListRow(request, completedSegments);
5511
6220
  writeHoistablesForBoundary(
5512
6221
  destination,
5513
6222
  boundary.contentState,
@@ -5520,27 +6229,34 @@ function flushCompletedBoundary(request, destination, boundary) {
5520
6229
  var requiresStyleInsertion = request.stylesToHoist;
5521
6230
  request.stylesToHoist = !1;
5522
6231
  writeChunk(destination, request.startInlineScript);
6232
+ writeChunk(destination, ">");
5523
6233
  requiresStyleInsertion
5524
- ? 0 === (completedSegments.instructions & 2)
5525
- ? ((completedSegments.instructions |= 10),
6234
+ ? (0 === (completedSegments.instructions & 4) &&
6235
+ ((completedSegments.instructions |= 4),
5526
6236
  writeChunk(
5527
6237
  destination,
5528
- '$RC=function(b,c,e){c=document.getElementById(c);c.parentNode.removeChild(c);var a=document.getElementById(b);if(a){b=a.previousSibling;if(e)b.data="$!",a.setAttribute("data-dgst",e);else{e=b.parentNode;a=b.nextSibling;var f=0;do{if(a&&8===a.nodeType){var d=a.data;if("/$"===d)if(0===f)break;else f--;else"$"!==d&&"$?"!==d&&"$!"!==d||f++}d=a.nextSibling;e.removeChild(a);a=d}while(a);for(;c.firstChild;)e.insertBefore(c.firstChild,a);b.data="$"}b._reactRetry&&b._reactRetry()}};$RM=new Map;\n$RR=function(t,u,y){function v(n){this._p=null;n()}for(var w=$RC,p=$RM,q=new Map,r=document,g,b,h=r.querySelectorAll("link[data-precedence],style[data-precedence]"),x=[],k=0;b=h[k++];)"not all"===b.getAttribute("media")?x.push(b):("LINK"===b.tagName&&p.set(b.getAttribute("href"),b),q.set(b.dataset.precedence,g=b));b=0;h=[];var l,a;for(k=!0;;){if(k){var e=y[b++];if(!e){k=!1;b=0;continue}var c=!1,m=0;var d=e[m++];if(a=p.get(d)){var f=a._p;c=!0}else{a=r.createElement("link");a.href=\nd;a.rel="stylesheet";for(a.dataset.precedence=l=e[m++];f=e[m++];)a.setAttribute(f,e[m++]);f=a._p=new Promise(function(n,z){a.onload=v.bind(a,n);a.onerror=v.bind(a,z)});p.set(d,a)}d=a.getAttribute("media");!f||d&&!matchMedia(d).matches||h.push(f);if(c)continue}else{a=x[b++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=q.get(l)||g;c===g&&(g=a);q.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=r.head,c.insertBefore(a,c.firstChild))}Promise.all(h).then(w.bind(null,\nt,u,""),w.bind(null,t,u,"Resource failed to load"))};$RR("'
5529
- ))
5530
- : 0 === (completedSegments.instructions & 8)
6238
+ '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};'
6239
+ )),
6240
+ 0 === (completedSegments.instructions & 2) &&
6241
+ ((completedSegments.instructions |= 2),
6242
+ writeChunk(
6243
+ destination,
6244
+ '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};'
6245
+ )),
6246
+ 0 === (completedSegments.instructions & 8)
5531
6247
  ? ((completedSegments.instructions |= 8),
5532
6248
  writeChunk(
5533
6249
  destination,
5534
- '$RM=new Map;\n$RR=function(t,u,y){function v(n){this._p=null;n()}for(var w=$RC,p=$RM,q=new Map,r=document,g,b,h=r.querySelectorAll("link[data-precedence],style[data-precedence]"),x=[],k=0;b=h[k++];)"not all"===b.getAttribute("media")?x.push(b):("LINK"===b.tagName&&p.set(b.getAttribute("href"),b),q.set(b.dataset.precedence,g=b));b=0;h=[];var l,a;for(k=!0;;){if(k){var e=y[b++];if(!e){k=!1;b=0;continue}var c=!1,m=0;var d=e[m++];if(a=p.get(d)){var f=a._p;c=!0}else{a=r.createElement("link");a.href=\nd;a.rel="stylesheet";for(a.dataset.precedence=l=e[m++];f=e[m++];)a.setAttribute(f,e[m++]);f=a._p=new Promise(function(n,z){a.onload=v.bind(a,n);a.onerror=v.bind(a,z)});p.set(d,a)}d=a.getAttribute("media");!f||d&&!matchMedia(d).matches||h.push(f);if(c)continue}else{a=x[b++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=q.get(l)||g;c===g&&(g=a);q.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=r.head,c.insertBefore(a,c.firstChild))}Promise.all(h).then(w.bind(null,\nt,u,""),w.bind(null,t,u,"Resource failed to load"))};$RR("'
6250
+ '$RM=new Map;$RR=function(n,w,p){function u(q){this._p=null;q()}for(var r=new Map,t=document,h,b,e=t.querySelectorAll("link[data-precedence],style[data-precedence]"),v=[],k=0;b=e[k++];)"not all"===b.getAttribute("media")?v.push(b):("LINK"===b.tagName&&$RM.set(b.getAttribute("href"),b),r.set(b.dataset.precedence,h=b));e=0;b=[];var l,a;for(k=!0;;){if(k){var f=p[e++];if(!f){k=!1;e=0;continue}var c=!1,m=0;var d=f[m++];if(a=$RM.get(d)){var g=a._p;c=!0}else{a=t.createElement("link");a.href=d;a.rel=\n"stylesheet";for(a.dataset.precedence=l=f[m++];g=f[m++];)a.setAttribute(g,f[m++]);g=a._p=new Promise(function(q,x){a.onload=u.bind(a,q);a.onerror=u.bind(a,x)});$RM.set(d,a)}d=a.getAttribute("media");!g||d&&!matchMedia(d).matches||b.push(g);if(c)continue}else{a=v[e++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=r.get(l)||h;c===h&&(h=a);r.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=t.head,c.insertBefore(a,c.firstChild))}if(p=document.getElementById(n))p.previousSibling.data=\n"$~";Promise.all(b).then($RC.bind(null,n,w),$RX.bind(null,n,"CSS failed to load"))};$RR("'
5535
6251
  ))
5536
- : writeChunk(destination, '$RR("')
5537
- : 0 === (completedSegments.instructions & 2)
5538
- ? ((completedSegments.instructions |= 2),
6252
+ : writeChunk(destination, '$RR("'))
6253
+ : (0 === (completedSegments.instructions & 2) &&
6254
+ ((completedSegments.instructions |= 2),
5539
6255
  writeChunk(
5540
6256
  destination,
5541
- '$RC=function(b,c,e){c=document.getElementById(c);c.parentNode.removeChild(c);var a=document.getElementById(b);if(a){b=a.previousSibling;if(e)b.data="$!",a.setAttribute("data-dgst",e);else{e=b.parentNode;a=b.nextSibling;var f=0;do{if(a&&8===a.nodeType){var d=a.data;if("/$"===d)if(0===f)break;else f--;else"$"!==d&&"$?"!==d&&"$!"!==d||f++}d=a.nextSibling;e.removeChild(a);a=d}while(a);for(;c.firstChild;)e.insertBefore(c.firstChild,a);b.data="$"}b._reactRetry&&b._reactRetry()}};$RC("'
5542
- ))
5543
- : writeChunk(destination, '$RC("');
6257
+ '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};'
6258
+ )),
6259
+ writeChunk(destination, '$RC("'));
5544
6260
  completedSegments = i.toString(16);
5545
6261
  writeChunk(destination, request.boundaryPrefix);
5546
6262
  writeChunk(destination, completedSegments);
@@ -5576,6 +6292,7 @@ function flushPartiallyCompletedSegment(
5576
6292
  boundary = request.resumableState;
5577
6293
  request = request.renderState;
5578
6294
  writeChunk(destination, request.startInlineScript);
6295
+ writeChunk(destination, ">");
5579
6296
  0 === (boundary.instructions & 1)
5580
6297
  ? ((boundary.instructions |= 1),
5581
6298
  writeChunk(
@@ -5592,6 +6309,7 @@ function flushPartiallyCompletedSegment(
5592
6309
  destination = !!destination.write('")\x3c/script>');
5593
6310
  return destination;
5594
6311
  }
6312
+ var flushingPartialBoundaries = !1;
5595
6313
  function flushCompletedQueues(request, destination) {
5596
6314
  try {
5597
6315
  if (!(0 < request.pendingRootTasks)) {
@@ -5601,7 +6319,9 @@ function flushCompletedQueues(request, destination) {
5601
6319
  if (5 === completedRootSegment.status) return;
5602
6320
  var completedPreambleSegments = request.completedPreambleSegments;
5603
6321
  if (null === completedPreambleSegments) return;
5604
- var renderState = request.renderState,
6322
+ flushedByteSize = request.byteSize;
6323
+ var resumableState = request.resumableState,
6324
+ renderState = request.renderState,
5605
6325
  preamble = renderState.preamble,
5606
6326
  htmlChunks = preamble.htmlChunks,
5607
6327
  headChunks = preamble.headChunks,
@@ -5632,7 +6352,9 @@ function flushCompletedQueues(request, destination) {
5632
6352
  renderState.fontPreloads.clear();
5633
6353
  renderState.highImagePreloads.forEach(flushResource, destination);
5634
6354
  renderState.highImagePreloads.clear();
6355
+ currentlyFlushingRenderState = renderState;
5635
6356
  renderState.styles.forEach(flushStylesInPreamble, destination);
6357
+ currentlyFlushingRenderState = null;
5636
6358
  var importMapChunks = renderState.importMapChunks;
5637
6359
  for (i$jscomp$0 = 0; i$jscomp$0 < importMapChunks.length; i$jscomp$0++)
5638
6360
  writeChunk(destination, importMapChunks[i$jscomp$0]);
@@ -5642,17 +6364,18 @@ function flushCompletedQueues(request, destination) {
5642
6364
  renderState.scripts.clear();
5643
6365
  renderState.bulkPreloads.forEach(flushResource, destination);
5644
6366
  renderState.bulkPreloads.clear();
6367
+ htmlChunks || headChunks || (resumableState.instructions |= 32);
5645
6368
  var hoistableChunks = renderState.hoistableChunks;
5646
6369
  for (i$jscomp$0 = 0; i$jscomp$0 < hoistableChunks.length; i$jscomp$0++)
5647
6370
  writeChunk(destination, hoistableChunks[i$jscomp$0]);
5648
6371
  for (
5649
- renderState = hoistableChunks.length = 0;
5650
- renderState < completedPreambleSegments.length;
5651
- renderState++
6372
+ resumableState = hoistableChunks.length = 0;
6373
+ resumableState < completedPreambleSegments.length;
6374
+ resumableState++
5652
6375
  ) {
5653
- var segments = completedPreambleSegments[renderState];
5654
- for (preamble = 0; preamble < segments.length; preamble++)
5655
- flushSegment(request, destination, segments[preamble], null);
6376
+ var segments = completedPreambleSegments[resumableState];
6377
+ for (renderState = 0; renderState < segments.length; renderState++)
6378
+ flushSegment(request, destination, segments[renderState], null);
5656
6379
  }
5657
6380
  var preamble$jscomp$0 = request.renderState.preamble,
5658
6381
  headChunks$jscomp$0 = preamble$jscomp$0.headChunks;
@@ -5668,11 +6391,39 @@ function flushCompletedQueues(request, destination) {
5668
6391
  writeChunk(destination, bodyChunks[completedPreambleSegments]);
5669
6392
  flushSegment(request, destination, completedRootSegment, null);
5670
6393
  request.completedRootSegment = null;
5671
- writeBootstrap(destination, request.renderState);
6394
+ var renderState$jscomp$0 = request.renderState;
6395
+ if (
6396
+ 0 !== request.allPendingTasks ||
6397
+ 0 !== request.clientRenderedBoundaries.length ||
6398
+ 0 !== request.completedBoundaries.length ||
6399
+ (null !== request.trackedPostpones &&
6400
+ (0 !== request.trackedPostpones.rootNodes.length ||
6401
+ null !== request.trackedPostpones.rootSlots))
6402
+ ) {
6403
+ var resumableState$jscomp$0 = request.resumableState;
6404
+ if (0 === (resumableState$jscomp$0.instructions & 64)) {
6405
+ resumableState$jscomp$0.instructions |= 64;
6406
+ writeChunk(destination, renderState$jscomp$0.startInlineScript);
6407
+ if (0 === (resumableState$jscomp$0.instructions & 32)) {
6408
+ resumableState$jscomp$0.instructions |= 32;
6409
+ var shellId = "_" + resumableState$jscomp$0.idPrefix + "R_";
6410
+ writeChunk(destination, ' id="');
6411
+ writeChunk(destination, escapeTextForBrowser(shellId));
6412
+ writeChunk(destination, '"');
6413
+ }
6414
+ writeChunk(destination, ">");
6415
+ writeChunk(
6416
+ destination,
6417
+ "requestAnimationFrame(function(){$RT=performance.now()});"
6418
+ );
6419
+ destination.write("\x3c/script>");
6420
+ }
6421
+ }
6422
+ writeBootstrap(destination, renderState$jscomp$0);
5672
6423
  }
5673
- var renderState$jscomp$0 = request.renderState;
6424
+ var renderState$jscomp$1 = request.renderState;
5674
6425
  completedRootSegment = 0;
5675
- var viewportChunks$jscomp$0 = renderState$jscomp$0.viewportChunks;
6426
+ var viewportChunks$jscomp$0 = renderState$jscomp$1.viewportChunks;
5676
6427
  for (
5677
6428
  completedRootSegment = 0;
5678
6429
  completedRootSegment < viewportChunks$jscomp$0.length;
@@ -5680,21 +6431,21 @@ function flushCompletedQueues(request, destination) {
5680
6431
  )
5681
6432
  writeChunk(destination, viewportChunks$jscomp$0[completedRootSegment]);
5682
6433
  viewportChunks$jscomp$0.length = 0;
5683
- renderState$jscomp$0.preconnects.forEach(flushResource, destination);
5684
- renderState$jscomp$0.preconnects.clear();
5685
- renderState$jscomp$0.fontPreloads.forEach(flushResource, destination);
5686
- renderState$jscomp$0.fontPreloads.clear();
5687
- renderState$jscomp$0.highImagePreloads.forEach(
6434
+ renderState$jscomp$1.preconnects.forEach(flushResource, destination);
6435
+ renderState$jscomp$1.preconnects.clear();
6436
+ renderState$jscomp$1.fontPreloads.forEach(flushResource, destination);
6437
+ renderState$jscomp$1.fontPreloads.clear();
6438
+ renderState$jscomp$1.highImagePreloads.forEach(
5688
6439
  flushResource,
5689
6440
  destination
5690
6441
  );
5691
- renderState$jscomp$0.highImagePreloads.clear();
5692
- renderState$jscomp$0.styles.forEach(preloadLateStyles, destination);
5693
- renderState$jscomp$0.scripts.forEach(flushResource, destination);
5694
- renderState$jscomp$0.scripts.clear();
5695
- renderState$jscomp$0.bulkPreloads.forEach(flushResource, destination);
5696
- renderState$jscomp$0.bulkPreloads.clear();
5697
- var hoistableChunks$jscomp$0 = renderState$jscomp$0.hoistableChunks;
6442
+ renderState$jscomp$1.highImagePreloads.clear();
6443
+ renderState$jscomp$1.styles.forEach(preloadLateStyles, destination);
6444
+ renderState$jscomp$1.scripts.forEach(flushResource, destination);
6445
+ renderState$jscomp$1.scripts.clear();
6446
+ renderState$jscomp$1.bulkPreloads.forEach(flushResource, destination);
6447
+ renderState$jscomp$1.bulkPreloads.clear();
6448
+ var hoistableChunks$jscomp$0 = renderState$jscomp$1.hoistableChunks;
5698
6449
  for (
5699
6450
  completedRootSegment = 0;
5700
6451
  completedRootSegment < hoistableChunks$jscomp$0.length;
@@ -5705,33 +6456,34 @@ function flushCompletedQueues(request, destination) {
5705
6456
  var clientRenderedBoundaries = request.clientRenderedBoundaries;
5706
6457
  for (i = 0; i < clientRenderedBoundaries.length; i++) {
5707
6458
  var boundary = clientRenderedBoundaries[i];
5708
- renderState$jscomp$0 = destination;
5709
- var resumableState = request.resumableState,
5710
- renderState$jscomp$1 = request.renderState,
6459
+ renderState$jscomp$1 = destination;
6460
+ var resumableState$jscomp$1 = request.resumableState,
6461
+ renderState$jscomp$2 = request.renderState,
5711
6462
  id = boundary.rootSegmentID,
5712
6463
  errorDigest = boundary.errorDigest;
5713
6464
  writeChunk(
5714
- renderState$jscomp$0,
5715
- renderState$jscomp$1.startInlineScript
6465
+ renderState$jscomp$1,
6466
+ renderState$jscomp$2.startInlineScript
5716
6467
  );
5717
- 0 === (resumableState.instructions & 4)
5718
- ? ((resumableState.instructions |= 4),
6468
+ writeChunk(renderState$jscomp$1, ">");
6469
+ 0 === (resumableState$jscomp$1.instructions & 4)
6470
+ ? ((resumableState$jscomp$1.instructions |= 4),
5719
6471
  writeChunk(
5720
- renderState$jscomp$0,
6472
+ renderState$jscomp$1,
5721
6473
  '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};;$RX("'
5722
6474
  ))
5723
- : writeChunk(renderState$jscomp$0, '$RX("');
5724
- writeChunk(renderState$jscomp$0, renderState$jscomp$1.boundaryPrefix);
5725
- writeChunk(renderState$jscomp$0, id.toString(16));
5726
- writeChunk(renderState$jscomp$0, '"');
6475
+ : writeChunk(renderState$jscomp$1, '$RX("');
6476
+ writeChunk(renderState$jscomp$1, renderState$jscomp$2.boundaryPrefix);
6477
+ writeChunk(renderState$jscomp$1, id.toString(16));
6478
+ writeChunk(renderState$jscomp$1, '"');
5727
6479
  errorDigest &&
5728
- (writeChunk(renderState$jscomp$0, ","),
6480
+ (writeChunk(renderState$jscomp$1, ","),
5729
6481
  writeChunk(
5730
- renderState$jscomp$0,
6482
+ renderState$jscomp$1,
5731
6483
  escapeJSStringsForInstructionScripts(errorDigest || "")
5732
6484
  ));
5733
6485
  var JSCompiler_inline_result =
5734
- !!renderState$jscomp$0.write(")\x3c/script>");
6486
+ !!renderState$jscomp$1.write(")\x3c/script>");
5735
6487
  if (!JSCompiler_inline_result) {
5736
6488
  request.destination = null;
5737
6489
  i++;
@@ -5751,13 +6503,15 @@ function flushCompletedQueues(request, destination) {
5751
6503
  return;
5752
6504
  }
5753
6505
  completedBoundaries.splice(0, i);
6506
+ flushingPartialBoundaries = !0;
5754
6507
  var partialBoundaries = request.partialBoundaries;
5755
6508
  for (i = 0; i < partialBoundaries.length; i++) {
5756
- var boundary$51 = partialBoundaries[i];
6509
+ var boundary$69 = partialBoundaries[i];
5757
6510
  a: {
5758
6511
  clientRenderedBoundaries = request;
5759
6512
  boundary = destination;
5760
- var completedSegments = boundary$51.completedSegments;
6513
+ flushedByteSize = boundary$69.byteSize;
6514
+ var completedSegments = boundary$69.completedSegments;
5761
6515
  for (
5762
6516
  JSCompiler_inline_result = 0;
5763
6517
  JSCompiler_inline_result < completedSegments.length;
@@ -5767,7 +6521,7 @@ function flushCompletedQueues(request, destination) {
5767
6521
  !flushPartiallyCompletedSegment(
5768
6522
  clientRenderedBoundaries,
5769
6523
  boundary,
5770
- boundary$51,
6524
+ boundary$69,
5771
6525
  completedSegments[JSCompiler_inline_result]
5772
6526
  )
5773
6527
  ) {
@@ -5777,9 +6531,20 @@ function flushCompletedQueues(request, destination) {
5777
6531
  break a;
5778
6532
  }
5779
6533
  completedSegments.splice(0, JSCompiler_inline_result);
6534
+ var row = boundary$69.row;
6535
+ null !== row &&
6536
+ row.together &&
6537
+ 1 === boundary$69.pendingTasks &&
6538
+ (1 === row.pendingTasks
6539
+ ? unblockSuspenseListRow(
6540
+ clientRenderedBoundaries,
6541
+ row,
6542
+ row.hoistables
6543
+ )
6544
+ : row.pendingTasks--);
5780
6545
  JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
5781
6546
  boundary,
5782
- boundary$51.contentState,
6547
+ boundary$69.contentState,
5783
6548
  clientRenderedBoundaries.renderState
5784
6549
  );
5785
6550
  }
@@ -5791,6 +6556,7 @@ function flushCompletedQueues(request, destination) {
5791
6556
  }
5792
6557
  }
5793
6558
  partialBoundaries.splice(0, i);
6559
+ flushingPartialBoundaries = !1;
5794
6560
  var largeBoundaries = request.completedBoundaries;
5795
6561
  for (i = 0; i < largeBoundaries.length; i++)
5796
6562
  if (!flushCompletedBoundary(request, destination, largeBoundaries[i])) {
@@ -5802,19 +6568,19 @@ function flushCompletedQueues(request, destination) {
5802
6568
  largeBoundaries.splice(0, i);
5803
6569
  }
5804
6570
  } finally {
5805
- 0 === request.allPendingTasks &&
5806
- 0 === request.pingedTasks.length &&
5807
- 0 === request.clientRenderedBoundaries.length &&
5808
- 0 === request.completedBoundaries.length
5809
- ? ((request.flushScheduled = !1),
5810
- (i = request.resumableState),
5811
- i.hasBody && writeChunk(destination, endChunkForTag("body")),
5812
- i.hasHtml && writeChunk(destination, endChunkForTag("html")),
5813
- flushBuffered(destination),
5814
- (request.status = 14),
5815
- destination.end(),
5816
- (request.destination = null))
5817
- : flushBuffered(destination);
6571
+ (flushingPartialBoundaries = !1),
6572
+ 0 === request.allPendingTasks &&
6573
+ 0 === request.clientRenderedBoundaries.length &&
6574
+ 0 === request.completedBoundaries.length
6575
+ ? ((request.flushScheduled = !1),
6576
+ (i = request.resumableState),
6577
+ i.hasBody && writeChunk(destination, endChunkForTag("body")),
6578
+ i.hasHtml && writeChunk(destination, endChunkForTag("html")),
6579
+ flushBuffered(destination),
6580
+ (request.status = 14),
6581
+ destination.end(),
6582
+ (request.destination = null))
6583
+ : flushBuffered(destination);
5818
6584
  }
5819
6585
  }
5820
6586
  function startWork(request) {
@@ -5861,19 +6627,31 @@ function abort(request, reason) {
5861
6627
  }
5862
6628
  null !== request.destination &&
5863
6629
  flushCompletedQueues(request, request.destination);
5864
- } catch (error$53) {
5865
- logRecoverableError(request, error$53, {}), fatalError(request, error$53);
6630
+ } catch (error$71) {
6631
+ logRecoverableError(request, error$71, {}), fatalError(request, error$71);
6632
+ }
6633
+ }
6634
+ function addToReplayParent(node, parentKeyPath, trackedPostpones) {
6635
+ if (null === parentKeyPath) trackedPostpones.rootNodes.push(node);
6636
+ else {
6637
+ var workingMap = trackedPostpones.workingMap,
6638
+ parentNode = workingMap.get(parentKeyPath);
6639
+ void 0 === parentNode &&
6640
+ ((parentNode = [parentKeyPath[1], parentKeyPath[2], [], null]),
6641
+ workingMap.set(parentKeyPath, parentNode),
6642
+ addToReplayParent(parentNode, parentKeyPath[0], trackedPostpones));
6643
+ parentNode[2].push(node);
5866
6644
  }
5867
6645
  }
5868
- var isomorphicReactPackageVersion$jscomp$inline_761 = React.version;
6646
+ var isomorphicReactPackageVersion$jscomp$inline_821 = React.version;
5869
6647
  if (
5870
- "19.1.0" !==
5871
- isomorphicReactPackageVersion$jscomp$inline_761
6648
+ "19.2.4" !==
6649
+ isomorphicReactPackageVersion$jscomp$inline_821
5872
6650
  )
5873
6651
  throw Error(
5874
6652
  'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
5875
- (isomorphicReactPackageVersion$jscomp$inline_761 +
5876
- "\n - react-dom: 19.1.0\nLearn more: https://react.dev/warnings/version-mismatch")
6653
+ (isomorphicReactPackageVersion$jscomp$inline_821 +
6654
+ "\n - react-dom: 19.2.4\nLearn more: https://react.dev/warnings/version-mismatch")
5877
6655
  );
5878
6656
  exports.renderToReadableStream = function (children, options) {
5879
6657
  return new Promise(function (resolve, reject) {
@@ -5964,4 +6742,4 @@ exports.renderToReadableStream = function (children, options) {
5964
6742
  startWork(request);
5965
6743
  });
5966
6744
  };
5967
- exports.version = "19.1.0";
6745
+ exports.version = "19.2.4";