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.
@@ -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;
@@ -2710,17 +2717,17 @@ function createRenderState(resumableState, generateStaticMarkup) {
2710
2717
  "\x3c/script>"
2711
2718
  ));
2712
2719
  bootstrapScriptContent = idPrefix + "P:";
2713
- var JSCompiler_object_inline_segmentPrefix_1613 = idPrefix + "S:";
2720
+ var JSCompiler_object_inline_segmentPrefix_1633 = idPrefix + "S:";
2714
2721
  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 = {
2722
+ var JSCompiler_object_inline_preamble_1636 = createPreambleState(),
2723
+ JSCompiler_object_inline_preconnects_1646 = new Set(),
2724
+ JSCompiler_object_inline_fontPreloads_1647 = new Set(),
2725
+ JSCompiler_object_inline_highImagePreloads_1648 = new Set(),
2726
+ JSCompiler_object_inline_styles_1649 = new Map(),
2727
+ JSCompiler_object_inline_bootstrapScripts_1650 = new Set(),
2728
+ JSCompiler_object_inline_scripts_1651 = new Set(),
2729
+ JSCompiler_object_inline_bulkPreloads_1652 = new Set(),
2730
+ JSCompiler_object_inline_preloads_1653 = {
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_1650.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_1650.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_1633,
2830
2837
  boundaryPrefix: idPrefix,
2831
2838
  startInlineScript: "<script",
2832
- preamble: JSCompiler_object_inline_preamble_1616,
2839
+ preamble: JSCompiler_object_inline_preamble_1636,
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_1646,
2856
+ fontPreloads: JSCompiler_object_inline_fontPreloads_1647,
2857
+ highImagePreloads: JSCompiler_object_inline_highImagePreloads_1648,
2858
+ styles: JSCompiler_object_inline_styles_1649,
2859
+ bootstrapScripts: JSCompiler_object_inline_bootstrapScripts_1650,
2860
+ scripts: JSCompiler_object_inline_scripts_1651,
2861
+ bulkPreloads: JSCompiler_object_inline_bulkPreloads_1652,
2862
+ preloads: JSCompiler_object_inline_preloads_1653,
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,14 @@ function createSuspenseBoundary(
3724
3734
  trackedContentKeyPath: null,
3725
3735
  trackedFallbackNode: null
3726
3736
  };
3737
+ null !== row &&
3738
+ (row.pendingTasks++,
3739
+ (row = row.boundaries),
3740
+ null !== row &&
3741
+ (request.allPendingTasks++,
3742
+ fallbackAbortableTasks.pendingTasks++,
3743
+ row.push(fallbackAbortableTasks)));
3744
+ return fallbackAbortableTasks;
3727
3745
  }
3728
3746
  function createRenderTask(
3729
3747
  request,
@@ -3739,12 +3757,14 @@ function createRenderTask(
3739
3757
  formatContext,
3740
3758
  context,
3741
3759
  treeContext,
3760
+ row,
3742
3761
  componentStack
3743
3762
  ) {
3744
3763
  request.allPendingTasks++;
3745
3764
  null === blockedBoundary
3746
3765
  ? request.pendingRootTasks++
3747
3766
  : blockedBoundary.pendingTasks++;
3767
+ null !== row && row.pendingTasks++;
3748
3768
  var task = {
3749
3769
  replay: null,
3750
3770
  node: node,
@@ -3761,6 +3781,7 @@ function createRenderTask(
3761
3781
  formatContext: formatContext,
3762
3782
  context: context,
3763
3783
  treeContext: treeContext,
3784
+ row: row,
3764
3785
  componentStack: componentStack,
3765
3786
  thenableState: thenableState
3766
3787
  };
@@ -3780,12 +3801,14 @@ function createReplayTask(
3780
3801
  formatContext,
3781
3802
  context,
3782
3803
  treeContext,
3804
+ row,
3783
3805
  componentStack
3784
3806
  ) {
3785
3807
  request.allPendingTasks++;
3786
3808
  null === blockedBoundary
3787
3809
  ? request.pendingRootTasks++
3788
3810
  : blockedBoundary.pendingTasks++;
3811
+ null !== row && row.pendingTasks++;
3789
3812
  replay.pendingTasks++;
3790
3813
  var task = {
3791
3814
  replay: replay,
@@ -3803,6 +3826,7 @@ function createReplayTask(
3803
3826
  formatContext: formatContext,
3804
3827
  context: context,
3805
3828
  treeContext: treeContext,
3829
+ row: row,
3806
3830
  componentStack: componentStack,
3807
3831
  thenableState: thenableState
3808
3832
  };
@@ -3880,6 +3904,131 @@ function fatalError(request, error) {
3880
3904
  ? ((request.status = 14), request.destination.destroy(error))
3881
3905
  : ((request.status = 13), (request.fatalError = error));
3882
3906
  }
3907
+ function finishSuspenseListRow(request, row) {
3908
+ for (row = row.next; null !== row; ) {
3909
+ var unblockedBoundaries = row.boundaries;
3910
+ if (null !== unblockedBoundaries) {
3911
+ row.boundaries = null;
3912
+ for (var i = 0; i < unblockedBoundaries.length; i++)
3913
+ finishedTask(request, unblockedBoundaries[i], null, null);
3914
+ }
3915
+ row.pendingTasks--;
3916
+ if (0 < row.pendingTasks) break;
3917
+ row = row.next;
3918
+ }
3919
+ }
3920
+ function createSuspenseListRow(previousRow) {
3921
+ var newRow = { pendingTasks: 1, boundaries: null, next: null };
3922
+ null !== previousRow &&
3923
+ 0 < previousRow.pendingTasks &&
3924
+ (newRow.pendingTasks++,
3925
+ (newRow.boundaries = []),
3926
+ (previousRow.next = newRow));
3927
+ return newRow;
3928
+ }
3929
+ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
3930
+ keyPath = task.keyPath;
3931
+ var prevTreeContext = task.treeContext,
3932
+ prevRow = task.row,
3933
+ totalChildren = rows.length,
3934
+ previousSuspenseListRow = null;
3935
+ if (null !== task.replay) {
3936
+ var resumeSlots = task.replay.slots;
3937
+ if (null !== resumeSlots && "object" === typeof resumeSlots)
3938
+ for (var n = 0; n < totalChildren; n++) {
3939
+ var i = "backwards" !== revealOrder ? n : totalChildren - 1 - n,
3940
+ node = rows[i];
3941
+ task.row = previousSuspenseListRow = createSuspenseListRow(
3942
+ previousSuspenseListRow
3943
+ );
3944
+ task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i);
3945
+ var resumeSegmentID = resumeSlots[i];
3946
+ "number" === typeof resumeSegmentID
3947
+ ? (resumeNode(request, task, resumeSegmentID, node, i),
3948
+ delete resumeSlots[i])
3949
+ : renderNode(request, task, node, i);
3950
+ 0 === --previousSuspenseListRow.pendingTasks &&
3951
+ finishSuspenseListRow(request, previousSuspenseListRow);
3952
+ }
3953
+ else
3954
+ for (resumeSlots = 0; resumeSlots < totalChildren; resumeSlots++)
3955
+ (n =
3956
+ "backwards" !== revealOrder
3957
+ ? resumeSlots
3958
+ : totalChildren - 1 - resumeSlots),
3959
+ (i = rows[n]),
3960
+ (task.row = previousSuspenseListRow =
3961
+ createSuspenseListRow(previousSuspenseListRow)),
3962
+ (task.treeContext = pushTreeContext(
3963
+ prevTreeContext,
3964
+ totalChildren,
3965
+ n
3966
+ )),
3967
+ renderNode(request, task, i, n),
3968
+ 0 === --previousSuspenseListRow.pendingTasks &&
3969
+ finishSuspenseListRow(request, previousSuspenseListRow);
3970
+ } else if ("backwards" !== revealOrder)
3971
+ for (revealOrder = 0; revealOrder < totalChildren; revealOrder++)
3972
+ (resumeSlots = rows[revealOrder]),
3973
+ (task.row = previousSuspenseListRow =
3974
+ createSuspenseListRow(previousSuspenseListRow)),
3975
+ (task.treeContext = pushTreeContext(
3976
+ prevTreeContext,
3977
+ totalChildren,
3978
+ revealOrder
3979
+ )),
3980
+ renderNode(request, task, resumeSlots, revealOrder),
3981
+ 0 === --previousSuspenseListRow.pendingTasks &&
3982
+ finishSuspenseListRow(request, previousSuspenseListRow);
3983
+ else {
3984
+ revealOrder = task.blockedSegment;
3985
+ resumeSlots = revealOrder.children.length;
3986
+ n = revealOrder.chunks.length;
3987
+ for (i = totalChildren - 1; 0 <= i; i--) {
3988
+ node = rows[i];
3989
+ task.row = previousSuspenseListRow = createSuspenseListRow(
3990
+ previousSuspenseListRow
3991
+ );
3992
+ task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i);
3993
+ resumeSegmentID = createPendingSegment(
3994
+ request,
3995
+ n,
3996
+ null,
3997
+ task.formatContext,
3998
+ 0 === i ? revealOrder.lastPushedText : !0,
3999
+ !0
4000
+ );
4001
+ revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
4002
+ task.blockedSegment = resumeSegmentID;
4003
+ try {
4004
+ renderNode(request, task, node, i),
4005
+ pushSegmentFinale(
4006
+ resumeSegmentID.chunks,
4007
+ request.renderState,
4008
+ resumeSegmentID.lastPushedText,
4009
+ resumeSegmentID.textEmbedded
4010
+ ),
4011
+ (resumeSegmentID.status = 1),
4012
+ 0 === --previousSuspenseListRow.pendingTasks &&
4013
+ finishSuspenseListRow(request, previousSuspenseListRow);
4014
+ } catch (thrownValue) {
4015
+ throw (
4016
+ ((resumeSegmentID.status = 12 === request.status ? 3 : 4),
4017
+ thrownValue)
4018
+ );
4019
+ }
4020
+ }
4021
+ task.blockedSegment = revealOrder;
4022
+ revealOrder.lastPushedText = !1;
4023
+ }
4024
+ null !== prevRow &&
4025
+ null !== previousSuspenseListRow &&
4026
+ 0 < previousSuspenseListRow.pendingTasks &&
4027
+ (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
4028
+ task.treeContext = prevTreeContext;
4029
+ task.row = prevRow;
4030
+ task.keyPath = keyPath;
4031
+ }
3883
4032
  function renderWithHooks(request, task, keyPath, Component, props, secondArg) {
3884
4033
  var prevThenableState = task.thenableState;
3885
4034
  task.thenableState = null;
@@ -3947,9 +4096,9 @@ function renderElement(request, task, keyPath, type, props, ref) {
3947
4096
  var defaultProps = type.defaultProps;
3948
4097
  if (defaultProps) {
3949
4098
  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]);
4099
+ for (var propName$42 in defaultProps)
4100
+ void 0 === newProps[propName$42] &&
4101
+ (newProps[propName$42] = defaultProps[propName$42]);
3953
4102
  }
3954
4103
  props = newProps;
3955
4104
  newProps = emptyContextObject;
@@ -4009,16 +4158,16 @@ function renderElement(request, task, keyPath, type, props, ref) {
4009
4158
  defaultProps = ref ? type[0] : newProps.state;
4010
4159
  initialState = !0;
4011
4160
  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 &&
4161
+ (propName$42 = type[ref]),
4162
+ (propName$42 =
4163
+ "function" === typeof propName$42
4164
+ ? propName$42.call(newProps, defaultProps, props, void 0)
4165
+ : propName$42),
4166
+ null != propName$42 &&
4018
4167
  (initialState
4019
4168
  ? ((initialState = !1),
4020
- (defaultProps = assign({}, defaultProps, propName$34)))
4021
- : assign(defaultProps, propName$34));
4169
+ (defaultProps = assign({}, defaultProps, propName$42)))
4170
+ : assign(defaultProps, propName$42));
4022
4171
  newProps.state = defaultProps;
4023
4172
  }
4024
4173
  else defaultProps.queue = null;
@@ -4093,6 +4242,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4093
4242
  task.formatContext,
4094
4243
  task.context,
4095
4244
  task.treeContext,
4245
+ task.row,
4096
4246
  task.componentStack
4097
4247
  )),
4098
4248
  pushComponentStack(keyPath),
@@ -4174,10 +4324,30 @@ function renderElement(request, task, keyPath, type, props, ref) {
4174
4324
  (type.lastPushedText = !1));
4175
4325
  return;
4176
4326
  case REACT_SUSPENSE_LIST_TYPE:
4177
- type = task.keyPath;
4178
- task.keyPath = keyPath;
4179
- renderNodeDestructive(request, task, props.children, -1);
4180
- task.keyPath = type;
4327
+ a: {
4328
+ type = props.children;
4329
+ props = props.revealOrder;
4330
+ if ("forwards" === props || "backwards" === props) {
4331
+ if (isArrayImpl(type)) {
4332
+ renderSuspenseListRows(request, task, keyPath, type, props);
4333
+ break a;
4334
+ }
4335
+ if ((newProps = getIteratorFn(type)))
4336
+ if ((newProps = newProps.call(type))) {
4337
+ defaultProps = newProps.next();
4338
+ if (!defaultProps.done) {
4339
+ do defaultProps = newProps.next();
4340
+ while (!defaultProps.done);
4341
+ renderSuspenseListRows(request, task, keyPath, type, props);
4342
+ }
4343
+ break a;
4344
+ }
4345
+ }
4346
+ props = task.keyPath;
4347
+ task.keyPath = keyPath;
4348
+ renderNodeDestructive(request, task, type, -1);
4349
+ task.keyPath = props;
4350
+ }
4181
4351
  return;
4182
4352
  case REACT_VIEW_TRANSITION_TYPE:
4183
4353
  case REACT_SCOPE_TYPE:
@@ -4186,22 +4356,27 @@ function renderElement(request, task, keyPath, type, props, ref) {
4186
4356
  a: if (null !== task.replay) {
4187
4357
  type = task.keyPath;
4188
4358
  newProps = task.formatContext;
4359
+ defaultProps = task.row;
4189
4360
  task.keyPath = keyPath;
4190
4361
  task.formatContext = getSuspenseContentFormatContext(
4191
4362
  request.resumableState,
4192
4363
  newProps
4193
4364
  );
4365
+ task.row = null;
4194
4366
  keyPath = props.children;
4195
4367
  try {
4196
4368
  renderNode(request, task, keyPath, -1);
4197
4369
  } finally {
4198
- (task.keyPath = type), (task.formatContext = newProps);
4370
+ (task.keyPath = type),
4371
+ (task.formatContext = newProps),
4372
+ (task.row = defaultProps);
4199
4373
  }
4200
4374
  } else {
4201
4375
  type = task.keyPath;
4202
4376
  ref = task.formatContext;
4203
- var parentBoundary = task.blockedBoundary;
4204
- propName$34 = task.blockedPreamble;
4377
+ var prevRow = task.row,
4378
+ parentBoundary = task.blockedBoundary;
4379
+ propName$42 = task.blockedPreamble;
4205
4380
  var parentHoistableState = task.hoistableState;
4206
4381
  propName = task.blockedSegment;
4207
4382
  var fallback = props.fallback;
@@ -4211,11 +4386,18 @@ function renderElement(request, task, keyPath, type, props, ref) {
4211
4386
  2 > task.formatContext.insertionMode
4212
4387
  ? createSuspenseBoundary(
4213
4388
  request,
4389
+ task.row,
4214
4390
  fallbackAbortSet,
4215
4391
  createPreambleState(),
4216
4392
  createPreambleState()
4217
4393
  )
4218
- : createSuspenseBoundary(request, fallbackAbortSet, null, null);
4394
+ : createSuspenseBoundary(
4395
+ request,
4396
+ task.row,
4397
+ fallbackAbortSet,
4398
+ null,
4399
+ null
4400
+ );
4219
4401
  null !== request.trackedPostpones &&
4220
4402
  (newBoundary.trackedContentKeyPath = keyPath);
4221
4403
  var boundarySegment = createPendingSegment(
@@ -4266,7 +4448,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4266
4448
  );
4267
4449
  } finally {
4268
4450
  (task.blockedSegment = propName),
4269
- (task.blockedPreamble = propName$34),
4451
+ (task.blockedPreamble = propName$42),
4270
4452
  (task.keyPath = type),
4271
4453
  (task.formatContext = ref);
4272
4454
  }
@@ -4287,6 +4469,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4287
4469
  ),
4288
4470
  task.context,
4289
4471
  task.treeContext,
4472
+ null,
4290
4473
  task.componentStack
4291
4474
  );
4292
4475
  pushComponentStack(task);
@@ -4301,6 +4484,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4301
4484
  request.resumableState,
4302
4485
  ref
4303
4486
  );
4487
+ task.row = null;
4304
4488
  contentRootSegment.status = 6;
4305
4489
  try {
4306
4490
  if (
@@ -4317,18 +4501,21 @@ function renderElement(request, task, keyPath, type, props, ref) {
4317
4501
  0 === newBoundary.status &&
4318
4502
  ((newBoundary.status = 1), !(500 < newBoundary.byteSize)))
4319
4503
  ) {
4504
+ null !== prevRow &&
4505
+ 0 === --prevRow.pendingTasks &&
4506
+ finishSuspenseListRow(request, prevRow);
4320
4507
  0 === request.pendingRootTasks &&
4321
4508
  task.blockedPreamble &&
4322
4509
  preparePreamble(request);
4323
4510
  break a;
4324
4511
  }
4325
- } catch (thrownValue$29) {
4512
+ } catch (thrownValue$30) {
4326
4513
  (newBoundary.status = 4),
4327
4514
  12 === request.status
4328
4515
  ? ((contentRootSegment.status = 3),
4329
4516
  (newProps = request.fatalError))
4330
4517
  : ((contentRootSegment.status = 4),
4331
- (newProps = thrownValue$29)),
4518
+ (newProps = thrownValue$30)),
4332
4519
  (defaultProps = getThrownInfo(task.componentStack)),
4333
4520
  (initialState = logRecoverableError(
4334
4521
  request,
@@ -4339,11 +4526,12 @@ function renderElement(request, task, keyPath, type, props, ref) {
4339
4526
  untrackBoundary(request, newBoundary);
4340
4527
  } finally {
4341
4528
  (task.blockedBoundary = parentBoundary),
4342
- (task.blockedPreamble = propName$34),
4529
+ (task.blockedPreamble = propName$42),
4343
4530
  (task.hoistableState = parentHoistableState),
4344
4531
  (task.blockedSegment = propName),
4345
4532
  (task.keyPath = type),
4346
- (task.formatContext = ref);
4533
+ (task.formatContext = ref),
4534
+ (task.row = prevRow);
4347
4535
  }
4348
4536
  task = createRenderTask(
4349
4537
  request,
@@ -4362,6 +4550,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4362
4550
  ),
4363
4551
  task.context,
4364
4552
  task.treeContext,
4553
+ task.row,
4365
4554
  task.componentStack
4366
4555
  );
4367
4556
  pushComponentStack(task);
@@ -4571,6 +4760,7 @@ function retryNode(request, task) {
4571
4760
  null === node$jscomp$0[4] ? null : node$jscomp$0[4][3];
4572
4761
  var prevKeyPath = task.keyPath,
4573
4762
  prevContext = task.formatContext,
4763
+ prevRow = task.row,
4574
4764
  previousReplaySet = task.replay,
4575
4765
  parentBoundary = task.blockedBoundary,
4576
4766
  parentHoistableState = task.hoistableState,
@@ -4581,12 +4771,14 @@ function retryNode(request, task) {
4581
4771
  2 > task.formatContext.insertionMode
4582
4772
  ? createSuspenseBoundary(
4583
4773
  request,
4774
+ task.row,
4584
4775
  fallbackAbortSet,
4585
4776
  createPreambleState(),
4586
4777
  createPreambleState()
4587
4778
  )
4588
4779
  : createSuspenseBoundary(
4589
4780
  request,
4781
+ task.row,
4590
4782
  fallbackAbortSet,
4591
4783
  null,
4592
4784
  null
@@ -4600,6 +4792,7 @@ function retryNode(request, task) {
4600
4792
  request.resumableState,
4601
4793
  prevContext
4602
4794
  );
4795
+ task.row = null;
4603
4796
  task.replay = {
4604
4797
  nodes: ref,
4605
4798
  slots: name,
@@ -4634,9 +4827,10 @@ function retryNode(request, task) {
4634
4827
  (task.hoistableState = parentHoistableState),
4635
4828
  (task.replay = previousReplaySet),
4636
4829
  (task.keyPath = prevKeyPath),
4637
- (task.formatContext = prevContext);
4830
+ (task.formatContext = prevContext),
4831
+ (task.row = prevRow);
4638
4832
  }
4639
- task = createReplayTask(
4833
+ childNodes = createReplayTask(
4640
4834
  request,
4641
4835
  null,
4642
4836
  {
@@ -4656,10 +4850,11 @@ function retryNode(request, task) {
4656
4850
  ),
4657
4851
  task.context,
4658
4852
  task.treeContext,
4853
+ task.row,
4659
4854
  task.componentStack
4660
4855
  );
4661
- pushComponentStack(task);
4662
- request.pingedTasks.push(task);
4856
+ pushComponentStack(childNodes);
4857
+ request.pingedTasks.push(childNodes);
4663
4858
  }
4664
4859
  }
4665
4860
  childIndex.splice(node, 1);
@@ -4682,22 +4877,17 @@ function retryNode(request, task) {
4682
4877
  renderChildrenArray(request, task, node, childIndex);
4683
4878
  return;
4684
4879
  }
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);
4880
+ if ((childNodes = getIteratorFn(node)))
4881
+ if ((childNodes = childNodes.call(node))) {
4882
+ node = childNodes.next();
4883
+ if (!node.done) {
4884
+ props = [];
4885
+ do props.push(node.value), (node = childNodes.next());
4886
+ while (!node.done);
4887
+ renderChildrenArray(request, task, props, childIndex);
4888
+ }
4889
+ return;
4698
4890
  }
4699
- return;
4700
- }
4701
4891
  if ("function" === typeof node.then)
4702
4892
  return (
4703
4893
  (task.thenableState = null),
@@ -4839,6 +5029,7 @@ function spawnNewSuspendedReplayTask(request, task, thenableState) {
4839
5029
  task.formatContext,
4840
5030
  task.context,
4841
5031
  task.treeContext,
5032
+ task.row,
4842
5033
  task.componentStack
4843
5034
  );
4844
5035
  }
@@ -4868,6 +5059,7 @@ function spawnNewSuspendedRenderTask(request, task, thenableState) {
4868
5059
  task.formatContext,
4869
5060
  task.context,
4870
5061
  task.treeContext,
5062
+ task.row,
4871
5063
  task.componentStack
4872
5064
  );
4873
5065
  }
@@ -4921,15 +5113,15 @@ function renderNode(request, task, node, childIndex) {
4921
5113
  chunkLength = segment.chunks.length;
4922
5114
  try {
4923
5115
  return renderNodeDestructive(request, task, node, childIndex);
4924
- } catch (thrownValue$51) {
5116
+ } catch (thrownValue$58) {
4925
5117
  if (
4926
5118
  (resetHooksState(),
4927
5119
  (segment.children.length = childrenLength),
4928
5120
  (segment.chunks.length = chunkLength),
4929
5121
  (node =
4930
- thrownValue$51 === SuspenseException
5122
+ thrownValue$58 === SuspenseException
4931
5123
  ? getSuspendedThenable()
4932
- : thrownValue$51),
5124
+ : thrownValue$58),
4933
5125
  "object" === typeof node && null !== node)
4934
5126
  ) {
4935
5127
  if ("function" === typeof node.then) {
@@ -4967,9 +5159,10 @@ function renderNode(request, task, node, childIndex) {
4967
5159
  throw node;
4968
5160
  }
4969
5161
  function abortTaskSoft(task) {
4970
- var boundary = task.blockedBoundary;
4971
- task = task.blockedSegment;
4972
- null !== task && ((task.status = 3), finishedTask(this, boundary, task));
5162
+ var boundary = task.blockedBoundary,
5163
+ segment = task.blockedSegment;
5164
+ null !== segment &&
5165
+ ((segment.status = 3), finishedTask(this, boundary, task.row, segment));
4973
5166
  }
4974
5167
  function abortRemainingReplayNodes(
4975
5168
  request$jscomp$0,
@@ -4996,6 +5189,7 @@ function abortRemainingReplayNodes(
4996
5189
  errorDigest = errorDigest$jscomp$0,
4997
5190
  resumedBoundary = createSuspenseBoundary(
4998
5191
  request,
5192
+ null,
4999
5193
  new Set(),
5000
5194
  null,
5001
5195
  null
@@ -5026,6 +5220,10 @@ function abortTask(task, request, error) {
5026
5220
  if (6 === segment.status) return;
5027
5221
  segment.status = 3;
5028
5222
  }
5223
+ segment = task.row;
5224
+ null !== segment &&
5225
+ 0 === --segment.pendingTasks &&
5226
+ finishSuspenseListRow(request, segment);
5029
5227
  segment = getThrownInfo(task.componentStack);
5030
5228
  if (null === boundary) {
5031
5229
  if (13 !== request.status && 14 !== request.status) {
@@ -5160,7 +5358,10 @@ function queueCompletedSegment(boundary, segment) {
5160
5358
  1 === childSegment.status && queueCompletedSegment(boundary, childSegment);
5161
5359
  } else boundary.completedSegments.push(segment);
5162
5360
  }
5163
- function finishedTask(request, boundary, segment) {
5361
+ function finishedTask(request, boundary, row, segment) {
5362
+ null !== row &&
5363
+ 0 === --row.pendingTasks &&
5364
+ finishSuspenseListRow(request, row);
5164
5365
  request.allPendingTasks--;
5165
5366
  if (null === boundary) {
5166
5367
  if (null !== segment && segment.parentFlushed) {
@@ -5187,7 +5388,11 @@ function finishedTask(request, boundary, segment) {
5187
5388
  abortTaskSoft,
5188
5389
  request
5189
5390
  ),
5190
- boundary.fallbackAbortableTasks.clear()),
5391
+ boundary.fallbackAbortableTasks.clear(),
5392
+ (row = boundary.row),
5393
+ null !== row &&
5394
+ 0 === --row.pendingTasks &&
5395
+ finishSuspenseListRow(request, row)),
5191
5396
  0 === request.pendingRootTasks &&
5192
5397
  null === request.trackedPostpones &&
5193
5398
  null !== boundary.contentPreamble &&
@@ -5240,7 +5445,12 @@ function performWork(request$jscomp$2) {
5240
5445
  throw Error(formatProdErrorMessage(488));
5241
5446
  task.replay.pendingTasks--;
5242
5447
  task.abortSet.delete(task);
5243
- finishedTask(request$jscomp$0, task.blockedBoundary, null);
5448
+ finishedTask(
5449
+ request$jscomp$0,
5450
+ task.blockedBoundary,
5451
+ task.row,
5452
+ null
5453
+ );
5244
5454
  } catch (thrownValue) {
5245
5455
  resetHooksState();
5246
5456
  var x =
@@ -5310,7 +5520,12 @@ function performWork(request$jscomp$2) {
5310
5520
  ),
5311
5521
  task.abortSet.delete(task),
5312
5522
  (request$jscomp$1.status = 1),
5313
- finishedTask(request, task.blockedBoundary, request$jscomp$1);
5523
+ finishedTask(
5524
+ request,
5525
+ task.blockedBoundary,
5526
+ task.row,
5527
+ request$jscomp$1
5528
+ );
5314
5529
  } catch (thrownValue) {
5315
5530
  resetHooksState();
5316
5531
  request$jscomp$1.children.length = childrenLength;
@@ -5334,7 +5549,12 @@ function performWork(request$jscomp$2) {
5334
5549
  var errorInfo$jscomp$0 = getThrownInfo(task.componentStack);
5335
5550
  task.abortSet.delete(task);
5336
5551
  request$jscomp$1.status = 4;
5337
- var boundary$jscomp$0 = task.blockedBoundary;
5552
+ var boundary$jscomp$0 = task.blockedBoundary,
5553
+ row = task.row;
5554
+ null !== row &&
5555
+ 0 === --row.pendingTasks &&
5556
+ finishSuspenseListRow(request, row);
5557
+ request.allPendingTasks--;
5338
5558
  request$jscomp$0 = logRecoverableError(
5339
5559
  request,
5340
5560
  x$jscomp$0,
@@ -5353,7 +5573,6 @@ function performWork(request$jscomp$2) {
5353
5573
  null === request.trackedPostpones &&
5354
5574
  null !== boundary$jscomp$0.contentPreamble &&
5355
5575
  preparePreamble(request)));
5356
- request.allPendingTasks--;
5357
5576
  0 === request.allPendingTasks && completeAll(request);
5358
5577
  }
5359
5578
  } finally {
@@ -5493,24 +5712,27 @@ function flushSegment(request, destination, segment, hoistableState) {
5493
5712
  if (null === boundary)
5494
5713
  return flushSubtree(request, destination, segment, hoistableState);
5495
5714
  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
- );
5715
+ if (4 === boundary.status) {
5716
+ var row = boundary.row;
5717
+ null !== row &&
5718
+ 0 === --row.pendingTasks &&
5719
+ finishSuspenseListRow(request, row);
5720
+ request.renderState.generateStaticMarkup ||
5721
+ ((boundary = boundary.errorDigest),
5722
+ destination.push("\x3c!--$!--\x3e"),
5723
+ destination.push("<template"),
5724
+ boundary &&
5725
+ (destination.push(' data-dgst="'),
5726
+ (boundary = escapeTextForBrowser(boundary)),
5727
+ destination.push(boundary),
5728
+ destination.push('"')),
5729
+ destination.push("></template>"));
5730
+ flushSubtree(request, destination, segment, hoistableState);
5731
+ request = request.renderState.generateStaticMarkup
5732
+ ? !0
5733
+ : destination.push("\x3c!--/$--\x3e");
5734
+ return request;
5735
+ }
5514
5736
  if (1 !== boundary.status)
5515
5737
  return (
5516
5738
  0 === boundary.status &&
@@ -5552,6 +5774,11 @@ function flushSegment(request, destination, segment, hoistableState) {
5552
5774
  ((segment = boundary.contentState),
5553
5775
  segment.styles.forEach(hoistStyleQueueDependency, hoistableState),
5554
5776
  segment.stylesheets.forEach(hoistStylesheetDependency, hoistableState));
5777
+ segment = boundary.row;
5778
+ null !== segment &&
5779
+ 500 < boundary.byteSize &&
5780
+ 0 === --segment.pendingTasks &&
5781
+ finishSuspenseListRow(request, segment);
5555
5782
  request.renderState.generateStaticMarkup ||
5556
5783
  destination.push("\x3c!--$--\x3e");
5557
5784
  segment = boundary.completedSegments;
@@ -5586,6 +5813,11 @@ function flushCompletedBoundary(request, destination, boundary) {
5586
5813
  completedSegments[i]
5587
5814
  );
5588
5815
  completedSegments.length = 0;
5816
+ completedSegments = boundary.row;
5817
+ null !== completedSegments &&
5818
+ 500 < boundary.byteSize &&
5819
+ 0 === --completedSegments.pendingTasks &&
5820
+ finishSuspenseListRow(request, completedSegments);
5589
5821
  writeHoistablesForBoundary(
5590
5822
  destination,
5591
5823
  boundary.contentState,
@@ -5864,12 +6096,12 @@ function flushCompletedQueues(request, destination) {
5864
6096
  completedBoundaries.splice(0, i);
5865
6097
  var partialBoundaries = request.partialBoundaries;
5866
6098
  for (i = 0; i < partialBoundaries.length; i++) {
5867
- var boundary$54 = partialBoundaries[i];
6099
+ var boundary$62 = partialBoundaries[i];
5868
6100
  a: {
5869
6101
  clientRenderedBoundaries = request;
5870
6102
  boundary = destination;
5871
- flushedByteSize = boundary$54.byteSize;
5872
- var completedSegments = boundary$54.completedSegments;
6103
+ flushedByteSize = boundary$62.byteSize;
6104
+ var completedSegments = boundary$62.completedSegments;
5873
6105
  for (
5874
6106
  JSCompiler_inline_result = 0;
5875
6107
  JSCompiler_inline_result < completedSegments.length;
@@ -5879,7 +6111,7 @@ function flushCompletedQueues(request, destination) {
5879
6111
  !flushPartiallyCompletedSegment(
5880
6112
  clientRenderedBoundaries,
5881
6113
  boundary,
5882
- boundary$54,
6114
+ boundary$62,
5883
6115
  completedSegments[JSCompiler_inline_result]
5884
6116
  )
5885
6117
  ) {
@@ -5891,7 +6123,7 @@ function flushCompletedQueues(request, destination) {
5891
6123
  completedSegments.splice(0, JSCompiler_inline_result);
5892
6124
  JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
5893
6125
  boundary,
5894
- boundary$54.contentState,
6126
+ boundary$62.contentState,
5895
6127
  clientRenderedBoundaries.renderState
5896
6128
  );
5897
6129
  }
@@ -5974,8 +6206,8 @@ function abort(request, reason) {
5974
6206
  }
5975
6207
  null !== request.destination &&
5976
6208
  flushCompletedQueues(request, request.destination);
5977
- } catch (error$56) {
5978
- logRecoverableError(request, error$56, {}), fatalError(request, error$56);
6209
+ } catch (error$64) {
6210
+ logRecoverableError(request, error$64, {}), fatalError(request, error$64);
5979
6211
  }
5980
6212
  }
5981
6213
  function onError() {}
@@ -6041,4 +6273,4 @@ exports.renderToString = function (children, options) {
6041
6273
  '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
6274
  );
6043
6275
  };
6044
- exports.version = "19.2.0-canary-462d08f9-20250517";
6276
+ exports.version = "19.2.0-canary-c4676e72-20250520";