react-dom 19.2.0-canary-462d08f9-20250517 → 19.2.0-canary-c4676e72-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;
@@ -2729,17 +2736,17 @@ function createRenderState(resumableState, generateStaticMarkup) {
2729
2736
  "\x3c/script>"
2730
2737
  ));
2731
2738
  bootstrapScriptContent = idPrefix + "P:";
2732
- var JSCompiler_object_inline_segmentPrefix_1613 = idPrefix + "S:";
2739
+ var JSCompiler_object_inline_segmentPrefix_1633 = idPrefix + "S:";
2733
2740
  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 = {
2741
+ var JSCompiler_object_inline_preamble_1636 = createPreambleState(),
2742
+ JSCompiler_object_inline_preconnects_1646 = new Set(),
2743
+ JSCompiler_object_inline_fontPreloads_1647 = new Set(),
2744
+ JSCompiler_object_inline_highImagePreloads_1648 = new Set(),
2745
+ JSCompiler_object_inline_styles_1649 = new Map(),
2746
+ JSCompiler_object_inline_bootstrapScripts_1650 = new Set(),
2747
+ JSCompiler_object_inline_scripts_1651 = new Set(),
2748
+ JSCompiler_object_inline_bulkPreloads_1652 = new Set(),
2749
+ JSCompiler_object_inline_preloads_1653 = {
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_1650.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_1650.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_1633,
2849
2856
  boundaryPrefix: idPrefix,
2850
2857
  startInlineScript: "<script",
2851
- preamble: JSCompiler_object_inline_preamble_1616,
2858
+ preamble: JSCompiler_object_inline_preamble_1636,
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_1646,
2875
+ fontPreloads: JSCompiler_object_inline_fontPreloads_1647,
2876
+ highImagePreloads: JSCompiler_object_inline_highImagePreloads_1648,
2877
+ styles: JSCompiler_object_inline_styles_1649,
2878
+ bootstrapScripts: JSCompiler_object_inline_bootstrapScripts_1650,
2879
+ scripts: JSCompiler_object_inline_scripts_1651,
2880
+ bulkPreloads: JSCompiler_object_inline_bulkPreloads_1652,
2881
+ preloads: JSCompiler_object_inline_preloads_1653,
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,14 @@ function createSuspenseBoundary(
3771
3781
  trackedContentKeyPath: null,
3772
3782
  trackedFallbackNode: null
3773
3783
  };
3784
+ null !== row &&
3785
+ (row.pendingTasks++,
3786
+ (row = row.boundaries),
3787
+ null !== row &&
3788
+ (request.allPendingTasks++,
3789
+ fallbackAbortableTasks.pendingTasks++,
3790
+ row.push(fallbackAbortableTasks)));
3791
+ return fallbackAbortableTasks;
3774
3792
  }
3775
3793
  function createRenderTask(
3776
3794
  request,
@@ -3786,12 +3804,14 @@ function createRenderTask(
3786
3804
  formatContext,
3787
3805
  context,
3788
3806
  treeContext,
3807
+ row,
3789
3808
  componentStack
3790
3809
  ) {
3791
3810
  request.allPendingTasks++;
3792
3811
  null === blockedBoundary
3793
3812
  ? request.pendingRootTasks++
3794
3813
  : blockedBoundary.pendingTasks++;
3814
+ null !== row && row.pendingTasks++;
3795
3815
  var task = {
3796
3816
  replay: null,
3797
3817
  node: node,
@@ -3808,6 +3828,7 @@ function createRenderTask(
3808
3828
  formatContext: formatContext,
3809
3829
  context: context,
3810
3830
  treeContext: treeContext,
3831
+ row: row,
3811
3832
  componentStack: componentStack,
3812
3833
  thenableState: thenableState
3813
3834
  };
@@ -3827,12 +3848,14 @@ function createReplayTask(
3827
3848
  formatContext,
3828
3849
  context,
3829
3850
  treeContext,
3851
+ row,
3830
3852
  componentStack
3831
3853
  ) {
3832
3854
  request.allPendingTasks++;
3833
3855
  null === blockedBoundary
3834
3856
  ? request.pendingRootTasks++
3835
3857
  : blockedBoundary.pendingTasks++;
3858
+ null !== row && row.pendingTasks++;
3836
3859
  replay.pendingTasks++;
3837
3860
  var task = {
3838
3861
  replay: replay,
@@ -3850,6 +3873,7 @@ function createReplayTask(
3850
3873
  formatContext: formatContext,
3851
3874
  context: context,
3852
3875
  treeContext: treeContext,
3876
+ row: row,
3853
3877
  componentStack: componentStack,
3854
3878
  thenableState: thenableState
3855
3879
  };
@@ -3927,6 +3951,131 @@ function fatalError(request, error) {
3927
3951
  ? ((request.status = 14), request.destination.destroy(error))
3928
3952
  : ((request.status = 13), (request.fatalError = error));
3929
3953
  }
3954
+ function finishSuspenseListRow(request, row) {
3955
+ for (row = row.next; null !== row; ) {
3956
+ var unblockedBoundaries = row.boundaries;
3957
+ if (null !== unblockedBoundaries) {
3958
+ row.boundaries = null;
3959
+ for (var i = 0; i < unblockedBoundaries.length; i++)
3960
+ finishedTask(request, unblockedBoundaries[i], null, null);
3961
+ }
3962
+ row.pendingTasks--;
3963
+ if (0 < row.pendingTasks) break;
3964
+ row = row.next;
3965
+ }
3966
+ }
3967
+ function createSuspenseListRow(previousRow) {
3968
+ var newRow = { pendingTasks: 1, boundaries: null, next: null };
3969
+ null !== previousRow &&
3970
+ 0 < previousRow.pendingTasks &&
3971
+ (newRow.pendingTasks++,
3972
+ (newRow.boundaries = []),
3973
+ (previousRow.next = newRow));
3974
+ return newRow;
3975
+ }
3976
+ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
3977
+ keyPath = task.keyPath;
3978
+ var prevTreeContext = task.treeContext,
3979
+ prevRow = task.row,
3980
+ totalChildren = rows.length,
3981
+ previousSuspenseListRow = null;
3982
+ if (null !== task.replay) {
3983
+ var resumeSlots = task.replay.slots;
3984
+ if (null !== resumeSlots && "object" === typeof resumeSlots)
3985
+ for (var n = 0; n < totalChildren; n++) {
3986
+ var i = "backwards" !== revealOrder ? n : totalChildren - 1 - n,
3987
+ node = rows[i];
3988
+ task.row = previousSuspenseListRow = createSuspenseListRow(
3989
+ previousSuspenseListRow
3990
+ );
3991
+ task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i);
3992
+ var resumeSegmentID = resumeSlots[i];
3993
+ "number" === typeof resumeSegmentID
3994
+ ? (resumeNode(request, task, resumeSegmentID, node, i),
3995
+ delete resumeSlots[i])
3996
+ : renderNode(request, task, node, i);
3997
+ 0 === --previousSuspenseListRow.pendingTasks &&
3998
+ finishSuspenseListRow(request, previousSuspenseListRow);
3999
+ }
4000
+ else
4001
+ for (resumeSlots = 0; resumeSlots < totalChildren; resumeSlots++)
4002
+ (n =
4003
+ "backwards" !== revealOrder
4004
+ ? resumeSlots
4005
+ : totalChildren - 1 - resumeSlots),
4006
+ (i = rows[n]),
4007
+ (task.row = previousSuspenseListRow =
4008
+ createSuspenseListRow(previousSuspenseListRow)),
4009
+ (task.treeContext = pushTreeContext(
4010
+ prevTreeContext,
4011
+ totalChildren,
4012
+ n
4013
+ )),
4014
+ renderNode(request, task, i, n),
4015
+ 0 === --previousSuspenseListRow.pendingTasks &&
4016
+ finishSuspenseListRow(request, previousSuspenseListRow);
4017
+ } else if ("backwards" !== revealOrder)
4018
+ for (revealOrder = 0; revealOrder < totalChildren; revealOrder++)
4019
+ (resumeSlots = rows[revealOrder]),
4020
+ (task.row = previousSuspenseListRow =
4021
+ createSuspenseListRow(previousSuspenseListRow)),
4022
+ (task.treeContext = pushTreeContext(
4023
+ prevTreeContext,
4024
+ totalChildren,
4025
+ revealOrder
4026
+ )),
4027
+ renderNode(request, task, resumeSlots, revealOrder),
4028
+ 0 === --previousSuspenseListRow.pendingTasks &&
4029
+ finishSuspenseListRow(request, previousSuspenseListRow);
4030
+ else {
4031
+ revealOrder = task.blockedSegment;
4032
+ resumeSlots = revealOrder.children.length;
4033
+ n = revealOrder.chunks.length;
4034
+ for (i = totalChildren - 1; 0 <= i; i--) {
4035
+ node = rows[i];
4036
+ task.row = previousSuspenseListRow = createSuspenseListRow(
4037
+ previousSuspenseListRow
4038
+ );
4039
+ task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i);
4040
+ resumeSegmentID = createPendingSegment(
4041
+ request,
4042
+ n,
4043
+ null,
4044
+ task.formatContext,
4045
+ 0 === i ? revealOrder.lastPushedText : !0,
4046
+ !0
4047
+ );
4048
+ revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
4049
+ task.blockedSegment = resumeSegmentID;
4050
+ try {
4051
+ renderNode(request, task, node, i),
4052
+ pushSegmentFinale(
4053
+ resumeSegmentID.chunks,
4054
+ request.renderState,
4055
+ resumeSegmentID.lastPushedText,
4056
+ resumeSegmentID.textEmbedded
4057
+ ),
4058
+ (resumeSegmentID.status = 1),
4059
+ 0 === --previousSuspenseListRow.pendingTasks &&
4060
+ finishSuspenseListRow(request, previousSuspenseListRow);
4061
+ } catch (thrownValue) {
4062
+ throw (
4063
+ ((resumeSegmentID.status = 12 === request.status ? 3 : 4),
4064
+ thrownValue)
4065
+ );
4066
+ }
4067
+ }
4068
+ task.blockedSegment = revealOrder;
4069
+ revealOrder.lastPushedText = !1;
4070
+ }
4071
+ null !== prevRow &&
4072
+ null !== previousSuspenseListRow &&
4073
+ 0 < previousSuspenseListRow.pendingTasks &&
4074
+ (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
4075
+ task.treeContext = prevTreeContext;
4076
+ task.row = prevRow;
4077
+ task.keyPath = keyPath;
4078
+ }
3930
4079
  function renderWithHooks(request, task, keyPath, Component, props, secondArg) {
3931
4080
  var prevThenableState = task.thenableState;
3932
4081
  task.thenableState = null;
@@ -3994,9 +4143,9 @@ function renderElement(request, task, keyPath, type, props, ref) {
3994
4143
  var defaultProps = type.defaultProps;
3995
4144
  if (defaultProps) {
3996
4145
  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]);
4146
+ for (var propName$42 in defaultProps)
4147
+ void 0 === newProps[propName$42] &&
4148
+ (newProps[propName$42] = defaultProps[propName$42]);
4000
4149
  }
4001
4150
  props = newProps;
4002
4151
  newProps = emptyContextObject;
@@ -4056,16 +4205,16 @@ function renderElement(request, task, keyPath, type, props, ref) {
4056
4205
  defaultProps = ref ? type[0] : newProps.state;
4057
4206
  initialState = !0;
4058
4207
  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 &&
4208
+ (propName$42 = type[ref]),
4209
+ (propName$42 =
4210
+ "function" === typeof propName$42
4211
+ ? propName$42.call(newProps, defaultProps, props, void 0)
4212
+ : propName$42),
4213
+ null != propName$42 &&
4065
4214
  (initialState
4066
4215
  ? ((initialState = !1),
4067
- (defaultProps = assign({}, defaultProps, propName$34)))
4068
- : assign(defaultProps, propName$34));
4216
+ (defaultProps = assign({}, defaultProps, propName$42)))
4217
+ : assign(defaultProps, propName$42));
4069
4218
  newProps.state = defaultProps;
4070
4219
  }
4071
4220
  else defaultProps.queue = null;
@@ -4140,6 +4289,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4140
4289
  task.formatContext,
4141
4290
  task.context,
4142
4291
  task.treeContext,
4292
+ task.row,
4143
4293
  task.componentStack
4144
4294
  )),
4145
4295
  pushComponentStack(keyPath),
@@ -4221,10 +4371,30 @@ function renderElement(request, task, keyPath, type, props, ref) {
4221
4371
  (type.lastPushedText = !1));
4222
4372
  return;
4223
4373
  case REACT_SUSPENSE_LIST_TYPE:
4224
- type = task.keyPath;
4225
- task.keyPath = keyPath;
4226
- renderNodeDestructive(request, task, props.children, -1);
4227
- task.keyPath = type;
4374
+ a: {
4375
+ type = props.children;
4376
+ props = props.revealOrder;
4377
+ if ("forwards" === props || "backwards" === props) {
4378
+ if (isArrayImpl(type)) {
4379
+ renderSuspenseListRows(request, task, keyPath, type, props);
4380
+ break a;
4381
+ }
4382
+ if ((newProps = getIteratorFn(type)))
4383
+ if ((newProps = newProps.call(type))) {
4384
+ defaultProps = newProps.next();
4385
+ if (!defaultProps.done) {
4386
+ do defaultProps = newProps.next();
4387
+ while (!defaultProps.done);
4388
+ renderSuspenseListRows(request, task, keyPath, type, props);
4389
+ }
4390
+ break a;
4391
+ }
4392
+ }
4393
+ props = task.keyPath;
4394
+ task.keyPath = keyPath;
4395
+ renderNodeDestructive(request, task, type, -1);
4396
+ task.keyPath = props;
4397
+ }
4228
4398
  return;
4229
4399
  case REACT_VIEW_TRANSITION_TYPE:
4230
4400
  case REACT_SCOPE_TYPE:
@@ -4233,22 +4403,27 @@ function renderElement(request, task, keyPath, type, props, ref) {
4233
4403
  a: if (null !== task.replay) {
4234
4404
  type = task.keyPath;
4235
4405
  newProps = task.formatContext;
4406
+ defaultProps = task.row;
4236
4407
  task.keyPath = keyPath;
4237
4408
  task.formatContext = getSuspenseContentFormatContext(
4238
4409
  request.resumableState,
4239
4410
  newProps
4240
4411
  );
4412
+ task.row = null;
4241
4413
  keyPath = props.children;
4242
4414
  try {
4243
4415
  renderNode(request, task, keyPath, -1);
4244
4416
  } finally {
4245
- (task.keyPath = type), (task.formatContext = newProps);
4417
+ (task.keyPath = type),
4418
+ (task.formatContext = newProps),
4419
+ (task.row = defaultProps);
4246
4420
  }
4247
4421
  } else {
4248
4422
  type = task.keyPath;
4249
4423
  ref = task.formatContext;
4250
- var parentBoundary = task.blockedBoundary;
4251
- propName$34 = task.blockedPreamble;
4424
+ var prevRow = task.row,
4425
+ parentBoundary = task.blockedBoundary;
4426
+ propName$42 = task.blockedPreamble;
4252
4427
  var parentHoistableState = task.hoistableState;
4253
4428
  propName = task.blockedSegment;
4254
4429
  var fallback = props.fallback;
@@ -4258,11 +4433,18 @@ function renderElement(request, task, keyPath, type, props, ref) {
4258
4433
  2 > task.formatContext.insertionMode
4259
4434
  ? createSuspenseBoundary(
4260
4435
  request,
4436
+ task.row,
4261
4437
  fallbackAbortSet,
4262
4438
  createPreambleState(),
4263
4439
  createPreambleState()
4264
4440
  )
4265
- : createSuspenseBoundary(request, fallbackAbortSet, null, null);
4441
+ : createSuspenseBoundary(
4442
+ request,
4443
+ task.row,
4444
+ fallbackAbortSet,
4445
+ null,
4446
+ null
4447
+ );
4266
4448
  null !== request.trackedPostpones &&
4267
4449
  (newBoundary.trackedContentKeyPath = keyPath);
4268
4450
  var boundarySegment = createPendingSegment(
@@ -4313,7 +4495,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4313
4495
  );
4314
4496
  } finally {
4315
4497
  (task.blockedSegment = propName),
4316
- (task.blockedPreamble = propName$34),
4498
+ (task.blockedPreamble = propName$42),
4317
4499
  (task.keyPath = type),
4318
4500
  (task.formatContext = ref);
4319
4501
  }
@@ -4334,6 +4516,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4334
4516
  ),
4335
4517
  task.context,
4336
4518
  task.treeContext,
4519
+ null,
4337
4520
  task.componentStack
4338
4521
  );
4339
4522
  pushComponentStack(task);
@@ -4348,6 +4531,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4348
4531
  request.resumableState,
4349
4532
  ref
4350
4533
  );
4534
+ task.row = null;
4351
4535
  contentRootSegment.status = 6;
4352
4536
  try {
4353
4537
  if (
@@ -4364,18 +4548,21 @@ function renderElement(request, task, keyPath, type, props, ref) {
4364
4548
  0 === newBoundary.status &&
4365
4549
  ((newBoundary.status = 1), !(500 < newBoundary.byteSize)))
4366
4550
  ) {
4551
+ null !== prevRow &&
4552
+ 0 === --prevRow.pendingTasks &&
4553
+ finishSuspenseListRow(request, prevRow);
4367
4554
  0 === request.pendingRootTasks &&
4368
4555
  task.blockedPreamble &&
4369
4556
  preparePreamble(request);
4370
4557
  break a;
4371
4558
  }
4372
- } catch (thrownValue$29) {
4559
+ } catch (thrownValue$30) {
4373
4560
  (newBoundary.status = 4),
4374
4561
  12 === request.status
4375
4562
  ? ((contentRootSegment.status = 3),
4376
4563
  (newProps = request.fatalError))
4377
4564
  : ((contentRootSegment.status = 4),
4378
- (newProps = thrownValue$29)),
4565
+ (newProps = thrownValue$30)),
4379
4566
  (defaultProps = getThrownInfo(task.componentStack)),
4380
4567
  (initialState = logRecoverableError(
4381
4568
  request,
@@ -4386,11 +4573,12 @@ function renderElement(request, task, keyPath, type, props, ref) {
4386
4573
  untrackBoundary(request, newBoundary);
4387
4574
  } finally {
4388
4575
  (task.blockedBoundary = parentBoundary),
4389
- (task.blockedPreamble = propName$34),
4576
+ (task.blockedPreamble = propName$42),
4390
4577
  (task.hoistableState = parentHoistableState),
4391
4578
  (task.blockedSegment = propName),
4392
4579
  (task.keyPath = type),
4393
- (task.formatContext = ref);
4580
+ (task.formatContext = ref),
4581
+ (task.row = prevRow);
4394
4582
  }
4395
4583
  task = createRenderTask(
4396
4584
  request,
@@ -4409,6 +4597,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4409
4597
  ),
4410
4598
  task.context,
4411
4599
  task.treeContext,
4600
+ task.row,
4412
4601
  task.componentStack
4413
4602
  );
4414
4603
  pushComponentStack(task);
@@ -4626,6 +4815,7 @@ function retryNode(request, task) {
4626
4815
  null === node$jscomp$0[4] ? null : node$jscomp$0[4][3];
4627
4816
  var prevKeyPath = task.keyPath,
4628
4817
  prevContext = task.formatContext,
4818
+ prevRow = task.row,
4629
4819
  previousReplaySet = task.replay,
4630
4820
  parentBoundary = task.blockedBoundary,
4631
4821
  parentHoistableState = task.hoistableState,
@@ -4636,12 +4826,14 @@ function retryNode(request, task) {
4636
4826
  2 > task.formatContext.insertionMode
4637
4827
  ? createSuspenseBoundary(
4638
4828
  request,
4829
+ task.row,
4639
4830
  fallbackAbortSet,
4640
4831
  createPreambleState(),
4641
4832
  createPreambleState()
4642
4833
  )
4643
4834
  : createSuspenseBoundary(
4644
4835
  request,
4836
+ task.row,
4645
4837
  fallbackAbortSet,
4646
4838
  null,
4647
4839
  null
@@ -4655,6 +4847,7 @@ function retryNode(request, task) {
4655
4847
  request.resumableState,
4656
4848
  prevContext
4657
4849
  );
4850
+ task.row = null;
4658
4851
  task.replay = {
4659
4852
  nodes: ref,
4660
4853
  slots: name,
@@ -4691,9 +4884,10 @@ function retryNode(request, task) {
4691
4884
  (task.hoistableState = parentHoistableState),
4692
4885
  (task.replay = previousReplaySet),
4693
4886
  (task.keyPath = prevKeyPath),
4694
- (task.formatContext = prevContext);
4887
+ (task.formatContext = prevContext),
4888
+ (task.row = prevRow);
4695
4889
  }
4696
- task = createReplayTask(
4890
+ childNodes = createReplayTask(
4697
4891
  request,
4698
4892
  null,
4699
4893
  {
@@ -4713,10 +4907,11 @@ function retryNode(request, task) {
4713
4907
  ),
4714
4908
  task.context,
4715
4909
  task.treeContext,
4910
+ task.row,
4716
4911
  task.componentStack
4717
4912
  );
4718
- pushComponentStack(task);
4719
- request.pingedTasks.push(task);
4913
+ pushComponentStack(childNodes);
4914
+ request.pingedTasks.push(childNodes);
4720
4915
  }
4721
4916
  }
4722
4917
  childIndex.splice(node, 1);
@@ -4741,22 +4936,17 @@ function retryNode(request, task) {
4741
4936
  renderChildrenArray(request, task, node, childIndex);
4742
4937
  return;
4743
4938
  }
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);
4939
+ if ((childNodes = getIteratorFn(node)))
4940
+ if ((childNodes = childNodes.call(node))) {
4941
+ node = childNodes.next();
4942
+ if (!node.done) {
4943
+ props = [];
4944
+ do props.push(node.value), (node = childNodes.next());
4945
+ while (!node.done);
4946
+ renderChildrenArray(request, task, props, childIndex);
4947
+ }
4948
+ return;
4757
4949
  }
4758
- return;
4759
- }
4760
4950
  if ("function" === typeof node.then)
4761
4951
  return (
4762
4952
  (task.thenableState = null),
@@ -4899,6 +5089,7 @@ function spawnNewSuspendedReplayTask(request, task, thenableState) {
4899
5089
  task.formatContext,
4900
5090
  task.context,
4901
5091
  task.treeContext,
5092
+ task.row,
4902
5093
  task.componentStack
4903
5094
  );
4904
5095
  }
@@ -4928,6 +5119,7 @@ function spawnNewSuspendedRenderTask(request, task, thenableState) {
4928
5119
  task.formatContext,
4929
5120
  task.context,
4930
5121
  task.treeContext,
5122
+ task.row,
4931
5123
  task.componentStack
4932
5124
  );
4933
5125
  }
@@ -4981,15 +5173,15 @@ function renderNode(request, task, node, childIndex) {
4981
5173
  chunkLength = segment.chunks.length;
4982
5174
  try {
4983
5175
  return renderNodeDestructive(request, task, node, childIndex);
4984
- } catch (thrownValue$51) {
5176
+ } catch (thrownValue$58) {
4985
5177
  if (
4986
5178
  (resetHooksState(),
4987
5179
  (segment.children.length = childrenLength),
4988
5180
  (segment.chunks.length = chunkLength),
4989
5181
  (node =
4990
- thrownValue$51 === SuspenseException
5182
+ thrownValue$58 === SuspenseException
4991
5183
  ? getSuspendedThenable()
4992
- : thrownValue$51),
5184
+ : thrownValue$58),
4993
5185
  "object" === typeof node && null !== node)
4994
5186
  ) {
4995
5187
  if ("function" === typeof node.then) {
@@ -5027,9 +5219,10 @@ function renderNode(request, task, node, childIndex) {
5027
5219
  throw node;
5028
5220
  }
5029
5221
  function abortTaskSoft(task) {
5030
- var boundary = task.blockedBoundary;
5031
- task = task.blockedSegment;
5032
- null !== task && ((task.status = 3), finishedTask(this, boundary, task));
5222
+ var boundary = task.blockedBoundary,
5223
+ segment = task.blockedSegment;
5224
+ null !== segment &&
5225
+ ((segment.status = 3), finishedTask(this, boundary, task.row, segment));
5033
5226
  }
5034
5227
  function abortRemainingReplayNodes(
5035
5228
  request$jscomp$0,
@@ -5056,6 +5249,7 @@ function abortRemainingReplayNodes(
5056
5249
  errorDigest = errorDigest$jscomp$0,
5057
5250
  resumedBoundary = createSuspenseBoundary(
5058
5251
  request,
5252
+ null,
5059
5253
  new Set(),
5060
5254
  null,
5061
5255
  null
@@ -5089,6 +5283,10 @@ function abortTask(task, request, error) {
5089
5283
  if (6 === segment.status) return;
5090
5284
  segment.status = 3;
5091
5285
  }
5286
+ segment = task.row;
5287
+ null !== segment &&
5288
+ 0 === --segment.pendingTasks &&
5289
+ finishSuspenseListRow(request, segment);
5092
5290
  segment = getThrownInfo(task.componentStack);
5093
5291
  if (null === boundary) {
5094
5292
  if (13 !== request.status && 14 !== request.status) {
@@ -5223,7 +5421,10 @@ function queueCompletedSegment(boundary, segment) {
5223
5421
  1 === childSegment.status && queueCompletedSegment(boundary, childSegment);
5224
5422
  } else boundary.completedSegments.push(segment);
5225
5423
  }
5226
- function finishedTask(request, boundary, segment) {
5424
+ function finishedTask(request, boundary, row, segment) {
5425
+ null !== row &&
5426
+ 0 === --row.pendingTasks &&
5427
+ finishSuspenseListRow(request, row);
5227
5428
  request.allPendingTasks--;
5228
5429
  if (null === boundary) {
5229
5430
  if (null !== segment && segment.parentFlushed) {
@@ -5252,7 +5453,11 @@ function finishedTask(request, boundary, segment) {
5252
5453
  abortTaskSoft,
5253
5454
  request
5254
5455
  ),
5255
- boundary.fallbackAbortableTasks.clear()),
5456
+ boundary.fallbackAbortableTasks.clear(),
5457
+ (row = boundary.row),
5458
+ null !== row &&
5459
+ 0 === --row.pendingTasks &&
5460
+ finishSuspenseListRow(request, row)),
5256
5461
  0 === request.pendingRootTasks &&
5257
5462
  null === request.trackedPostpones &&
5258
5463
  null !== boundary.contentPreamble &&
@@ -5307,7 +5512,12 @@ function performWork(request$jscomp$2) {
5307
5512
  );
5308
5513
  task.replay.pendingTasks--;
5309
5514
  task.abortSet.delete(task);
5310
- finishedTask(request$jscomp$0, task.blockedBoundary, null);
5515
+ finishedTask(
5516
+ request$jscomp$0,
5517
+ task.blockedBoundary,
5518
+ task.row,
5519
+ null
5520
+ );
5311
5521
  } catch (thrownValue) {
5312
5522
  resetHooksState();
5313
5523
  var x =
@@ -5377,7 +5587,12 @@ function performWork(request$jscomp$2) {
5377
5587
  ),
5378
5588
  task.abortSet.delete(task),
5379
5589
  (request$jscomp$1.status = 1),
5380
- finishedTask(request, task.blockedBoundary, request$jscomp$1);
5590
+ finishedTask(
5591
+ request,
5592
+ task.blockedBoundary,
5593
+ task.row,
5594
+ request$jscomp$1
5595
+ );
5381
5596
  } catch (thrownValue) {
5382
5597
  resetHooksState();
5383
5598
  request$jscomp$1.children.length = childrenLength;
@@ -5401,7 +5616,12 @@ function performWork(request$jscomp$2) {
5401
5616
  var errorInfo$jscomp$0 = getThrownInfo(task.componentStack);
5402
5617
  task.abortSet.delete(task);
5403
5618
  request$jscomp$1.status = 4;
5404
- var boundary$jscomp$0 = task.blockedBoundary;
5619
+ var boundary$jscomp$0 = task.blockedBoundary,
5620
+ row = task.row;
5621
+ null !== row &&
5622
+ 0 === --row.pendingTasks &&
5623
+ finishSuspenseListRow(request, row);
5624
+ request.allPendingTasks--;
5405
5625
  request$jscomp$0 = logRecoverableError(
5406
5626
  request,
5407
5627
  x$jscomp$0,
@@ -5420,7 +5640,6 @@ function performWork(request$jscomp$2) {
5420
5640
  null === request.trackedPostpones &&
5421
5641
  null !== boundary$jscomp$0.contentPreamble &&
5422
5642
  preparePreamble(request)));
5423
- request.allPendingTasks--;
5424
5643
  0 === request.allPendingTasks && completeAll(request);
5425
5644
  }
5426
5645
  } finally {
@@ -5565,24 +5784,27 @@ function flushSegment(request, destination, segment, hoistableState) {
5565
5784
  if (null === boundary)
5566
5785
  return flushSubtree(request, destination, segment, hoistableState);
5567
5786
  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
- );
5787
+ if (4 === boundary.status) {
5788
+ var row = boundary.row;
5789
+ null !== row &&
5790
+ 0 === --row.pendingTasks &&
5791
+ finishSuspenseListRow(request, row);
5792
+ request.renderState.generateStaticMarkup ||
5793
+ ((boundary = boundary.errorDigest),
5794
+ destination.push("\x3c!--$!--\x3e"),
5795
+ destination.push("<template"),
5796
+ boundary &&
5797
+ (destination.push(' data-dgst="'),
5798
+ (boundary = escapeTextForBrowser(boundary)),
5799
+ destination.push(boundary),
5800
+ destination.push('"')),
5801
+ destination.push("></template>"));
5802
+ flushSubtree(request, destination, segment, hoistableState);
5803
+ request = request.renderState.generateStaticMarkup
5804
+ ? !0
5805
+ : destination.push("\x3c!--/$--\x3e");
5806
+ return request;
5807
+ }
5586
5808
  if (1 !== boundary.status)
5587
5809
  return (
5588
5810
  0 === boundary.status &&
@@ -5624,6 +5846,11 @@ function flushSegment(request, destination, segment, hoistableState) {
5624
5846
  ((segment = boundary.contentState),
5625
5847
  segment.styles.forEach(hoistStyleQueueDependency, hoistableState),
5626
5848
  segment.stylesheets.forEach(hoistStylesheetDependency, hoistableState));
5849
+ segment = boundary.row;
5850
+ null !== segment &&
5851
+ 500 < boundary.byteSize &&
5852
+ 0 === --segment.pendingTasks &&
5853
+ finishSuspenseListRow(request, segment);
5627
5854
  request.renderState.generateStaticMarkup ||
5628
5855
  destination.push("\x3c!--$--\x3e");
5629
5856
  segment = boundary.completedSegments;
@@ -5661,6 +5888,11 @@ function flushCompletedBoundary(request, destination, boundary) {
5661
5888
  completedSegments[i]
5662
5889
  );
5663
5890
  completedSegments.length = 0;
5891
+ completedSegments = boundary.row;
5892
+ null !== completedSegments &&
5893
+ 500 < boundary.byteSize &&
5894
+ 0 === --completedSegments.pendingTasks &&
5895
+ finishSuspenseListRow(request, completedSegments);
5664
5896
  writeHoistablesForBoundary(
5665
5897
  destination,
5666
5898
  boundary.contentState,
@@ -5941,12 +6173,12 @@ function flushCompletedQueues(request, destination) {
5941
6173
  completedBoundaries.splice(0, i);
5942
6174
  var partialBoundaries = request.partialBoundaries;
5943
6175
  for (i = 0; i < partialBoundaries.length; i++) {
5944
- var boundary$54 = partialBoundaries[i];
6176
+ var boundary$62 = partialBoundaries[i];
5945
6177
  a: {
5946
6178
  clientRenderedBoundaries = request;
5947
6179
  boundary = destination;
5948
- flushedByteSize = boundary$54.byteSize;
5949
- var completedSegments = boundary$54.completedSegments;
6180
+ flushedByteSize = boundary$62.byteSize;
6181
+ var completedSegments = boundary$62.completedSegments;
5950
6182
  for (
5951
6183
  JSCompiler_inline_result = 0;
5952
6184
  JSCompiler_inline_result < completedSegments.length;
@@ -5956,7 +6188,7 @@ function flushCompletedQueues(request, destination) {
5956
6188
  !flushPartiallyCompletedSegment(
5957
6189
  clientRenderedBoundaries,
5958
6190
  boundary,
5959
- boundary$54,
6191
+ boundary$62,
5960
6192
  completedSegments[JSCompiler_inline_result]
5961
6193
  )
5962
6194
  ) {
@@ -5968,7 +6200,7 @@ function flushCompletedQueues(request, destination) {
5968
6200
  completedSegments.splice(0, JSCompiler_inline_result);
5969
6201
  JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
5970
6202
  boundary,
5971
- boundary$54.contentState,
6203
+ boundary$62.contentState,
5972
6204
  clientRenderedBoundaries.renderState
5973
6205
  );
5974
6206
  }
@@ -6051,8 +6283,8 @@ function abort(request, reason) {
6051
6283
  }
6052
6284
  null !== request.destination &&
6053
6285
  flushCompletedQueues(request, request.destination);
6054
- } catch (error$56) {
6055
- logRecoverableError(request, error$56, {}), fatalError(request, error$56);
6286
+ } catch (error$64) {
6287
+ logRecoverableError(request, error$64, {}), fatalError(request, error$64);
6056
6288
  }
6057
6289
  }
6058
6290
  function onError() {}
@@ -6121,4 +6353,4 @@ exports.renderToString = function (children, options) {
6121
6353
  '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
6354
  );
6123
6355
  };
6124
- exports.version = "19.2.0-canary-462d08f9-20250517";
6356
+ exports.version = "19.2.0-canary-c4676e72-20250520";