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.
@@ -41,6 +41,14 @@
41
41
  function scriptReplacer(match, prefix, s, suffix) {
42
42
  return "" + prefix + ("s" === s ? "\\u0073" : "\\u0053") + suffix;
43
43
  }
44
+ function getIteratorFn(maybeIterable) {
45
+ if (null === maybeIterable || "object" !== typeof maybeIterable)
46
+ return null;
47
+ maybeIterable =
48
+ (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
49
+ maybeIterable["@@iterator"];
50
+ return "function" === typeof maybeIterable ? maybeIterable : null;
51
+ }
44
52
  function objectName(object) {
45
53
  return Object.prototype.toString
46
54
  .call(object)
@@ -3700,6 +3708,10 @@
3700
3708
  function hoistStylesheetDependency(stylesheet) {
3701
3709
  this.stylesheets.add(stylesheet);
3702
3710
  }
3711
+ function hoistHoistables(parentState, childState) {
3712
+ childState.styles.forEach(hoistStyleQueueDependency, parentState);
3713
+ childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
3714
+ }
3703
3715
  function getComponentNameFromType(type) {
3704
3716
  if (null == type) return null;
3705
3717
  if ("function" === typeof type)
@@ -4586,6 +4598,7 @@
4586
4598
  null,
4587
4599
  emptyTreeContext,
4588
4600
  null,
4601
+ null,
4589
4602
  emptyContextObject,
4590
4603
  null
4591
4604
  );
@@ -4641,15 +4654,17 @@
4641
4654
  }
4642
4655
  function createSuspenseBoundary(
4643
4656
  request,
4657
+ row,
4644
4658
  fallbackAbortableTasks,
4645
4659
  contentPreamble,
4646
4660
  fallbackPreamble
4647
4661
  ) {
4648
- return {
4662
+ fallbackAbortableTasks = {
4649
4663
  status: PENDING,
4650
4664
  rootSegmentID: -1,
4651
4665
  parentFlushed: !1,
4652
4666
  pendingTasks: 0,
4667
+ row: row,
4653
4668
  completedSegments: [],
4654
4669
  byteSize: 0,
4655
4670
  fallbackAbortableTasks: fallbackAbortableTasks,
@@ -4664,6 +4679,17 @@
4664
4679
  errorStack: null,
4665
4680
  errorComponentStack: null
4666
4681
  };
4682
+ null !== row &&
4683
+ (row.pendingTasks++,
4684
+ (contentPreamble = row.boundaries),
4685
+ null !== contentPreamble &&
4686
+ (request.allPendingTasks++,
4687
+ fallbackAbortableTasks.pendingTasks++,
4688
+ contentPreamble.push(fallbackAbortableTasks)),
4689
+ (request = row.inheritedHoistables),
4690
+ null !== request &&
4691
+ hoistHoistables(fallbackAbortableTasks.contentState, request));
4692
+ return fallbackAbortableTasks;
4667
4693
  }
4668
4694
  function createRenderTask(
4669
4695
  request,
@@ -4679,6 +4705,7 @@
4679
4705
  formatContext,
4680
4706
  context,
4681
4707
  treeContext,
4708
+ row,
4682
4709
  componentStack,
4683
4710
  legacyContext,
4684
4711
  debugTask
@@ -4687,6 +4714,7 @@
4687
4714
  null === blockedBoundary
4688
4715
  ? request.pendingRootTasks++
4689
4716
  : blockedBoundary.pendingTasks++;
4717
+ null !== row && row.pendingTasks++;
4690
4718
  var task = {
4691
4719
  replay: null,
4692
4720
  node: node,
@@ -4703,6 +4731,7 @@
4703
4731
  formatContext: formatContext,
4704
4732
  context: context,
4705
4733
  treeContext: treeContext,
4734
+ row: row,
4706
4735
  componentStack: componentStack,
4707
4736
  thenableState: thenableState
4708
4737
  };
@@ -4723,6 +4752,7 @@
4723
4752
  formatContext,
4724
4753
  context,
4725
4754
  treeContext,
4755
+ row,
4726
4756
  componentStack,
4727
4757
  legacyContext,
4728
4758
  debugTask
@@ -4731,6 +4761,7 @@
4731
4761
  null === blockedBoundary
4732
4762
  ? request.pendingRootTasks++
4733
4763
  : blockedBoundary.pendingTasks++;
4764
+ null !== row && row.pendingTasks++;
4734
4765
  replay.pendingTasks++;
4735
4766
  var task = {
4736
4767
  replay: replay,
@@ -4748,6 +4779,7 @@
4748
4779
  formatContext: formatContext,
4749
4780
  context: context,
4750
4781
  treeContext: treeContext,
4782
+ row: row,
4751
4783
  componentStack: componentStack,
4752
4784
  thenableState: thenableState
4753
4785
  };
@@ -4934,6 +4966,184 @@
4934
4966
  closeWithError(request.destination, error))
4935
4967
  : ((request.status = 13), (request.fatalError = error));
4936
4968
  }
4969
+ function finishSuspenseListRow(request, row) {
4970
+ unblockSuspenseListRow(request, row.next, row.hoistables);
4971
+ }
4972
+ function unblockSuspenseListRow(
4973
+ request,
4974
+ unblockedRow,
4975
+ inheritedHoistables
4976
+ ) {
4977
+ for (; null !== unblockedRow; ) {
4978
+ null !== inheritedHoistables &&
4979
+ (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
4980
+ (unblockedRow.inheritedHoistables = inheritedHoistables));
4981
+ var unblockedBoundaries = unblockedRow.boundaries;
4982
+ if (null !== unblockedBoundaries) {
4983
+ unblockedRow.boundaries = null;
4984
+ for (var i = 0; i < unblockedBoundaries.length; i++) {
4985
+ var unblockedBoundary = unblockedBoundaries[i];
4986
+ null !== inheritedHoistables &&
4987
+ hoistHoistables(
4988
+ unblockedBoundary.contentState,
4989
+ inheritedHoistables
4990
+ );
4991
+ finishedTask(request, unblockedBoundary, null, null);
4992
+ }
4993
+ }
4994
+ unblockedRow.pendingTasks--;
4995
+ if (0 < unblockedRow.pendingTasks) break;
4996
+ inheritedHoistables = unblockedRow.hoistables;
4997
+ unblockedRow = unblockedRow.next;
4998
+ }
4999
+ }
5000
+ function tryToResolveTogetherRow(request, togetherRow) {
5001
+ var boundaries = togetherRow.boundaries;
5002
+ if (
5003
+ null !== boundaries &&
5004
+ togetherRow.pendingTasks === boundaries.length
5005
+ ) {
5006
+ for (
5007
+ var allCompleteAndInlinable = !0, i = 0;
5008
+ i < boundaries.length;
5009
+ i++
5010
+ ) {
5011
+ var rowBoundary = boundaries[i];
5012
+ if (
5013
+ 1 !== rowBoundary.pendingTasks ||
5014
+ rowBoundary.parentFlushed ||
5015
+ 500 < rowBoundary.byteSize
5016
+ ) {
5017
+ allCompleteAndInlinable = !1;
5018
+ break;
5019
+ }
5020
+ }
5021
+ allCompleteAndInlinable &&
5022
+ unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
5023
+ }
5024
+ }
5025
+ function createSuspenseListRow(previousRow) {
5026
+ var newRow = {
5027
+ pendingTasks: 1,
5028
+ boundaries: null,
5029
+ hoistables: createHoistableState(),
5030
+ inheritedHoistables: null,
5031
+ together: !1,
5032
+ next: null
5033
+ };
5034
+ null !== previousRow &&
5035
+ 0 < previousRow.pendingTasks &&
5036
+ (newRow.pendingTasks++,
5037
+ (newRow.boundaries = []),
5038
+ (previousRow.next = newRow));
5039
+ return newRow;
5040
+ }
5041
+ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
5042
+ var prevKeyPath = task.keyPath,
5043
+ prevTreeContext = task.treeContext,
5044
+ prevRow = task.row,
5045
+ previousComponentStack = task.componentStack;
5046
+ var previousDebugTask = task.debugTask;
5047
+ pushServerComponentStack(task, task.node.props.children._debugInfo);
5048
+ task.keyPath = keyPath;
5049
+ keyPath = rows.length;
5050
+ var previousSuspenseListRow = null;
5051
+ if (null !== task.replay) {
5052
+ var resumeSlots = task.replay.slots;
5053
+ if (null !== resumeSlots && "object" === typeof resumeSlots)
5054
+ for (var n = 0; n < keyPath; n++) {
5055
+ var i = "backwards" !== revealOrder ? n : keyPath - 1 - n,
5056
+ node = rows[i];
5057
+ task.row = previousSuspenseListRow = createSuspenseListRow(
5058
+ previousSuspenseListRow
5059
+ );
5060
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
5061
+ var resumeSegmentID = resumeSlots[i];
5062
+ "number" === typeof resumeSegmentID
5063
+ ? (resumeNode(request, task, resumeSegmentID, node, i),
5064
+ delete resumeSlots[i])
5065
+ : renderNode(request, task, node, i);
5066
+ 0 === --previousSuspenseListRow.pendingTasks &&
5067
+ finishSuspenseListRow(request, previousSuspenseListRow);
5068
+ }
5069
+ else
5070
+ for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
5071
+ (n =
5072
+ "backwards" !== revealOrder
5073
+ ? resumeSlots
5074
+ : keyPath - 1 - resumeSlots),
5075
+ (i = rows[n]),
5076
+ warnForMissingKey(request, task, i),
5077
+ (task.row = previousSuspenseListRow =
5078
+ createSuspenseListRow(previousSuspenseListRow)),
5079
+ (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
5080
+ renderNode(request, task, i, n),
5081
+ 0 === --previousSuspenseListRow.pendingTasks &&
5082
+ finishSuspenseListRow(request, previousSuspenseListRow);
5083
+ } else if ("backwards" !== revealOrder)
5084
+ for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
5085
+ (resumeSlots = rows[revealOrder]),
5086
+ warnForMissingKey(request, task, resumeSlots),
5087
+ (task.row = previousSuspenseListRow =
5088
+ createSuspenseListRow(previousSuspenseListRow)),
5089
+ (task.treeContext = pushTreeContext(
5090
+ prevTreeContext,
5091
+ keyPath,
5092
+ revealOrder
5093
+ )),
5094
+ renderNode(request, task, resumeSlots, revealOrder),
5095
+ 0 === --previousSuspenseListRow.pendingTasks &&
5096
+ finishSuspenseListRow(request, previousSuspenseListRow);
5097
+ else {
5098
+ revealOrder = task.blockedSegment;
5099
+ resumeSlots = revealOrder.children.length;
5100
+ n = revealOrder.chunks.length;
5101
+ for (i = keyPath - 1; 0 <= i; i--) {
5102
+ node = rows[i];
5103
+ task.row = previousSuspenseListRow = createSuspenseListRow(
5104
+ previousSuspenseListRow
5105
+ );
5106
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
5107
+ resumeSegmentID = createPendingSegment(
5108
+ request,
5109
+ n,
5110
+ null,
5111
+ task.formatContext,
5112
+ 0 === i ? revealOrder.lastPushedText : !0,
5113
+ !0
5114
+ );
5115
+ revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
5116
+ task.blockedSegment = resumeSegmentID;
5117
+ warnForMissingKey(request, task, node);
5118
+ try {
5119
+ renderNode(request, task, node, i),
5120
+ resumeSegmentID.lastPushedText &&
5121
+ resumeSegmentID.textEmbedded &&
5122
+ resumeSegmentID.chunks.push(textSeparator),
5123
+ (resumeSegmentID.status = COMPLETED),
5124
+ finishedSegment(request, task.blockedBoundary, resumeSegmentID),
5125
+ 0 === --previousSuspenseListRow.pendingTasks &&
5126
+ finishSuspenseListRow(request, previousSuspenseListRow);
5127
+ } catch (thrownValue) {
5128
+ throw (
5129
+ ((resumeSegmentID.status = 12 === request.status ? ABORTED : 4),
5130
+ thrownValue)
5131
+ );
5132
+ }
5133
+ }
5134
+ task.blockedSegment = revealOrder;
5135
+ revealOrder.lastPushedText = !1;
5136
+ }
5137
+ null !== prevRow &&
5138
+ null !== previousSuspenseListRow &&
5139
+ 0 < previousSuspenseListRow.pendingTasks &&
5140
+ (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
5141
+ task.treeContext = prevTreeContext;
5142
+ task.row = prevRow;
5143
+ task.keyPath = prevKeyPath;
5144
+ task.componentStack = previousComponentStack;
5145
+ task.debugTask = previousDebugTask;
5146
+ }
4937
5147
  function renderWithHooks(
4938
5148
  request,
4939
5149
  task,
@@ -5475,7 +5685,7 @@
5475
5685
  );
5476
5686
  segment.lastPushedText = !1;
5477
5687
  var _prevContext2 = task.formatContext,
5478
- _prevKeyPath2 = task.keyPath;
5688
+ _prevKeyPath3 = task.keyPath;
5479
5689
  task.keyPath = keyPath;
5480
5690
  if (
5481
5691
  (task.formatContext = getChildFormatContext(
@@ -5507,6 +5717,7 @@
5507
5717
  task.formatContext,
5508
5718
  task.context,
5509
5719
  task.treeContext,
5720
+ task.row,
5510
5721
  task.componentStack,
5511
5722
  emptyContextObject,
5512
5723
  task.debugTask
@@ -5515,7 +5726,7 @@
5515
5726
  request.pingedTasks.push(preambleTask);
5516
5727
  } else renderNode(request, task, _children, -1);
5517
5728
  task.formatContext = _prevContext2;
5518
- task.keyPath = _prevKeyPath2;
5729
+ task.keyPath = _prevKeyPath3;
5519
5730
  a: {
5520
5731
  var target = segment.chunks,
5521
5732
  resumableState = request.resumableState;
@@ -5581,19 +5792,79 @@
5581
5792
  } else if ("hidden" !== props.mode) {
5582
5793
  segment$jscomp$0.chunks.push(startActivityBoundary);
5583
5794
  segment$jscomp$0.lastPushedText = !1;
5584
- var _prevKeyPath3 = task.keyPath;
5795
+ var _prevKeyPath4 = task.keyPath;
5585
5796
  task.keyPath = keyPath;
5586
5797
  renderNode(request, task, props.children, -1);
5587
- task.keyPath = _prevKeyPath3;
5798
+ task.keyPath = _prevKeyPath4;
5588
5799
  segment$jscomp$0.chunks.push(endActivityBoundary);
5589
5800
  segment$jscomp$0.lastPushedText = !1;
5590
5801
  }
5591
5802
  return;
5592
5803
  case REACT_SUSPENSE_LIST_TYPE:
5593
- var _prevKeyPath4 = task.keyPath;
5594
- task.keyPath = keyPath;
5595
- renderNodeDestructive(request, task, props.children, -1);
5596
- task.keyPath = _prevKeyPath4;
5804
+ a: {
5805
+ var children$jscomp$0 = props.children,
5806
+ revealOrder = props.revealOrder;
5807
+ if ("forwards" === revealOrder || "backwards" === revealOrder) {
5808
+ if (isArrayImpl(children$jscomp$0)) {
5809
+ renderSuspenseListRows(
5810
+ request,
5811
+ task,
5812
+ keyPath,
5813
+ children$jscomp$0,
5814
+ revealOrder
5815
+ );
5816
+ break a;
5817
+ }
5818
+ var iteratorFn = getIteratorFn(children$jscomp$0);
5819
+ if (iteratorFn) {
5820
+ var iterator = iteratorFn.call(children$jscomp$0);
5821
+ if (iterator) {
5822
+ validateIterable(
5823
+ task,
5824
+ children$jscomp$0,
5825
+ -1,
5826
+ iterator,
5827
+ iteratorFn
5828
+ );
5829
+ var step = iterator.next();
5830
+ if (!step.done) {
5831
+ var rows = [];
5832
+ do rows.push(step.value), (step = iterator.next());
5833
+ while (!step.done);
5834
+ renderSuspenseListRows(
5835
+ request,
5836
+ task,
5837
+ keyPath,
5838
+ children$jscomp$0,
5839
+ revealOrder
5840
+ );
5841
+ }
5842
+ break a;
5843
+ }
5844
+ }
5845
+ }
5846
+ if ("together" === revealOrder) {
5847
+ var _prevKeyPath2 = task.keyPath,
5848
+ prevRow = task.row,
5849
+ newRow = (task.row = createSuspenseListRow(null));
5850
+ newRow.boundaries = [];
5851
+ newRow.together = !0;
5852
+ task.keyPath = keyPath;
5853
+ renderNodeDestructive(request, task, children$jscomp$0, -1);
5854
+ 0 === --newRow.pendingTasks &&
5855
+ finishSuspenseListRow(request, newRow);
5856
+ task.keyPath = _prevKeyPath2;
5857
+ task.row = prevRow;
5858
+ null !== prevRow &&
5859
+ 0 < newRow.pendingTasks &&
5860
+ (prevRow.pendingTasks++, (newRow.next = prevRow));
5861
+ } else {
5862
+ var prevKeyPath$jscomp$3 = task.keyPath;
5863
+ task.keyPath = keyPath;
5864
+ renderNodeDestructive(request, task, children$jscomp$0, -1);
5865
+ task.keyPath = prevKeyPath$jscomp$3;
5866
+ }
5867
+ }
5597
5868
  return;
5598
5869
  case REACT_VIEW_TRANSITION_TYPE:
5599
5870
  case REACT_SCOPE_TYPE:
@@ -5603,22 +5874,26 @@
5603
5874
  case REACT_SUSPENSE_TYPE:
5604
5875
  a: if (null !== task.replay) {
5605
5876
  var _prevKeyPath = task.keyPath,
5606
- _prevContext = task.formatContext;
5877
+ _prevContext = task.formatContext,
5878
+ _prevRow = task.row;
5607
5879
  task.keyPath = keyPath;
5608
5880
  task.formatContext = getSuspenseContentFormatContext(
5609
5881
  request.resumableState,
5610
5882
  _prevContext
5611
5883
  );
5884
+ task.row = null;
5612
5885
  var _content = props.children;
5613
5886
  try {
5614
5887
  renderNode(request, task, _content, -1);
5615
5888
  } finally {
5616
5889
  (task.keyPath = _prevKeyPath),
5617
- (task.formatContext = _prevContext);
5890
+ (task.formatContext = _prevContext),
5891
+ (task.row = _prevRow);
5618
5892
  }
5619
5893
  } else {
5620
- var prevKeyPath$jscomp$3 = task.keyPath,
5894
+ var prevKeyPath$jscomp$4 = task.keyPath,
5621
5895
  prevContext$jscomp$0 = task.formatContext,
5896
+ prevRow$jscomp$0 = task.row,
5622
5897
  parentBoundary = task.blockedBoundary,
5623
5898
  parentPreamble = task.blockedPreamble,
5624
5899
  parentHoistableState = task.hoistableState,
@@ -5630,12 +5905,14 @@
5630
5905
  task.formatContext.insertionMode < HTML_MODE
5631
5906
  ? createSuspenseBoundary(
5632
5907
  request,
5908
+ task.row,
5633
5909
  fallbackAbortSet,
5634
5910
  createPreambleState(),
5635
5911
  createPreambleState()
5636
5912
  )
5637
5913
  : createSuspenseBoundary(
5638
5914
  request,
5915
+ task.row,
5639
5916
  fallbackAbortSet,
5640
5917
  null,
5641
5918
  null
@@ -5695,13 +5972,14 @@
5695
5972
  finishedSegment(request, parentBoundary, boundarySegment);
5696
5973
  } catch (thrownValue) {
5697
5974
  throw (
5698
- ((boundarySegment.status = 12 === request.status ? 3 : 4),
5975
+ ((boundarySegment.status =
5976
+ 12 === request.status ? ABORTED : 4),
5699
5977
  thrownValue)
5700
5978
  );
5701
5979
  } finally {
5702
5980
  (task.blockedSegment = parentSegment),
5703
5981
  (task.blockedPreamble = parentPreamble),
5704
- (task.keyPath = prevKeyPath$jscomp$3),
5982
+ (task.keyPath = prevKeyPath$jscomp$4),
5705
5983
  (task.formatContext = prevContext$jscomp$0);
5706
5984
  }
5707
5985
  var suspendedPrimaryTask = createRenderTask(
@@ -5721,6 +5999,7 @@
5721
5999
  ),
5722
6000
  task.context,
5723
6001
  task.treeContext,
6002
+ null,
5724
6003
  task.componentStack,
5725
6004
  emptyContextObject,
5726
6005
  task.debugTask
@@ -5737,6 +6016,7 @@
5737
6016
  request.resumableState,
5738
6017
  prevContext$jscomp$0
5739
6018
  );
6019
+ task.row = null;
5740
6020
  contentRootSegment.status = 6;
5741
6021
  try {
5742
6022
  if (
@@ -5748,19 +6028,28 @@
5748
6028
  finishedSegment(request, newBoundary, contentRootSegment),
5749
6029
  queueCompletedSegment(newBoundary, contentRootSegment),
5750
6030
  0 === newBoundary.pendingTasks &&
5751
- newBoundary.status === PENDING &&
5752
- ((newBoundary.status = COMPLETED),
5753
- !(500 < newBoundary.byteSize)))
6031
+ newBoundary.status === PENDING)
5754
6032
  ) {
5755
- 0 === request.pendingRootTasks &&
5756
- task.blockedPreamble &&
5757
- preparePreamble(request);
5758
- break a;
5759
- }
6033
+ if (
6034
+ ((newBoundary.status = COMPLETED),
6035
+ !(500 < newBoundary.byteSize))
6036
+ ) {
6037
+ null !== prevRow$jscomp$0 &&
6038
+ 0 === --prevRow$jscomp$0.pendingTasks &&
6039
+ finishSuspenseListRow(request, prevRow$jscomp$0);
6040
+ 0 === request.pendingRootTasks &&
6041
+ task.blockedPreamble &&
6042
+ preparePreamble(request);
6043
+ break a;
6044
+ }
6045
+ } else
6046
+ null !== prevRow$jscomp$0 &&
6047
+ prevRow$jscomp$0.together &&
6048
+ tryToResolveTogetherRow(request, prevRow$jscomp$0);
5760
6049
  } catch (thrownValue$2) {
5761
6050
  newBoundary.status = CLIENT_RENDERED;
5762
6051
  if (12 === request.status) {
5763
- contentRootSegment.status = 3;
6052
+ contentRootSegment.status = ABORTED;
5764
6053
  var error = request.fatalError;
5765
6054
  } else
5766
6055
  (contentRootSegment.status = 4), (error = thrownValue$2);
@@ -5784,8 +6073,9 @@
5784
6073
  (task.blockedPreamble = parentPreamble),
5785
6074
  (task.hoistableState = parentHoistableState),
5786
6075
  (task.blockedSegment = parentSegment),
5787
- (task.keyPath = prevKeyPath$jscomp$3),
5788
- (task.formatContext = prevContext$jscomp$0);
6076
+ (task.keyPath = prevKeyPath$jscomp$4),
6077
+ (task.formatContext = prevContext$jscomp$0),
6078
+ (task.row = prevRow$jscomp$0);
5789
6079
  }
5790
6080
  var suspendedFallbackTask = createRenderTask(
5791
6081
  request,
@@ -5804,6 +6094,7 @@
5804
6094
  ),
5805
6095
  task.context,
5806
6096
  task.treeContext,
6097
+ task.row,
5807
6098
  task.componentStack,
5808
6099
  emptyContextObject,
5809
6100
  task.debugTask
@@ -5822,7 +6113,7 @@
5822
6113
  for (var key in props)
5823
6114
  "ref" !== key && (propsWithoutRef[key] = props[key]);
5824
6115
  } else propsWithoutRef = props;
5825
- var children$jscomp$0 = renderWithHooks(
6116
+ var children$jscomp$1 = renderWithHooks(
5826
6117
  request,
5827
6118
  task,
5828
6119
  keyPath,
@@ -5834,7 +6125,7 @@
5834
6125
  request,
5835
6126
  task,
5836
6127
  keyPath,
5837
- children$jscomp$0,
6128
+ children$jscomp$1,
5838
6129
  0 !== localIdCounter,
5839
6130
  actionStateCounter,
5840
6131
  actionStateMatchingIndex
@@ -5846,9 +6137,9 @@
5846
6137
  case REACT_PROVIDER_TYPE:
5847
6138
  case REACT_CONTEXT_TYPE:
5848
6139
  var value$jscomp$0 = props.value,
5849
- children$jscomp$1 = props.children;
6140
+ children$jscomp$2 = props.children;
5850
6141
  var prevSnapshot = task.context;
5851
- var prevKeyPath$jscomp$4 = task.keyPath;
6142
+ var prevKeyPath$jscomp$5 = task.keyPath;
5852
6143
  var prevValue = type._currentValue;
5853
6144
  type._currentValue = value$jscomp$0;
5854
6145
  void 0 !== type._currentRenderer &&
@@ -5869,7 +6160,7 @@
5869
6160
  currentActiveSnapshot = newNode;
5870
6161
  task.context = newNode;
5871
6162
  task.keyPath = keyPath;
5872
- renderNodeDestructive(request, task, children$jscomp$1, -1);
6163
+ renderNodeDestructive(request, task, children$jscomp$2, -1);
5873
6164
  var prevSnapshot$jscomp$0 = currentActiveSnapshot;
5874
6165
  if (null === prevSnapshot$jscomp$0)
5875
6166
  throw Error(
@@ -5891,7 +6182,7 @@
5891
6182
  var JSCompiler_inline_result$jscomp$0 = (currentActiveSnapshot =
5892
6183
  prevSnapshot$jscomp$0.parent);
5893
6184
  task.context = JSCompiler_inline_result$jscomp$0;
5894
- task.keyPath = prevKeyPath$jscomp$4;
6185
+ task.keyPath = prevKeyPath$jscomp$5;
5895
6186
  prevSnapshot !== task.context &&
5896
6187
  console.error(
5897
6188
  "Popping the context provider did not return back to the original snapshot. This is a bug in React."
@@ -5905,10 +6196,10 @@
5905
6196
  "A context consumer was rendered with multiple children, or a child that isn't a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it."
5906
6197
  );
5907
6198
  var newChildren = render(context$jscomp$0._currentValue),
5908
- prevKeyPath$jscomp$5 = task.keyPath;
6199
+ prevKeyPath$jscomp$6 = task.keyPath;
5909
6200
  task.keyPath = keyPath;
5910
6201
  renderNodeDestructive(request, task, newChildren, -1);
5911
- task.keyPath = prevKeyPath$jscomp$5;
6202
+ task.keyPath = prevKeyPath$jscomp$6;
5912
6203
  return;
5913
6204
  case REACT_LAZY_TYPE:
5914
6205
  var Component = callLazyInitInDEV(type);
@@ -6040,6 +6331,7 @@
6040
6331
  node = null === node[4] ? null : node[4][3];
6041
6332
  var prevKeyPath = task.keyPath,
6042
6333
  prevContext = task.formatContext,
6334
+ prevRow = task.row,
6043
6335
  previousReplaySet = task.replay,
6044
6336
  parentBoundary = task.blockedBoundary,
6045
6337
  parentHoistableState = task.hoistableState,
@@ -6050,12 +6342,14 @@
6050
6342
  task.formatContext.insertionMode < HTML_MODE
6051
6343
  ? createSuspenseBoundary(
6052
6344
  request,
6345
+ task.row,
6053
6346
  fallbackAbortSet,
6054
6347
  createPreambleState(),
6055
6348
  createPreambleState()
6056
6349
  )
6057
6350
  : createSuspenseBoundary(
6058
6351
  request,
6352
+ task.row,
6059
6353
  fallbackAbortSet,
6060
6354
  null,
6061
6355
  null
@@ -6069,6 +6363,7 @@
6069
6363
  request.resumableState,
6070
6364
  prevContext
6071
6365
  );
6366
+ task.row = null;
6072
6367
  task.replay = { nodes: type, slots: ref, pendingTasks: 1 };
6073
6368
  try {
6074
6369
  renderNode(request, task, content, -1);
@@ -6102,7 +6397,8 @@
6102
6397
  (task.hoistableState = parentHoistableState),
6103
6398
  (task.replay = previousReplaySet),
6104
6399
  (task.keyPath = prevKeyPath),
6105
- (task.formatContext = prevContext);
6400
+ (task.formatContext = prevContext),
6401
+ (task.row = prevRow);
6106
6402
  }
6107
6403
  props = createReplayTask(
6108
6404
  request,
@@ -6120,6 +6416,7 @@
6120
6416
  ),
6121
6417
  task.context,
6122
6418
  task.treeContext,
6419
+ task.row,
6123
6420
  task.componentStack,
6124
6421
  emptyContextObject,
6125
6422
  task.debugTask
@@ -6133,6 +6430,35 @@
6133
6430
  }
6134
6431
  }
6135
6432
  }
6433
+ function validateIterable(
6434
+ task,
6435
+ iterable,
6436
+ childIndex,
6437
+ iterator,
6438
+ iteratorFn
6439
+ ) {
6440
+ if (iterator === iterable) {
6441
+ if (
6442
+ -1 !== childIndex ||
6443
+ null === task.componentStack ||
6444
+ "function" !== typeof task.componentStack.type ||
6445
+ "[object GeneratorFunction]" !==
6446
+ Object.prototype.toString.call(task.componentStack.type) ||
6447
+ "[object Generator]" !== Object.prototype.toString.call(iterator)
6448
+ )
6449
+ didWarnAboutGenerators ||
6450
+ console.error(
6451
+ "Using Iterators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. You can also use an Iterable that can iterate multiple times over the same items."
6452
+ ),
6453
+ (didWarnAboutGenerators = !0);
6454
+ } else
6455
+ iterable.entries !== iteratorFn ||
6456
+ didWarnAboutMaps ||
6457
+ (console.error(
6458
+ "Using Maps as children is not supported. Use an array of keyed ReactElements instead."
6459
+ ),
6460
+ (didWarnAboutMaps = !0));
6461
+ }
6136
6462
  function renderNodeDestructive(request, task, node, childIndex) {
6137
6463
  null !== task.replay && "number" === typeof task.replay.slots
6138
6464
  ? resumeNode(request, task, task.replay.slots, node, childIndex)
@@ -6209,52 +6535,27 @@
6209
6535
  "Portals are not currently supported by the server renderer. Render them conditionally so that they only appear on the client render."
6210
6536
  );
6211
6537
  case REACT_LAZY_TYPE:
6212
- node = callLazyInitInDEV(node);
6538
+ type = callLazyInitInDEV(node);
6213
6539
  if (12 === request.status) throw null;
6214
- renderNodeDestructive(request, task, node, childIndex);
6540
+ renderNodeDestructive(request, task, type, childIndex);
6215
6541
  return;
6216
6542
  }
6217
6543
  if (isArrayImpl(node)) {
6218
6544
  renderChildrenArray(request, task, node, childIndex);
6219
6545
  return;
6220
6546
  }
6221
- null === node || "object" !== typeof node
6222
- ? (key = null)
6223
- : ((type =
6224
- (MAYBE_ITERATOR_SYMBOL && node[MAYBE_ITERATOR_SYMBOL]) ||
6225
- node["@@iterator"]),
6226
- (key = "function" === typeof type ? type : null));
6227
- if (key && (type = key.call(node))) {
6228
- if (type === node) {
6229
- if (
6230
- -1 !== childIndex ||
6231
- null === task.componentStack ||
6232
- "function" !== typeof task.componentStack.type ||
6233
- "[object GeneratorFunction]" !==
6234
- Object.prototype.toString.call(task.componentStack.type) ||
6235
- "[object Generator]" !== Object.prototype.toString.call(type)
6236
- )
6237
- didWarnAboutGenerators ||
6238
- console.error(
6239
- "Using Iterators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. You can also use an Iterable that can iterate multiple times over the same items."
6240
- ),
6241
- (didWarnAboutGenerators = !0);
6242
- } else
6243
- node.entries !== key ||
6244
- didWarnAboutMaps ||
6245
- (console.error(
6246
- "Using Maps as children is not supported. Use an array of keyed ReactElements instead."
6247
- ),
6248
- (didWarnAboutMaps = !0));
6249
- node = type.next();
6250
- if (!node.done) {
6251
- key = [];
6252
- do key.push(node.value), (node = type.next());
6253
- while (!node.done);
6254
- renderChildrenArray(request, task, key, childIndex);
6547
+ if ((key = getIteratorFn(node)))
6548
+ if ((type = key.call(node))) {
6549
+ validateIterable(task, node, childIndex, type, key);
6550
+ node = type.next();
6551
+ if (!node.done) {
6552
+ key = [];
6553
+ do key.push(node.value), (node = type.next());
6554
+ while (!node.done);
6555
+ renderChildrenArray(request, task, key, childIndex);
6556
+ }
6557
+ return;
6255
6558
  }
6256
- return;
6257
- }
6258
6559
  if ("function" === typeof node.then)
6259
6560
  return (
6260
6561
  (task.thenableState = null),
@@ -6313,6 +6614,69 @@
6313
6614
  ));
6314
6615
  }
6315
6616
  }
6617
+ function warnForMissingKey(request, task, child) {
6618
+ if (
6619
+ null !== child &&
6620
+ "object" === typeof child &&
6621
+ (child.$$typeof === REACT_ELEMENT_TYPE ||
6622
+ child.$$typeof === REACT_PORTAL_TYPE) &&
6623
+ child._store &&
6624
+ ((!child._store.validated && null == child.key) ||
6625
+ 2 === child._store.validated)
6626
+ ) {
6627
+ if ("object" !== typeof child._store)
6628
+ throw Error(
6629
+ "React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue."
6630
+ );
6631
+ child._store.validated = 1;
6632
+ var didWarnForKey = request.didWarnForKey;
6633
+ null == didWarnForKey &&
6634
+ (didWarnForKey = request.didWarnForKey = new WeakSet());
6635
+ request = task.componentStack;
6636
+ if (null !== request && !didWarnForKey.has(request)) {
6637
+ didWarnForKey.add(request);
6638
+ var componentName = getComponentNameFromType(child.type);
6639
+ didWarnForKey = child._owner;
6640
+ var parentOwner = request.owner;
6641
+ request = "";
6642
+ if (parentOwner && "undefined" !== typeof parentOwner.type) {
6643
+ var name = getComponentNameFromType(parentOwner.type);
6644
+ name &&
6645
+ (request = "\n\nCheck the render method of `" + name + "`.");
6646
+ }
6647
+ request ||
6648
+ (componentName &&
6649
+ (request =
6650
+ "\n\nCheck the top-level render call using <" +
6651
+ componentName +
6652
+ ">."));
6653
+ componentName = "";
6654
+ null != didWarnForKey &&
6655
+ parentOwner !== didWarnForKey &&
6656
+ ((parentOwner = null),
6657
+ "undefined" !== typeof didWarnForKey.type
6658
+ ? (parentOwner = getComponentNameFromType(didWarnForKey.type))
6659
+ : "string" === typeof didWarnForKey.name &&
6660
+ (parentOwner = didWarnForKey.name),
6661
+ parentOwner &&
6662
+ (componentName =
6663
+ " It was passed a child from " + parentOwner + "."));
6664
+ didWarnForKey = task.componentStack;
6665
+ task.componentStack = {
6666
+ parent: task.componentStack,
6667
+ type: child.type,
6668
+ owner: child._owner,
6669
+ stack: child._debugStack
6670
+ };
6671
+ console.error(
6672
+ 'Each child in a list should have a unique "key" prop.%s%s See https://react.dev/link/warning-keys for more information.',
6673
+ request,
6674
+ componentName
6675
+ );
6676
+ task.componentStack = didWarnForKey;
6677
+ }
6678
+ }
6679
+ }
6316
6680
  function renderChildrenArray(request, task, children, childIndex) {
6317
6681
  var prevKeyPath = task.keyPath,
6318
6682
  previousComponentStack = task.componentStack;
@@ -6406,76 +6770,11 @@
6406
6770
  task.debugTask = previousDebugTask;
6407
6771
  return;
6408
6772
  }
6409
- for (j = 0; j < replayNodes; j++) {
6410
- childIndex = children[j];
6411
- resumeSlots = request;
6412
- node = task;
6413
- error = childIndex;
6414
- if (
6415
- null !== error &&
6416
- "object" === typeof error &&
6417
- (error.$$typeof === REACT_ELEMENT_TYPE ||
6418
- error.$$typeof === REACT_PORTAL_TYPE) &&
6419
- error._store &&
6420
- ((!error._store.validated && null == error.key) ||
6421
- 2 === error._store.validated)
6422
- ) {
6423
- if ("object" !== typeof error._store)
6424
- throw Error(
6425
- "React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue."
6426
- );
6427
- error._store.validated = 1;
6428
- thrownInfo = resumeSlots.didWarnForKey;
6429
- null == thrownInfo &&
6430
- (thrownInfo = resumeSlots.didWarnForKey = new WeakSet());
6431
- resumeSlots = node.componentStack;
6432
- if (null !== resumeSlots && !thrownInfo.has(resumeSlots)) {
6433
- thrownInfo.add(resumeSlots);
6434
- var componentName = getComponentNameFromType(error.type);
6435
- thrownInfo = error._owner;
6436
- var parentOwner = resumeSlots.owner;
6437
- resumeSlots = "";
6438
- if (parentOwner && "undefined" !== typeof parentOwner.type) {
6439
- var name = getComponentNameFromType(parentOwner.type);
6440
- name &&
6441
- (resumeSlots =
6442
- "\n\nCheck the render method of `" + name + "`.");
6443
- }
6444
- resumeSlots ||
6445
- (componentName &&
6446
- (resumeSlots =
6447
- "\n\nCheck the top-level render call using <" +
6448
- componentName +
6449
- ">."));
6450
- componentName = "";
6451
- null != thrownInfo &&
6452
- parentOwner !== thrownInfo &&
6453
- ((parentOwner = null),
6454
- "undefined" !== typeof thrownInfo.type
6455
- ? (parentOwner = getComponentNameFromType(thrownInfo.type))
6456
- : "string" === typeof thrownInfo.name &&
6457
- (parentOwner = thrownInfo.name),
6458
- parentOwner &&
6459
- (componentName =
6460
- " It was passed a child from " + parentOwner + "."));
6461
- thrownInfo = node.componentStack;
6462
- node.componentStack = {
6463
- parent: node.componentStack,
6464
- type: error.type,
6465
- owner: error._owner,
6466
- stack: error._debugStack
6467
- };
6468
- console.error(
6469
- 'Each child in a list should have a unique "key" prop.%s%s See https://react.dev/link/warning-keys for more information.',
6470
- resumeSlots,
6471
- componentName
6472
- );
6473
- node.componentStack = thrownInfo;
6474
- }
6475
- }
6476
- task.treeContext = pushTreeContext(replay, replayNodes, j);
6477
- renderNode(request, task, childIndex, j);
6478
- }
6773
+ for (j = 0; j < replayNodes; j++)
6774
+ (childIndex = children[j]),
6775
+ warnForMissingKey(request, task, childIndex),
6776
+ (task.treeContext = pushTreeContext(replay, replayNodes, j)),
6777
+ renderNode(request, task, childIndex, j);
6479
6778
  task.treeContext = replay;
6480
6779
  task.keyPath = prevKeyPath;
6481
6780
  task.componentStack = previousComponentStack;
@@ -6504,6 +6803,7 @@
6504
6803
  task.formatContext,
6505
6804
  task.context,
6506
6805
  task.treeContext,
6806
+ task.row,
6507
6807
  task.componentStack,
6508
6808
  emptyContextObject,
6509
6809
  task.debugTask
@@ -6535,6 +6835,7 @@
6535
6835
  task.formatContext,
6536
6836
  task.context,
6537
6837
  task.treeContext,
6838
+ task.row,
6538
6839
  task.componentStack,
6539
6840
  emptyContextObject,
6540
6841
  task.debugTask
@@ -6649,9 +6950,11 @@
6649
6950
  throw node;
6650
6951
  }
6651
6952
  function abortTaskSoft(task) {
6652
- var boundary = task.blockedBoundary;
6653
- task = task.blockedSegment;
6654
- null !== task && ((task.status = 3), finishedTask(this, boundary, task));
6953
+ var boundary = task.blockedBoundary,
6954
+ segment = task.blockedSegment;
6955
+ null !== segment &&
6956
+ ((segment.status = ABORTED),
6957
+ finishedTask(this, boundary, task.row, segment));
6655
6958
  }
6656
6959
  function abortRemainingReplayNodes(
6657
6960
  request$jscomp$0,
@@ -6685,6 +6988,7 @@
6685
6988
  wasAborted = aborted,
6686
6989
  resumedBoundary = createSuspenseBoundary(
6687
6990
  request,
6991
+ null,
6688
6992
  new Set(),
6689
6993
  null,
6690
6994
  null
@@ -6729,7 +7033,7 @@
6729
7033
  segment = task.blockedSegment;
6730
7034
  if (null !== segment) {
6731
7035
  if (6 === segment.status) return;
6732
- segment.status = 3;
7036
+ segment.status = ABORTED;
6733
7037
  }
6734
7038
  segment = getThrownInfo(task.componentStack);
6735
7039
  if (null === boundary) {
@@ -6741,36 +7045,49 @@
6741
7045
  return;
6742
7046
  }
6743
7047
  boundary.pendingTasks--;
6744
- 0 === boundary.pendingTasks &&
6745
- 0 < boundary.nodes.length &&
6746
- ((task = logRecoverableError(request, error, segment, null)),
7048
+ if (0 === boundary.pendingTasks && 0 < boundary.nodes.length) {
7049
+ var errorDigest = logRecoverableError(
7050
+ request,
7051
+ error,
7052
+ segment,
7053
+ null
7054
+ );
6747
7055
  abortRemainingReplayNodes(
6748
7056
  request,
6749
7057
  null,
6750
7058
  boundary.nodes,
6751
7059
  boundary.slots,
6752
7060
  error,
6753
- task,
7061
+ errorDigest,
6754
7062
  segment,
6755
7063
  !0
6756
- ));
7064
+ );
7065
+ }
6757
7066
  request.pendingRootTasks--;
6758
7067
  0 === request.pendingRootTasks && completeShell(request);
6759
7068
  }
6760
7069
  } else
6761
- boundary.pendingTasks--,
6762
- boundary.status !== CLIENT_RENDERED &&
6763
- ((boundary.status = CLIENT_RENDERED),
6764
- (task = logRecoverableError(request, error, segment, null)),
6765
- (boundary.status = CLIENT_RENDERED),
6766
- encodeErrorForBoundary(boundary, task, error, segment, !0),
6767
- untrackBoundary(request, boundary),
6768
- boundary.parentFlushed &&
6769
- request.clientRenderedBoundaries.push(boundary)),
7070
+ boundary.status !== CLIENT_RENDERED &&
7071
+ ((boundary.status = CLIENT_RENDERED),
7072
+ (errorDigest = logRecoverableError(request, error, segment, null)),
7073
+ (boundary.status = CLIENT_RENDERED),
7074
+ encodeErrorForBoundary(boundary, errorDigest, error, segment, !0),
7075
+ untrackBoundary(request, boundary),
7076
+ boundary.parentFlushed &&
7077
+ request.clientRenderedBoundaries.push(boundary)),
7078
+ boundary.pendingTasks--,
7079
+ (segment = boundary.row),
7080
+ null !== segment &&
7081
+ 0 === --segment.pendingTasks &&
7082
+ finishSuspenseListRow(request, segment),
6770
7083
  boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
6771
7084
  return abortTask(fallbackTask, request, error);
6772
7085
  }),
6773
7086
  boundary.fallbackAbortableTasks.clear();
7087
+ task = task.row;
7088
+ null !== task &&
7089
+ 0 === --task.pendingTasks &&
7090
+ finishSuspenseListRow(request, task);
6774
7091
  request.allPendingTasks--;
6775
7092
  0 === request.allPendingTasks && completeAll(request);
6776
7093
  }
@@ -6882,7 +7199,11 @@
6882
7199
  : (boundary.byteSize += segmentByteSize);
6883
7200
  }
6884
7201
  }
6885
- function finishedTask(request, boundary, segment) {
7202
+ function finishedTask(request, boundary, row, segment) {
7203
+ null !== row &&
7204
+ (0 === --row.pendingTasks
7205
+ ? finishSuspenseListRow(request, row)
7206
+ : row.together && tryToResolveTogetherRow(request, row));
6886
7207
  request.allPendingTasks--;
6887
7208
  if (null === boundary) {
6888
7209
  if (null !== segment && segment.parentFlushed) {
@@ -6906,23 +7227,33 @@
6906
7227
  boundary.parentFlushed &&
6907
7228
  request.completedBoundaries.push(boundary),
6908
7229
  boundary.status === COMPLETED &&
6909
- (500 < boundary.byteSize ||
7230
+ ((row = boundary.row),
7231
+ null !== row &&
7232
+ hoistHoistables(row.hoistables, boundary.contentState),
7233
+ 500 < boundary.byteSize ||
6910
7234
  (boundary.fallbackAbortableTasks.forEach(
6911
7235
  abortTaskSoft,
6912
7236
  request
6913
7237
  ),
6914
- boundary.fallbackAbortableTasks.clear()),
7238
+ boundary.fallbackAbortableTasks.clear(),
7239
+ null !== row &&
7240
+ 0 === --row.pendingTasks &&
7241
+ finishSuspenseListRow(request, row)),
6915
7242
  0 === request.pendingRootTasks &&
6916
7243
  null === request.trackedPostpones &&
6917
7244
  null !== boundary.contentPreamble &&
6918
7245
  preparePreamble(request)))
6919
- : null !== segment &&
6920
- segment.parentFlushed &&
6921
- segment.status === COMPLETED &&
6922
- (queueCompletedSegment(boundary, segment),
6923
- 1 === boundary.completedSegments.length &&
6924
- boundary.parentFlushed &&
6925
- request.partialBoundaries.push(boundary)));
7246
+ : (null !== segment &&
7247
+ segment.parentFlushed &&
7248
+ segment.status === COMPLETED &&
7249
+ (queueCompletedSegment(boundary, segment),
7250
+ 1 === boundary.completedSegments.length &&
7251
+ boundary.parentFlushed &&
7252
+ request.partialBoundaries.push(boundary)),
7253
+ (boundary = boundary.row),
7254
+ null !== boundary &&
7255
+ boundary.together &&
7256
+ tryToResolveTogetherRow(request, boundary)));
6926
7257
  0 === request.allPendingTasks && completeAll(request);
6927
7258
  }
6928
7259
  function performWork(request$jscomp$2) {
@@ -6975,7 +7306,12 @@
6975
7306
  );
6976
7307
  request.replay.pendingTasks--;
6977
7308
  request.abortSet.delete(request);
6978
- finishedTask(request$jscomp$0, request.blockedBoundary, null);
7309
+ finishedTask(
7310
+ request$jscomp$0,
7311
+ request.blockedBoundary,
7312
+ request.row,
7313
+ null
7314
+ );
6979
7315
  } catch (thrownValue) {
6980
7316
  resetHooksState();
6981
7317
  var x =
@@ -7058,6 +7394,7 @@
7058
7394
  finishedTask(
7059
7395
  request,
7060
7396
  errorDigest.blockedBoundary,
7397
+ errorDigest.row,
7061
7398
  request$jscomp$1
7062
7399
  );
7063
7400
  } catch (thrownValue) {
@@ -7086,40 +7423,49 @@
7086
7423
  errorDigest.abortSet.delete(errorDigest);
7087
7424
  request$jscomp$1.status = 4;
7088
7425
  var boundary$jscomp$0 = errorDigest.blockedBoundary,
7426
+ row = errorDigest.row,
7089
7427
  debugTask = errorDigest.debugTask;
7428
+ null !== row &&
7429
+ 0 === --row.pendingTasks &&
7430
+ finishSuspenseListRow(request, row);
7431
+ request.allPendingTasks--;
7090
7432
  prevTaskInDEV = logRecoverableError(
7091
7433
  request,
7092
7434
  x$jscomp$0,
7093
7435
  errorInfo$jscomp$1,
7094
7436
  debugTask
7095
7437
  );
7096
- null === boundary$jscomp$0
7097
- ? fatalError(
7098
- request,
7099
- x$jscomp$0,
7100
- errorInfo$jscomp$1,
7101
- debugTask
7102
- )
7103
- : (boundary$jscomp$0.pendingTasks--,
7104
- boundary$jscomp$0.status !== CLIENT_RENDERED &&
7105
- ((boundary$jscomp$0.status = CLIENT_RENDERED),
7106
- encodeErrorForBoundary(
7107
- boundary$jscomp$0,
7108
- prevTaskInDEV,
7109
- x$jscomp$0,
7110
- errorInfo$jscomp$1,
7111
- !1
7112
- ),
7113
- untrackBoundary(request, boundary$jscomp$0),
7114
- boundary$jscomp$0.parentFlushed &&
7115
- request.clientRenderedBoundaries.push(
7116
- boundary$jscomp$0
7117
- ),
7118
- 0 === request.pendingRootTasks &&
7119
- null === request.trackedPostpones &&
7120
- null !== boundary$jscomp$0.contentPreamble &&
7121
- preparePreamble(request)));
7122
- request.allPendingTasks--;
7438
+ if (null === boundary$jscomp$0)
7439
+ fatalError(
7440
+ request,
7441
+ x$jscomp$0,
7442
+ errorInfo$jscomp$1,
7443
+ debugTask
7444
+ );
7445
+ else if (
7446
+ (boundary$jscomp$0.pendingTasks--,
7447
+ boundary$jscomp$0.status !== CLIENT_RENDERED)
7448
+ ) {
7449
+ boundary$jscomp$0.status = CLIENT_RENDERED;
7450
+ encodeErrorForBoundary(
7451
+ boundary$jscomp$0,
7452
+ prevTaskInDEV,
7453
+ x$jscomp$0,
7454
+ errorInfo$jscomp$1,
7455
+ !1
7456
+ );
7457
+ untrackBoundary(request, boundary$jscomp$0);
7458
+ var boundaryRow = boundary$jscomp$0.row;
7459
+ null !== boundaryRow &&
7460
+ 0 === --boundaryRow.pendingTasks &&
7461
+ finishSuspenseListRow(request, boundaryRow);
7462
+ boundary$jscomp$0.parentFlushed &&
7463
+ request.clientRenderedBoundaries.push(boundary$jscomp$0);
7464
+ 0 === request.pendingRootTasks &&
7465
+ null === request.trackedPostpones &&
7466
+ null !== boundary$jscomp$0.contentPreamble &&
7467
+ preparePreamble(request);
7468
+ }
7123
7469
  0 === request.allPendingTasks && completeAll(request);
7124
7470
  }
7125
7471
  } finally {
@@ -7271,18 +7617,19 @@
7271
7617
  return flushSubtree(request, destination, segment, hoistableState);
7272
7618
  boundary.parentFlushed = !0;
7273
7619
  if (boundary.status === CLIENT_RENDERED) {
7274
- var errorDigest = boundary.errorDigest,
7275
- errorMessage = boundary.errorMessage,
7620
+ var row = boundary.row;
7621
+ null !== row &&
7622
+ 0 === --row.pendingTasks &&
7623
+ finishSuspenseListRow(request, row);
7624
+ row = boundary.errorDigest;
7625
+ var errorMessage = boundary.errorMessage,
7276
7626
  errorStack = boundary.errorStack;
7277
7627
  boundary = boundary.errorComponentStack;
7278
7628
  writeChunkAndReturn(destination, startClientRenderedSuspenseBoundary);
7279
7629
  writeChunk(destination, clientRenderedSuspenseBoundaryError1);
7280
- errorDigest &&
7630
+ row &&
7281
7631
  (writeChunk(destination, clientRenderedSuspenseBoundaryError1A),
7282
- writeChunk(
7283
- destination,
7284
- stringToChunk(escapeTextForBrowser(errorDigest))
7285
- ),
7632
+ writeChunk(destination, stringToChunk(escapeTextForBrowser(row))),
7286
7633
  writeChunk(
7287
7634
  destination,
7288
7635
  clientRenderedSuspenseBoundaryErrorAttrInterstitial
@@ -7330,12 +7677,7 @@
7330
7677
  boundary.rootSegmentID
7331
7678
  ),
7332
7679
  hoistableState &&
7333
- ((boundary = boundary.fallbackState),
7334
- boundary.styles.forEach(hoistStyleQueueDependency, hoistableState),
7335
- boundary.stylesheets.forEach(
7336
- hoistStylesheetDependency,
7337
- hoistableState
7338
- )),
7680
+ hoistHoistables(hoistableState, boundary.fallbackState),
7339
7681
  flushSubtree(request, destination, segment, hoistableState);
7340
7682
  else if (
7341
7683
  500 < boundary.byteSize &&
@@ -7352,12 +7694,12 @@
7352
7694
  else {
7353
7695
  flushedByteSize += boundary.byteSize;
7354
7696
  hoistableState &&
7355
- ((segment = boundary.contentState),
7356
- segment.styles.forEach(hoistStyleQueueDependency, hoistableState),
7357
- segment.stylesheets.forEach(
7358
- hoistStylesheetDependency,
7359
- hoistableState
7360
- ));
7697
+ hoistHoistables(hoistableState, boundary.contentState);
7698
+ segment = boundary.row;
7699
+ null !== segment &&
7700
+ 500 < boundary.byteSize &&
7701
+ 0 === --segment.pendingTasks &&
7702
+ finishSuspenseListRow(request, segment);
7361
7703
  writeChunkAndReturn(destination, startCompletedSuspenseBoundary);
7362
7704
  segment = boundary.completedSegments;
7363
7705
  if (1 !== segment.length)
@@ -7397,6 +7739,11 @@
7397
7739
  completedSegments[i]
7398
7740
  );
7399
7741
  completedSegments.length = 0;
7742
+ completedSegments = boundary.row;
7743
+ null !== completedSegments &&
7744
+ 500 < boundary.byteSize &&
7745
+ 0 === --completedSegments.pendingTasks &&
7746
+ finishSuspenseListRow(request, completedSegments);
7400
7747
  writeHoistablesForBoundary(
7401
7748
  destination,
7402
7749
  boundary.contentState,
@@ -7799,6 +8146,17 @@
7799
8146
  break a;
7800
8147
  }
7801
8148
  completedSegments.splice(0, JSCompiler_inline_result);
8149
+ var row = boundary$jscomp$0.row;
8150
+ null !== row &&
8151
+ row.together &&
8152
+ 1 === boundary$jscomp$0.pendingTasks &&
8153
+ (1 === row.pendingTasks
8154
+ ? unblockSuspenseListRow(
8155
+ clientRenderedBoundaries,
8156
+ row,
8157
+ row.hoistables
8158
+ )
8159
+ : row.pendingTasks--);
7802
8160
  JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
7803
8161
  boundary,
7804
8162
  boundary$jscomp$0.contentState,
@@ -7911,11 +8269,11 @@
7911
8269
  }
7912
8270
  function ensureCorrectIsomorphicReactVersion() {
7913
8271
  var isomorphicReactPackageVersion = React.version;
7914
- if ("19.2.0-canary-462d08f9-20250517" !== isomorphicReactPackageVersion)
8272
+ if ("19.2.0-canary-23884812-20250520" !== isomorphicReactPackageVersion)
7915
8273
  throw Error(
7916
8274
  'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
7917
8275
  (isomorphicReactPackageVersion +
7918
- "\n - react-dom: 19.2.0-canary-462d08f9-20250517\nLearn more: https://react.dev/warnings/version-mismatch")
8276
+ "\n - react-dom: 19.2.0-canary-23884812-20250520\nLearn more: https://react.dev/warnings/version-mismatch")
7919
8277
  );
7920
8278
  }
7921
8279
  var React = require("react"),
@@ -9447,6 +9805,7 @@
9447
9805
  PENDING = 0,
9448
9806
  COMPLETED = 1,
9449
9807
  FLUSHED = 2,
9808
+ ABORTED = 3,
9450
9809
  POSTPONED = 5,
9451
9810
  CLOSED = 14,
9452
9811
  currentRequest = null,
@@ -9601,5 +9960,5 @@
9601
9960
  startWork(request);
9602
9961
  });
9603
9962
  };
9604
- exports.version = "19.2.0-canary-462d08f9-20250517";
9963
+ exports.version = "19.2.0-canary-23884812-20250520";
9605
9964
  })();