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.
@@ -53,8 +53,15 @@ var React = require("react"),
53
53
  REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"),
54
54
  REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"),
55
55
  REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"),
56
- MAYBE_ITERATOR_SYMBOL = Symbol.iterator,
57
- isArrayImpl = Array.isArray;
56
+ MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
57
+ function getIteratorFn(maybeIterable) {
58
+ if (null === maybeIterable || "object" !== typeof maybeIterable) return null;
59
+ maybeIterable =
60
+ (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
61
+ maybeIterable["@@iterator"];
62
+ return "function" === typeof maybeIterable ? maybeIterable : null;
63
+ }
64
+ var isArrayImpl = Array.isArray;
58
65
  function murmurhash3_32_gc(key, seed) {
59
66
  var remainder = key.length & 3;
60
67
  var bytes = key.length - remainder;
@@ -314,9 +321,6 @@ function createResumableState(
314
321
  moduleScriptResources: {}
315
322
  };
316
323
  }
317
- function createPreambleState() {
318
- return { htmlChunks: null, headChunks: null, bodyChunks: null };
319
- }
320
324
  function createFormatContext(
321
325
  insertionMode,
322
326
  selectedValue,
@@ -2714,6 +2718,10 @@ function hoistStyleQueueDependency(styleQueue) {
2714
2718
  function hoistStylesheetDependency(stylesheet) {
2715
2719
  this.stylesheets.add(stylesheet);
2716
2720
  }
2721
+ function hoistHoistables(parentState, childState) {
2722
+ childState.styles.forEach(hoistStyleQueueDependency, parentState);
2723
+ childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
2724
+ }
2717
2725
  function createRenderState(resumableState, generateStaticMarkup) {
2718
2726
  var idPrefix = resumableState.idPrefix,
2719
2727
  bootstrapChunks = [],
@@ -2729,17 +2737,16 @@ function createRenderState(resumableState, generateStaticMarkup) {
2729
2737
  "\x3c/script>"
2730
2738
  ));
2731
2739
  bootstrapScriptContent = idPrefix + "P:";
2732
- var JSCompiler_object_inline_segmentPrefix_1613 = idPrefix + "S:";
2740
+ var JSCompiler_object_inline_segmentPrefix_1636 = idPrefix + "S:";
2733
2741
  idPrefix += "B:";
2734
- var JSCompiler_object_inline_preamble_1616 = createPreambleState(),
2735
- JSCompiler_object_inline_preconnects_1626 = new Set(),
2736
- JSCompiler_object_inline_fontPreloads_1627 = new Set(),
2737
- JSCompiler_object_inline_highImagePreloads_1628 = new Set(),
2738
- JSCompiler_object_inline_styles_1629 = new Map(),
2739
- JSCompiler_object_inline_bootstrapScripts_1630 = new Set(),
2740
- JSCompiler_object_inline_scripts_1631 = new Set(),
2741
- JSCompiler_object_inline_bulkPreloads_1632 = new Set(),
2742
- JSCompiler_object_inline_preloads_1633 = {
2742
+ var JSCompiler_object_inline_preconnects_1649 = new Set(),
2743
+ JSCompiler_object_inline_fontPreloads_1650 = new Set(),
2744
+ JSCompiler_object_inline_highImagePreloads_1651 = new Set(),
2745
+ JSCompiler_object_inline_styles_1652 = new Map(),
2746
+ JSCompiler_object_inline_bootstrapScripts_1653 = new Set(),
2747
+ JSCompiler_object_inline_scripts_1654 = new Set(),
2748
+ JSCompiler_object_inline_bulkPreloads_1655 = new Set(),
2749
+ JSCompiler_object_inline_preloads_1656 = {
2743
2750
  images: new Map(),
2744
2751
  stylesheets: new Map(),
2745
2752
  scripts: new Map(),
@@ -2776,7 +2783,7 @@ function createRenderState(resumableState, generateStaticMarkup) {
2776
2783
  scriptConfig.moduleScriptResources[href] = null;
2777
2784
  scriptConfig = [];
2778
2785
  pushLinkImpl(scriptConfig, props);
2779
- JSCompiler_object_inline_bootstrapScripts_1630.add(scriptConfig);
2786
+ JSCompiler_object_inline_bootstrapScripts_1653.add(scriptConfig);
2780
2787
  bootstrapChunks.push('<script src="', escapeTextForBrowser(src), '"');
2781
2788
  "string" === typeof integrity &&
2782
2789
  bootstrapChunks.push(
@@ -2823,7 +2830,7 @@ function createRenderState(resumableState, generateStaticMarkup) {
2823
2830
  (props.moduleScriptResources[scriptConfig] = null),
2824
2831
  (props = []),
2825
2832
  pushLinkImpl(props, integrity),
2826
- JSCompiler_object_inline_bootstrapScripts_1630.add(props),
2833
+ JSCompiler_object_inline_bootstrapScripts_1653.add(props),
2827
2834
  bootstrapChunks.push(
2828
2835
  '<script type="module" src="',
2829
2836
  escapeTextForBrowser(i),
@@ -2845,10 +2852,10 @@ function createRenderState(resumableState, generateStaticMarkup) {
2845
2852
  bootstrapChunks.push(' async="">\x3c/script>');
2846
2853
  return {
2847
2854
  placeholderPrefix: bootstrapScriptContent,
2848
- segmentPrefix: JSCompiler_object_inline_segmentPrefix_1613,
2855
+ segmentPrefix: JSCompiler_object_inline_segmentPrefix_1636,
2849
2856
  boundaryPrefix: idPrefix,
2850
2857
  startInlineScript: "<script",
2851
- preamble: JSCompiler_object_inline_preamble_1616,
2858
+ preamble: { htmlChunks: null, headChunks: null, bodyChunks: null },
2852
2859
  externalRuntimeScript: null,
2853
2860
  bootstrapChunks: bootstrapChunks,
2854
2861
  importMapChunks: [],
@@ -2864,14 +2871,14 @@ function createRenderState(resumableState, generateStaticMarkup) {
2864
2871
  charsetChunks: [],
2865
2872
  viewportChunks: [],
2866
2873
  hoistableChunks: [],
2867
- preconnects: JSCompiler_object_inline_preconnects_1626,
2868
- fontPreloads: JSCompiler_object_inline_fontPreloads_1627,
2869
- highImagePreloads: JSCompiler_object_inline_highImagePreloads_1628,
2870
- styles: JSCompiler_object_inline_styles_1629,
2871
- bootstrapScripts: JSCompiler_object_inline_bootstrapScripts_1630,
2872
- scripts: JSCompiler_object_inline_scripts_1631,
2873
- bulkPreloads: JSCompiler_object_inline_bulkPreloads_1632,
2874
- preloads: JSCompiler_object_inline_preloads_1633,
2874
+ preconnects: JSCompiler_object_inline_preconnects_1649,
2875
+ fontPreloads: JSCompiler_object_inline_fontPreloads_1650,
2876
+ highImagePreloads: JSCompiler_object_inline_highImagePreloads_1651,
2877
+ styles: JSCompiler_object_inline_styles_1652,
2878
+ bootstrapScripts: JSCompiler_object_inline_bootstrapScripts_1653,
2879
+ scripts: JSCompiler_object_inline_scripts_1654,
2880
+ bulkPreloads: JSCompiler_object_inline_bulkPreloads_1655,
2881
+ preloads: JSCompiler_object_inline_preloads_1656,
2875
2882
  stylesToHoist: !1,
2876
2883
  generateStaticMarkup: generateStaticMarkup
2877
2884
  };
@@ -3736,6 +3743,7 @@ function createRequest(
3736
3743
  rootFormatContext,
3737
3744
  null,
3738
3745
  emptyTreeContext,
3746
+ null,
3739
3747
  null
3740
3748
  );
3741
3749
  pushComponentStack(children);
@@ -3751,15 +3759,17 @@ function pingTask(request, task) {
3751
3759
  }
3752
3760
  function createSuspenseBoundary(
3753
3761
  request,
3762
+ row,
3754
3763
  fallbackAbortableTasks,
3755
3764
  contentPreamble,
3756
3765
  fallbackPreamble
3757
3766
  ) {
3758
- return {
3767
+ fallbackAbortableTasks = {
3759
3768
  status: 0,
3760
3769
  rootSegmentID: -1,
3761
3770
  parentFlushed: !1,
3762
3771
  pendingTasks: 0,
3772
+ row: row,
3763
3773
  completedSegments: [],
3764
3774
  byteSize: 0,
3765
3775
  fallbackAbortableTasks: fallbackAbortableTasks,
@@ -3771,6 +3781,17 @@ function createSuspenseBoundary(
3771
3781
  trackedContentKeyPath: null,
3772
3782
  trackedFallbackNode: null
3773
3783
  };
3784
+ null !== row &&
3785
+ (row.pendingTasks++,
3786
+ (contentPreamble = row.boundaries),
3787
+ null !== contentPreamble &&
3788
+ (request.allPendingTasks++,
3789
+ fallbackAbortableTasks.pendingTasks++,
3790
+ contentPreamble.push(fallbackAbortableTasks)),
3791
+ (request = row.inheritedHoistables),
3792
+ null !== request &&
3793
+ hoistHoistables(fallbackAbortableTasks.contentState, request));
3794
+ return fallbackAbortableTasks;
3774
3795
  }
3775
3796
  function createRenderTask(
3776
3797
  request,
@@ -3786,12 +3807,14 @@ function createRenderTask(
3786
3807
  formatContext,
3787
3808
  context,
3788
3809
  treeContext,
3810
+ row,
3789
3811
  componentStack
3790
3812
  ) {
3791
3813
  request.allPendingTasks++;
3792
3814
  null === blockedBoundary
3793
3815
  ? request.pendingRootTasks++
3794
3816
  : blockedBoundary.pendingTasks++;
3817
+ null !== row && row.pendingTasks++;
3795
3818
  var task = {
3796
3819
  replay: null,
3797
3820
  node: node,
@@ -3808,6 +3831,7 @@ function createRenderTask(
3808
3831
  formatContext: formatContext,
3809
3832
  context: context,
3810
3833
  treeContext: treeContext,
3834
+ row: row,
3811
3835
  componentStack: componentStack,
3812
3836
  thenableState: thenableState
3813
3837
  };
@@ -3827,12 +3851,14 @@ function createReplayTask(
3827
3851
  formatContext,
3828
3852
  context,
3829
3853
  treeContext,
3854
+ row,
3830
3855
  componentStack
3831
3856
  ) {
3832
3857
  request.allPendingTasks++;
3833
3858
  null === blockedBoundary
3834
3859
  ? request.pendingRootTasks++
3835
3860
  : blockedBoundary.pendingTasks++;
3861
+ null !== row && row.pendingTasks++;
3836
3862
  replay.pendingTasks++;
3837
3863
  var task = {
3838
3864
  replay: replay,
@@ -3850,6 +3876,7 @@ function createReplayTask(
3850
3876
  formatContext: formatContext,
3851
3877
  context: context,
3852
3878
  treeContext: treeContext,
3879
+ row: row,
3853
3880
  componentStack: componentStack,
3854
3881
  thenableState: thenableState
3855
3882
  };
@@ -3927,6 +3954,164 @@ function fatalError(request, error) {
3927
3954
  ? ((request.status = 14), request.destination.destroy(error))
3928
3955
  : ((request.status = 13), (request.fatalError = error));
3929
3956
  }
3957
+ function finishSuspenseListRow(request, row) {
3958
+ unblockSuspenseListRow(request, row.next, row.hoistables);
3959
+ }
3960
+ function unblockSuspenseListRow(request, unblockedRow, inheritedHoistables) {
3961
+ for (; null !== unblockedRow; ) {
3962
+ null !== inheritedHoistables &&
3963
+ (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
3964
+ (unblockedRow.inheritedHoistables = inheritedHoistables));
3965
+ var unblockedBoundaries = unblockedRow.boundaries;
3966
+ if (null !== unblockedBoundaries) {
3967
+ unblockedRow.boundaries = null;
3968
+ for (var i = 0; i < unblockedBoundaries.length; i++) {
3969
+ var unblockedBoundary = unblockedBoundaries[i];
3970
+ null !== inheritedHoistables &&
3971
+ hoistHoistables(unblockedBoundary.contentState, inheritedHoistables);
3972
+ finishedTask(request, unblockedBoundary, null, null);
3973
+ }
3974
+ }
3975
+ unblockedRow.pendingTasks--;
3976
+ if (0 < unblockedRow.pendingTasks) break;
3977
+ inheritedHoistables = unblockedRow.hoistables;
3978
+ unblockedRow = unblockedRow.next;
3979
+ }
3980
+ }
3981
+ function tryToResolveTogetherRow(request, togetherRow) {
3982
+ var boundaries = togetherRow.boundaries;
3983
+ if (null !== boundaries && togetherRow.pendingTasks === boundaries.length) {
3984
+ for (var allCompleteAndInlinable = !0, i = 0; i < boundaries.length; i++) {
3985
+ var rowBoundary = boundaries[i];
3986
+ if (
3987
+ 1 !== rowBoundary.pendingTasks ||
3988
+ rowBoundary.parentFlushed ||
3989
+ 500 < rowBoundary.byteSize
3990
+ ) {
3991
+ allCompleteAndInlinable = !1;
3992
+ break;
3993
+ }
3994
+ }
3995
+ allCompleteAndInlinable &&
3996
+ unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
3997
+ }
3998
+ }
3999
+ function createSuspenseListRow(previousRow) {
4000
+ var newRow = {
4001
+ pendingTasks: 1,
4002
+ boundaries: null,
4003
+ hoistables: createHoistableState(),
4004
+ inheritedHoistables: null,
4005
+ together: !1,
4006
+ next: null
4007
+ };
4008
+ null !== previousRow &&
4009
+ 0 < previousRow.pendingTasks &&
4010
+ (newRow.pendingTasks++,
4011
+ (newRow.boundaries = []),
4012
+ (previousRow.next = newRow));
4013
+ return newRow;
4014
+ }
4015
+ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
4016
+ var prevKeyPath = task.keyPath,
4017
+ prevTreeContext = task.treeContext,
4018
+ prevRow = task.row;
4019
+ task.keyPath = keyPath;
4020
+ keyPath = rows.length;
4021
+ var previousSuspenseListRow = null;
4022
+ if (null !== task.replay) {
4023
+ var resumeSlots = task.replay.slots;
4024
+ if (null !== resumeSlots && "object" === typeof resumeSlots)
4025
+ for (var n = 0; n < keyPath; n++) {
4026
+ var i = "backwards" !== revealOrder ? n : keyPath - 1 - n,
4027
+ node = rows[i];
4028
+ task.row = previousSuspenseListRow = createSuspenseListRow(
4029
+ previousSuspenseListRow
4030
+ );
4031
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
4032
+ var resumeSegmentID = resumeSlots[i];
4033
+ "number" === typeof resumeSegmentID
4034
+ ? (resumeNode(request, task, resumeSegmentID, node, i),
4035
+ delete resumeSlots[i])
4036
+ : renderNode(request, task, node, i);
4037
+ 0 === --previousSuspenseListRow.pendingTasks &&
4038
+ finishSuspenseListRow(request, previousSuspenseListRow);
4039
+ }
4040
+ else
4041
+ for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
4042
+ (n =
4043
+ "backwards" !== revealOrder
4044
+ ? resumeSlots
4045
+ : keyPath - 1 - resumeSlots),
4046
+ (i = rows[n]),
4047
+ (task.row = previousSuspenseListRow =
4048
+ createSuspenseListRow(previousSuspenseListRow)),
4049
+ (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
4050
+ renderNode(request, task, i, n),
4051
+ 0 === --previousSuspenseListRow.pendingTasks &&
4052
+ finishSuspenseListRow(request, previousSuspenseListRow);
4053
+ } else if ("backwards" !== revealOrder)
4054
+ for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
4055
+ (resumeSlots = rows[revealOrder]),
4056
+ (task.row = previousSuspenseListRow =
4057
+ createSuspenseListRow(previousSuspenseListRow)),
4058
+ (task.treeContext = pushTreeContext(
4059
+ prevTreeContext,
4060
+ keyPath,
4061
+ revealOrder
4062
+ )),
4063
+ renderNode(request, task, resumeSlots, revealOrder),
4064
+ 0 === --previousSuspenseListRow.pendingTasks &&
4065
+ finishSuspenseListRow(request, previousSuspenseListRow);
4066
+ else {
4067
+ revealOrder = task.blockedSegment;
4068
+ resumeSlots = revealOrder.children.length;
4069
+ n = revealOrder.chunks.length;
4070
+ for (i = keyPath - 1; 0 <= i; i--) {
4071
+ node = rows[i];
4072
+ task.row = previousSuspenseListRow = createSuspenseListRow(
4073
+ previousSuspenseListRow
4074
+ );
4075
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
4076
+ resumeSegmentID = createPendingSegment(
4077
+ request,
4078
+ n,
4079
+ null,
4080
+ task.formatContext,
4081
+ 0 === i ? revealOrder.lastPushedText : !0,
4082
+ !0
4083
+ );
4084
+ revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
4085
+ task.blockedSegment = resumeSegmentID;
4086
+ try {
4087
+ renderNode(request, task, node, i),
4088
+ pushSegmentFinale(
4089
+ resumeSegmentID.chunks,
4090
+ request.renderState,
4091
+ resumeSegmentID.lastPushedText,
4092
+ resumeSegmentID.textEmbedded
4093
+ ),
4094
+ (resumeSegmentID.status = 1),
4095
+ 0 === --previousSuspenseListRow.pendingTasks &&
4096
+ finishSuspenseListRow(request, previousSuspenseListRow);
4097
+ } catch (thrownValue) {
4098
+ throw (
4099
+ ((resumeSegmentID.status = 12 === request.status ? 3 : 4),
4100
+ thrownValue)
4101
+ );
4102
+ }
4103
+ }
4104
+ task.blockedSegment = revealOrder;
4105
+ revealOrder.lastPushedText = !1;
4106
+ }
4107
+ null !== prevRow &&
4108
+ null !== previousSuspenseListRow &&
4109
+ 0 < previousSuspenseListRow.pendingTasks &&
4110
+ (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
4111
+ task.treeContext = prevTreeContext;
4112
+ task.row = prevRow;
4113
+ task.keyPath = prevKeyPath;
4114
+ }
3930
4115
  function renderWithHooks(request, task, keyPath, Component, props, secondArg) {
3931
4116
  var prevThenableState = task.thenableState;
3932
4117
  task.thenableState = null;
@@ -3994,9 +4179,9 @@ function renderElement(request, task, keyPath, type, props, ref) {
3994
4179
  var defaultProps = type.defaultProps;
3995
4180
  if (defaultProps) {
3996
4181
  newProps === props && (newProps = assign({}, newProps, props));
3997
- for (var propName$34 in defaultProps)
3998
- void 0 === newProps[propName$34] &&
3999
- (newProps[propName$34] = defaultProps[propName$34]);
4182
+ for (var propName$43 in defaultProps)
4183
+ void 0 === newProps[propName$43] &&
4184
+ (newProps[propName$43] = defaultProps[propName$43]);
4000
4185
  }
4001
4186
  props = newProps;
4002
4187
  newProps = emptyContextObject;
@@ -4056,16 +4241,16 @@ function renderElement(request, task, keyPath, type, props, ref) {
4056
4241
  defaultProps = ref ? type[0] : newProps.state;
4057
4242
  initialState = !0;
4058
4243
  for (ref = ref ? 1 : 0; ref < type.length; ref++)
4059
- (propName$34 = type[ref]),
4060
- (propName$34 =
4061
- "function" === typeof propName$34
4062
- ? propName$34.call(newProps, defaultProps, props, void 0)
4063
- : propName$34),
4064
- null != propName$34 &&
4244
+ (propName$43 = type[ref]),
4245
+ (propName$43 =
4246
+ "function" === typeof propName$43
4247
+ ? propName$43.call(newProps, defaultProps, props, void 0)
4248
+ : propName$43),
4249
+ null != propName$43 &&
4065
4250
  (initialState
4066
4251
  ? ((initialState = !1),
4067
- (defaultProps = assign({}, defaultProps, propName$34)))
4068
- : assign(defaultProps, propName$34));
4252
+ (defaultProps = assign({}, defaultProps, propName$43)))
4253
+ : assign(defaultProps, propName$43));
4069
4254
  newProps.state = defaultProps;
4070
4255
  }
4071
4256
  else defaultProps.queue = null;
@@ -4140,6 +4325,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4140
4325
  task.formatContext,
4141
4326
  task.context,
4142
4327
  task.treeContext,
4328
+ task.row,
4143
4329
  task.componentStack
4144
4330
  )),
4145
4331
  pushComponentStack(keyPath),
@@ -4221,10 +4407,45 @@ function renderElement(request, task, keyPath, type, props, ref) {
4221
4407
  (type.lastPushedText = !1));
4222
4408
  return;
4223
4409
  case REACT_SUSPENSE_LIST_TYPE:
4224
- type = task.keyPath;
4225
- task.keyPath = keyPath;
4226
- renderNodeDestructive(request, task, props.children, -1);
4227
- task.keyPath = type;
4410
+ a: {
4411
+ type = props.children;
4412
+ props = props.revealOrder;
4413
+ if ("forwards" === props || "backwards" === props) {
4414
+ if (isArrayImpl(type)) {
4415
+ renderSuspenseListRows(request, task, keyPath, type, props);
4416
+ break a;
4417
+ }
4418
+ if ((newProps = getIteratorFn(type)))
4419
+ if ((newProps = newProps.call(type))) {
4420
+ defaultProps = newProps.next();
4421
+ if (!defaultProps.done) {
4422
+ do defaultProps = newProps.next();
4423
+ while (!defaultProps.done);
4424
+ renderSuspenseListRows(request, task, keyPath, type, props);
4425
+ }
4426
+ break a;
4427
+ }
4428
+ }
4429
+ "together" === props
4430
+ ? ((props = task.keyPath),
4431
+ (newProps = task.row),
4432
+ (defaultProps = task.row = createSuspenseListRow(null)),
4433
+ (defaultProps.boundaries = []),
4434
+ (defaultProps.together = !0),
4435
+ (task.keyPath = keyPath),
4436
+ renderNodeDestructive(request, task, type, -1),
4437
+ 0 === --defaultProps.pendingTasks &&
4438
+ finishSuspenseListRow(request, defaultProps),
4439
+ (task.keyPath = props),
4440
+ (task.row = newProps),
4441
+ null !== newProps &&
4442
+ 0 < defaultProps.pendingTasks &&
4443
+ (newProps.pendingTasks++, (defaultProps.next = newProps)))
4444
+ : ((props = task.keyPath),
4445
+ (task.keyPath = keyPath),
4446
+ renderNodeDestructive(request, task, type, -1),
4447
+ (task.keyPath = props));
4448
+ }
4228
4449
  return;
4229
4450
  case REACT_VIEW_TRANSITION_TYPE:
4230
4451
  case REACT_SCOPE_TYPE:
@@ -4233,36 +4454,39 @@ function renderElement(request, task, keyPath, type, props, ref) {
4233
4454
  a: if (null !== task.replay) {
4234
4455
  type = task.keyPath;
4235
4456
  newProps = task.formatContext;
4457
+ defaultProps = task.row;
4236
4458
  task.keyPath = keyPath;
4237
4459
  task.formatContext = getSuspenseContentFormatContext(
4238
4460
  request.resumableState,
4239
4461
  newProps
4240
4462
  );
4463
+ task.row = null;
4241
4464
  keyPath = props.children;
4242
4465
  try {
4243
4466
  renderNode(request, task, keyPath, -1);
4244
4467
  } finally {
4245
- (task.keyPath = type), (task.formatContext = newProps);
4468
+ (task.keyPath = type),
4469
+ (task.formatContext = newProps),
4470
+ (task.row = defaultProps);
4246
4471
  }
4247
4472
  } else {
4248
4473
  type = task.keyPath;
4249
4474
  ref = task.formatContext;
4250
- var parentBoundary = task.blockedBoundary;
4251
- propName$34 = task.blockedPreamble;
4475
+ var prevRow = task.row,
4476
+ parentBoundary = task.blockedBoundary;
4477
+ propName$43 = task.blockedPreamble;
4252
4478
  var parentHoistableState = task.hoistableState;
4253
4479
  propName = task.blockedSegment;
4254
4480
  var fallback = props.fallback;
4255
4481
  props = props.children;
4256
4482
  var fallbackAbortSet = new Set();
4257
- var newBoundary =
4258
- 2 > task.formatContext.insertionMode
4259
- ? createSuspenseBoundary(
4260
- request,
4261
- fallbackAbortSet,
4262
- createPreambleState(),
4263
- createPreambleState()
4264
- )
4265
- : createSuspenseBoundary(request, fallbackAbortSet, null, null);
4483
+ var newBoundary = createSuspenseBoundary(
4484
+ request,
4485
+ task.row,
4486
+ fallbackAbortSet,
4487
+ null,
4488
+ null
4489
+ );
4266
4490
  null !== request.trackedPostpones &&
4267
4491
  (newBoundary.trackedContentKeyPath = keyPath);
4268
4492
  var boundarySegment = createPendingSegment(
@@ -4313,7 +4537,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4313
4537
  );
4314
4538
  } finally {
4315
4539
  (task.blockedSegment = propName),
4316
- (task.blockedPreamble = propName$34),
4540
+ (task.blockedPreamble = propName$43),
4317
4541
  (task.keyPath = type),
4318
4542
  (task.formatContext = ref);
4319
4543
  }
@@ -4334,6 +4558,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4334
4558
  ),
4335
4559
  task.context,
4336
4560
  task.treeContext,
4561
+ null,
4337
4562
  task.componentStack
4338
4563
  );
4339
4564
  pushComponentStack(task);
@@ -4348,6 +4573,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4348
4573
  request.resumableState,
4349
4574
  ref
4350
4575
  );
4576
+ task.row = null;
4351
4577
  contentRootSegment.status = 6;
4352
4578
  try {
4353
4579
  if (
@@ -4360,22 +4586,28 @@ function renderElement(request, task, keyPath, type, props, ref) {
4360
4586
  ),
4361
4587
  (contentRootSegment.status = 1),
4362
4588
  queueCompletedSegment(newBoundary, contentRootSegment),
4363
- 0 === newBoundary.pendingTasks &&
4364
- 0 === newBoundary.status &&
4365
- ((newBoundary.status = 1), !(500 < newBoundary.byteSize)))
4589
+ 0 === newBoundary.pendingTasks && 0 === newBoundary.status)
4366
4590
  ) {
4367
- 0 === request.pendingRootTasks &&
4368
- task.blockedPreamble &&
4369
- preparePreamble(request);
4370
- break a;
4371
- }
4372
- } catch (thrownValue$29) {
4591
+ if (((newBoundary.status = 1), !(500 < newBoundary.byteSize))) {
4592
+ null !== prevRow &&
4593
+ 0 === --prevRow.pendingTasks &&
4594
+ finishSuspenseListRow(request, prevRow);
4595
+ 0 === request.pendingRootTasks &&
4596
+ task.blockedPreamble &&
4597
+ preparePreamble(request);
4598
+ break a;
4599
+ }
4600
+ } else
4601
+ null !== prevRow &&
4602
+ prevRow.together &&
4603
+ tryToResolveTogetherRow(request, prevRow);
4604
+ } catch (thrownValue$30) {
4373
4605
  (newBoundary.status = 4),
4374
4606
  12 === request.status
4375
4607
  ? ((contentRootSegment.status = 3),
4376
4608
  (newProps = request.fatalError))
4377
4609
  : ((contentRootSegment.status = 4),
4378
- (newProps = thrownValue$29)),
4610
+ (newProps = thrownValue$30)),
4379
4611
  (defaultProps = getThrownInfo(task.componentStack)),
4380
4612
  (initialState = logRecoverableError(
4381
4613
  request,
@@ -4386,11 +4618,12 @@ function renderElement(request, task, keyPath, type, props, ref) {
4386
4618
  untrackBoundary(request, newBoundary);
4387
4619
  } finally {
4388
4620
  (task.blockedBoundary = parentBoundary),
4389
- (task.blockedPreamble = propName$34),
4621
+ (task.blockedPreamble = propName$43),
4390
4622
  (task.hoistableState = parentHoistableState),
4391
4623
  (task.blockedSegment = propName),
4392
4624
  (task.keyPath = type),
4393
- (task.formatContext = ref);
4625
+ (task.formatContext = ref),
4626
+ (task.row = prevRow);
4394
4627
  }
4395
4628
  task = createRenderTask(
4396
4629
  request,
@@ -4409,6 +4642,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4409
4642
  ),
4410
4643
  task.context,
4411
4644
  task.treeContext,
4645
+ task.row,
4412
4646
  task.componentStack
4413
4647
  );
4414
4648
  pushComponentStack(task);
@@ -4626,26 +4860,20 @@ function retryNode(request, task) {
4626
4860
  null === node$jscomp$0[4] ? null : node$jscomp$0[4][3];
4627
4861
  var prevKeyPath = task.keyPath,
4628
4862
  prevContext = task.formatContext,
4863
+ prevRow = task.row,
4629
4864
  previousReplaySet = task.replay,
4630
4865
  parentBoundary = task.blockedBoundary,
4631
4866
  parentHoistableState = task.hoistableState,
4632
4867
  content = props.children,
4633
4868
  fallback = props.fallback,
4634
4869
  fallbackAbortSet = new Set();
4635
- props =
4636
- 2 > task.formatContext.insertionMode
4637
- ? createSuspenseBoundary(
4638
- request,
4639
- fallbackAbortSet,
4640
- createPreambleState(),
4641
- createPreambleState()
4642
- )
4643
- : createSuspenseBoundary(
4644
- request,
4645
- fallbackAbortSet,
4646
- null,
4647
- null
4648
- );
4870
+ props = createSuspenseBoundary(
4871
+ request,
4872
+ task.row,
4873
+ fallbackAbortSet,
4874
+ null,
4875
+ null
4876
+ );
4649
4877
  props.parentFlushed = !0;
4650
4878
  props.rootSegmentID = type;
4651
4879
  task.blockedBoundary = props;
@@ -4655,6 +4883,7 @@ function retryNode(request, task) {
4655
4883
  request.resumableState,
4656
4884
  prevContext
4657
4885
  );
4886
+ task.row = null;
4658
4887
  task.replay = {
4659
4888
  nodes: ref,
4660
4889
  slots: name,
@@ -4691,9 +4920,10 @@ function retryNode(request, task) {
4691
4920
  (task.hoistableState = parentHoistableState),
4692
4921
  (task.replay = previousReplaySet),
4693
4922
  (task.keyPath = prevKeyPath),
4694
- (task.formatContext = prevContext);
4923
+ (task.formatContext = prevContext),
4924
+ (task.row = prevRow);
4695
4925
  }
4696
- task = createReplayTask(
4926
+ childNodes = createReplayTask(
4697
4927
  request,
4698
4928
  null,
4699
4929
  {
@@ -4713,10 +4943,11 @@ function retryNode(request, task) {
4713
4943
  ),
4714
4944
  task.context,
4715
4945
  task.treeContext,
4946
+ task.row,
4716
4947
  task.componentStack
4717
4948
  );
4718
- pushComponentStack(task);
4719
- request.pingedTasks.push(task);
4949
+ pushComponentStack(childNodes);
4950
+ request.pingedTasks.push(childNodes);
4720
4951
  }
4721
4952
  }
4722
4953
  childIndex.splice(node, 1);
@@ -4741,22 +4972,17 @@ function retryNode(request, task) {
4741
4972
  renderChildrenArray(request, task, node, childIndex);
4742
4973
  return;
4743
4974
  }
4744
- null === node || "object" !== typeof node
4745
- ? (childNodes = null)
4746
- : ((childNodes =
4747
- (MAYBE_ITERATOR_SYMBOL && node[MAYBE_ITERATOR_SYMBOL]) ||
4748
- node["@@iterator"]),
4749
- (childNodes = "function" === typeof childNodes ? childNodes : null));
4750
- if (childNodes && (childNodes = childNodes.call(node))) {
4751
- node = childNodes.next();
4752
- if (!node.done) {
4753
- props = [];
4754
- do props.push(node.value), (node = childNodes.next());
4755
- while (!node.done);
4756
- renderChildrenArray(request, task, props, childIndex);
4975
+ if ((childNodes = getIteratorFn(node)))
4976
+ if ((childNodes = childNodes.call(node))) {
4977
+ node = childNodes.next();
4978
+ if (!node.done) {
4979
+ props = [];
4980
+ do props.push(node.value), (node = childNodes.next());
4981
+ while (!node.done);
4982
+ renderChildrenArray(request, task, props, childIndex);
4983
+ }
4984
+ return;
4757
4985
  }
4758
- return;
4759
- }
4760
4986
  if ("function" === typeof node.then)
4761
4987
  return (
4762
4988
  (task.thenableState = null),
@@ -4899,6 +5125,7 @@ function spawnNewSuspendedReplayTask(request, task, thenableState) {
4899
5125
  task.formatContext,
4900
5126
  task.context,
4901
5127
  task.treeContext,
5128
+ task.row,
4902
5129
  task.componentStack
4903
5130
  );
4904
5131
  }
@@ -4928,6 +5155,7 @@ function spawnNewSuspendedRenderTask(request, task, thenableState) {
4928
5155
  task.formatContext,
4929
5156
  task.context,
4930
5157
  task.treeContext,
5158
+ task.row,
4931
5159
  task.componentStack
4932
5160
  );
4933
5161
  }
@@ -4981,15 +5209,15 @@ function renderNode(request, task, node, childIndex) {
4981
5209
  chunkLength = segment.chunks.length;
4982
5210
  try {
4983
5211
  return renderNodeDestructive(request, task, node, childIndex);
4984
- } catch (thrownValue$51) {
5212
+ } catch (thrownValue$59) {
4985
5213
  if (
4986
5214
  (resetHooksState(),
4987
5215
  (segment.children.length = childrenLength),
4988
5216
  (segment.chunks.length = chunkLength),
4989
5217
  (node =
4990
- thrownValue$51 === SuspenseException
5218
+ thrownValue$59 === SuspenseException
4991
5219
  ? getSuspendedThenable()
4992
- : thrownValue$51),
5220
+ : thrownValue$59),
4993
5221
  "object" === typeof node && null !== node)
4994
5222
  ) {
4995
5223
  if ("function" === typeof node.then) {
@@ -5027,9 +5255,10 @@ function renderNode(request, task, node, childIndex) {
5027
5255
  throw node;
5028
5256
  }
5029
5257
  function abortTaskSoft(task) {
5030
- var boundary = task.blockedBoundary;
5031
- task = task.blockedSegment;
5032
- null !== task && ((task.status = 3), finishedTask(this, boundary, task));
5258
+ var boundary = task.blockedBoundary,
5259
+ segment = task.blockedSegment;
5260
+ null !== segment &&
5261
+ ((segment.status = 3), finishedTask(this, boundary, task.row, segment));
5033
5262
  }
5034
5263
  function abortRemainingReplayNodes(
5035
5264
  request$jscomp$0,
@@ -5056,6 +5285,7 @@ function abortRemainingReplayNodes(
5056
5285
  errorDigest = errorDigest$jscomp$0,
5057
5286
  resumedBoundary = createSuspenseBoundary(
5058
5287
  request,
5288
+ null,
5059
5289
  new Set(),
5060
5290
  null,
5061
5291
  null
@@ -5101,32 +5331,40 @@ function abortTask(task, request, error) {
5101
5331
  boundary.pendingTasks--;
5102
5332
  0 === boundary.pendingTasks &&
5103
5333
  0 < boundary.nodes.length &&
5104
- ((task = logRecoverableError(request, error, segment)),
5334
+ ((segment = logRecoverableError(request, error, segment)),
5105
5335
  abortRemainingReplayNodes(
5106
5336
  request,
5107
5337
  null,
5108
5338
  boundary.nodes,
5109
5339
  boundary.slots,
5110
5340
  error,
5111
- task
5341
+ segment
5112
5342
  ));
5113
5343
  request.pendingRootTasks--;
5114
5344
  0 === request.pendingRootTasks && completeShell(request);
5115
5345
  }
5116
5346
  } else
5117
- boundary.pendingTasks--,
5118
- 4 !== boundary.status &&
5119
- ((boundary.status = 4),
5120
- (task = logRecoverableError(request, error, segment)),
5121
- (boundary.status = 4),
5122
- (boundary.errorDigest = task),
5123
- untrackBoundary(request, boundary),
5124
- boundary.parentFlushed &&
5125
- request.clientRenderedBoundaries.push(boundary)),
5347
+ 4 !== boundary.status &&
5348
+ ((boundary.status = 4),
5349
+ (segment = logRecoverableError(request, error, segment)),
5350
+ (boundary.status = 4),
5351
+ (boundary.errorDigest = segment),
5352
+ untrackBoundary(request, boundary),
5353
+ boundary.parentFlushed &&
5354
+ request.clientRenderedBoundaries.push(boundary)),
5355
+ boundary.pendingTasks--,
5356
+ (segment = boundary.row),
5357
+ null !== segment &&
5358
+ 0 === --segment.pendingTasks &&
5359
+ finishSuspenseListRow(request, segment),
5126
5360
  boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
5127
5361
  return abortTask(fallbackTask, request, error);
5128
5362
  }),
5129
5363
  boundary.fallbackAbortableTasks.clear();
5364
+ task = task.row;
5365
+ null !== task &&
5366
+ 0 === --task.pendingTasks &&
5367
+ finishSuspenseListRow(request, task);
5130
5368
  request.allPendingTasks--;
5131
5369
  0 === request.allPendingTasks && completeAll(request);
5132
5370
  }
@@ -5223,7 +5461,11 @@ function queueCompletedSegment(boundary, segment) {
5223
5461
  1 === childSegment.status && queueCompletedSegment(boundary, childSegment);
5224
5462
  } else boundary.completedSegments.push(segment);
5225
5463
  }
5226
- function finishedTask(request, boundary, segment) {
5464
+ function finishedTask(request, boundary, row, segment) {
5465
+ null !== row &&
5466
+ (0 === --row.pendingTasks
5467
+ ? finishSuspenseListRow(request, row)
5468
+ : row.together && tryToResolveTogetherRow(request, row));
5227
5469
  request.allPendingTasks--;
5228
5470
  if (null === boundary) {
5229
5471
  if (null !== segment && segment.parentFlushed) {
@@ -5247,23 +5489,33 @@ function finishedTask(request, boundary, segment) {
5247
5489
  boundary.parentFlushed &&
5248
5490
  request.completedBoundaries.push(boundary),
5249
5491
  1 === boundary.status &&
5250
- (500 < boundary.byteSize ||
5492
+ ((row = boundary.row),
5493
+ null !== row &&
5494
+ hoistHoistables(row.hoistables, boundary.contentState),
5495
+ 500 < boundary.byteSize ||
5251
5496
  (boundary.fallbackAbortableTasks.forEach(
5252
5497
  abortTaskSoft,
5253
5498
  request
5254
5499
  ),
5255
- boundary.fallbackAbortableTasks.clear()),
5500
+ boundary.fallbackAbortableTasks.clear(),
5501
+ null !== row &&
5502
+ 0 === --row.pendingTasks &&
5503
+ finishSuspenseListRow(request, row)),
5256
5504
  0 === request.pendingRootTasks &&
5257
5505
  null === request.trackedPostpones &&
5258
5506
  null !== boundary.contentPreamble &&
5259
5507
  preparePreamble(request)))
5260
- : null !== segment &&
5261
- segment.parentFlushed &&
5262
- 1 === segment.status &&
5263
- (queueCompletedSegment(boundary, segment),
5264
- 1 === boundary.completedSegments.length &&
5265
- boundary.parentFlushed &&
5266
- request.partialBoundaries.push(boundary)));
5508
+ : (null !== segment &&
5509
+ segment.parentFlushed &&
5510
+ 1 === segment.status &&
5511
+ (queueCompletedSegment(boundary, segment),
5512
+ 1 === boundary.completedSegments.length &&
5513
+ boundary.parentFlushed &&
5514
+ request.partialBoundaries.push(boundary)),
5515
+ (boundary = boundary.row),
5516
+ null !== boundary &&
5517
+ boundary.together &&
5518
+ tryToResolveTogetherRow(request, boundary)));
5267
5519
  0 === request.allPendingTasks && completeAll(request);
5268
5520
  }
5269
5521
  function performWork(request$jscomp$2) {
@@ -5307,7 +5559,12 @@ function performWork(request$jscomp$2) {
5307
5559
  );
5308
5560
  task.replay.pendingTasks--;
5309
5561
  task.abortSet.delete(task);
5310
- finishedTask(request$jscomp$0, task.blockedBoundary, null);
5562
+ finishedTask(
5563
+ request$jscomp$0,
5564
+ task.blockedBoundary,
5565
+ task.row,
5566
+ null
5567
+ );
5311
5568
  } catch (thrownValue) {
5312
5569
  resetHooksState();
5313
5570
  var x =
@@ -5377,7 +5634,12 @@ function performWork(request$jscomp$2) {
5377
5634
  ),
5378
5635
  task.abortSet.delete(task),
5379
5636
  (request$jscomp$1.status = 1),
5380
- finishedTask(request, task.blockedBoundary, request$jscomp$1);
5637
+ finishedTask(
5638
+ request,
5639
+ task.blockedBoundary,
5640
+ task.row,
5641
+ request$jscomp$1
5642
+ );
5381
5643
  } catch (thrownValue) {
5382
5644
  resetHooksState();
5383
5645
  request$jscomp$1.children.length = childrenLength;
@@ -5401,26 +5663,36 @@ function performWork(request$jscomp$2) {
5401
5663
  var errorInfo$jscomp$0 = getThrownInfo(task.componentStack);
5402
5664
  task.abortSet.delete(task);
5403
5665
  request$jscomp$1.status = 4;
5404
- var boundary$jscomp$0 = task.blockedBoundary;
5666
+ var boundary$jscomp$0 = task.blockedBoundary,
5667
+ row = task.row;
5668
+ null !== row &&
5669
+ 0 === --row.pendingTasks &&
5670
+ finishSuspenseListRow(request, row);
5671
+ request.allPendingTasks--;
5405
5672
  request$jscomp$0 = logRecoverableError(
5406
5673
  request,
5407
5674
  x$jscomp$0,
5408
5675
  errorInfo$jscomp$0
5409
5676
  );
5410
- null === boundary$jscomp$0
5411
- ? fatalError(request, x$jscomp$0)
5412
- : (boundary$jscomp$0.pendingTasks--,
5413
- 4 !== boundary$jscomp$0.status &&
5414
- ((boundary$jscomp$0.status = 4),
5415
- (boundary$jscomp$0.errorDigest = request$jscomp$0),
5416
- untrackBoundary(request, boundary$jscomp$0),
5417
- boundary$jscomp$0.parentFlushed &&
5418
- request.clientRenderedBoundaries.push(boundary$jscomp$0),
5419
- 0 === request.pendingRootTasks &&
5420
- null === request.trackedPostpones &&
5421
- null !== boundary$jscomp$0.contentPreamble &&
5422
- preparePreamble(request)));
5423
- request.allPendingTasks--;
5677
+ if (null === boundary$jscomp$0) fatalError(request, x$jscomp$0);
5678
+ else if (
5679
+ (boundary$jscomp$0.pendingTasks--,
5680
+ 4 !== boundary$jscomp$0.status)
5681
+ ) {
5682
+ boundary$jscomp$0.status = 4;
5683
+ boundary$jscomp$0.errorDigest = request$jscomp$0;
5684
+ untrackBoundary(request, boundary$jscomp$0);
5685
+ var boundaryRow = boundary$jscomp$0.row;
5686
+ null !== boundaryRow &&
5687
+ 0 === --boundaryRow.pendingTasks &&
5688
+ finishSuspenseListRow(request, boundaryRow);
5689
+ boundary$jscomp$0.parentFlushed &&
5690
+ request.clientRenderedBoundaries.push(boundary$jscomp$0);
5691
+ 0 === request.pendingRootTasks &&
5692
+ null === request.trackedPostpones &&
5693
+ null !== boundary$jscomp$0.contentPreamble &&
5694
+ preparePreamble(request);
5695
+ }
5424
5696
  0 === request.allPendingTasks && completeAll(request);
5425
5697
  }
5426
5698
  } finally {
@@ -5565,24 +5837,27 @@ function flushSegment(request, destination, segment, hoistableState) {
5565
5837
  if (null === boundary)
5566
5838
  return flushSubtree(request, destination, segment, hoistableState);
5567
5839
  boundary.parentFlushed = !0;
5568
- if (4 === boundary.status)
5569
- return (
5570
- request.renderState.generateStaticMarkup ||
5571
- ((boundary = boundary.errorDigest),
5572
- destination.push("\x3c!--$!--\x3e"),
5573
- destination.push("<template"),
5574
- boundary &&
5575
- (destination.push(' data-dgst="'),
5576
- (boundary = escapeTextForBrowser(boundary)),
5577
- destination.push(boundary),
5578
- destination.push('"')),
5579
- destination.push("></template>")),
5580
- flushSubtree(request, destination, segment, hoistableState),
5581
- (request = request.renderState.generateStaticMarkup
5582
- ? !0
5583
- : destination.push("\x3c!--/$--\x3e")),
5584
- request
5585
- );
5840
+ if (4 === boundary.status) {
5841
+ var row = boundary.row;
5842
+ null !== row &&
5843
+ 0 === --row.pendingTasks &&
5844
+ finishSuspenseListRow(request, row);
5845
+ request.renderState.generateStaticMarkup ||
5846
+ ((boundary = boundary.errorDigest),
5847
+ destination.push("\x3c!--$!--\x3e"),
5848
+ destination.push("<template"),
5849
+ boundary &&
5850
+ (destination.push(' data-dgst="'),
5851
+ (boundary = escapeTextForBrowser(boundary)),
5852
+ destination.push(boundary),
5853
+ destination.push('"')),
5854
+ destination.push("></template>"));
5855
+ flushSubtree(request, destination, segment, hoistableState);
5856
+ request = request.renderState.generateStaticMarkup
5857
+ ? !0
5858
+ : destination.push("\x3c!--/$--\x3e");
5859
+ return request;
5860
+ }
5586
5861
  if (1 !== boundary.status)
5587
5862
  return (
5588
5863
  0 === boundary.status &&
@@ -5594,13 +5869,7 @@ function flushSegment(request, destination, segment, hoistableState) {
5594
5869
  request.renderState,
5595
5870
  boundary.rootSegmentID
5596
5871
  ),
5597
- hoistableState &&
5598
- ((boundary = boundary.fallbackState),
5599
- boundary.styles.forEach(hoistStyleQueueDependency, hoistableState),
5600
- boundary.stylesheets.forEach(
5601
- hoistStylesheetDependency,
5602
- hoistableState
5603
- )),
5872
+ hoistableState && hoistHoistables(hoistableState, boundary.fallbackState),
5604
5873
  flushSubtree(request, destination, segment, hoistableState),
5605
5874
  destination.push("\x3c!--/$--\x3e")
5606
5875
  );
@@ -5620,10 +5889,12 @@ function flushSegment(request, destination, segment, hoistableState) {
5620
5889
  destination.push("\x3c!--/$--\x3e")
5621
5890
  );
5622
5891
  flushedByteSize += boundary.byteSize;
5623
- hoistableState &&
5624
- ((segment = boundary.contentState),
5625
- segment.styles.forEach(hoistStyleQueueDependency, hoistableState),
5626
- segment.stylesheets.forEach(hoistStylesheetDependency, hoistableState));
5892
+ hoistableState && hoistHoistables(hoistableState, boundary.contentState);
5893
+ segment = boundary.row;
5894
+ null !== segment &&
5895
+ 500 < boundary.byteSize &&
5896
+ 0 === --segment.pendingTasks &&
5897
+ finishSuspenseListRow(request, segment);
5627
5898
  request.renderState.generateStaticMarkup ||
5628
5899
  destination.push("\x3c!--$--\x3e");
5629
5900
  segment = boundary.completedSegments;
@@ -5661,6 +5932,11 @@ function flushCompletedBoundary(request, destination, boundary) {
5661
5932
  completedSegments[i]
5662
5933
  );
5663
5934
  completedSegments.length = 0;
5935
+ completedSegments = boundary.row;
5936
+ null !== completedSegments &&
5937
+ 500 < boundary.byteSize &&
5938
+ 0 === --completedSegments.pendingTasks &&
5939
+ finishSuspenseListRow(request, completedSegments);
5664
5940
  writeHoistablesForBoundary(
5665
5941
  destination,
5666
5942
  boundary.contentState,
@@ -5941,12 +6217,12 @@ function flushCompletedQueues(request, destination) {
5941
6217
  completedBoundaries.splice(0, i);
5942
6218
  var partialBoundaries = request.partialBoundaries;
5943
6219
  for (i = 0; i < partialBoundaries.length; i++) {
5944
- var boundary$54 = partialBoundaries[i];
6220
+ var boundary$64 = partialBoundaries[i];
5945
6221
  a: {
5946
6222
  clientRenderedBoundaries = request;
5947
6223
  boundary = destination;
5948
- flushedByteSize = boundary$54.byteSize;
5949
- var completedSegments = boundary$54.completedSegments;
6224
+ flushedByteSize = boundary$64.byteSize;
6225
+ var completedSegments = boundary$64.completedSegments;
5950
6226
  for (
5951
6227
  JSCompiler_inline_result = 0;
5952
6228
  JSCompiler_inline_result < completedSegments.length;
@@ -5956,7 +6232,7 @@ function flushCompletedQueues(request, destination) {
5956
6232
  !flushPartiallyCompletedSegment(
5957
6233
  clientRenderedBoundaries,
5958
6234
  boundary,
5959
- boundary$54,
6235
+ boundary$64,
5960
6236
  completedSegments[JSCompiler_inline_result]
5961
6237
  )
5962
6238
  ) {
@@ -5966,9 +6242,20 @@ function flushCompletedQueues(request, destination) {
5966
6242
  break a;
5967
6243
  }
5968
6244
  completedSegments.splice(0, JSCompiler_inline_result);
6245
+ var row = boundary$64.row;
6246
+ null !== row &&
6247
+ row.together &&
6248
+ 1 === boundary$64.pendingTasks &&
6249
+ (1 === row.pendingTasks
6250
+ ? unblockSuspenseListRow(
6251
+ clientRenderedBoundaries,
6252
+ row,
6253
+ row.hoistables
6254
+ )
6255
+ : row.pendingTasks--);
5969
6256
  JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
5970
6257
  boundary,
5971
- boundary$54.contentState,
6258
+ boundary$64.contentState,
5972
6259
  clientRenderedBoundaries.renderState
5973
6260
  );
5974
6261
  }
@@ -6051,8 +6338,8 @@ function abort(request, reason) {
6051
6338
  }
6052
6339
  null !== request.destination &&
6053
6340
  flushCompletedQueues(request, request.destination);
6054
- } catch (error$56) {
6055
- logRecoverableError(request, error$56, {}), fatalError(request, error$56);
6341
+ } catch (error$66) {
6342
+ logRecoverableError(request, error$66, {}), fatalError(request, error$66);
6056
6343
  }
6057
6344
  }
6058
6345
  function onError() {}
@@ -6121,4 +6408,4 @@ exports.renderToString = function (children, options) {
6121
6408
  '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 "renderToPipeableStream" which supports Suspense on the server'
6122
6409
  );
6123
6410
  };
6124
- exports.version = "19.2.0-canary-462d08f9-20250517";
6411
+ exports.version = "19.2.0-canary-23884812-20250520";