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)
@@ -3696,6 +3704,10 @@
3696
3704
  function hoistStylesheetDependency(stylesheet) {
3697
3705
  this.stylesheets.add(stylesheet);
3698
3706
  }
3707
+ function hoistHoistables(parentState, childState) {
3708
+ childState.styles.forEach(hoistStyleQueueDependency, parentState);
3709
+ childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
3710
+ }
3699
3711
  function getComponentNameFromType(type) {
3700
3712
  if (null == type) return null;
3701
3713
  if ("function" === typeof type)
@@ -4588,6 +4600,7 @@
4588
4600
  null,
4589
4601
  emptyTreeContext,
4590
4602
  null,
4603
+ null,
4591
4604
  emptyContextObject,
4592
4605
  null
4593
4606
  );
@@ -4651,15 +4664,17 @@
4651
4664
  }
4652
4665
  function createSuspenseBoundary(
4653
4666
  request,
4667
+ row,
4654
4668
  fallbackAbortableTasks,
4655
4669
  contentPreamble,
4656
4670
  fallbackPreamble
4657
4671
  ) {
4658
- return {
4672
+ fallbackAbortableTasks = {
4659
4673
  status: PENDING,
4660
4674
  rootSegmentID: -1,
4661
4675
  parentFlushed: !1,
4662
4676
  pendingTasks: 0,
4677
+ row: row,
4663
4678
  completedSegments: [],
4664
4679
  byteSize: 0,
4665
4680
  fallbackAbortableTasks: fallbackAbortableTasks,
@@ -4674,6 +4689,17 @@
4674
4689
  errorStack: null,
4675
4690
  errorComponentStack: null
4676
4691
  };
4692
+ null !== row &&
4693
+ (row.pendingTasks++,
4694
+ (contentPreamble = row.boundaries),
4695
+ null !== contentPreamble &&
4696
+ (request.allPendingTasks++,
4697
+ fallbackAbortableTasks.pendingTasks++,
4698
+ contentPreamble.push(fallbackAbortableTasks)),
4699
+ (request = row.inheritedHoistables),
4700
+ null !== request &&
4701
+ hoistHoistables(fallbackAbortableTasks.contentState, request));
4702
+ return fallbackAbortableTasks;
4677
4703
  }
4678
4704
  function createRenderTask(
4679
4705
  request,
@@ -4689,6 +4715,7 @@
4689
4715
  formatContext,
4690
4716
  context,
4691
4717
  treeContext,
4718
+ row,
4692
4719
  componentStack,
4693
4720
  legacyContext,
4694
4721
  debugTask
@@ -4697,6 +4724,7 @@
4697
4724
  null === blockedBoundary
4698
4725
  ? request.pendingRootTasks++
4699
4726
  : blockedBoundary.pendingTasks++;
4727
+ null !== row && row.pendingTasks++;
4700
4728
  var task = {
4701
4729
  replay: null,
4702
4730
  node: node,
@@ -4713,6 +4741,7 @@
4713
4741
  formatContext: formatContext,
4714
4742
  context: context,
4715
4743
  treeContext: treeContext,
4744
+ row: row,
4716
4745
  componentStack: componentStack,
4717
4746
  thenableState: thenableState
4718
4747
  };
@@ -4733,6 +4762,7 @@
4733
4762
  formatContext,
4734
4763
  context,
4735
4764
  treeContext,
4765
+ row,
4736
4766
  componentStack,
4737
4767
  legacyContext,
4738
4768
  debugTask
@@ -4741,6 +4771,7 @@
4741
4771
  null === blockedBoundary
4742
4772
  ? request.pendingRootTasks++
4743
4773
  : blockedBoundary.pendingTasks++;
4774
+ null !== row && row.pendingTasks++;
4744
4775
  replay.pendingTasks++;
4745
4776
  var task = {
4746
4777
  replay: replay,
@@ -4758,6 +4789,7 @@
4758
4789
  formatContext: formatContext,
4759
4790
  context: context,
4760
4791
  treeContext: treeContext,
4792
+ row: row,
4761
4793
  componentStack: componentStack,
4762
4794
  thenableState: thenableState
4763
4795
  };
@@ -4944,6 +4976,184 @@
4944
4976
  closeWithError(request.destination, error))
4945
4977
  : ((request.status = 13), (request.fatalError = error));
4946
4978
  }
4979
+ function finishSuspenseListRow(request, row) {
4980
+ unblockSuspenseListRow(request, row.next, row.hoistables);
4981
+ }
4982
+ function unblockSuspenseListRow(
4983
+ request,
4984
+ unblockedRow,
4985
+ inheritedHoistables
4986
+ ) {
4987
+ for (; null !== unblockedRow; ) {
4988
+ null !== inheritedHoistables &&
4989
+ (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
4990
+ (unblockedRow.inheritedHoistables = inheritedHoistables));
4991
+ var unblockedBoundaries = unblockedRow.boundaries;
4992
+ if (null !== unblockedBoundaries) {
4993
+ unblockedRow.boundaries = null;
4994
+ for (var i = 0; i < unblockedBoundaries.length; i++) {
4995
+ var unblockedBoundary = unblockedBoundaries[i];
4996
+ null !== inheritedHoistables &&
4997
+ hoistHoistables(
4998
+ unblockedBoundary.contentState,
4999
+ inheritedHoistables
5000
+ );
5001
+ finishedTask(request, unblockedBoundary, null, null);
5002
+ }
5003
+ }
5004
+ unblockedRow.pendingTasks--;
5005
+ if (0 < unblockedRow.pendingTasks) break;
5006
+ inheritedHoistables = unblockedRow.hoistables;
5007
+ unblockedRow = unblockedRow.next;
5008
+ }
5009
+ }
5010
+ function tryToResolveTogetherRow(request, togetherRow) {
5011
+ var boundaries = togetherRow.boundaries;
5012
+ if (
5013
+ null !== boundaries &&
5014
+ togetherRow.pendingTasks === boundaries.length
5015
+ ) {
5016
+ for (
5017
+ var allCompleteAndInlinable = !0, i = 0;
5018
+ i < boundaries.length;
5019
+ i++
5020
+ ) {
5021
+ var rowBoundary = boundaries[i];
5022
+ if (
5023
+ 1 !== rowBoundary.pendingTasks ||
5024
+ rowBoundary.parentFlushed ||
5025
+ 500 < rowBoundary.byteSize
5026
+ ) {
5027
+ allCompleteAndInlinable = !1;
5028
+ break;
5029
+ }
5030
+ }
5031
+ allCompleteAndInlinable &&
5032
+ unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
5033
+ }
5034
+ }
5035
+ function createSuspenseListRow(previousRow) {
5036
+ var newRow = {
5037
+ pendingTasks: 1,
5038
+ boundaries: null,
5039
+ hoistables: createHoistableState(),
5040
+ inheritedHoistables: null,
5041
+ together: !1,
5042
+ next: null
5043
+ };
5044
+ null !== previousRow &&
5045
+ 0 < previousRow.pendingTasks &&
5046
+ (newRow.pendingTasks++,
5047
+ (newRow.boundaries = []),
5048
+ (previousRow.next = newRow));
5049
+ return newRow;
5050
+ }
5051
+ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
5052
+ var prevKeyPath = task.keyPath,
5053
+ prevTreeContext = task.treeContext,
5054
+ prevRow = task.row,
5055
+ previousComponentStack = task.componentStack;
5056
+ var previousDebugTask = task.debugTask;
5057
+ pushServerComponentStack(task, task.node.props.children._debugInfo);
5058
+ task.keyPath = keyPath;
5059
+ keyPath = rows.length;
5060
+ var previousSuspenseListRow = null;
5061
+ if (null !== task.replay) {
5062
+ var resumeSlots = task.replay.slots;
5063
+ if (null !== resumeSlots && "object" === typeof resumeSlots)
5064
+ for (var n = 0; n < keyPath; n++) {
5065
+ var i = "backwards" !== revealOrder ? n : keyPath - 1 - n,
5066
+ node = rows[i];
5067
+ task.row = previousSuspenseListRow = createSuspenseListRow(
5068
+ previousSuspenseListRow
5069
+ );
5070
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
5071
+ var resumeSegmentID = resumeSlots[i];
5072
+ "number" === typeof resumeSegmentID
5073
+ ? (resumeNode(request, task, resumeSegmentID, node, i),
5074
+ delete resumeSlots[i])
5075
+ : renderNode(request, task, node, i);
5076
+ 0 === --previousSuspenseListRow.pendingTasks &&
5077
+ finishSuspenseListRow(request, previousSuspenseListRow);
5078
+ }
5079
+ else
5080
+ for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
5081
+ (n =
5082
+ "backwards" !== revealOrder
5083
+ ? resumeSlots
5084
+ : keyPath - 1 - resumeSlots),
5085
+ (i = rows[n]),
5086
+ warnForMissingKey(request, task, i),
5087
+ (task.row = previousSuspenseListRow =
5088
+ createSuspenseListRow(previousSuspenseListRow)),
5089
+ (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
5090
+ renderNode(request, task, i, n),
5091
+ 0 === --previousSuspenseListRow.pendingTasks &&
5092
+ finishSuspenseListRow(request, previousSuspenseListRow);
5093
+ } else if ("backwards" !== revealOrder)
5094
+ for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
5095
+ (resumeSlots = rows[revealOrder]),
5096
+ warnForMissingKey(request, task, resumeSlots),
5097
+ (task.row = previousSuspenseListRow =
5098
+ createSuspenseListRow(previousSuspenseListRow)),
5099
+ (task.treeContext = pushTreeContext(
5100
+ prevTreeContext,
5101
+ keyPath,
5102
+ revealOrder
5103
+ )),
5104
+ renderNode(request, task, resumeSlots, revealOrder),
5105
+ 0 === --previousSuspenseListRow.pendingTasks &&
5106
+ finishSuspenseListRow(request, previousSuspenseListRow);
5107
+ else {
5108
+ revealOrder = task.blockedSegment;
5109
+ resumeSlots = revealOrder.children.length;
5110
+ n = revealOrder.chunks.length;
5111
+ for (i = keyPath - 1; 0 <= i; i--) {
5112
+ node = rows[i];
5113
+ task.row = previousSuspenseListRow = createSuspenseListRow(
5114
+ previousSuspenseListRow
5115
+ );
5116
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
5117
+ resumeSegmentID = createPendingSegment(
5118
+ request,
5119
+ n,
5120
+ null,
5121
+ task.formatContext,
5122
+ 0 === i ? revealOrder.lastPushedText : !0,
5123
+ !0
5124
+ );
5125
+ revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
5126
+ task.blockedSegment = resumeSegmentID;
5127
+ warnForMissingKey(request, task, node);
5128
+ try {
5129
+ renderNode(request, task, node, i),
5130
+ resumeSegmentID.lastPushedText &&
5131
+ resumeSegmentID.textEmbedded &&
5132
+ resumeSegmentID.chunks.push(textSeparator),
5133
+ (resumeSegmentID.status = COMPLETED),
5134
+ finishedSegment(request, task.blockedBoundary, resumeSegmentID),
5135
+ 0 === --previousSuspenseListRow.pendingTasks &&
5136
+ finishSuspenseListRow(request, previousSuspenseListRow);
5137
+ } catch (thrownValue) {
5138
+ throw (
5139
+ ((resumeSegmentID.status = 12 === request.status ? ABORTED : 4),
5140
+ thrownValue)
5141
+ );
5142
+ }
5143
+ }
5144
+ task.blockedSegment = revealOrder;
5145
+ revealOrder.lastPushedText = !1;
5146
+ }
5147
+ null !== prevRow &&
5148
+ null !== previousSuspenseListRow &&
5149
+ 0 < previousSuspenseListRow.pendingTasks &&
5150
+ (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
5151
+ task.treeContext = prevTreeContext;
5152
+ task.row = prevRow;
5153
+ task.keyPath = prevKeyPath;
5154
+ task.componentStack = previousComponentStack;
5155
+ task.debugTask = previousDebugTask;
5156
+ }
4947
5157
  function renderWithHooks(
4948
5158
  request,
4949
5159
  task,
@@ -5485,7 +5695,7 @@
5485
5695
  );
5486
5696
  segment.lastPushedText = !1;
5487
5697
  var _prevContext2 = task.formatContext,
5488
- _prevKeyPath2 = task.keyPath;
5698
+ _prevKeyPath3 = task.keyPath;
5489
5699
  task.keyPath = keyPath;
5490
5700
  if (
5491
5701
  (task.formatContext = getChildFormatContext(
@@ -5517,6 +5727,7 @@
5517
5727
  task.formatContext,
5518
5728
  task.context,
5519
5729
  task.treeContext,
5730
+ task.row,
5520
5731
  task.componentStack,
5521
5732
  emptyContextObject,
5522
5733
  task.debugTask
@@ -5525,7 +5736,7 @@
5525
5736
  request.pingedTasks.push(preambleTask);
5526
5737
  } else renderNode(request, task, _children, -1);
5527
5738
  task.formatContext = _prevContext2;
5528
- task.keyPath = _prevKeyPath2;
5739
+ task.keyPath = _prevKeyPath3;
5529
5740
  a: {
5530
5741
  var target = segment.chunks,
5531
5742
  resumableState = request.resumableState;
@@ -5591,19 +5802,79 @@
5591
5802
  } else if ("hidden" !== props.mode) {
5592
5803
  segment$jscomp$0.chunks.push(startActivityBoundary);
5593
5804
  segment$jscomp$0.lastPushedText = !1;
5594
- var _prevKeyPath3 = task.keyPath;
5805
+ var _prevKeyPath4 = task.keyPath;
5595
5806
  task.keyPath = keyPath;
5596
5807
  renderNode(request, task, props.children, -1);
5597
- task.keyPath = _prevKeyPath3;
5808
+ task.keyPath = _prevKeyPath4;
5598
5809
  segment$jscomp$0.chunks.push(endActivityBoundary);
5599
5810
  segment$jscomp$0.lastPushedText = !1;
5600
5811
  }
5601
5812
  return;
5602
5813
  case REACT_SUSPENSE_LIST_TYPE:
5603
- var _prevKeyPath4 = task.keyPath;
5604
- task.keyPath = keyPath;
5605
- renderNodeDestructive(request, task, props.children, -1);
5606
- task.keyPath = _prevKeyPath4;
5814
+ a: {
5815
+ var children$jscomp$0 = props.children,
5816
+ revealOrder = props.revealOrder;
5817
+ if ("forwards" === revealOrder || "backwards" === revealOrder) {
5818
+ if (isArrayImpl(children$jscomp$0)) {
5819
+ renderSuspenseListRows(
5820
+ request,
5821
+ task,
5822
+ keyPath,
5823
+ children$jscomp$0,
5824
+ revealOrder
5825
+ );
5826
+ break a;
5827
+ }
5828
+ var iteratorFn = getIteratorFn(children$jscomp$0);
5829
+ if (iteratorFn) {
5830
+ var iterator = iteratorFn.call(children$jscomp$0);
5831
+ if (iterator) {
5832
+ validateIterable(
5833
+ task,
5834
+ children$jscomp$0,
5835
+ -1,
5836
+ iterator,
5837
+ iteratorFn
5838
+ );
5839
+ var step = iterator.next();
5840
+ if (!step.done) {
5841
+ var rows = [];
5842
+ do rows.push(step.value), (step = iterator.next());
5843
+ while (!step.done);
5844
+ renderSuspenseListRows(
5845
+ request,
5846
+ task,
5847
+ keyPath,
5848
+ children$jscomp$0,
5849
+ revealOrder
5850
+ );
5851
+ }
5852
+ break a;
5853
+ }
5854
+ }
5855
+ }
5856
+ if ("together" === revealOrder) {
5857
+ var _prevKeyPath2 = task.keyPath,
5858
+ prevRow = task.row,
5859
+ newRow = (task.row = createSuspenseListRow(null));
5860
+ newRow.boundaries = [];
5861
+ newRow.together = !0;
5862
+ task.keyPath = keyPath;
5863
+ renderNodeDestructive(request, task, children$jscomp$0, -1);
5864
+ 0 === --newRow.pendingTasks &&
5865
+ finishSuspenseListRow(request, newRow);
5866
+ task.keyPath = _prevKeyPath2;
5867
+ task.row = prevRow;
5868
+ null !== prevRow &&
5869
+ 0 < newRow.pendingTasks &&
5870
+ (prevRow.pendingTasks++, (newRow.next = prevRow));
5871
+ } else {
5872
+ var prevKeyPath$jscomp$3 = task.keyPath;
5873
+ task.keyPath = keyPath;
5874
+ renderNodeDestructive(request, task, children$jscomp$0, -1);
5875
+ task.keyPath = prevKeyPath$jscomp$3;
5876
+ }
5877
+ }
5607
5878
  return;
5608
5879
  case REACT_VIEW_TRANSITION_TYPE:
5609
5880
  case REACT_SCOPE_TYPE:
@@ -5613,22 +5884,26 @@
5613
5884
  case REACT_SUSPENSE_TYPE:
5614
5885
  a: if (null !== task.replay) {
5615
5886
  var _prevKeyPath = task.keyPath,
5616
- _prevContext = task.formatContext;
5887
+ _prevContext = task.formatContext,
5888
+ _prevRow = task.row;
5617
5889
  task.keyPath = keyPath;
5618
5890
  task.formatContext = getSuspenseContentFormatContext(
5619
5891
  request.resumableState,
5620
5892
  _prevContext
5621
5893
  );
5894
+ task.row = null;
5622
5895
  var _content = props.children;
5623
5896
  try {
5624
5897
  renderNode(request, task, _content, -1);
5625
5898
  } finally {
5626
5899
  (task.keyPath = _prevKeyPath),
5627
- (task.formatContext = _prevContext);
5900
+ (task.formatContext = _prevContext),
5901
+ (task.row = _prevRow);
5628
5902
  }
5629
5903
  } else {
5630
- var prevKeyPath$jscomp$3 = task.keyPath,
5904
+ var prevKeyPath$jscomp$4 = task.keyPath,
5631
5905
  prevContext$jscomp$0 = task.formatContext,
5906
+ prevRow$jscomp$0 = task.row,
5632
5907
  parentBoundary = task.blockedBoundary,
5633
5908
  parentPreamble = task.blockedPreamble,
5634
5909
  parentHoistableState = task.hoistableState,
@@ -5640,12 +5915,14 @@
5640
5915
  task.formatContext.insertionMode < HTML_MODE
5641
5916
  ? createSuspenseBoundary(
5642
5917
  request,
5918
+ task.row,
5643
5919
  fallbackAbortSet,
5644
5920
  createPreambleState(),
5645
5921
  createPreambleState()
5646
5922
  )
5647
5923
  : createSuspenseBoundary(
5648
5924
  request,
5925
+ task.row,
5649
5926
  fallbackAbortSet,
5650
5927
  null,
5651
5928
  null
@@ -5705,13 +5982,14 @@
5705
5982
  finishedSegment(request, parentBoundary, boundarySegment);
5706
5983
  } catch (thrownValue) {
5707
5984
  throw (
5708
- ((boundarySegment.status = 12 === request.status ? 3 : 4),
5985
+ ((boundarySegment.status =
5986
+ 12 === request.status ? ABORTED : 4),
5709
5987
  thrownValue)
5710
5988
  );
5711
5989
  } finally {
5712
5990
  (task.blockedSegment = parentSegment),
5713
5991
  (task.blockedPreamble = parentPreamble),
5714
- (task.keyPath = prevKeyPath$jscomp$3),
5992
+ (task.keyPath = prevKeyPath$jscomp$4),
5715
5993
  (task.formatContext = prevContext$jscomp$0);
5716
5994
  }
5717
5995
  var suspendedPrimaryTask = createRenderTask(
@@ -5731,6 +6009,7 @@
5731
6009
  ),
5732
6010
  task.context,
5733
6011
  task.treeContext,
6012
+ null,
5734
6013
  task.componentStack,
5735
6014
  emptyContextObject,
5736
6015
  task.debugTask
@@ -5747,6 +6026,7 @@
5747
6026
  request.resumableState,
5748
6027
  prevContext$jscomp$0
5749
6028
  );
6029
+ task.row = null;
5750
6030
  contentRootSegment.status = 6;
5751
6031
  try {
5752
6032
  if (
@@ -5758,19 +6038,28 @@
5758
6038
  finishedSegment(request, newBoundary, contentRootSegment),
5759
6039
  queueCompletedSegment(newBoundary, contentRootSegment),
5760
6040
  0 === newBoundary.pendingTasks &&
5761
- newBoundary.status === PENDING &&
5762
- ((newBoundary.status = COMPLETED),
5763
- !(500 < newBoundary.byteSize)))
6041
+ newBoundary.status === PENDING)
5764
6042
  ) {
5765
- 0 === request.pendingRootTasks &&
5766
- task.blockedPreamble &&
5767
- preparePreamble(request);
5768
- break a;
5769
- }
6043
+ if (
6044
+ ((newBoundary.status = COMPLETED),
6045
+ !(500 < newBoundary.byteSize))
6046
+ ) {
6047
+ null !== prevRow$jscomp$0 &&
6048
+ 0 === --prevRow$jscomp$0.pendingTasks &&
6049
+ finishSuspenseListRow(request, prevRow$jscomp$0);
6050
+ 0 === request.pendingRootTasks &&
6051
+ task.blockedPreamble &&
6052
+ preparePreamble(request);
6053
+ break a;
6054
+ }
6055
+ } else
6056
+ null !== prevRow$jscomp$0 &&
6057
+ prevRow$jscomp$0.together &&
6058
+ tryToResolveTogetherRow(request, prevRow$jscomp$0);
5770
6059
  } catch (thrownValue$2) {
5771
6060
  newBoundary.status = CLIENT_RENDERED;
5772
6061
  if (12 === request.status) {
5773
- contentRootSegment.status = 3;
6062
+ contentRootSegment.status = ABORTED;
5774
6063
  var error = request.fatalError;
5775
6064
  } else
5776
6065
  (contentRootSegment.status = 4), (error = thrownValue$2);
@@ -5794,8 +6083,9 @@
5794
6083
  (task.blockedPreamble = parentPreamble),
5795
6084
  (task.hoistableState = parentHoistableState),
5796
6085
  (task.blockedSegment = parentSegment),
5797
- (task.keyPath = prevKeyPath$jscomp$3),
5798
- (task.formatContext = prevContext$jscomp$0);
6086
+ (task.keyPath = prevKeyPath$jscomp$4),
6087
+ (task.formatContext = prevContext$jscomp$0),
6088
+ (task.row = prevRow$jscomp$0);
5799
6089
  }
5800
6090
  var suspendedFallbackTask = createRenderTask(
5801
6091
  request,
@@ -5814,6 +6104,7 @@
5814
6104
  ),
5815
6105
  task.context,
5816
6106
  task.treeContext,
6107
+ task.row,
5817
6108
  task.componentStack,
5818
6109
  emptyContextObject,
5819
6110
  task.debugTask
@@ -5832,7 +6123,7 @@
5832
6123
  for (var key in props)
5833
6124
  "ref" !== key && (propsWithoutRef[key] = props[key]);
5834
6125
  } else propsWithoutRef = props;
5835
- var children$jscomp$0 = renderWithHooks(
6126
+ var children$jscomp$1 = renderWithHooks(
5836
6127
  request,
5837
6128
  task,
5838
6129
  keyPath,
@@ -5844,7 +6135,7 @@
5844
6135
  request,
5845
6136
  task,
5846
6137
  keyPath,
5847
- children$jscomp$0,
6138
+ children$jscomp$1,
5848
6139
  0 !== localIdCounter,
5849
6140
  actionStateCounter,
5850
6141
  actionStateMatchingIndex
@@ -5856,9 +6147,9 @@
5856
6147
  case REACT_PROVIDER_TYPE:
5857
6148
  case REACT_CONTEXT_TYPE:
5858
6149
  var value$jscomp$0 = props.value,
5859
- children$jscomp$1 = props.children;
6150
+ children$jscomp$2 = props.children;
5860
6151
  var prevSnapshot = task.context;
5861
- var prevKeyPath$jscomp$4 = task.keyPath;
6152
+ var prevKeyPath$jscomp$5 = task.keyPath;
5862
6153
  var prevValue = type._currentValue;
5863
6154
  type._currentValue = value$jscomp$0;
5864
6155
  void 0 !== type._currentRenderer &&
@@ -5879,7 +6170,7 @@
5879
6170
  currentActiveSnapshot = newNode;
5880
6171
  task.context = newNode;
5881
6172
  task.keyPath = keyPath;
5882
- renderNodeDestructive(request, task, children$jscomp$1, -1);
6173
+ renderNodeDestructive(request, task, children$jscomp$2, -1);
5883
6174
  var prevSnapshot$jscomp$0 = currentActiveSnapshot;
5884
6175
  if (null === prevSnapshot$jscomp$0)
5885
6176
  throw Error(
@@ -5901,7 +6192,7 @@
5901
6192
  var JSCompiler_inline_result$jscomp$0 = (currentActiveSnapshot =
5902
6193
  prevSnapshot$jscomp$0.parent);
5903
6194
  task.context = JSCompiler_inline_result$jscomp$0;
5904
- task.keyPath = prevKeyPath$jscomp$4;
6195
+ task.keyPath = prevKeyPath$jscomp$5;
5905
6196
  prevSnapshot !== task.context &&
5906
6197
  console.error(
5907
6198
  "Popping the context provider did not return back to the original snapshot. This is a bug in React."
@@ -5915,10 +6206,10 @@
5915
6206
  "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."
5916
6207
  );
5917
6208
  var newChildren = render(context$jscomp$0._currentValue),
5918
- prevKeyPath$jscomp$5 = task.keyPath;
6209
+ prevKeyPath$jscomp$6 = task.keyPath;
5919
6210
  task.keyPath = keyPath;
5920
6211
  renderNodeDestructive(request, task, newChildren, -1);
5921
- task.keyPath = prevKeyPath$jscomp$5;
6212
+ task.keyPath = prevKeyPath$jscomp$6;
5922
6213
  return;
5923
6214
  case REACT_LAZY_TYPE:
5924
6215
  var Component = callLazyInitInDEV(type);
@@ -6050,6 +6341,7 @@
6050
6341
  node = null === node[4] ? null : node[4][3];
6051
6342
  var prevKeyPath = task.keyPath,
6052
6343
  prevContext = task.formatContext,
6344
+ prevRow = task.row,
6053
6345
  previousReplaySet = task.replay,
6054
6346
  parentBoundary = task.blockedBoundary,
6055
6347
  parentHoistableState = task.hoistableState,
@@ -6060,12 +6352,14 @@
6060
6352
  task.formatContext.insertionMode < HTML_MODE
6061
6353
  ? createSuspenseBoundary(
6062
6354
  request,
6355
+ task.row,
6063
6356
  fallbackAbortSet,
6064
6357
  createPreambleState(),
6065
6358
  createPreambleState()
6066
6359
  )
6067
6360
  : createSuspenseBoundary(
6068
6361
  request,
6362
+ task.row,
6069
6363
  fallbackAbortSet,
6070
6364
  null,
6071
6365
  null
@@ -6079,6 +6373,7 @@
6079
6373
  request.resumableState,
6080
6374
  prevContext
6081
6375
  );
6376
+ task.row = null;
6082
6377
  task.replay = { nodes: type, slots: ref, pendingTasks: 1 };
6083
6378
  try {
6084
6379
  renderNode(request, task, content, -1);
@@ -6112,7 +6407,8 @@
6112
6407
  (task.hoistableState = parentHoistableState),
6113
6408
  (task.replay = previousReplaySet),
6114
6409
  (task.keyPath = prevKeyPath),
6115
- (task.formatContext = prevContext);
6410
+ (task.formatContext = prevContext),
6411
+ (task.row = prevRow);
6116
6412
  }
6117
6413
  props = createReplayTask(
6118
6414
  request,
@@ -6130,6 +6426,7 @@
6130
6426
  ),
6131
6427
  task.context,
6132
6428
  task.treeContext,
6429
+ task.row,
6133
6430
  task.componentStack,
6134
6431
  emptyContextObject,
6135
6432
  task.debugTask
@@ -6143,6 +6440,35 @@
6143
6440
  }
6144
6441
  }
6145
6442
  }
6443
+ function validateIterable(
6444
+ task,
6445
+ iterable,
6446
+ childIndex,
6447
+ iterator,
6448
+ iteratorFn
6449
+ ) {
6450
+ if (iterator === iterable) {
6451
+ if (
6452
+ -1 !== childIndex ||
6453
+ null === task.componentStack ||
6454
+ "function" !== typeof task.componentStack.type ||
6455
+ "[object GeneratorFunction]" !==
6456
+ Object.prototype.toString.call(task.componentStack.type) ||
6457
+ "[object Generator]" !== Object.prototype.toString.call(iterator)
6458
+ )
6459
+ didWarnAboutGenerators ||
6460
+ console.error(
6461
+ "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."
6462
+ ),
6463
+ (didWarnAboutGenerators = !0);
6464
+ } else
6465
+ iterable.entries !== iteratorFn ||
6466
+ didWarnAboutMaps ||
6467
+ (console.error(
6468
+ "Using Maps as children is not supported. Use an array of keyed ReactElements instead."
6469
+ ),
6470
+ (didWarnAboutMaps = !0));
6471
+ }
6146
6472
  function renderNodeDestructive(request, task, node, childIndex) {
6147
6473
  null !== task.replay && "number" === typeof task.replay.slots
6148
6474
  ? resumeNode(request, task, task.replay.slots, node, childIndex)
@@ -6219,52 +6545,27 @@
6219
6545
  "Portals are not currently supported by the server renderer. Render them conditionally so that they only appear on the client render."
6220
6546
  );
6221
6547
  case REACT_LAZY_TYPE:
6222
- node = callLazyInitInDEV(node);
6548
+ type = callLazyInitInDEV(node);
6223
6549
  if (12 === request.status) throw null;
6224
- renderNodeDestructive(request, task, node, childIndex);
6550
+ renderNodeDestructive(request, task, type, childIndex);
6225
6551
  return;
6226
6552
  }
6227
6553
  if (isArrayImpl(node)) {
6228
6554
  renderChildrenArray(request, task, node, childIndex);
6229
6555
  return;
6230
6556
  }
6231
- null === node || "object" !== typeof node
6232
- ? (key = null)
6233
- : ((type =
6234
- (MAYBE_ITERATOR_SYMBOL && node[MAYBE_ITERATOR_SYMBOL]) ||
6235
- node["@@iterator"]),
6236
- (key = "function" === typeof type ? type : null));
6237
- if (key && (type = key.call(node))) {
6238
- if (type === node) {
6239
- if (
6240
- -1 !== childIndex ||
6241
- null === task.componentStack ||
6242
- "function" !== typeof task.componentStack.type ||
6243
- "[object GeneratorFunction]" !==
6244
- Object.prototype.toString.call(task.componentStack.type) ||
6245
- "[object Generator]" !== Object.prototype.toString.call(type)
6246
- )
6247
- didWarnAboutGenerators ||
6248
- console.error(
6249
- "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."
6250
- ),
6251
- (didWarnAboutGenerators = !0);
6252
- } else
6253
- node.entries !== key ||
6254
- didWarnAboutMaps ||
6255
- (console.error(
6256
- "Using Maps as children is not supported. Use an array of keyed ReactElements instead."
6257
- ),
6258
- (didWarnAboutMaps = !0));
6259
- node = type.next();
6260
- if (!node.done) {
6261
- key = [];
6262
- do key.push(node.value), (node = type.next());
6263
- while (!node.done);
6264
- renderChildrenArray(request, task, key, childIndex);
6557
+ if ((key = getIteratorFn(node)))
6558
+ if ((type = key.call(node))) {
6559
+ validateIterable(task, node, childIndex, type, key);
6560
+ node = type.next();
6561
+ if (!node.done) {
6562
+ key = [];
6563
+ do key.push(node.value), (node = type.next());
6564
+ while (!node.done);
6565
+ renderChildrenArray(request, task, key, childIndex);
6566
+ }
6567
+ return;
6265
6568
  }
6266
- return;
6267
- }
6268
6569
  if ("function" === typeof node.then)
6269
6570
  return (
6270
6571
  (task.thenableState = null),
@@ -6323,6 +6624,69 @@
6323
6624
  ));
6324
6625
  }
6325
6626
  }
6627
+ function warnForMissingKey(request, task, child) {
6628
+ if (
6629
+ null !== child &&
6630
+ "object" === typeof child &&
6631
+ (child.$$typeof === REACT_ELEMENT_TYPE ||
6632
+ child.$$typeof === REACT_PORTAL_TYPE) &&
6633
+ child._store &&
6634
+ ((!child._store.validated && null == child.key) ||
6635
+ 2 === child._store.validated)
6636
+ ) {
6637
+ if ("object" !== typeof child._store)
6638
+ throw Error(
6639
+ "React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue."
6640
+ );
6641
+ child._store.validated = 1;
6642
+ var didWarnForKey = request.didWarnForKey;
6643
+ null == didWarnForKey &&
6644
+ (didWarnForKey = request.didWarnForKey = new WeakSet());
6645
+ request = task.componentStack;
6646
+ if (null !== request && !didWarnForKey.has(request)) {
6647
+ didWarnForKey.add(request);
6648
+ var componentName = getComponentNameFromType(child.type);
6649
+ didWarnForKey = child._owner;
6650
+ var parentOwner = request.owner;
6651
+ request = "";
6652
+ if (parentOwner && "undefined" !== typeof parentOwner.type) {
6653
+ var name = getComponentNameFromType(parentOwner.type);
6654
+ name &&
6655
+ (request = "\n\nCheck the render method of `" + name + "`.");
6656
+ }
6657
+ request ||
6658
+ (componentName &&
6659
+ (request =
6660
+ "\n\nCheck the top-level render call using <" +
6661
+ componentName +
6662
+ ">."));
6663
+ componentName = "";
6664
+ null != didWarnForKey &&
6665
+ parentOwner !== didWarnForKey &&
6666
+ ((parentOwner = null),
6667
+ "undefined" !== typeof didWarnForKey.type
6668
+ ? (parentOwner = getComponentNameFromType(didWarnForKey.type))
6669
+ : "string" === typeof didWarnForKey.name &&
6670
+ (parentOwner = didWarnForKey.name),
6671
+ parentOwner &&
6672
+ (componentName =
6673
+ " It was passed a child from " + parentOwner + "."));
6674
+ didWarnForKey = task.componentStack;
6675
+ task.componentStack = {
6676
+ parent: task.componentStack,
6677
+ type: child.type,
6678
+ owner: child._owner,
6679
+ stack: child._debugStack
6680
+ };
6681
+ console.error(
6682
+ 'Each child in a list should have a unique "key" prop.%s%s See https://react.dev/link/warning-keys for more information.',
6683
+ request,
6684
+ componentName
6685
+ );
6686
+ task.componentStack = didWarnForKey;
6687
+ }
6688
+ }
6689
+ }
6326
6690
  function renderChildrenArray(request, task, children, childIndex) {
6327
6691
  var prevKeyPath = task.keyPath,
6328
6692
  previousComponentStack = task.componentStack;
@@ -6416,76 +6780,11 @@
6416
6780
  task.debugTask = previousDebugTask;
6417
6781
  return;
6418
6782
  }
6419
- for (j = 0; j < replayNodes; j++) {
6420
- childIndex = children[j];
6421
- resumeSlots = request;
6422
- node = task;
6423
- error = childIndex;
6424
- if (
6425
- null !== error &&
6426
- "object" === typeof error &&
6427
- (error.$$typeof === REACT_ELEMENT_TYPE ||
6428
- error.$$typeof === REACT_PORTAL_TYPE) &&
6429
- error._store &&
6430
- ((!error._store.validated && null == error.key) ||
6431
- 2 === error._store.validated)
6432
- ) {
6433
- if ("object" !== typeof error._store)
6434
- throw Error(
6435
- "React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue."
6436
- );
6437
- error._store.validated = 1;
6438
- thrownInfo = resumeSlots.didWarnForKey;
6439
- null == thrownInfo &&
6440
- (thrownInfo = resumeSlots.didWarnForKey = new WeakSet());
6441
- resumeSlots = node.componentStack;
6442
- if (null !== resumeSlots && !thrownInfo.has(resumeSlots)) {
6443
- thrownInfo.add(resumeSlots);
6444
- var componentName = getComponentNameFromType(error.type);
6445
- thrownInfo = error._owner;
6446
- var parentOwner = resumeSlots.owner;
6447
- resumeSlots = "";
6448
- if (parentOwner && "undefined" !== typeof parentOwner.type) {
6449
- var name = getComponentNameFromType(parentOwner.type);
6450
- name &&
6451
- (resumeSlots =
6452
- "\n\nCheck the render method of `" + name + "`.");
6453
- }
6454
- resumeSlots ||
6455
- (componentName &&
6456
- (resumeSlots =
6457
- "\n\nCheck the top-level render call using <" +
6458
- componentName +
6459
- ">."));
6460
- componentName = "";
6461
- null != thrownInfo &&
6462
- parentOwner !== thrownInfo &&
6463
- ((parentOwner = null),
6464
- "undefined" !== typeof thrownInfo.type
6465
- ? (parentOwner = getComponentNameFromType(thrownInfo.type))
6466
- : "string" === typeof thrownInfo.name &&
6467
- (parentOwner = thrownInfo.name),
6468
- parentOwner &&
6469
- (componentName =
6470
- " It was passed a child from " + parentOwner + "."));
6471
- thrownInfo = node.componentStack;
6472
- node.componentStack = {
6473
- parent: node.componentStack,
6474
- type: error.type,
6475
- owner: error._owner,
6476
- stack: error._debugStack
6477
- };
6478
- console.error(
6479
- 'Each child in a list should have a unique "key" prop.%s%s See https://react.dev/link/warning-keys for more information.',
6480
- resumeSlots,
6481
- componentName
6482
- );
6483
- node.componentStack = thrownInfo;
6484
- }
6485
- }
6486
- task.treeContext = pushTreeContext(replay, replayNodes, j);
6487
- renderNode(request, task, childIndex, j);
6488
- }
6783
+ for (j = 0; j < replayNodes; j++)
6784
+ (childIndex = children[j]),
6785
+ warnForMissingKey(request, task, childIndex),
6786
+ (task.treeContext = pushTreeContext(replay, replayNodes, j)),
6787
+ renderNode(request, task, childIndex, j);
6489
6788
  task.treeContext = replay;
6490
6789
  task.keyPath = prevKeyPath;
6491
6790
  task.componentStack = previousComponentStack;
@@ -6514,6 +6813,7 @@
6514
6813
  task.formatContext,
6515
6814
  task.context,
6516
6815
  task.treeContext,
6816
+ task.row,
6517
6817
  task.componentStack,
6518
6818
  emptyContextObject,
6519
6819
  task.debugTask
@@ -6545,6 +6845,7 @@
6545
6845
  task.formatContext,
6546
6846
  task.context,
6547
6847
  task.treeContext,
6848
+ task.row,
6548
6849
  task.componentStack,
6549
6850
  emptyContextObject,
6550
6851
  task.debugTask
@@ -6659,9 +6960,11 @@
6659
6960
  throw node;
6660
6961
  }
6661
6962
  function abortTaskSoft(task) {
6662
- var boundary = task.blockedBoundary;
6663
- task = task.blockedSegment;
6664
- null !== task && ((task.status = 3), finishedTask(this, boundary, task));
6963
+ var boundary = task.blockedBoundary,
6964
+ segment = task.blockedSegment;
6965
+ null !== segment &&
6966
+ ((segment.status = ABORTED),
6967
+ finishedTask(this, boundary, task.row, segment));
6665
6968
  }
6666
6969
  function abortRemainingReplayNodes(
6667
6970
  request$jscomp$0,
@@ -6695,6 +6998,7 @@
6695
6998
  wasAborted = aborted,
6696
6999
  resumedBoundary = createSuspenseBoundary(
6697
7000
  request,
7001
+ null,
6698
7002
  new Set(),
6699
7003
  null,
6700
7004
  null
@@ -6739,7 +7043,7 @@
6739
7043
  segment = task.blockedSegment;
6740
7044
  if (null !== segment) {
6741
7045
  if (6 === segment.status) return;
6742
- segment.status = 3;
7046
+ segment.status = ABORTED;
6743
7047
  }
6744
7048
  segment = getThrownInfo(task.componentStack);
6745
7049
  if (null === boundary) {
@@ -6751,36 +7055,49 @@
6751
7055
  return;
6752
7056
  }
6753
7057
  boundary.pendingTasks--;
6754
- 0 === boundary.pendingTasks &&
6755
- 0 < boundary.nodes.length &&
6756
- ((task = logRecoverableError(request, error, segment, null)),
7058
+ if (0 === boundary.pendingTasks && 0 < boundary.nodes.length) {
7059
+ var errorDigest = logRecoverableError(
7060
+ request,
7061
+ error,
7062
+ segment,
7063
+ null
7064
+ );
6757
7065
  abortRemainingReplayNodes(
6758
7066
  request,
6759
7067
  null,
6760
7068
  boundary.nodes,
6761
7069
  boundary.slots,
6762
7070
  error,
6763
- task,
7071
+ errorDigest,
6764
7072
  segment,
6765
7073
  !0
6766
- ));
7074
+ );
7075
+ }
6767
7076
  request.pendingRootTasks--;
6768
7077
  0 === request.pendingRootTasks && completeShell(request);
6769
7078
  }
6770
7079
  } else
6771
- boundary.pendingTasks--,
6772
- boundary.status !== CLIENT_RENDERED &&
6773
- ((boundary.status = CLIENT_RENDERED),
6774
- (task = logRecoverableError(request, error, segment, null)),
6775
- (boundary.status = CLIENT_RENDERED),
6776
- encodeErrorForBoundary(boundary, task, error, segment, !0),
6777
- untrackBoundary(request, boundary),
6778
- boundary.parentFlushed &&
6779
- request.clientRenderedBoundaries.push(boundary)),
7080
+ boundary.status !== CLIENT_RENDERED &&
7081
+ ((boundary.status = CLIENT_RENDERED),
7082
+ (errorDigest = logRecoverableError(request, error, segment, null)),
7083
+ (boundary.status = CLIENT_RENDERED),
7084
+ encodeErrorForBoundary(boundary, errorDigest, error, segment, !0),
7085
+ untrackBoundary(request, boundary),
7086
+ boundary.parentFlushed &&
7087
+ request.clientRenderedBoundaries.push(boundary)),
7088
+ boundary.pendingTasks--,
7089
+ (segment = boundary.row),
7090
+ null !== segment &&
7091
+ 0 === --segment.pendingTasks &&
7092
+ finishSuspenseListRow(request, segment),
6780
7093
  boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
6781
7094
  return abortTask(fallbackTask, request, error);
6782
7095
  }),
6783
7096
  boundary.fallbackAbortableTasks.clear();
7097
+ task = task.row;
7098
+ null !== task &&
7099
+ 0 === --task.pendingTasks &&
7100
+ finishSuspenseListRow(request, task);
6784
7101
  request.allPendingTasks--;
6785
7102
  0 === request.allPendingTasks && completeAll(request);
6786
7103
  }
@@ -6892,7 +7209,11 @@
6892
7209
  : (boundary.byteSize += segmentByteSize);
6893
7210
  }
6894
7211
  }
6895
- function finishedTask(request, boundary, segment) {
7212
+ function finishedTask(request, boundary, row, segment) {
7213
+ null !== row &&
7214
+ (0 === --row.pendingTasks
7215
+ ? finishSuspenseListRow(request, row)
7216
+ : row.together && tryToResolveTogetherRow(request, row));
6896
7217
  request.allPendingTasks--;
6897
7218
  if (null === boundary) {
6898
7219
  if (null !== segment && segment.parentFlushed) {
@@ -6916,23 +7237,33 @@
6916
7237
  boundary.parentFlushed &&
6917
7238
  request.completedBoundaries.push(boundary),
6918
7239
  boundary.status === COMPLETED &&
6919
- (500 < boundary.byteSize ||
7240
+ ((row = boundary.row),
7241
+ null !== row &&
7242
+ hoistHoistables(row.hoistables, boundary.contentState),
7243
+ 500 < boundary.byteSize ||
6920
7244
  (boundary.fallbackAbortableTasks.forEach(
6921
7245
  abortTaskSoft,
6922
7246
  request
6923
7247
  ),
6924
- boundary.fallbackAbortableTasks.clear()),
7248
+ boundary.fallbackAbortableTasks.clear(),
7249
+ null !== row &&
7250
+ 0 === --row.pendingTasks &&
7251
+ finishSuspenseListRow(request, row)),
6925
7252
  0 === request.pendingRootTasks &&
6926
7253
  null === request.trackedPostpones &&
6927
7254
  null !== boundary.contentPreamble &&
6928
7255
  preparePreamble(request)))
6929
- : null !== segment &&
6930
- segment.parentFlushed &&
6931
- segment.status === COMPLETED &&
6932
- (queueCompletedSegment(boundary, segment),
6933
- 1 === boundary.completedSegments.length &&
6934
- boundary.parentFlushed &&
6935
- request.partialBoundaries.push(boundary)));
7256
+ : (null !== segment &&
7257
+ segment.parentFlushed &&
7258
+ segment.status === COMPLETED &&
7259
+ (queueCompletedSegment(boundary, segment),
7260
+ 1 === boundary.completedSegments.length &&
7261
+ boundary.parentFlushed &&
7262
+ request.partialBoundaries.push(boundary)),
7263
+ (boundary = boundary.row),
7264
+ null !== boundary &&
7265
+ boundary.together &&
7266
+ tryToResolveTogetherRow(request, boundary)));
6936
7267
  0 === request.allPendingTasks && completeAll(request);
6937
7268
  }
6938
7269
  function performWork(request$jscomp$2) {
@@ -6985,7 +7316,12 @@
6985
7316
  );
6986
7317
  request.replay.pendingTasks--;
6987
7318
  request.abortSet.delete(request);
6988
- finishedTask(request$jscomp$0, request.blockedBoundary, null);
7319
+ finishedTask(
7320
+ request$jscomp$0,
7321
+ request.blockedBoundary,
7322
+ request.row,
7323
+ null
7324
+ );
6989
7325
  } catch (thrownValue) {
6990
7326
  resetHooksState();
6991
7327
  var x =
@@ -7068,6 +7404,7 @@
7068
7404
  finishedTask(
7069
7405
  request,
7070
7406
  errorDigest.blockedBoundary,
7407
+ errorDigest.row,
7071
7408
  request$jscomp$1
7072
7409
  );
7073
7410
  } catch (thrownValue) {
@@ -7096,40 +7433,49 @@
7096
7433
  errorDigest.abortSet.delete(errorDigest);
7097
7434
  request$jscomp$1.status = 4;
7098
7435
  var boundary$jscomp$0 = errorDigest.blockedBoundary,
7436
+ row = errorDigest.row,
7099
7437
  debugTask = errorDigest.debugTask;
7438
+ null !== row &&
7439
+ 0 === --row.pendingTasks &&
7440
+ finishSuspenseListRow(request, row);
7441
+ request.allPendingTasks--;
7100
7442
  prevTaskInDEV = logRecoverableError(
7101
7443
  request,
7102
7444
  x$jscomp$0,
7103
7445
  errorInfo$jscomp$1,
7104
7446
  debugTask
7105
7447
  );
7106
- null === boundary$jscomp$0
7107
- ? fatalError(
7108
- request,
7109
- x$jscomp$0,
7110
- errorInfo$jscomp$1,
7111
- debugTask
7112
- )
7113
- : (boundary$jscomp$0.pendingTasks--,
7114
- boundary$jscomp$0.status !== CLIENT_RENDERED &&
7115
- ((boundary$jscomp$0.status = CLIENT_RENDERED),
7116
- encodeErrorForBoundary(
7117
- boundary$jscomp$0,
7118
- prevTaskInDEV,
7119
- x$jscomp$0,
7120
- errorInfo$jscomp$1,
7121
- !1
7122
- ),
7123
- untrackBoundary(request, boundary$jscomp$0),
7124
- boundary$jscomp$0.parentFlushed &&
7125
- request.clientRenderedBoundaries.push(
7126
- boundary$jscomp$0
7127
- ),
7128
- 0 === request.pendingRootTasks &&
7129
- null === request.trackedPostpones &&
7130
- null !== boundary$jscomp$0.contentPreamble &&
7131
- preparePreamble(request)));
7132
- request.allPendingTasks--;
7448
+ if (null === boundary$jscomp$0)
7449
+ fatalError(
7450
+ request,
7451
+ x$jscomp$0,
7452
+ errorInfo$jscomp$1,
7453
+ debugTask
7454
+ );
7455
+ else if (
7456
+ (boundary$jscomp$0.pendingTasks--,
7457
+ boundary$jscomp$0.status !== CLIENT_RENDERED)
7458
+ ) {
7459
+ boundary$jscomp$0.status = CLIENT_RENDERED;
7460
+ encodeErrorForBoundary(
7461
+ boundary$jscomp$0,
7462
+ prevTaskInDEV,
7463
+ x$jscomp$0,
7464
+ errorInfo$jscomp$1,
7465
+ !1
7466
+ );
7467
+ untrackBoundary(request, boundary$jscomp$0);
7468
+ var boundaryRow = boundary$jscomp$0.row;
7469
+ null !== boundaryRow &&
7470
+ 0 === --boundaryRow.pendingTasks &&
7471
+ finishSuspenseListRow(request, boundaryRow);
7472
+ boundary$jscomp$0.parentFlushed &&
7473
+ request.clientRenderedBoundaries.push(boundary$jscomp$0);
7474
+ 0 === request.pendingRootTasks &&
7475
+ null === request.trackedPostpones &&
7476
+ null !== boundary$jscomp$0.contentPreamble &&
7477
+ preparePreamble(request);
7478
+ }
7133
7479
  0 === request.allPendingTasks && completeAll(request);
7134
7480
  }
7135
7481
  } finally {
@@ -7281,18 +7627,19 @@
7281
7627
  return flushSubtree(request, destination, segment, hoistableState);
7282
7628
  boundary.parentFlushed = !0;
7283
7629
  if (boundary.status === CLIENT_RENDERED) {
7284
- var errorDigest = boundary.errorDigest,
7285
- errorMessage = boundary.errorMessage,
7630
+ var row = boundary.row;
7631
+ null !== row &&
7632
+ 0 === --row.pendingTasks &&
7633
+ finishSuspenseListRow(request, row);
7634
+ row = boundary.errorDigest;
7635
+ var errorMessage = boundary.errorMessage,
7286
7636
  errorStack = boundary.errorStack;
7287
7637
  boundary = boundary.errorComponentStack;
7288
7638
  writeChunkAndReturn(destination, startClientRenderedSuspenseBoundary);
7289
7639
  writeChunk(destination, clientRenderedSuspenseBoundaryError1);
7290
- errorDigest &&
7640
+ row &&
7291
7641
  (writeChunk(destination, clientRenderedSuspenseBoundaryError1A),
7292
- writeChunk(
7293
- destination,
7294
- stringToChunk(escapeTextForBrowser(errorDigest))
7295
- ),
7642
+ writeChunk(destination, stringToChunk(escapeTextForBrowser(row))),
7296
7643
  writeChunk(
7297
7644
  destination,
7298
7645
  clientRenderedSuspenseBoundaryErrorAttrInterstitial
@@ -7340,12 +7687,7 @@
7340
7687
  boundary.rootSegmentID
7341
7688
  ),
7342
7689
  hoistableState &&
7343
- ((boundary = boundary.fallbackState),
7344
- boundary.styles.forEach(hoistStyleQueueDependency, hoistableState),
7345
- boundary.stylesheets.forEach(
7346
- hoistStylesheetDependency,
7347
- hoistableState
7348
- )),
7690
+ hoistHoistables(hoistableState, boundary.fallbackState),
7349
7691
  flushSubtree(request, destination, segment, hoistableState);
7350
7692
  else if (
7351
7693
  500 < boundary.byteSize &&
@@ -7362,12 +7704,12 @@
7362
7704
  else {
7363
7705
  flushedByteSize += boundary.byteSize;
7364
7706
  hoistableState &&
7365
- ((segment = boundary.contentState),
7366
- segment.styles.forEach(hoistStyleQueueDependency, hoistableState),
7367
- segment.stylesheets.forEach(
7368
- hoistStylesheetDependency,
7369
- hoistableState
7370
- ));
7707
+ hoistHoistables(hoistableState, boundary.contentState);
7708
+ segment = boundary.row;
7709
+ null !== segment &&
7710
+ 500 < boundary.byteSize &&
7711
+ 0 === --segment.pendingTasks &&
7712
+ finishSuspenseListRow(request, segment);
7371
7713
  writeChunkAndReturn(destination, startCompletedSuspenseBoundary);
7372
7714
  segment = boundary.completedSegments;
7373
7715
  if (1 !== segment.length)
@@ -7407,6 +7749,11 @@
7407
7749
  completedSegments[i]
7408
7750
  );
7409
7751
  completedSegments.length = 0;
7752
+ completedSegments = boundary.row;
7753
+ null !== completedSegments &&
7754
+ 500 < boundary.byteSize &&
7755
+ 0 === --completedSegments.pendingTasks &&
7756
+ finishSuspenseListRow(request, completedSegments);
7410
7757
  writeHoistablesForBoundary(
7411
7758
  destination,
7412
7759
  boundary.contentState,
@@ -7809,6 +8156,17 @@
7809
8156
  break a;
7810
8157
  }
7811
8158
  completedSegments.splice(0, JSCompiler_inline_result);
8159
+ var row = boundary$jscomp$0.row;
8160
+ null !== row &&
8161
+ row.together &&
8162
+ 1 === boundary$jscomp$0.pendingTasks &&
8163
+ (1 === row.pendingTasks
8164
+ ? unblockSuspenseListRow(
8165
+ clientRenderedBoundaries,
8166
+ row,
8167
+ row.hoistables
8168
+ )
8169
+ : row.pendingTasks--);
7812
8170
  JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
7813
8171
  boundary,
7814
8172
  boundary$jscomp$0.contentState,
@@ -7934,11 +8292,11 @@
7934
8292
  }
7935
8293
  function ensureCorrectIsomorphicReactVersion() {
7936
8294
  var isomorphicReactPackageVersion = React.version;
7937
- if ("19.2.0-canary-462d08f9-20250517" !== isomorphicReactPackageVersion)
8295
+ if ("19.2.0-canary-23884812-20250520" !== isomorphicReactPackageVersion)
7938
8296
  throw Error(
7939
8297
  'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
7940
8298
  (isomorphicReactPackageVersion +
7941
- "\n - react-dom: 19.2.0-canary-462d08f9-20250517\nLearn more: https://react.dev/warnings/version-mismatch")
8299
+ "\n - react-dom: 19.2.0-canary-23884812-20250520\nLearn more: https://react.dev/warnings/version-mismatch")
7942
8300
  );
7943
8301
  }
7944
8302
  var React = require("react"),
@@ -9466,6 +9824,7 @@
9466
9824
  PENDING = 0,
9467
9825
  COMPLETED = 1,
9468
9826
  FLUSHED = 2,
9827
+ ABORTED = 3,
9469
9828
  POSTPONED = 5,
9470
9829
  CLOSED = 14,
9471
9830
  currentRequest = null,
@@ -9620,5 +9979,5 @@
9620
9979
  startWork(request);
9621
9980
  });
9622
9981
  };
9623
- exports.version = "19.2.0-canary-462d08f9-20250517";
9982
+ exports.version = "19.2.0-canary-23884812-20250520";
9624
9983
  })();