react-dom 19.2.0-canary-462d08f9-20250517 → 19.2.0-canary-23884812-20250520

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.
@@ -68,8 +68,15 @@ var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
68
68
  REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"),
69
69
  REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"),
70
70
  REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"),
71
- MAYBE_ITERATOR_SYMBOL = Symbol.iterator,
72
- isArrayImpl = Array.isArray;
71
+ MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
72
+ function getIteratorFn(maybeIterable) {
73
+ if (null === maybeIterable || "object" !== typeof maybeIterable) return null;
74
+ maybeIterable =
75
+ (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
76
+ maybeIterable["@@iterator"];
77
+ return "function" === typeof maybeIterable ? maybeIterable : null;
78
+ }
79
+ var isArrayImpl = Array.isArray;
73
80
  function murmurhash3_32_gc(key, seed) {
74
81
  var remainder = key.length & 3;
75
82
  var bytes = key.length - remainder;
@@ -329,9 +336,6 @@ function createResumableState(
329
336
  moduleScriptResources: {}
330
337
  };
331
338
  }
332
- function createPreambleState() {
333
- return { htmlChunks: null, headChunks: null, bodyChunks: null };
334
- }
335
339
  function createFormatContext(
336
340
  insertionMode,
337
341
  selectedValue,
@@ -2695,6 +2699,10 @@ function hoistStyleQueueDependency(styleQueue) {
2695
2699
  function hoistStylesheetDependency(stylesheet) {
2696
2700
  this.stylesheets.add(stylesheet);
2697
2701
  }
2702
+ function hoistHoistables(parentState, childState) {
2703
+ childState.styles.forEach(hoistStyleQueueDependency, parentState);
2704
+ childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
2705
+ }
2698
2706
  function createRenderState(resumableState, generateStaticMarkup) {
2699
2707
  var idPrefix = resumableState.idPrefix,
2700
2708
  bootstrapChunks = [],
@@ -2710,17 +2718,16 @@ function createRenderState(resumableState, generateStaticMarkup) {
2710
2718
  "\x3c/script>"
2711
2719
  ));
2712
2720
  bootstrapScriptContent = idPrefix + "P:";
2713
- var JSCompiler_object_inline_segmentPrefix_1613 = idPrefix + "S:";
2721
+ var JSCompiler_object_inline_segmentPrefix_1636 = idPrefix + "S:";
2714
2722
  idPrefix += "B:";
2715
- var JSCompiler_object_inline_preamble_1616 = createPreambleState(),
2716
- JSCompiler_object_inline_preconnects_1626 = new Set(),
2717
- JSCompiler_object_inline_fontPreloads_1627 = new Set(),
2718
- JSCompiler_object_inline_highImagePreloads_1628 = new Set(),
2719
- JSCompiler_object_inline_styles_1629 = new Map(),
2720
- JSCompiler_object_inline_bootstrapScripts_1630 = new Set(),
2721
- JSCompiler_object_inline_scripts_1631 = new Set(),
2722
- JSCompiler_object_inline_bulkPreloads_1632 = new Set(),
2723
- JSCompiler_object_inline_preloads_1633 = {
2723
+ var JSCompiler_object_inline_preconnects_1649 = new Set(),
2724
+ JSCompiler_object_inline_fontPreloads_1650 = new Set(),
2725
+ JSCompiler_object_inline_highImagePreloads_1651 = new Set(),
2726
+ JSCompiler_object_inline_styles_1652 = new Map(),
2727
+ JSCompiler_object_inline_bootstrapScripts_1653 = new Set(),
2728
+ JSCompiler_object_inline_scripts_1654 = new Set(),
2729
+ JSCompiler_object_inline_bulkPreloads_1655 = new Set(),
2730
+ JSCompiler_object_inline_preloads_1656 = {
2724
2731
  images: new Map(),
2725
2732
  stylesheets: new Map(),
2726
2733
  scripts: new Map(),
@@ -2757,7 +2764,7 @@ function createRenderState(resumableState, generateStaticMarkup) {
2757
2764
  scriptConfig.moduleScriptResources[href] = null;
2758
2765
  scriptConfig = [];
2759
2766
  pushLinkImpl(scriptConfig, props);
2760
- JSCompiler_object_inline_bootstrapScripts_1630.add(scriptConfig);
2767
+ JSCompiler_object_inline_bootstrapScripts_1653.add(scriptConfig);
2761
2768
  bootstrapChunks.push('<script src="', escapeTextForBrowser(src), '"');
2762
2769
  "string" === typeof integrity &&
2763
2770
  bootstrapChunks.push(
@@ -2804,7 +2811,7 @@ function createRenderState(resumableState, generateStaticMarkup) {
2804
2811
  (props.moduleScriptResources[scriptConfig] = null),
2805
2812
  (props = []),
2806
2813
  pushLinkImpl(props, integrity),
2807
- JSCompiler_object_inline_bootstrapScripts_1630.add(props),
2814
+ JSCompiler_object_inline_bootstrapScripts_1653.add(props),
2808
2815
  bootstrapChunks.push(
2809
2816
  '<script type="module" src="',
2810
2817
  escapeTextForBrowser(i),
@@ -2826,10 +2833,10 @@ function createRenderState(resumableState, generateStaticMarkup) {
2826
2833
  bootstrapChunks.push(' async="">\x3c/script>');
2827
2834
  return {
2828
2835
  placeholderPrefix: bootstrapScriptContent,
2829
- segmentPrefix: JSCompiler_object_inline_segmentPrefix_1613,
2836
+ segmentPrefix: JSCompiler_object_inline_segmentPrefix_1636,
2830
2837
  boundaryPrefix: idPrefix,
2831
2838
  startInlineScript: "<script",
2832
- preamble: JSCompiler_object_inline_preamble_1616,
2839
+ preamble: { htmlChunks: null, headChunks: null, bodyChunks: null },
2833
2840
  externalRuntimeScript: null,
2834
2841
  bootstrapChunks: bootstrapChunks,
2835
2842
  importMapChunks: [],
@@ -2845,14 +2852,14 @@ function createRenderState(resumableState, generateStaticMarkup) {
2845
2852
  charsetChunks: [],
2846
2853
  viewportChunks: [],
2847
2854
  hoistableChunks: [],
2848
- preconnects: JSCompiler_object_inline_preconnects_1626,
2849
- fontPreloads: JSCompiler_object_inline_fontPreloads_1627,
2850
- highImagePreloads: JSCompiler_object_inline_highImagePreloads_1628,
2851
- styles: JSCompiler_object_inline_styles_1629,
2852
- bootstrapScripts: JSCompiler_object_inline_bootstrapScripts_1630,
2853
- scripts: JSCompiler_object_inline_scripts_1631,
2854
- bulkPreloads: JSCompiler_object_inline_bulkPreloads_1632,
2855
- preloads: JSCompiler_object_inline_preloads_1633,
2855
+ preconnects: JSCompiler_object_inline_preconnects_1649,
2856
+ fontPreloads: JSCompiler_object_inline_fontPreloads_1650,
2857
+ highImagePreloads: JSCompiler_object_inline_highImagePreloads_1651,
2858
+ styles: JSCompiler_object_inline_styles_1652,
2859
+ bootstrapScripts: JSCompiler_object_inline_bootstrapScripts_1653,
2860
+ scripts: JSCompiler_object_inline_scripts_1654,
2861
+ bulkPreloads: JSCompiler_object_inline_bulkPreloads_1655,
2862
+ preloads: JSCompiler_object_inline_preloads_1656,
2856
2863
  stylesToHoist: !1,
2857
2864
  generateStaticMarkup: generateStaticMarkup
2858
2865
  };
@@ -3689,6 +3696,7 @@ function createRequest(
3689
3696
  rootFormatContext,
3690
3697
  null,
3691
3698
  emptyTreeContext,
3699
+ null,
3692
3700
  null
3693
3701
  );
3694
3702
  pushComponentStack(children);
@@ -3704,15 +3712,17 @@ function pingTask(request, task) {
3704
3712
  }
3705
3713
  function createSuspenseBoundary(
3706
3714
  request,
3715
+ row,
3707
3716
  fallbackAbortableTasks,
3708
3717
  contentPreamble,
3709
3718
  fallbackPreamble
3710
3719
  ) {
3711
- return {
3720
+ fallbackAbortableTasks = {
3712
3721
  status: 0,
3713
3722
  rootSegmentID: -1,
3714
3723
  parentFlushed: !1,
3715
3724
  pendingTasks: 0,
3725
+ row: row,
3716
3726
  completedSegments: [],
3717
3727
  byteSize: 0,
3718
3728
  fallbackAbortableTasks: fallbackAbortableTasks,
@@ -3724,6 +3734,17 @@ function createSuspenseBoundary(
3724
3734
  trackedContentKeyPath: null,
3725
3735
  trackedFallbackNode: null
3726
3736
  };
3737
+ null !== row &&
3738
+ (row.pendingTasks++,
3739
+ (contentPreamble = row.boundaries),
3740
+ null !== contentPreamble &&
3741
+ (request.allPendingTasks++,
3742
+ fallbackAbortableTasks.pendingTasks++,
3743
+ contentPreamble.push(fallbackAbortableTasks)),
3744
+ (request = row.inheritedHoistables),
3745
+ null !== request &&
3746
+ hoistHoistables(fallbackAbortableTasks.contentState, request));
3747
+ return fallbackAbortableTasks;
3727
3748
  }
3728
3749
  function createRenderTask(
3729
3750
  request,
@@ -3739,12 +3760,14 @@ function createRenderTask(
3739
3760
  formatContext,
3740
3761
  context,
3741
3762
  treeContext,
3763
+ row,
3742
3764
  componentStack
3743
3765
  ) {
3744
3766
  request.allPendingTasks++;
3745
3767
  null === blockedBoundary
3746
3768
  ? request.pendingRootTasks++
3747
3769
  : blockedBoundary.pendingTasks++;
3770
+ null !== row && row.pendingTasks++;
3748
3771
  var task = {
3749
3772
  replay: null,
3750
3773
  node: node,
@@ -3761,6 +3784,7 @@ function createRenderTask(
3761
3784
  formatContext: formatContext,
3762
3785
  context: context,
3763
3786
  treeContext: treeContext,
3787
+ row: row,
3764
3788
  componentStack: componentStack,
3765
3789
  thenableState: thenableState
3766
3790
  };
@@ -3780,12 +3804,14 @@ function createReplayTask(
3780
3804
  formatContext,
3781
3805
  context,
3782
3806
  treeContext,
3807
+ row,
3783
3808
  componentStack
3784
3809
  ) {
3785
3810
  request.allPendingTasks++;
3786
3811
  null === blockedBoundary
3787
3812
  ? request.pendingRootTasks++
3788
3813
  : blockedBoundary.pendingTasks++;
3814
+ null !== row && row.pendingTasks++;
3789
3815
  replay.pendingTasks++;
3790
3816
  var task = {
3791
3817
  replay: replay,
@@ -3803,6 +3829,7 @@ function createReplayTask(
3803
3829
  formatContext: formatContext,
3804
3830
  context: context,
3805
3831
  treeContext: treeContext,
3832
+ row: row,
3806
3833
  componentStack: componentStack,
3807
3834
  thenableState: thenableState
3808
3835
  };
@@ -3880,6 +3907,164 @@ function fatalError(request, error) {
3880
3907
  ? ((request.status = 14), request.destination.destroy(error))
3881
3908
  : ((request.status = 13), (request.fatalError = error));
3882
3909
  }
3910
+ function finishSuspenseListRow(request, row) {
3911
+ unblockSuspenseListRow(request, row.next, row.hoistables);
3912
+ }
3913
+ function unblockSuspenseListRow(request, unblockedRow, inheritedHoistables) {
3914
+ for (; null !== unblockedRow; ) {
3915
+ null !== inheritedHoistables &&
3916
+ (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
3917
+ (unblockedRow.inheritedHoistables = inheritedHoistables));
3918
+ var unblockedBoundaries = unblockedRow.boundaries;
3919
+ if (null !== unblockedBoundaries) {
3920
+ unblockedRow.boundaries = null;
3921
+ for (var i = 0; i < unblockedBoundaries.length; i++) {
3922
+ var unblockedBoundary = unblockedBoundaries[i];
3923
+ null !== inheritedHoistables &&
3924
+ hoistHoistables(unblockedBoundary.contentState, inheritedHoistables);
3925
+ finishedTask(request, unblockedBoundary, null, null);
3926
+ }
3927
+ }
3928
+ unblockedRow.pendingTasks--;
3929
+ if (0 < unblockedRow.pendingTasks) break;
3930
+ inheritedHoistables = unblockedRow.hoistables;
3931
+ unblockedRow = unblockedRow.next;
3932
+ }
3933
+ }
3934
+ function tryToResolveTogetherRow(request, togetherRow) {
3935
+ var boundaries = togetherRow.boundaries;
3936
+ if (null !== boundaries && togetherRow.pendingTasks === boundaries.length) {
3937
+ for (var allCompleteAndInlinable = !0, i = 0; i < boundaries.length; i++) {
3938
+ var rowBoundary = boundaries[i];
3939
+ if (
3940
+ 1 !== rowBoundary.pendingTasks ||
3941
+ rowBoundary.parentFlushed ||
3942
+ 500 < rowBoundary.byteSize
3943
+ ) {
3944
+ allCompleteAndInlinable = !1;
3945
+ break;
3946
+ }
3947
+ }
3948
+ allCompleteAndInlinable &&
3949
+ unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
3950
+ }
3951
+ }
3952
+ function createSuspenseListRow(previousRow) {
3953
+ var newRow = {
3954
+ pendingTasks: 1,
3955
+ boundaries: null,
3956
+ hoistables: createHoistableState(),
3957
+ inheritedHoistables: null,
3958
+ together: !1,
3959
+ next: null
3960
+ };
3961
+ null !== previousRow &&
3962
+ 0 < previousRow.pendingTasks &&
3963
+ (newRow.pendingTasks++,
3964
+ (newRow.boundaries = []),
3965
+ (previousRow.next = newRow));
3966
+ return newRow;
3967
+ }
3968
+ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
3969
+ var prevKeyPath = task.keyPath,
3970
+ prevTreeContext = task.treeContext,
3971
+ prevRow = task.row;
3972
+ task.keyPath = keyPath;
3973
+ keyPath = rows.length;
3974
+ var previousSuspenseListRow = null;
3975
+ if (null !== task.replay) {
3976
+ var resumeSlots = task.replay.slots;
3977
+ if (null !== resumeSlots && "object" === typeof resumeSlots)
3978
+ for (var n = 0; n < keyPath; n++) {
3979
+ var i = "backwards" !== revealOrder ? n : keyPath - 1 - n,
3980
+ node = rows[i];
3981
+ task.row = previousSuspenseListRow = createSuspenseListRow(
3982
+ previousSuspenseListRow
3983
+ );
3984
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
3985
+ var resumeSegmentID = resumeSlots[i];
3986
+ "number" === typeof resumeSegmentID
3987
+ ? (resumeNode(request, task, resumeSegmentID, node, i),
3988
+ delete resumeSlots[i])
3989
+ : renderNode(request, task, node, i);
3990
+ 0 === --previousSuspenseListRow.pendingTasks &&
3991
+ finishSuspenseListRow(request, previousSuspenseListRow);
3992
+ }
3993
+ else
3994
+ for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
3995
+ (n =
3996
+ "backwards" !== revealOrder
3997
+ ? resumeSlots
3998
+ : keyPath - 1 - resumeSlots),
3999
+ (i = rows[n]),
4000
+ (task.row = previousSuspenseListRow =
4001
+ createSuspenseListRow(previousSuspenseListRow)),
4002
+ (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
4003
+ renderNode(request, task, i, n),
4004
+ 0 === --previousSuspenseListRow.pendingTasks &&
4005
+ finishSuspenseListRow(request, previousSuspenseListRow);
4006
+ } else if ("backwards" !== revealOrder)
4007
+ for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
4008
+ (resumeSlots = rows[revealOrder]),
4009
+ (task.row = previousSuspenseListRow =
4010
+ createSuspenseListRow(previousSuspenseListRow)),
4011
+ (task.treeContext = pushTreeContext(
4012
+ prevTreeContext,
4013
+ keyPath,
4014
+ revealOrder
4015
+ )),
4016
+ renderNode(request, task, resumeSlots, revealOrder),
4017
+ 0 === --previousSuspenseListRow.pendingTasks &&
4018
+ finishSuspenseListRow(request, previousSuspenseListRow);
4019
+ else {
4020
+ revealOrder = task.blockedSegment;
4021
+ resumeSlots = revealOrder.children.length;
4022
+ n = revealOrder.chunks.length;
4023
+ for (i = keyPath - 1; 0 <= i; i--) {
4024
+ node = rows[i];
4025
+ task.row = previousSuspenseListRow = createSuspenseListRow(
4026
+ previousSuspenseListRow
4027
+ );
4028
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
4029
+ resumeSegmentID = createPendingSegment(
4030
+ request,
4031
+ n,
4032
+ null,
4033
+ task.formatContext,
4034
+ 0 === i ? revealOrder.lastPushedText : !0,
4035
+ !0
4036
+ );
4037
+ revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
4038
+ task.blockedSegment = resumeSegmentID;
4039
+ try {
4040
+ renderNode(request, task, node, i),
4041
+ pushSegmentFinale(
4042
+ resumeSegmentID.chunks,
4043
+ request.renderState,
4044
+ resumeSegmentID.lastPushedText,
4045
+ resumeSegmentID.textEmbedded
4046
+ ),
4047
+ (resumeSegmentID.status = 1),
4048
+ 0 === --previousSuspenseListRow.pendingTasks &&
4049
+ finishSuspenseListRow(request, previousSuspenseListRow);
4050
+ } catch (thrownValue) {
4051
+ throw (
4052
+ ((resumeSegmentID.status = 12 === request.status ? 3 : 4),
4053
+ thrownValue)
4054
+ );
4055
+ }
4056
+ }
4057
+ task.blockedSegment = revealOrder;
4058
+ revealOrder.lastPushedText = !1;
4059
+ }
4060
+ null !== prevRow &&
4061
+ null !== previousSuspenseListRow &&
4062
+ 0 < previousSuspenseListRow.pendingTasks &&
4063
+ (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
4064
+ task.treeContext = prevTreeContext;
4065
+ task.row = prevRow;
4066
+ task.keyPath = prevKeyPath;
4067
+ }
3883
4068
  function renderWithHooks(request, task, keyPath, Component, props, secondArg) {
3884
4069
  var prevThenableState = task.thenableState;
3885
4070
  task.thenableState = null;
@@ -3947,9 +4132,9 @@ function renderElement(request, task, keyPath, type, props, ref) {
3947
4132
  var defaultProps = type.defaultProps;
3948
4133
  if (defaultProps) {
3949
4134
  newProps === props && (newProps = assign({}, newProps, props));
3950
- for (var propName$34 in defaultProps)
3951
- void 0 === newProps[propName$34] &&
3952
- (newProps[propName$34] = defaultProps[propName$34]);
4135
+ for (var propName$43 in defaultProps)
4136
+ void 0 === newProps[propName$43] &&
4137
+ (newProps[propName$43] = defaultProps[propName$43]);
3953
4138
  }
3954
4139
  props = newProps;
3955
4140
  newProps = emptyContextObject;
@@ -4009,16 +4194,16 @@ function renderElement(request, task, keyPath, type, props, ref) {
4009
4194
  defaultProps = ref ? type[0] : newProps.state;
4010
4195
  initialState = !0;
4011
4196
  for (ref = ref ? 1 : 0; ref < type.length; ref++)
4012
- (propName$34 = type[ref]),
4013
- (propName$34 =
4014
- "function" === typeof propName$34
4015
- ? propName$34.call(newProps, defaultProps, props, void 0)
4016
- : propName$34),
4017
- null != propName$34 &&
4197
+ (propName$43 = type[ref]),
4198
+ (propName$43 =
4199
+ "function" === typeof propName$43
4200
+ ? propName$43.call(newProps, defaultProps, props, void 0)
4201
+ : propName$43),
4202
+ null != propName$43 &&
4018
4203
  (initialState
4019
4204
  ? ((initialState = !1),
4020
- (defaultProps = assign({}, defaultProps, propName$34)))
4021
- : assign(defaultProps, propName$34));
4205
+ (defaultProps = assign({}, defaultProps, propName$43)))
4206
+ : assign(defaultProps, propName$43));
4022
4207
  newProps.state = defaultProps;
4023
4208
  }
4024
4209
  else defaultProps.queue = null;
@@ -4093,6 +4278,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4093
4278
  task.formatContext,
4094
4279
  task.context,
4095
4280
  task.treeContext,
4281
+ task.row,
4096
4282
  task.componentStack
4097
4283
  )),
4098
4284
  pushComponentStack(keyPath),
@@ -4174,10 +4360,45 @@ function renderElement(request, task, keyPath, type, props, ref) {
4174
4360
  (type.lastPushedText = !1));
4175
4361
  return;
4176
4362
  case REACT_SUSPENSE_LIST_TYPE:
4177
- type = task.keyPath;
4178
- task.keyPath = keyPath;
4179
- renderNodeDestructive(request, task, props.children, -1);
4180
- task.keyPath = type;
4363
+ a: {
4364
+ type = props.children;
4365
+ props = props.revealOrder;
4366
+ if ("forwards" === props || "backwards" === props) {
4367
+ if (isArrayImpl(type)) {
4368
+ renderSuspenseListRows(request, task, keyPath, type, props);
4369
+ break a;
4370
+ }
4371
+ if ((newProps = getIteratorFn(type)))
4372
+ if ((newProps = newProps.call(type))) {
4373
+ defaultProps = newProps.next();
4374
+ if (!defaultProps.done) {
4375
+ do defaultProps = newProps.next();
4376
+ while (!defaultProps.done);
4377
+ renderSuspenseListRows(request, task, keyPath, type, props);
4378
+ }
4379
+ break a;
4380
+ }
4381
+ }
4382
+ "together" === props
4383
+ ? ((props = task.keyPath),
4384
+ (newProps = task.row),
4385
+ (defaultProps = task.row = createSuspenseListRow(null)),
4386
+ (defaultProps.boundaries = []),
4387
+ (defaultProps.together = !0),
4388
+ (task.keyPath = keyPath),
4389
+ renderNodeDestructive(request, task, type, -1),
4390
+ 0 === --defaultProps.pendingTasks &&
4391
+ finishSuspenseListRow(request, defaultProps),
4392
+ (task.keyPath = props),
4393
+ (task.row = newProps),
4394
+ null !== newProps &&
4395
+ 0 < defaultProps.pendingTasks &&
4396
+ (newProps.pendingTasks++, (defaultProps.next = newProps)))
4397
+ : ((props = task.keyPath),
4398
+ (task.keyPath = keyPath),
4399
+ renderNodeDestructive(request, task, type, -1),
4400
+ (task.keyPath = props));
4401
+ }
4181
4402
  return;
4182
4403
  case REACT_VIEW_TRANSITION_TYPE:
4183
4404
  case REACT_SCOPE_TYPE:
@@ -4186,36 +4407,39 @@ function renderElement(request, task, keyPath, type, props, ref) {
4186
4407
  a: if (null !== task.replay) {
4187
4408
  type = task.keyPath;
4188
4409
  newProps = task.formatContext;
4410
+ defaultProps = task.row;
4189
4411
  task.keyPath = keyPath;
4190
4412
  task.formatContext = getSuspenseContentFormatContext(
4191
4413
  request.resumableState,
4192
4414
  newProps
4193
4415
  );
4416
+ task.row = null;
4194
4417
  keyPath = props.children;
4195
4418
  try {
4196
4419
  renderNode(request, task, keyPath, -1);
4197
4420
  } finally {
4198
- (task.keyPath = type), (task.formatContext = newProps);
4421
+ (task.keyPath = type),
4422
+ (task.formatContext = newProps),
4423
+ (task.row = defaultProps);
4199
4424
  }
4200
4425
  } else {
4201
4426
  type = task.keyPath;
4202
4427
  ref = task.formatContext;
4203
- var parentBoundary = task.blockedBoundary;
4204
- propName$34 = task.blockedPreamble;
4428
+ var prevRow = task.row,
4429
+ parentBoundary = task.blockedBoundary;
4430
+ propName$43 = task.blockedPreamble;
4205
4431
  var parentHoistableState = task.hoistableState;
4206
4432
  propName = task.blockedSegment;
4207
4433
  var fallback = props.fallback;
4208
4434
  props = props.children;
4209
4435
  var fallbackAbortSet = new Set();
4210
- var newBoundary =
4211
- 2 > task.formatContext.insertionMode
4212
- ? createSuspenseBoundary(
4213
- request,
4214
- fallbackAbortSet,
4215
- createPreambleState(),
4216
- createPreambleState()
4217
- )
4218
- : createSuspenseBoundary(request, fallbackAbortSet, null, null);
4436
+ var newBoundary = createSuspenseBoundary(
4437
+ request,
4438
+ task.row,
4439
+ fallbackAbortSet,
4440
+ null,
4441
+ null
4442
+ );
4219
4443
  null !== request.trackedPostpones &&
4220
4444
  (newBoundary.trackedContentKeyPath = keyPath);
4221
4445
  var boundarySegment = createPendingSegment(
@@ -4266,7 +4490,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4266
4490
  );
4267
4491
  } finally {
4268
4492
  (task.blockedSegment = propName),
4269
- (task.blockedPreamble = propName$34),
4493
+ (task.blockedPreamble = propName$43),
4270
4494
  (task.keyPath = type),
4271
4495
  (task.formatContext = ref);
4272
4496
  }
@@ -4287,6 +4511,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4287
4511
  ),
4288
4512
  task.context,
4289
4513
  task.treeContext,
4514
+ null,
4290
4515
  task.componentStack
4291
4516
  );
4292
4517
  pushComponentStack(task);
@@ -4301,6 +4526,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4301
4526
  request.resumableState,
4302
4527
  ref
4303
4528
  );
4529
+ task.row = null;
4304
4530
  contentRootSegment.status = 6;
4305
4531
  try {
4306
4532
  if (
@@ -4313,22 +4539,28 @@ function renderElement(request, task, keyPath, type, props, ref) {
4313
4539
  ),
4314
4540
  (contentRootSegment.status = 1),
4315
4541
  queueCompletedSegment(newBoundary, contentRootSegment),
4316
- 0 === newBoundary.pendingTasks &&
4317
- 0 === newBoundary.status &&
4318
- ((newBoundary.status = 1), !(500 < newBoundary.byteSize)))
4542
+ 0 === newBoundary.pendingTasks && 0 === newBoundary.status)
4319
4543
  ) {
4320
- 0 === request.pendingRootTasks &&
4321
- task.blockedPreamble &&
4322
- preparePreamble(request);
4323
- break a;
4324
- }
4325
- } catch (thrownValue$29) {
4544
+ if (((newBoundary.status = 1), !(500 < newBoundary.byteSize))) {
4545
+ null !== prevRow &&
4546
+ 0 === --prevRow.pendingTasks &&
4547
+ finishSuspenseListRow(request, prevRow);
4548
+ 0 === request.pendingRootTasks &&
4549
+ task.blockedPreamble &&
4550
+ preparePreamble(request);
4551
+ break a;
4552
+ }
4553
+ } else
4554
+ null !== prevRow &&
4555
+ prevRow.together &&
4556
+ tryToResolveTogetherRow(request, prevRow);
4557
+ } catch (thrownValue$30) {
4326
4558
  (newBoundary.status = 4),
4327
4559
  12 === request.status
4328
4560
  ? ((contentRootSegment.status = 3),
4329
4561
  (newProps = request.fatalError))
4330
4562
  : ((contentRootSegment.status = 4),
4331
- (newProps = thrownValue$29)),
4563
+ (newProps = thrownValue$30)),
4332
4564
  (defaultProps = getThrownInfo(task.componentStack)),
4333
4565
  (initialState = logRecoverableError(
4334
4566
  request,
@@ -4339,11 +4571,12 @@ function renderElement(request, task, keyPath, type, props, ref) {
4339
4571
  untrackBoundary(request, newBoundary);
4340
4572
  } finally {
4341
4573
  (task.blockedBoundary = parentBoundary),
4342
- (task.blockedPreamble = propName$34),
4574
+ (task.blockedPreamble = propName$43),
4343
4575
  (task.hoistableState = parentHoistableState),
4344
4576
  (task.blockedSegment = propName),
4345
4577
  (task.keyPath = type),
4346
- (task.formatContext = ref);
4578
+ (task.formatContext = ref),
4579
+ (task.row = prevRow);
4347
4580
  }
4348
4581
  task = createRenderTask(
4349
4582
  request,
@@ -4362,6 +4595,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4362
4595
  ),
4363
4596
  task.context,
4364
4597
  task.treeContext,
4598
+ task.row,
4365
4599
  task.componentStack
4366
4600
  );
4367
4601
  pushComponentStack(task);
@@ -4571,26 +4805,20 @@ function retryNode(request, task) {
4571
4805
  null === node$jscomp$0[4] ? null : node$jscomp$0[4][3];
4572
4806
  var prevKeyPath = task.keyPath,
4573
4807
  prevContext = task.formatContext,
4808
+ prevRow = task.row,
4574
4809
  previousReplaySet = task.replay,
4575
4810
  parentBoundary = task.blockedBoundary,
4576
4811
  parentHoistableState = task.hoistableState,
4577
4812
  content = props.children,
4578
4813
  fallback = props.fallback,
4579
4814
  fallbackAbortSet = new Set();
4580
- props =
4581
- 2 > task.formatContext.insertionMode
4582
- ? createSuspenseBoundary(
4583
- request,
4584
- fallbackAbortSet,
4585
- createPreambleState(),
4586
- createPreambleState()
4587
- )
4588
- : createSuspenseBoundary(
4589
- request,
4590
- fallbackAbortSet,
4591
- null,
4592
- null
4593
- );
4815
+ props = createSuspenseBoundary(
4816
+ request,
4817
+ task.row,
4818
+ fallbackAbortSet,
4819
+ null,
4820
+ null
4821
+ );
4594
4822
  props.parentFlushed = !0;
4595
4823
  props.rootSegmentID = type;
4596
4824
  task.blockedBoundary = props;
@@ -4600,6 +4828,7 @@ function retryNode(request, task) {
4600
4828
  request.resumableState,
4601
4829
  prevContext
4602
4830
  );
4831
+ task.row = null;
4603
4832
  task.replay = {
4604
4833
  nodes: ref,
4605
4834
  slots: name,
@@ -4634,9 +4863,10 @@ function retryNode(request, task) {
4634
4863
  (task.hoistableState = parentHoistableState),
4635
4864
  (task.replay = previousReplaySet),
4636
4865
  (task.keyPath = prevKeyPath),
4637
- (task.formatContext = prevContext);
4866
+ (task.formatContext = prevContext),
4867
+ (task.row = prevRow);
4638
4868
  }
4639
- task = createReplayTask(
4869
+ childNodes = createReplayTask(
4640
4870
  request,
4641
4871
  null,
4642
4872
  {
@@ -4656,10 +4886,11 @@ function retryNode(request, task) {
4656
4886
  ),
4657
4887
  task.context,
4658
4888
  task.treeContext,
4889
+ task.row,
4659
4890
  task.componentStack
4660
4891
  );
4661
- pushComponentStack(task);
4662
- request.pingedTasks.push(task);
4892
+ pushComponentStack(childNodes);
4893
+ request.pingedTasks.push(childNodes);
4663
4894
  }
4664
4895
  }
4665
4896
  childIndex.splice(node, 1);
@@ -4682,22 +4913,17 @@ function retryNode(request, task) {
4682
4913
  renderChildrenArray(request, task, node, childIndex);
4683
4914
  return;
4684
4915
  }
4685
- null === node || "object" !== typeof node
4686
- ? (childNodes = null)
4687
- : ((childNodes =
4688
- (MAYBE_ITERATOR_SYMBOL && node[MAYBE_ITERATOR_SYMBOL]) ||
4689
- node["@@iterator"]),
4690
- (childNodes = "function" === typeof childNodes ? childNodes : null));
4691
- if (childNodes && (childNodes = childNodes.call(node))) {
4692
- node = childNodes.next();
4693
- if (!node.done) {
4694
- props = [];
4695
- do props.push(node.value), (node = childNodes.next());
4696
- while (!node.done);
4697
- renderChildrenArray(request, task, props, childIndex);
4916
+ if ((childNodes = getIteratorFn(node)))
4917
+ if ((childNodes = childNodes.call(node))) {
4918
+ node = childNodes.next();
4919
+ if (!node.done) {
4920
+ props = [];
4921
+ do props.push(node.value), (node = childNodes.next());
4922
+ while (!node.done);
4923
+ renderChildrenArray(request, task, props, childIndex);
4924
+ }
4925
+ return;
4698
4926
  }
4699
- return;
4700
- }
4701
4927
  if ("function" === typeof node.then)
4702
4928
  return (
4703
4929
  (task.thenableState = null),
@@ -4839,6 +5065,7 @@ function spawnNewSuspendedReplayTask(request, task, thenableState) {
4839
5065
  task.formatContext,
4840
5066
  task.context,
4841
5067
  task.treeContext,
5068
+ task.row,
4842
5069
  task.componentStack
4843
5070
  );
4844
5071
  }
@@ -4868,6 +5095,7 @@ function spawnNewSuspendedRenderTask(request, task, thenableState) {
4868
5095
  task.formatContext,
4869
5096
  task.context,
4870
5097
  task.treeContext,
5098
+ task.row,
4871
5099
  task.componentStack
4872
5100
  );
4873
5101
  }
@@ -4921,15 +5149,15 @@ function renderNode(request, task, node, childIndex) {
4921
5149
  chunkLength = segment.chunks.length;
4922
5150
  try {
4923
5151
  return renderNodeDestructive(request, task, node, childIndex);
4924
- } catch (thrownValue$51) {
5152
+ } catch (thrownValue$59) {
4925
5153
  if (
4926
5154
  (resetHooksState(),
4927
5155
  (segment.children.length = childrenLength),
4928
5156
  (segment.chunks.length = chunkLength),
4929
5157
  (node =
4930
- thrownValue$51 === SuspenseException
5158
+ thrownValue$59 === SuspenseException
4931
5159
  ? getSuspendedThenable()
4932
- : thrownValue$51),
5160
+ : thrownValue$59),
4933
5161
  "object" === typeof node && null !== node)
4934
5162
  ) {
4935
5163
  if ("function" === typeof node.then) {
@@ -4967,9 +5195,10 @@ function renderNode(request, task, node, childIndex) {
4967
5195
  throw node;
4968
5196
  }
4969
5197
  function abortTaskSoft(task) {
4970
- var boundary = task.blockedBoundary;
4971
- task = task.blockedSegment;
4972
- null !== task && ((task.status = 3), finishedTask(this, boundary, task));
5198
+ var boundary = task.blockedBoundary,
5199
+ segment = task.blockedSegment;
5200
+ null !== segment &&
5201
+ ((segment.status = 3), finishedTask(this, boundary, task.row, segment));
4973
5202
  }
4974
5203
  function abortRemainingReplayNodes(
4975
5204
  request$jscomp$0,
@@ -4996,6 +5225,7 @@ function abortRemainingReplayNodes(
4996
5225
  errorDigest = errorDigest$jscomp$0,
4997
5226
  resumedBoundary = createSuspenseBoundary(
4998
5227
  request,
5228
+ null,
4999
5229
  new Set(),
5000
5230
  null,
5001
5231
  null
@@ -5038,32 +5268,40 @@ function abortTask(task, request, error) {
5038
5268
  boundary.pendingTasks--;
5039
5269
  0 === boundary.pendingTasks &&
5040
5270
  0 < boundary.nodes.length &&
5041
- ((task = logRecoverableError(request, error, segment)),
5271
+ ((segment = logRecoverableError(request, error, segment)),
5042
5272
  abortRemainingReplayNodes(
5043
5273
  request,
5044
5274
  null,
5045
5275
  boundary.nodes,
5046
5276
  boundary.slots,
5047
5277
  error,
5048
- task
5278
+ segment
5049
5279
  ));
5050
5280
  request.pendingRootTasks--;
5051
5281
  0 === request.pendingRootTasks && completeShell(request);
5052
5282
  }
5053
5283
  } else
5054
- boundary.pendingTasks--,
5055
- 4 !== boundary.status &&
5056
- ((boundary.status = 4),
5057
- (task = logRecoverableError(request, error, segment)),
5058
- (boundary.status = 4),
5059
- (boundary.errorDigest = task),
5060
- untrackBoundary(request, boundary),
5061
- boundary.parentFlushed &&
5062
- request.clientRenderedBoundaries.push(boundary)),
5284
+ 4 !== boundary.status &&
5285
+ ((boundary.status = 4),
5286
+ (segment = logRecoverableError(request, error, segment)),
5287
+ (boundary.status = 4),
5288
+ (boundary.errorDigest = segment),
5289
+ untrackBoundary(request, boundary),
5290
+ boundary.parentFlushed &&
5291
+ request.clientRenderedBoundaries.push(boundary)),
5292
+ boundary.pendingTasks--,
5293
+ (segment = boundary.row),
5294
+ null !== segment &&
5295
+ 0 === --segment.pendingTasks &&
5296
+ finishSuspenseListRow(request, segment),
5063
5297
  boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
5064
5298
  return abortTask(fallbackTask, request, error);
5065
5299
  }),
5066
5300
  boundary.fallbackAbortableTasks.clear();
5301
+ task = task.row;
5302
+ null !== task &&
5303
+ 0 === --task.pendingTasks &&
5304
+ finishSuspenseListRow(request, task);
5067
5305
  request.allPendingTasks--;
5068
5306
  0 === request.allPendingTasks && completeAll(request);
5069
5307
  }
@@ -5160,7 +5398,11 @@ function queueCompletedSegment(boundary, segment) {
5160
5398
  1 === childSegment.status && queueCompletedSegment(boundary, childSegment);
5161
5399
  } else boundary.completedSegments.push(segment);
5162
5400
  }
5163
- function finishedTask(request, boundary, segment) {
5401
+ function finishedTask(request, boundary, row, segment) {
5402
+ null !== row &&
5403
+ (0 === --row.pendingTasks
5404
+ ? finishSuspenseListRow(request, row)
5405
+ : row.together && tryToResolveTogetherRow(request, row));
5164
5406
  request.allPendingTasks--;
5165
5407
  if (null === boundary) {
5166
5408
  if (null !== segment && segment.parentFlushed) {
@@ -5182,23 +5424,33 @@ function finishedTask(request, boundary, segment) {
5182
5424
  boundary.parentFlushed &&
5183
5425
  request.completedBoundaries.push(boundary),
5184
5426
  1 === boundary.status &&
5185
- (500 < boundary.byteSize ||
5427
+ ((row = boundary.row),
5428
+ null !== row &&
5429
+ hoistHoistables(row.hoistables, boundary.contentState),
5430
+ 500 < boundary.byteSize ||
5186
5431
  (boundary.fallbackAbortableTasks.forEach(
5187
5432
  abortTaskSoft,
5188
5433
  request
5189
5434
  ),
5190
- boundary.fallbackAbortableTasks.clear()),
5435
+ boundary.fallbackAbortableTasks.clear(),
5436
+ null !== row &&
5437
+ 0 === --row.pendingTasks &&
5438
+ finishSuspenseListRow(request, row)),
5191
5439
  0 === request.pendingRootTasks &&
5192
5440
  null === request.trackedPostpones &&
5193
5441
  null !== boundary.contentPreamble &&
5194
5442
  preparePreamble(request)))
5195
- : null !== segment &&
5196
- segment.parentFlushed &&
5197
- 1 === segment.status &&
5198
- (queueCompletedSegment(boundary, segment),
5199
- 1 === boundary.completedSegments.length &&
5200
- boundary.parentFlushed &&
5201
- request.partialBoundaries.push(boundary)));
5443
+ : (null !== segment &&
5444
+ segment.parentFlushed &&
5445
+ 1 === segment.status &&
5446
+ (queueCompletedSegment(boundary, segment),
5447
+ 1 === boundary.completedSegments.length &&
5448
+ boundary.parentFlushed &&
5449
+ request.partialBoundaries.push(boundary)),
5450
+ (boundary = boundary.row),
5451
+ null !== boundary &&
5452
+ boundary.together &&
5453
+ tryToResolveTogetherRow(request, boundary)));
5202
5454
  0 === request.allPendingTasks && completeAll(request);
5203
5455
  }
5204
5456
  function performWork(request$jscomp$2) {
@@ -5240,7 +5492,12 @@ function performWork(request$jscomp$2) {
5240
5492
  throw Error(formatProdErrorMessage(488));
5241
5493
  task.replay.pendingTasks--;
5242
5494
  task.abortSet.delete(task);
5243
- finishedTask(request$jscomp$0, task.blockedBoundary, null);
5495
+ finishedTask(
5496
+ request$jscomp$0,
5497
+ task.blockedBoundary,
5498
+ task.row,
5499
+ null
5500
+ );
5244
5501
  } catch (thrownValue) {
5245
5502
  resetHooksState();
5246
5503
  var x =
@@ -5310,7 +5567,12 @@ function performWork(request$jscomp$2) {
5310
5567
  ),
5311
5568
  task.abortSet.delete(task),
5312
5569
  (request$jscomp$1.status = 1),
5313
- finishedTask(request, task.blockedBoundary, request$jscomp$1);
5570
+ finishedTask(
5571
+ request,
5572
+ task.blockedBoundary,
5573
+ task.row,
5574
+ request$jscomp$1
5575
+ );
5314
5576
  } catch (thrownValue) {
5315
5577
  resetHooksState();
5316
5578
  request$jscomp$1.children.length = childrenLength;
@@ -5334,26 +5596,36 @@ function performWork(request$jscomp$2) {
5334
5596
  var errorInfo$jscomp$0 = getThrownInfo(task.componentStack);
5335
5597
  task.abortSet.delete(task);
5336
5598
  request$jscomp$1.status = 4;
5337
- var boundary$jscomp$0 = task.blockedBoundary;
5599
+ var boundary$jscomp$0 = task.blockedBoundary,
5600
+ row = task.row;
5601
+ null !== row &&
5602
+ 0 === --row.pendingTasks &&
5603
+ finishSuspenseListRow(request, row);
5604
+ request.allPendingTasks--;
5338
5605
  request$jscomp$0 = logRecoverableError(
5339
5606
  request,
5340
5607
  x$jscomp$0,
5341
5608
  errorInfo$jscomp$0
5342
5609
  );
5343
- null === boundary$jscomp$0
5344
- ? fatalError(request, x$jscomp$0)
5345
- : (boundary$jscomp$0.pendingTasks--,
5346
- 4 !== boundary$jscomp$0.status &&
5347
- ((boundary$jscomp$0.status = 4),
5348
- (boundary$jscomp$0.errorDigest = request$jscomp$0),
5349
- untrackBoundary(request, boundary$jscomp$0),
5350
- boundary$jscomp$0.parentFlushed &&
5351
- request.clientRenderedBoundaries.push(boundary$jscomp$0),
5352
- 0 === request.pendingRootTasks &&
5353
- null === request.trackedPostpones &&
5354
- null !== boundary$jscomp$0.contentPreamble &&
5355
- preparePreamble(request)));
5356
- request.allPendingTasks--;
5610
+ if (null === boundary$jscomp$0) fatalError(request, x$jscomp$0);
5611
+ else if (
5612
+ (boundary$jscomp$0.pendingTasks--,
5613
+ 4 !== boundary$jscomp$0.status)
5614
+ ) {
5615
+ boundary$jscomp$0.status = 4;
5616
+ boundary$jscomp$0.errorDigest = request$jscomp$0;
5617
+ untrackBoundary(request, boundary$jscomp$0);
5618
+ var boundaryRow = boundary$jscomp$0.row;
5619
+ null !== boundaryRow &&
5620
+ 0 === --boundaryRow.pendingTasks &&
5621
+ finishSuspenseListRow(request, boundaryRow);
5622
+ boundary$jscomp$0.parentFlushed &&
5623
+ request.clientRenderedBoundaries.push(boundary$jscomp$0);
5624
+ 0 === request.pendingRootTasks &&
5625
+ null === request.trackedPostpones &&
5626
+ null !== boundary$jscomp$0.contentPreamble &&
5627
+ preparePreamble(request);
5628
+ }
5357
5629
  0 === request.allPendingTasks && completeAll(request);
5358
5630
  }
5359
5631
  } finally {
@@ -5493,24 +5765,27 @@ function flushSegment(request, destination, segment, hoistableState) {
5493
5765
  if (null === boundary)
5494
5766
  return flushSubtree(request, destination, segment, hoistableState);
5495
5767
  boundary.parentFlushed = !0;
5496
- if (4 === boundary.status)
5497
- return (
5498
- request.renderState.generateStaticMarkup ||
5499
- ((boundary = boundary.errorDigest),
5500
- destination.push("\x3c!--$!--\x3e"),
5501
- destination.push("<template"),
5502
- boundary &&
5503
- (destination.push(' data-dgst="'),
5504
- (boundary = escapeTextForBrowser(boundary)),
5505
- destination.push(boundary),
5506
- destination.push('"')),
5507
- destination.push("></template>")),
5508
- flushSubtree(request, destination, segment, hoistableState),
5509
- (request = request.renderState.generateStaticMarkup
5510
- ? !0
5511
- : destination.push("\x3c!--/$--\x3e")),
5512
- request
5513
- );
5768
+ if (4 === boundary.status) {
5769
+ var row = boundary.row;
5770
+ null !== row &&
5771
+ 0 === --row.pendingTasks &&
5772
+ finishSuspenseListRow(request, row);
5773
+ request.renderState.generateStaticMarkup ||
5774
+ ((boundary = boundary.errorDigest),
5775
+ destination.push("\x3c!--$!--\x3e"),
5776
+ destination.push("<template"),
5777
+ boundary &&
5778
+ (destination.push(' data-dgst="'),
5779
+ (boundary = escapeTextForBrowser(boundary)),
5780
+ destination.push(boundary),
5781
+ destination.push('"')),
5782
+ destination.push("></template>"));
5783
+ flushSubtree(request, destination, segment, hoistableState);
5784
+ request = request.renderState.generateStaticMarkup
5785
+ ? !0
5786
+ : destination.push("\x3c!--/$--\x3e");
5787
+ return request;
5788
+ }
5514
5789
  if (1 !== boundary.status)
5515
5790
  return (
5516
5791
  0 === boundary.status &&
@@ -5522,13 +5797,7 @@ function flushSegment(request, destination, segment, hoistableState) {
5522
5797
  request.renderState,
5523
5798
  boundary.rootSegmentID
5524
5799
  ),
5525
- hoistableState &&
5526
- ((boundary = boundary.fallbackState),
5527
- boundary.styles.forEach(hoistStyleQueueDependency, hoistableState),
5528
- boundary.stylesheets.forEach(
5529
- hoistStylesheetDependency,
5530
- hoistableState
5531
- )),
5800
+ hoistableState && hoistHoistables(hoistableState, boundary.fallbackState),
5532
5801
  flushSubtree(request, destination, segment, hoistableState),
5533
5802
  destination.push("\x3c!--/$--\x3e")
5534
5803
  );
@@ -5548,10 +5817,12 @@ function flushSegment(request, destination, segment, hoistableState) {
5548
5817
  destination.push("\x3c!--/$--\x3e")
5549
5818
  );
5550
5819
  flushedByteSize += boundary.byteSize;
5551
- hoistableState &&
5552
- ((segment = boundary.contentState),
5553
- segment.styles.forEach(hoistStyleQueueDependency, hoistableState),
5554
- segment.stylesheets.forEach(hoistStylesheetDependency, hoistableState));
5820
+ hoistableState && hoistHoistables(hoistableState, boundary.contentState);
5821
+ segment = boundary.row;
5822
+ null !== segment &&
5823
+ 500 < boundary.byteSize &&
5824
+ 0 === --segment.pendingTasks &&
5825
+ finishSuspenseListRow(request, segment);
5555
5826
  request.renderState.generateStaticMarkup ||
5556
5827
  destination.push("\x3c!--$--\x3e");
5557
5828
  segment = boundary.completedSegments;
@@ -5586,6 +5857,11 @@ function flushCompletedBoundary(request, destination, boundary) {
5586
5857
  completedSegments[i]
5587
5858
  );
5588
5859
  completedSegments.length = 0;
5860
+ completedSegments = boundary.row;
5861
+ null !== completedSegments &&
5862
+ 500 < boundary.byteSize &&
5863
+ 0 === --completedSegments.pendingTasks &&
5864
+ finishSuspenseListRow(request, completedSegments);
5589
5865
  writeHoistablesForBoundary(
5590
5866
  destination,
5591
5867
  boundary.contentState,
@@ -5864,12 +6140,12 @@ function flushCompletedQueues(request, destination) {
5864
6140
  completedBoundaries.splice(0, i);
5865
6141
  var partialBoundaries = request.partialBoundaries;
5866
6142
  for (i = 0; i < partialBoundaries.length; i++) {
5867
- var boundary$54 = partialBoundaries[i];
6143
+ var boundary$64 = partialBoundaries[i];
5868
6144
  a: {
5869
6145
  clientRenderedBoundaries = request;
5870
6146
  boundary = destination;
5871
- flushedByteSize = boundary$54.byteSize;
5872
- var completedSegments = boundary$54.completedSegments;
6147
+ flushedByteSize = boundary$64.byteSize;
6148
+ var completedSegments = boundary$64.completedSegments;
5873
6149
  for (
5874
6150
  JSCompiler_inline_result = 0;
5875
6151
  JSCompiler_inline_result < completedSegments.length;
@@ -5879,7 +6155,7 @@ function flushCompletedQueues(request, destination) {
5879
6155
  !flushPartiallyCompletedSegment(
5880
6156
  clientRenderedBoundaries,
5881
6157
  boundary,
5882
- boundary$54,
6158
+ boundary$64,
5883
6159
  completedSegments[JSCompiler_inline_result]
5884
6160
  )
5885
6161
  ) {
@@ -5889,9 +6165,20 @@ function flushCompletedQueues(request, destination) {
5889
6165
  break a;
5890
6166
  }
5891
6167
  completedSegments.splice(0, JSCompiler_inline_result);
6168
+ var row = boundary$64.row;
6169
+ null !== row &&
6170
+ row.together &&
6171
+ 1 === boundary$64.pendingTasks &&
6172
+ (1 === row.pendingTasks
6173
+ ? unblockSuspenseListRow(
6174
+ clientRenderedBoundaries,
6175
+ row,
6176
+ row.hoistables
6177
+ )
6178
+ : row.pendingTasks--);
5892
6179
  JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
5893
6180
  boundary,
5894
- boundary$54.contentState,
6181
+ boundary$64.contentState,
5895
6182
  clientRenderedBoundaries.renderState
5896
6183
  );
5897
6184
  }
@@ -5974,8 +6261,8 @@ function abort(request, reason) {
5974
6261
  }
5975
6262
  null !== request.destination &&
5976
6263
  flushCompletedQueues(request, request.destination);
5977
- } catch (error$56) {
5978
- logRecoverableError(request, error$56, {}), fatalError(request, error$56);
6264
+ } catch (error$66) {
6265
+ logRecoverableError(request, error$66, {}), fatalError(request, error$66);
5979
6266
  }
5980
6267
  }
5981
6268
  function onError() {}
@@ -6041,4 +6328,4 @@ exports.renderToString = function (children, options) {
6041
6328
  'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server'
6042
6329
  );
6043
6330
  };
6044
- exports.version = "19.2.0-canary-462d08f9-20250517";
6331
+ exports.version = "19.2.0-canary-23884812-20250520";