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.
@@ -17,6 +17,14 @@
17
17
  function scriptReplacer(match, prefix, s, suffix) {
18
18
  return "" + prefix + ("s" === s ? "\\u0073" : "\\u0053") + suffix;
19
19
  }
20
+ function getIteratorFn(maybeIterable) {
21
+ if (null === maybeIterable || "object" !== typeof maybeIterable)
22
+ return null;
23
+ maybeIterable =
24
+ (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
25
+ maybeIterable["@@iterator"];
26
+ return "function" === typeof maybeIterable ? maybeIterable : null;
27
+ }
20
28
  function objectName(object) {
21
29
  return Object.prototype.toString
22
30
  .call(object)
@@ -3602,6 +3610,10 @@
3602
3610
  function hoistStylesheetDependency(stylesheet) {
3603
3611
  this.stylesheets.add(stylesheet);
3604
3612
  }
3613
+ function hoistHoistables(parentState, childState) {
3614
+ childState.styles.forEach(hoistStyleQueueDependency, parentState);
3615
+ childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
3616
+ }
3605
3617
  function getComponentNameFromType(type) {
3606
3618
  if (null == type) return null;
3607
3619
  if ("function" === typeof type)
@@ -4491,6 +4503,7 @@
4491
4503
  null,
4492
4504
  emptyTreeContext,
4493
4505
  null,
4506
+ null,
4494
4507
  emptyContextObject,
4495
4508
  null
4496
4509
  );
@@ -4551,15 +4564,17 @@
4551
4564
  }
4552
4565
  function createSuspenseBoundary(
4553
4566
  request,
4567
+ row,
4554
4568
  fallbackAbortableTasks,
4555
4569
  contentPreamble,
4556
4570
  fallbackPreamble
4557
4571
  ) {
4558
- return {
4572
+ fallbackAbortableTasks = {
4559
4573
  status: PENDING,
4560
4574
  rootSegmentID: -1,
4561
4575
  parentFlushed: !1,
4562
4576
  pendingTasks: 0,
4577
+ row: row,
4563
4578
  completedSegments: [],
4564
4579
  byteSize: 0,
4565
4580
  fallbackAbortableTasks: fallbackAbortableTasks,
@@ -4574,6 +4589,17 @@
4574
4589
  errorStack: null,
4575
4590
  errorComponentStack: null
4576
4591
  };
4592
+ null !== row &&
4593
+ (row.pendingTasks++,
4594
+ (contentPreamble = row.boundaries),
4595
+ null !== contentPreamble &&
4596
+ (request.allPendingTasks++,
4597
+ fallbackAbortableTasks.pendingTasks++,
4598
+ contentPreamble.push(fallbackAbortableTasks)),
4599
+ (request = row.inheritedHoistables),
4600
+ null !== request &&
4601
+ hoistHoistables(fallbackAbortableTasks.contentState, request));
4602
+ return fallbackAbortableTasks;
4577
4603
  }
4578
4604
  function createRenderTask(
4579
4605
  request,
@@ -4589,6 +4615,7 @@
4589
4615
  formatContext,
4590
4616
  context,
4591
4617
  treeContext,
4618
+ row,
4592
4619
  componentStack,
4593
4620
  legacyContext,
4594
4621
  debugTask
@@ -4597,6 +4624,7 @@
4597
4624
  null === blockedBoundary
4598
4625
  ? request.pendingRootTasks++
4599
4626
  : blockedBoundary.pendingTasks++;
4627
+ null !== row && row.pendingTasks++;
4600
4628
  var task = {
4601
4629
  replay: null,
4602
4630
  node: node,
@@ -4613,6 +4641,7 @@
4613
4641
  formatContext: formatContext,
4614
4642
  context: context,
4615
4643
  treeContext: treeContext,
4644
+ row: row,
4616
4645
  componentStack: componentStack,
4617
4646
  thenableState: thenableState
4618
4647
  };
@@ -4633,6 +4662,7 @@
4633
4662
  formatContext,
4634
4663
  context,
4635
4664
  treeContext,
4665
+ row,
4636
4666
  componentStack,
4637
4667
  legacyContext,
4638
4668
  debugTask
@@ -4641,6 +4671,7 @@
4641
4671
  null === blockedBoundary
4642
4672
  ? request.pendingRootTasks++
4643
4673
  : blockedBoundary.pendingTasks++;
4674
+ null !== row && row.pendingTasks++;
4644
4675
  replay.pendingTasks++;
4645
4676
  var task = {
4646
4677
  replay: replay,
@@ -4658,6 +4689,7 @@
4658
4689
  formatContext: formatContext,
4659
4690
  context: context,
4660
4691
  treeContext: treeContext,
4692
+ row: row,
4661
4693
  componentStack: componentStack,
4662
4694
  thenableState: thenableState
4663
4695
  };
@@ -4843,6 +4875,184 @@
4843
4875
  ? ((request.status = CLOSED), request.destination.destroy(error))
4844
4876
  : ((request.status = 13), (request.fatalError = error));
4845
4877
  }
4878
+ function finishSuspenseListRow(request, row) {
4879
+ unblockSuspenseListRow(request, row.next, row.hoistables);
4880
+ }
4881
+ function unblockSuspenseListRow(
4882
+ request,
4883
+ unblockedRow,
4884
+ inheritedHoistables
4885
+ ) {
4886
+ for (; null !== unblockedRow; ) {
4887
+ null !== inheritedHoistables &&
4888
+ (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
4889
+ (unblockedRow.inheritedHoistables = inheritedHoistables));
4890
+ var unblockedBoundaries = unblockedRow.boundaries;
4891
+ if (null !== unblockedBoundaries) {
4892
+ unblockedRow.boundaries = null;
4893
+ for (var i = 0; i < unblockedBoundaries.length; i++) {
4894
+ var unblockedBoundary = unblockedBoundaries[i];
4895
+ null !== inheritedHoistables &&
4896
+ hoistHoistables(
4897
+ unblockedBoundary.contentState,
4898
+ inheritedHoistables
4899
+ );
4900
+ finishedTask(request, unblockedBoundary, null, null);
4901
+ }
4902
+ }
4903
+ unblockedRow.pendingTasks--;
4904
+ if (0 < unblockedRow.pendingTasks) break;
4905
+ inheritedHoistables = unblockedRow.hoistables;
4906
+ unblockedRow = unblockedRow.next;
4907
+ }
4908
+ }
4909
+ function tryToResolveTogetherRow(request, togetherRow) {
4910
+ var boundaries = togetherRow.boundaries;
4911
+ if (
4912
+ null !== boundaries &&
4913
+ togetherRow.pendingTasks === boundaries.length
4914
+ ) {
4915
+ for (
4916
+ var allCompleteAndInlinable = !0, i = 0;
4917
+ i < boundaries.length;
4918
+ i++
4919
+ ) {
4920
+ var rowBoundary = boundaries[i];
4921
+ if (
4922
+ 1 !== rowBoundary.pendingTasks ||
4923
+ rowBoundary.parentFlushed ||
4924
+ 500 < rowBoundary.byteSize
4925
+ ) {
4926
+ allCompleteAndInlinable = !1;
4927
+ break;
4928
+ }
4929
+ }
4930
+ allCompleteAndInlinable &&
4931
+ unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
4932
+ }
4933
+ }
4934
+ function createSuspenseListRow(previousRow) {
4935
+ var newRow = {
4936
+ pendingTasks: 1,
4937
+ boundaries: null,
4938
+ hoistables: createHoistableState(),
4939
+ inheritedHoistables: null,
4940
+ together: !1,
4941
+ next: null
4942
+ };
4943
+ null !== previousRow &&
4944
+ 0 < previousRow.pendingTasks &&
4945
+ (newRow.pendingTasks++,
4946
+ (newRow.boundaries = []),
4947
+ (previousRow.next = newRow));
4948
+ return newRow;
4949
+ }
4950
+ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
4951
+ var prevKeyPath = task.keyPath,
4952
+ prevTreeContext = task.treeContext,
4953
+ prevRow = task.row,
4954
+ previousComponentStack = task.componentStack;
4955
+ var previousDebugTask = task.debugTask;
4956
+ pushServerComponentStack(task, task.node.props.children._debugInfo);
4957
+ task.keyPath = keyPath;
4958
+ keyPath = rows.length;
4959
+ var previousSuspenseListRow = null;
4960
+ if (null !== task.replay) {
4961
+ var resumeSlots = task.replay.slots;
4962
+ if (null !== resumeSlots && "object" === typeof resumeSlots)
4963
+ for (var n = 0; n < keyPath; n++) {
4964
+ var i = "backwards" !== revealOrder ? n : keyPath - 1 - n,
4965
+ node = rows[i];
4966
+ task.row = previousSuspenseListRow = createSuspenseListRow(
4967
+ previousSuspenseListRow
4968
+ );
4969
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
4970
+ var resumeSegmentID = resumeSlots[i];
4971
+ "number" === typeof resumeSegmentID
4972
+ ? (resumeNode(request, task, resumeSegmentID, node, i),
4973
+ delete resumeSlots[i])
4974
+ : renderNode(request, task, node, i);
4975
+ 0 === --previousSuspenseListRow.pendingTasks &&
4976
+ finishSuspenseListRow(request, previousSuspenseListRow);
4977
+ }
4978
+ else
4979
+ for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
4980
+ (n =
4981
+ "backwards" !== revealOrder
4982
+ ? resumeSlots
4983
+ : keyPath - 1 - resumeSlots),
4984
+ (i = rows[n]),
4985
+ warnForMissingKey(request, task, i),
4986
+ (task.row = previousSuspenseListRow =
4987
+ createSuspenseListRow(previousSuspenseListRow)),
4988
+ (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
4989
+ renderNode(request, task, i, n),
4990
+ 0 === --previousSuspenseListRow.pendingTasks &&
4991
+ finishSuspenseListRow(request, previousSuspenseListRow);
4992
+ } else if ("backwards" !== revealOrder)
4993
+ for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
4994
+ (resumeSlots = rows[revealOrder]),
4995
+ warnForMissingKey(request, task, resumeSlots),
4996
+ (task.row = previousSuspenseListRow =
4997
+ createSuspenseListRow(previousSuspenseListRow)),
4998
+ (task.treeContext = pushTreeContext(
4999
+ prevTreeContext,
5000
+ keyPath,
5001
+ revealOrder
5002
+ )),
5003
+ renderNode(request, task, resumeSlots, revealOrder),
5004
+ 0 === --previousSuspenseListRow.pendingTasks &&
5005
+ finishSuspenseListRow(request, previousSuspenseListRow);
5006
+ else {
5007
+ revealOrder = task.blockedSegment;
5008
+ resumeSlots = revealOrder.children.length;
5009
+ n = revealOrder.chunks.length;
5010
+ for (i = keyPath - 1; 0 <= i; i--) {
5011
+ node = rows[i];
5012
+ task.row = previousSuspenseListRow = createSuspenseListRow(
5013
+ previousSuspenseListRow
5014
+ );
5015
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
5016
+ resumeSegmentID = createPendingSegment(
5017
+ request,
5018
+ n,
5019
+ null,
5020
+ task.formatContext,
5021
+ 0 === i ? revealOrder.lastPushedText : !0,
5022
+ !0
5023
+ );
5024
+ revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
5025
+ task.blockedSegment = resumeSegmentID;
5026
+ warnForMissingKey(request, task, node);
5027
+ try {
5028
+ renderNode(request, task, node, i),
5029
+ resumeSegmentID.lastPushedText &&
5030
+ resumeSegmentID.textEmbedded &&
5031
+ resumeSegmentID.chunks.push(textSeparator),
5032
+ (resumeSegmentID.status = COMPLETED),
5033
+ finishedSegment(request, task.blockedBoundary, resumeSegmentID),
5034
+ 0 === --previousSuspenseListRow.pendingTasks &&
5035
+ finishSuspenseListRow(request, previousSuspenseListRow);
5036
+ } catch (thrownValue) {
5037
+ throw (
5038
+ ((resumeSegmentID.status = 12 === request.status ? ABORTED : 4),
5039
+ thrownValue)
5040
+ );
5041
+ }
5042
+ }
5043
+ task.blockedSegment = revealOrder;
5044
+ revealOrder.lastPushedText = !1;
5045
+ }
5046
+ null !== prevRow &&
5047
+ null !== previousSuspenseListRow &&
5048
+ 0 < previousSuspenseListRow.pendingTasks &&
5049
+ (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
5050
+ task.treeContext = prevTreeContext;
5051
+ task.row = prevRow;
5052
+ task.keyPath = prevKeyPath;
5053
+ task.componentStack = previousComponentStack;
5054
+ task.debugTask = previousDebugTask;
5055
+ }
4846
5056
  function renderWithHooks(
4847
5057
  request,
4848
5058
  task,
@@ -5384,7 +5594,7 @@
5384
5594
  );
5385
5595
  segment.lastPushedText = !1;
5386
5596
  var _prevContext2 = task.formatContext,
5387
- _prevKeyPath2 = task.keyPath;
5597
+ _prevKeyPath3 = task.keyPath;
5388
5598
  task.keyPath = keyPath;
5389
5599
  if (
5390
5600
  (task.formatContext = getChildFormatContext(
@@ -5416,6 +5626,7 @@
5416
5626
  task.formatContext,
5417
5627
  task.context,
5418
5628
  task.treeContext,
5629
+ task.row,
5419
5630
  task.componentStack,
5420
5631
  emptyContextObject,
5421
5632
  task.debugTask
@@ -5424,7 +5635,7 @@
5424
5635
  request.pingedTasks.push(preambleTask);
5425
5636
  } else renderNode(request, task, _children, -1);
5426
5637
  task.formatContext = _prevContext2;
5427
- task.keyPath = _prevKeyPath2;
5638
+ task.keyPath = _prevKeyPath3;
5428
5639
  a: {
5429
5640
  var target = segment.chunks,
5430
5641
  resumableState = request.resumableState;
@@ -5490,19 +5701,79 @@
5490
5701
  } else if ("hidden" !== props.mode) {
5491
5702
  segment$jscomp$0.chunks.push(startActivityBoundary);
5492
5703
  segment$jscomp$0.lastPushedText = !1;
5493
- var _prevKeyPath3 = task.keyPath;
5704
+ var _prevKeyPath4 = task.keyPath;
5494
5705
  task.keyPath = keyPath;
5495
5706
  renderNode(request, task, props.children, -1);
5496
- task.keyPath = _prevKeyPath3;
5707
+ task.keyPath = _prevKeyPath4;
5497
5708
  segment$jscomp$0.chunks.push(endActivityBoundary);
5498
5709
  segment$jscomp$0.lastPushedText = !1;
5499
5710
  }
5500
5711
  return;
5501
5712
  case REACT_SUSPENSE_LIST_TYPE:
5502
- var _prevKeyPath4 = task.keyPath;
5503
- task.keyPath = keyPath;
5504
- renderNodeDestructive(request, task, props.children, -1);
5505
- task.keyPath = _prevKeyPath4;
5713
+ a: {
5714
+ var children$jscomp$0 = props.children,
5715
+ revealOrder = props.revealOrder;
5716
+ if ("forwards" === revealOrder || "backwards" === revealOrder) {
5717
+ if (isArrayImpl(children$jscomp$0)) {
5718
+ renderSuspenseListRows(
5719
+ request,
5720
+ task,
5721
+ keyPath,
5722
+ children$jscomp$0,
5723
+ revealOrder
5724
+ );
5725
+ break a;
5726
+ }
5727
+ var iteratorFn = getIteratorFn(children$jscomp$0);
5728
+ if (iteratorFn) {
5729
+ var iterator = iteratorFn.call(children$jscomp$0);
5730
+ if (iterator) {
5731
+ validateIterable(
5732
+ task,
5733
+ children$jscomp$0,
5734
+ -1,
5735
+ iterator,
5736
+ iteratorFn
5737
+ );
5738
+ var step = iterator.next();
5739
+ if (!step.done) {
5740
+ var rows = [];
5741
+ do rows.push(step.value), (step = iterator.next());
5742
+ while (!step.done);
5743
+ renderSuspenseListRows(
5744
+ request,
5745
+ task,
5746
+ keyPath,
5747
+ children$jscomp$0,
5748
+ revealOrder
5749
+ );
5750
+ }
5751
+ break a;
5752
+ }
5753
+ }
5754
+ }
5755
+ if ("together" === revealOrder) {
5756
+ var _prevKeyPath2 = task.keyPath,
5757
+ prevRow = task.row,
5758
+ newRow = (task.row = createSuspenseListRow(null));
5759
+ newRow.boundaries = [];
5760
+ newRow.together = !0;
5761
+ task.keyPath = keyPath;
5762
+ renderNodeDestructive(request, task, children$jscomp$0, -1);
5763
+ 0 === --newRow.pendingTasks &&
5764
+ finishSuspenseListRow(request, newRow);
5765
+ task.keyPath = _prevKeyPath2;
5766
+ task.row = prevRow;
5767
+ null !== prevRow &&
5768
+ 0 < newRow.pendingTasks &&
5769
+ (prevRow.pendingTasks++, (newRow.next = prevRow));
5770
+ } else {
5771
+ var prevKeyPath$jscomp$3 = task.keyPath;
5772
+ task.keyPath = keyPath;
5773
+ renderNodeDestructive(request, task, children$jscomp$0, -1);
5774
+ task.keyPath = prevKeyPath$jscomp$3;
5775
+ }
5776
+ }
5506
5777
  return;
5507
5778
  case REACT_VIEW_TRANSITION_TYPE:
5508
5779
  case REACT_SCOPE_TYPE:
@@ -5512,22 +5783,26 @@
5512
5783
  case REACT_SUSPENSE_TYPE:
5513
5784
  a: if (null !== task.replay) {
5514
5785
  var _prevKeyPath = task.keyPath,
5515
- _prevContext = task.formatContext;
5786
+ _prevContext = task.formatContext,
5787
+ _prevRow = task.row;
5516
5788
  task.keyPath = keyPath;
5517
5789
  task.formatContext = getSuspenseContentFormatContext(
5518
5790
  request.resumableState,
5519
5791
  _prevContext
5520
5792
  );
5793
+ task.row = null;
5521
5794
  var _content = props.children;
5522
5795
  try {
5523
5796
  renderNode(request, task, _content, -1);
5524
5797
  } finally {
5525
5798
  (task.keyPath = _prevKeyPath),
5526
- (task.formatContext = _prevContext);
5799
+ (task.formatContext = _prevContext),
5800
+ (task.row = _prevRow);
5527
5801
  }
5528
5802
  } else {
5529
- var prevKeyPath$jscomp$3 = task.keyPath,
5803
+ var prevKeyPath$jscomp$4 = task.keyPath,
5530
5804
  prevContext$jscomp$0 = task.formatContext,
5805
+ prevRow$jscomp$0 = task.row,
5531
5806
  parentBoundary = task.blockedBoundary,
5532
5807
  parentPreamble = task.blockedPreamble,
5533
5808
  parentHoistableState = task.hoistableState,
@@ -5539,12 +5814,14 @@
5539
5814
  task.formatContext.insertionMode < HTML_MODE
5540
5815
  ? createSuspenseBoundary(
5541
5816
  request,
5817
+ task.row,
5542
5818
  fallbackAbortSet,
5543
5819
  createPreambleState(),
5544
5820
  createPreambleState()
5545
5821
  )
5546
5822
  : createSuspenseBoundary(
5547
5823
  request,
5824
+ task.row,
5548
5825
  fallbackAbortSet,
5549
5826
  null,
5550
5827
  null
@@ -5604,13 +5881,14 @@
5604
5881
  finishedSegment(request, parentBoundary, boundarySegment);
5605
5882
  } catch (thrownValue) {
5606
5883
  throw (
5607
- ((boundarySegment.status = 12 === request.status ? 3 : 4),
5884
+ ((boundarySegment.status =
5885
+ 12 === request.status ? ABORTED : 4),
5608
5886
  thrownValue)
5609
5887
  );
5610
5888
  } finally {
5611
5889
  (task.blockedSegment = parentSegment),
5612
5890
  (task.blockedPreamble = parentPreamble),
5613
- (task.keyPath = prevKeyPath$jscomp$3),
5891
+ (task.keyPath = prevKeyPath$jscomp$4),
5614
5892
  (task.formatContext = prevContext$jscomp$0);
5615
5893
  }
5616
5894
  var suspendedPrimaryTask = createRenderTask(
@@ -5630,6 +5908,7 @@
5630
5908
  ),
5631
5909
  task.context,
5632
5910
  task.treeContext,
5911
+ null,
5633
5912
  task.componentStack,
5634
5913
  emptyContextObject,
5635
5914
  task.debugTask
@@ -5646,6 +5925,7 @@
5646
5925
  request.resumableState,
5647
5926
  prevContext$jscomp$0
5648
5927
  );
5928
+ task.row = null;
5649
5929
  contentRootSegment.status = 6;
5650
5930
  try {
5651
5931
  if (
@@ -5657,19 +5937,28 @@
5657
5937
  finishedSegment(request, newBoundary, contentRootSegment),
5658
5938
  queueCompletedSegment(newBoundary, contentRootSegment),
5659
5939
  0 === newBoundary.pendingTasks &&
5660
- newBoundary.status === PENDING &&
5661
- ((newBoundary.status = COMPLETED),
5662
- !(500 < newBoundary.byteSize)))
5940
+ newBoundary.status === PENDING)
5663
5941
  ) {
5664
- 0 === request.pendingRootTasks &&
5665
- task.blockedPreamble &&
5666
- preparePreamble(request);
5667
- break a;
5668
- }
5942
+ if (
5943
+ ((newBoundary.status = COMPLETED),
5944
+ !(500 < newBoundary.byteSize))
5945
+ ) {
5946
+ null !== prevRow$jscomp$0 &&
5947
+ 0 === --prevRow$jscomp$0.pendingTasks &&
5948
+ finishSuspenseListRow(request, prevRow$jscomp$0);
5949
+ 0 === request.pendingRootTasks &&
5950
+ task.blockedPreamble &&
5951
+ preparePreamble(request);
5952
+ break a;
5953
+ }
5954
+ } else
5955
+ null !== prevRow$jscomp$0 &&
5956
+ prevRow$jscomp$0.together &&
5957
+ tryToResolveTogetherRow(request, prevRow$jscomp$0);
5669
5958
  } catch (thrownValue$2) {
5670
5959
  newBoundary.status = CLIENT_RENDERED;
5671
5960
  if (12 === request.status) {
5672
- contentRootSegment.status = 3;
5961
+ contentRootSegment.status = ABORTED;
5673
5962
  var error = request.fatalError;
5674
5963
  } else
5675
5964
  (contentRootSegment.status = 4), (error = thrownValue$2);
@@ -5693,8 +5982,9 @@
5693
5982
  (task.blockedPreamble = parentPreamble),
5694
5983
  (task.hoistableState = parentHoistableState),
5695
5984
  (task.blockedSegment = parentSegment),
5696
- (task.keyPath = prevKeyPath$jscomp$3),
5697
- (task.formatContext = prevContext$jscomp$0);
5985
+ (task.keyPath = prevKeyPath$jscomp$4),
5986
+ (task.formatContext = prevContext$jscomp$0),
5987
+ (task.row = prevRow$jscomp$0);
5698
5988
  }
5699
5989
  var suspendedFallbackTask = createRenderTask(
5700
5990
  request,
@@ -5713,6 +6003,7 @@
5713
6003
  ),
5714
6004
  task.context,
5715
6005
  task.treeContext,
6006
+ task.row,
5716
6007
  task.componentStack,
5717
6008
  emptyContextObject,
5718
6009
  task.debugTask
@@ -5731,7 +6022,7 @@
5731
6022
  for (var key in props)
5732
6023
  "ref" !== key && (propsWithoutRef[key] = props[key]);
5733
6024
  } else propsWithoutRef = props;
5734
- var children$jscomp$0 = renderWithHooks(
6025
+ var children$jscomp$1 = renderWithHooks(
5735
6026
  request,
5736
6027
  task,
5737
6028
  keyPath,
@@ -5743,7 +6034,7 @@
5743
6034
  request,
5744
6035
  task,
5745
6036
  keyPath,
5746
- children$jscomp$0,
6037
+ children$jscomp$1,
5747
6038
  0 !== localIdCounter,
5748
6039
  actionStateCounter,
5749
6040
  actionStateMatchingIndex
@@ -5755,9 +6046,9 @@
5755
6046
  case REACT_PROVIDER_TYPE:
5756
6047
  case REACT_CONTEXT_TYPE:
5757
6048
  var value$jscomp$0 = props.value,
5758
- children$jscomp$1 = props.children;
6049
+ children$jscomp$2 = props.children;
5759
6050
  var prevSnapshot = task.context;
5760
- var prevKeyPath$jscomp$4 = task.keyPath;
6051
+ var prevKeyPath$jscomp$5 = task.keyPath;
5761
6052
  var prevValue = type._currentValue;
5762
6053
  type._currentValue = value$jscomp$0;
5763
6054
  void 0 !== type._currentRenderer &&
@@ -5778,7 +6069,7 @@
5778
6069
  currentActiveSnapshot = newNode;
5779
6070
  task.context = newNode;
5780
6071
  task.keyPath = keyPath;
5781
- renderNodeDestructive(request, task, children$jscomp$1, -1);
6072
+ renderNodeDestructive(request, task, children$jscomp$2, -1);
5782
6073
  var prevSnapshot$jscomp$0 = currentActiveSnapshot;
5783
6074
  if (null === prevSnapshot$jscomp$0)
5784
6075
  throw Error(
@@ -5800,7 +6091,7 @@
5800
6091
  var JSCompiler_inline_result$jscomp$0 = (currentActiveSnapshot =
5801
6092
  prevSnapshot$jscomp$0.parent);
5802
6093
  task.context = JSCompiler_inline_result$jscomp$0;
5803
- task.keyPath = prevKeyPath$jscomp$4;
6094
+ task.keyPath = prevKeyPath$jscomp$5;
5804
6095
  prevSnapshot !== task.context &&
5805
6096
  console.error(
5806
6097
  "Popping the context provider did not return back to the original snapshot. This is a bug in React."
@@ -5814,10 +6105,10 @@
5814
6105
  "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."
5815
6106
  );
5816
6107
  var newChildren = render(context$jscomp$0._currentValue),
5817
- prevKeyPath$jscomp$5 = task.keyPath;
6108
+ prevKeyPath$jscomp$6 = task.keyPath;
5818
6109
  task.keyPath = keyPath;
5819
6110
  renderNodeDestructive(request, task, newChildren, -1);
5820
- task.keyPath = prevKeyPath$jscomp$5;
6111
+ task.keyPath = prevKeyPath$jscomp$6;
5821
6112
  return;
5822
6113
  case REACT_LAZY_TYPE:
5823
6114
  var Component = callLazyInitInDEV(type);
@@ -5949,6 +6240,7 @@
5949
6240
  node = null === node[4] ? null : node[4][3];
5950
6241
  var prevKeyPath = task.keyPath,
5951
6242
  prevContext = task.formatContext,
6243
+ prevRow = task.row,
5952
6244
  previousReplaySet = task.replay,
5953
6245
  parentBoundary = task.blockedBoundary,
5954
6246
  parentHoistableState = task.hoistableState,
@@ -5959,12 +6251,14 @@
5959
6251
  task.formatContext.insertionMode < HTML_MODE
5960
6252
  ? createSuspenseBoundary(
5961
6253
  request,
6254
+ task.row,
5962
6255
  fallbackAbortSet,
5963
6256
  createPreambleState(),
5964
6257
  createPreambleState()
5965
6258
  )
5966
6259
  : createSuspenseBoundary(
5967
6260
  request,
6261
+ task.row,
5968
6262
  fallbackAbortSet,
5969
6263
  null,
5970
6264
  null
@@ -5978,6 +6272,7 @@
5978
6272
  request.resumableState,
5979
6273
  prevContext
5980
6274
  );
6275
+ task.row = null;
5981
6276
  task.replay = { nodes: type, slots: ref, pendingTasks: 1 };
5982
6277
  try {
5983
6278
  renderNode(request, task, content, -1);
@@ -6011,7 +6306,8 @@
6011
6306
  (task.hoistableState = parentHoistableState),
6012
6307
  (task.replay = previousReplaySet),
6013
6308
  (task.keyPath = prevKeyPath),
6014
- (task.formatContext = prevContext);
6309
+ (task.formatContext = prevContext),
6310
+ (task.row = prevRow);
6015
6311
  }
6016
6312
  props = createReplayTask(
6017
6313
  request,
@@ -6029,6 +6325,7 @@
6029
6325
  ),
6030
6326
  task.context,
6031
6327
  task.treeContext,
6328
+ task.row,
6032
6329
  task.componentStack,
6033
6330
  emptyContextObject,
6034
6331
  task.debugTask
@@ -6042,6 +6339,35 @@
6042
6339
  }
6043
6340
  }
6044
6341
  }
6342
+ function validateIterable(
6343
+ task,
6344
+ iterable,
6345
+ childIndex,
6346
+ iterator,
6347
+ iteratorFn
6348
+ ) {
6349
+ if (iterator === iterable) {
6350
+ if (
6351
+ -1 !== childIndex ||
6352
+ null === task.componentStack ||
6353
+ "function" !== typeof task.componentStack.type ||
6354
+ "[object GeneratorFunction]" !==
6355
+ Object.prototype.toString.call(task.componentStack.type) ||
6356
+ "[object Generator]" !== Object.prototype.toString.call(iterator)
6357
+ )
6358
+ didWarnAboutGenerators ||
6359
+ console.error(
6360
+ "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."
6361
+ ),
6362
+ (didWarnAboutGenerators = !0);
6363
+ } else
6364
+ iterable.entries !== iteratorFn ||
6365
+ didWarnAboutMaps ||
6366
+ (console.error(
6367
+ "Using Maps as children is not supported. Use an array of keyed ReactElements instead."
6368
+ ),
6369
+ (didWarnAboutMaps = !0));
6370
+ }
6045
6371
  function renderNodeDestructive(request, task, node, childIndex) {
6046
6372
  null !== task.replay && "number" === typeof task.replay.slots
6047
6373
  ? resumeNode(request, task, task.replay.slots, node, childIndex)
@@ -6118,52 +6444,27 @@
6118
6444
  "Portals are not currently supported by the server renderer. Render them conditionally so that they only appear on the client render."
6119
6445
  );
6120
6446
  case REACT_LAZY_TYPE:
6121
- node = callLazyInitInDEV(node);
6447
+ type = callLazyInitInDEV(node);
6122
6448
  if (12 === request.status) throw null;
6123
- renderNodeDestructive(request, task, node, childIndex);
6449
+ renderNodeDestructive(request, task, type, childIndex);
6124
6450
  return;
6125
6451
  }
6126
6452
  if (isArrayImpl(node)) {
6127
6453
  renderChildrenArray(request, task, node, childIndex);
6128
6454
  return;
6129
6455
  }
6130
- null === node || "object" !== typeof node
6131
- ? (key = null)
6132
- : ((type =
6133
- (MAYBE_ITERATOR_SYMBOL && node[MAYBE_ITERATOR_SYMBOL]) ||
6134
- node["@@iterator"]),
6135
- (key = "function" === typeof type ? type : null));
6136
- if (key && (type = key.call(node))) {
6137
- if (type === node) {
6138
- if (
6139
- -1 !== childIndex ||
6140
- null === task.componentStack ||
6141
- "function" !== typeof task.componentStack.type ||
6142
- "[object GeneratorFunction]" !==
6143
- Object.prototype.toString.call(task.componentStack.type) ||
6144
- "[object Generator]" !== Object.prototype.toString.call(type)
6145
- )
6146
- didWarnAboutGenerators ||
6147
- console.error(
6148
- "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."
6149
- ),
6150
- (didWarnAboutGenerators = !0);
6151
- } else
6152
- node.entries !== key ||
6153
- didWarnAboutMaps ||
6154
- (console.error(
6155
- "Using Maps as children is not supported. Use an array of keyed ReactElements instead."
6156
- ),
6157
- (didWarnAboutMaps = !0));
6158
- node = type.next();
6159
- if (!node.done) {
6160
- key = [];
6161
- do key.push(node.value), (node = type.next());
6162
- while (!node.done);
6163
- renderChildrenArray(request, task, key, childIndex);
6456
+ if ((key = getIteratorFn(node)))
6457
+ if ((type = key.call(node))) {
6458
+ validateIterable(task, node, childIndex, type, key);
6459
+ node = type.next();
6460
+ if (!node.done) {
6461
+ key = [];
6462
+ do key.push(node.value), (node = type.next());
6463
+ while (!node.done);
6464
+ renderChildrenArray(request, task, key, childIndex);
6465
+ }
6466
+ return;
6164
6467
  }
6165
- return;
6166
- }
6167
6468
  if ("function" === typeof node.then)
6168
6469
  return (
6169
6470
  (task.thenableState = null),
@@ -6222,6 +6523,69 @@
6222
6523
  ));
6223
6524
  }
6224
6525
  }
6526
+ function warnForMissingKey(request, task, child) {
6527
+ if (
6528
+ null !== child &&
6529
+ "object" === typeof child &&
6530
+ (child.$$typeof === REACT_ELEMENT_TYPE ||
6531
+ child.$$typeof === REACT_PORTAL_TYPE) &&
6532
+ child._store &&
6533
+ ((!child._store.validated && null == child.key) ||
6534
+ 2 === child._store.validated)
6535
+ ) {
6536
+ if ("object" !== typeof child._store)
6537
+ throw Error(
6538
+ "React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue."
6539
+ );
6540
+ child._store.validated = 1;
6541
+ var didWarnForKey = request.didWarnForKey;
6542
+ null == didWarnForKey &&
6543
+ (didWarnForKey = request.didWarnForKey = new WeakSet());
6544
+ request = task.componentStack;
6545
+ if (null !== request && !didWarnForKey.has(request)) {
6546
+ didWarnForKey.add(request);
6547
+ var componentName = getComponentNameFromType(child.type);
6548
+ didWarnForKey = child._owner;
6549
+ var parentOwner = request.owner;
6550
+ request = "";
6551
+ if (parentOwner && "undefined" !== typeof parentOwner.type) {
6552
+ var name = getComponentNameFromType(parentOwner.type);
6553
+ name &&
6554
+ (request = "\n\nCheck the render method of `" + name + "`.");
6555
+ }
6556
+ request ||
6557
+ (componentName &&
6558
+ (request =
6559
+ "\n\nCheck the top-level render call using <" +
6560
+ componentName +
6561
+ ">."));
6562
+ componentName = "";
6563
+ null != didWarnForKey &&
6564
+ parentOwner !== didWarnForKey &&
6565
+ ((parentOwner = null),
6566
+ "undefined" !== typeof didWarnForKey.type
6567
+ ? (parentOwner = getComponentNameFromType(didWarnForKey.type))
6568
+ : "string" === typeof didWarnForKey.name &&
6569
+ (parentOwner = didWarnForKey.name),
6570
+ parentOwner &&
6571
+ (componentName =
6572
+ " It was passed a child from " + parentOwner + "."));
6573
+ didWarnForKey = task.componentStack;
6574
+ task.componentStack = {
6575
+ parent: task.componentStack,
6576
+ type: child.type,
6577
+ owner: child._owner,
6578
+ stack: child._debugStack
6579
+ };
6580
+ console.error(
6581
+ 'Each child in a list should have a unique "key" prop.%s%s See https://react.dev/link/warning-keys for more information.',
6582
+ request,
6583
+ componentName
6584
+ );
6585
+ task.componentStack = didWarnForKey;
6586
+ }
6587
+ }
6588
+ }
6225
6589
  function renderChildrenArray(request, task, children, childIndex) {
6226
6590
  var prevKeyPath = task.keyPath,
6227
6591
  previousComponentStack = task.componentStack;
@@ -6315,76 +6679,11 @@
6315
6679
  task.debugTask = previousDebugTask;
6316
6680
  return;
6317
6681
  }
6318
- for (j = 0; j < replayNodes; j++) {
6319
- childIndex = children[j];
6320
- resumeSlots = request;
6321
- node = task;
6322
- error = childIndex;
6323
- if (
6324
- null !== error &&
6325
- "object" === typeof error &&
6326
- (error.$$typeof === REACT_ELEMENT_TYPE ||
6327
- error.$$typeof === REACT_PORTAL_TYPE) &&
6328
- error._store &&
6329
- ((!error._store.validated && null == error.key) ||
6330
- 2 === error._store.validated)
6331
- ) {
6332
- if ("object" !== typeof error._store)
6333
- throw Error(
6334
- "React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue."
6335
- );
6336
- error._store.validated = 1;
6337
- thrownInfo = resumeSlots.didWarnForKey;
6338
- null == thrownInfo &&
6339
- (thrownInfo = resumeSlots.didWarnForKey = new WeakSet());
6340
- resumeSlots = node.componentStack;
6341
- if (null !== resumeSlots && !thrownInfo.has(resumeSlots)) {
6342
- thrownInfo.add(resumeSlots);
6343
- var componentName = getComponentNameFromType(error.type);
6344
- thrownInfo = error._owner;
6345
- var parentOwner = resumeSlots.owner;
6346
- resumeSlots = "";
6347
- if (parentOwner && "undefined" !== typeof parentOwner.type) {
6348
- var name = getComponentNameFromType(parentOwner.type);
6349
- name &&
6350
- (resumeSlots =
6351
- "\n\nCheck the render method of `" + name + "`.");
6352
- }
6353
- resumeSlots ||
6354
- (componentName &&
6355
- (resumeSlots =
6356
- "\n\nCheck the top-level render call using <" +
6357
- componentName +
6358
- ">."));
6359
- componentName = "";
6360
- null != thrownInfo &&
6361
- parentOwner !== thrownInfo &&
6362
- ((parentOwner = null),
6363
- "undefined" !== typeof thrownInfo.type
6364
- ? (parentOwner = getComponentNameFromType(thrownInfo.type))
6365
- : "string" === typeof thrownInfo.name &&
6366
- (parentOwner = thrownInfo.name),
6367
- parentOwner &&
6368
- (componentName =
6369
- " It was passed a child from " + parentOwner + "."));
6370
- thrownInfo = node.componentStack;
6371
- node.componentStack = {
6372
- parent: node.componentStack,
6373
- type: error.type,
6374
- owner: error._owner,
6375
- stack: error._debugStack
6376
- };
6377
- console.error(
6378
- 'Each child in a list should have a unique "key" prop.%s%s See https://react.dev/link/warning-keys for more information.',
6379
- resumeSlots,
6380
- componentName
6381
- );
6382
- node.componentStack = thrownInfo;
6383
- }
6384
- }
6385
- task.treeContext = pushTreeContext(replay, replayNodes, j);
6386
- renderNode(request, task, childIndex, j);
6387
- }
6682
+ for (j = 0; j < replayNodes; j++)
6683
+ (childIndex = children[j]),
6684
+ warnForMissingKey(request, task, childIndex),
6685
+ (task.treeContext = pushTreeContext(replay, replayNodes, j)),
6686
+ renderNode(request, task, childIndex, j);
6388
6687
  task.treeContext = replay;
6389
6688
  task.keyPath = prevKeyPath;
6390
6689
  task.componentStack = previousComponentStack;
@@ -6413,6 +6712,7 @@
6413
6712
  task.formatContext,
6414
6713
  task.context,
6415
6714
  task.treeContext,
6715
+ task.row,
6416
6716
  task.componentStack,
6417
6717
  emptyContextObject,
6418
6718
  task.debugTask
@@ -6444,6 +6744,7 @@
6444
6744
  task.formatContext,
6445
6745
  task.context,
6446
6746
  task.treeContext,
6747
+ task.row,
6447
6748
  task.componentStack,
6448
6749
  emptyContextObject,
6449
6750
  task.debugTask
@@ -6558,9 +6859,11 @@
6558
6859
  throw node;
6559
6860
  }
6560
6861
  function abortTaskSoft(task) {
6561
- var boundary = task.blockedBoundary;
6562
- task = task.blockedSegment;
6563
- null !== task && ((task.status = 3), finishedTask(this, boundary, task));
6862
+ var boundary = task.blockedBoundary,
6863
+ segment = task.blockedSegment;
6864
+ null !== segment &&
6865
+ ((segment.status = ABORTED),
6866
+ finishedTask(this, boundary, task.row, segment));
6564
6867
  }
6565
6868
  function abortRemainingReplayNodes(
6566
6869
  request$jscomp$0,
@@ -6594,6 +6897,7 @@
6594
6897
  wasAborted = aborted,
6595
6898
  resumedBoundary = createSuspenseBoundary(
6596
6899
  request,
6900
+ null,
6597
6901
  new Set(),
6598
6902
  null,
6599
6903
  null
@@ -6638,7 +6942,7 @@
6638
6942
  segment = task.blockedSegment;
6639
6943
  if (null !== segment) {
6640
6944
  if (6 === segment.status) return;
6641
- segment.status = 3;
6945
+ segment.status = ABORTED;
6642
6946
  }
6643
6947
  segment = getThrownInfo(task.componentStack);
6644
6948
  if (null === boundary) {
@@ -6650,36 +6954,49 @@
6650
6954
  return;
6651
6955
  }
6652
6956
  boundary.pendingTasks--;
6653
- 0 === boundary.pendingTasks &&
6654
- 0 < boundary.nodes.length &&
6655
- ((task = logRecoverableError(request, error, segment, null)),
6957
+ if (0 === boundary.pendingTasks && 0 < boundary.nodes.length) {
6958
+ var errorDigest = logRecoverableError(
6959
+ request,
6960
+ error,
6961
+ segment,
6962
+ null
6963
+ );
6656
6964
  abortRemainingReplayNodes(
6657
6965
  request,
6658
6966
  null,
6659
6967
  boundary.nodes,
6660
6968
  boundary.slots,
6661
6969
  error,
6662
- task,
6970
+ errorDigest,
6663
6971
  segment,
6664
6972
  !0
6665
- ));
6973
+ );
6974
+ }
6666
6975
  request.pendingRootTasks--;
6667
6976
  0 === request.pendingRootTasks && completeShell(request);
6668
6977
  }
6669
6978
  } else
6670
- boundary.pendingTasks--,
6671
- boundary.status !== CLIENT_RENDERED &&
6672
- ((boundary.status = CLIENT_RENDERED),
6673
- (task = logRecoverableError(request, error, segment, null)),
6674
- (boundary.status = CLIENT_RENDERED),
6675
- encodeErrorForBoundary(boundary, task, error, segment, !0),
6676
- untrackBoundary(request, boundary),
6677
- boundary.parentFlushed &&
6678
- request.clientRenderedBoundaries.push(boundary)),
6979
+ boundary.status !== CLIENT_RENDERED &&
6980
+ ((boundary.status = CLIENT_RENDERED),
6981
+ (errorDigest = logRecoverableError(request, error, segment, null)),
6982
+ (boundary.status = CLIENT_RENDERED),
6983
+ encodeErrorForBoundary(boundary, errorDigest, error, segment, !0),
6984
+ untrackBoundary(request, boundary),
6985
+ boundary.parentFlushed &&
6986
+ request.clientRenderedBoundaries.push(boundary)),
6987
+ boundary.pendingTasks--,
6988
+ (segment = boundary.row),
6989
+ null !== segment &&
6990
+ 0 === --segment.pendingTasks &&
6991
+ finishSuspenseListRow(request, segment),
6679
6992
  boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
6680
6993
  return abortTask(fallbackTask, request, error);
6681
6994
  }),
6682
6995
  boundary.fallbackAbortableTasks.clear();
6996
+ task = task.row;
6997
+ null !== task &&
6998
+ 0 === --task.pendingTasks &&
6999
+ finishSuspenseListRow(request, task);
6683
7000
  request.allPendingTasks--;
6684
7001
  0 === request.allPendingTasks && completeAll(request);
6685
7002
  }
@@ -6791,7 +7108,11 @@
6791
7108
  : (boundary.byteSize += segmentByteSize);
6792
7109
  }
6793
7110
  }
6794
- function finishedTask(request, boundary, segment) {
7111
+ function finishedTask(request, boundary, row, segment) {
7112
+ null !== row &&
7113
+ (0 === --row.pendingTasks
7114
+ ? finishSuspenseListRow(request, row)
7115
+ : row.together && tryToResolveTogetherRow(request, row));
6795
7116
  request.allPendingTasks--;
6796
7117
  if (null === boundary) {
6797
7118
  if (null !== segment && segment.parentFlushed) {
@@ -6815,23 +7136,33 @@
6815
7136
  boundary.parentFlushed &&
6816
7137
  request.completedBoundaries.push(boundary),
6817
7138
  boundary.status === COMPLETED &&
6818
- (500 < boundary.byteSize ||
7139
+ ((row = boundary.row),
7140
+ null !== row &&
7141
+ hoistHoistables(row.hoistables, boundary.contentState),
7142
+ 500 < boundary.byteSize ||
6819
7143
  (boundary.fallbackAbortableTasks.forEach(
6820
7144
  abortTaskSoft,
6821
7145
  request
6822
7146
  ),
6823
- boundary.fallbackAbortableTasks.clear()),
7147
+ boundary.fallbackAbortableTasks.clear(),
7148
+ null !== row &&
7149
+ 0 === --row.pendingTasks &&
7150
+ finishSuspenseListRow(request, row)),
6824
7151
  0 === request.pendingRootTasks &&
6825
7152
  null === request.trackedPostpones &&
6826
7153
  null !== boundary.contentPreamble &&
6827
7154
  preparePreamble(request)))
6828
- : null !== segment &&
6829
- segment.parentFlushed &&
6830
- segment.status === COMPLETED &&
6831
- (queueCompletedSegment(boundary, segment),
6832
- 1 === boundary.completedSegments.length &&
6833
- boundary.parentFlushed &&
6834
- request.partialBoundaries.push(boundary)));
7155
+ : (null !== segment &&
7156
+ segment.parentFlushed &&
7157
+ segment.status === COMPLETED &&
7158
+ (queueCompletedSegment(boundary, segment),
7159
+ 1 === boundary.completedSegments.length &&
7160
+ boundary.parentFlushed &&
7161
+ request.partialBoundaries.push(boundary)),
7162
+ (boundary = boundary.row),
7163
+ null !== boundary &&
7164
+ boundary.together &&
7165
+ tryToResolveTogetherRow(request, boundary)));
6835
7166
  0 === request.allPendingTasks && completeAll(request);
6836
7167
  }
6837
7168
  function performWork(request$jscomp$2) {
@@ -6884,7 +7215,12 @@
6884
7215
  );
6885
7216
  request.replay.pendingTasks--;
6886
7217
  request.abortSet.delete(request);
6887
- finishedTask(request$jscomp$0, request.blockedBoundary, null);
7218
+ finishedTask(
7219
+ request$jscomp$0,
7220
+ request.blockedBoundary,
7221
+ request.row,
7222
+ null
7223
+ );
6888
7224
  } catch (thrownValue) {
6889
7225
  resetHooksState();
6890
7226
  var x =
@@ -6967,6 +7303,7 @@
6967
7303
  finishedTask(
6968
7304
  request,
6969
7305
  errorDigest.blockedBoundary,
7306
+ errorDigest.row,
6970
7307
  request$jscomp$1
6971
7308
  );
6972
7309
  } catch (thrownValue) {
@@ -6995,40 +7332,49 @@
6995
7332
  errorDigest.abortSet.delete(errorDigest);
6996
7333
  request$jscomp$1.status = 4;
6997
7334
  var boundary$jscomp$0 = errorDigest.blockedBoundary,
7335
+ row = errorDigest.row,
6998
7336
  debugTask = errorDigest.debugTask;
7337
+ null !== row &&
7338
+ 0 === --row.pendingTasks &&
7339
+ finishSuspenseListRow(request, row);
7340
+ request.allPendingTasks--;
6999
7341
  prevTaskInDEV = logRecoverableError(
7000
7342
  request,
7001
7343
  x$jscomp$0,
7002
7344
  errorInfo$jscomp$1,
7003
7345
  debugTask
7004
7346
  );
7005
- null === boundary$jscomp$0
7006
- ? fatalError(
7007
- request,
7008
- x$jscomp$0,
7009
- errorInfo$jscomp$1,
7010
- debugTask
7011
- )
7012
- : (boundary$jscomp$0.pendingTasks--,
7013
- boundary$jscomp$0.status !== CLIENT_RENDERED &&
7014
- ((boundary$jscomp$0.status = CLIENT_RENDERED),
7015
- encodeErrorForBoundary(
7016
- boundary$jscomp$0,
7017
- prevTaskInDEV,
7018
- x$jscomp$0,
7019
- errorInfo$jscomp$1,
7020
- !1
7021
- ),
7022
- untrackBoundary(request, boundary$jscomp$0),
7023
- boundary$jscomp$0.parentFlushed &&
7024
- request.clientRenderedBoundaries.push(
7025
- boundary$jscomp$0
7026
- ),
7027
- 0 === request.pendingRootTasks &&
7028
- null === request.trackedPostpones &&
7029
- null !== boundary$jscomp$0.contentPreamble &&
7030
- preparePreamble(request)));
7031
- request.allPendingTasks--;
7347
+ if (null === boundary$jscomp$0)
7348
+ fatalError(
7349
+ request,
7350
+ x$jscomp$0,
7351
+ errorInfo$jscomp$1,
7352
+ debugTask
7353
+ );
7354
+ else if (
7355
+ (boundary$jscomp$0.pendingTasks--,
7356
+ boundary$jscomp$0.status !== CLIENT_RENDERED)
7357
+ ) {
7358
+ boundary$jscomp$0.status = CLIENT_RENDERED;
7359
+ encodeErrorForBoundary(
7360
+ boundary$jscomp$0,
7361
+ prevTaskInDEV,
7362
+ x$jscomp$0,
7363
+ errorInfo$jscomp$1,
7364
+ !1
7365
+ );
7366
+ untrackBoundary(request, boundary$jscomp$0);
7367
+ var boundaryRow = boundary$jscomp$0.row;
7368
+ null !== boundaryRow &&
7369
+ 0 === --boundaryRow.pendingTasks &&
7370
+ finishSuspenseListRow(request, boundaryRow);
7371
+ boundary$jscomp$0.parentFlushed &&
7372
+ request.clientRenderedBoundaries.push(boundary$jscomp$0);
7373
+ 0 === request.pendingRootTasks &&
7374
+ null === request.trackedPostpones &&
7375
+ null !== boundary$jscomp$0.contentPreamble &&
7376
+ preparePreamble(request);
7377
+ }
7032
7378
  0 === request.allPendingTasks && completeAll(request);
7033
7379
  }
7034
7380
  } finally {
@@ -7180,15 +7526,19 @@
7180
7526
  return flushSubtree(request, destination, segment, hoistableState);
7181
7527
  boundary.parentFlushed = !0;
7182
7528
  if (boundary.status === CLIENT_RENDERED) {
7183
- var errorDigest = boundary.errorDigest,
7184
- errorMessage = boundary.errorMessage,
7529
+ var row = boundary.row;
7530
+ null !== row &&
7531
+ 0 === --row.pendingTasks &&
7532
+ finishSuspenseListRow(request, row);
7533
+ row = boundary.errorDigest;
7534
+ var errorMessage = boundary.errorMessage,
7185
7535
  errorStack = boundary.errorStack;
7186
7536
  boundary = boundary.errorComponentStack;
7187
7537
  writeChunkAndReturn(destination, startClientRenderedSuspenseBoundary);
7188
7538
  writeChunk(destination, clientRenderedSuspenseBoundaryError1);
7189
- errorDigest &&
7539
+ row &&
7190
7540
  (writeChunk(destination, clientRenderedSuspenseBoundaryError1A),
7191
- writeChunk(destination, escapeTextForBrowser(errorDigest)),
7541
+ writeChunk(destination, escapeTextForBrowser(row)),
7192
7542
  writeChunk(
7193
7543
  destination,
7194
7544
  clientRenderedSuspenseBoundaryErrorAttrInterstitial
@@ -7227,12 +7577,7 @@
7227
7577
  boundary.rootSegmentID
7228
7578
  ),
7229
7579
  hoistableState &&
7230
- ((boundary = boundary.fallbackState),
7231
- boundary.styles.forEach(hoistStyleQueueDependency, hoistableState),
7232
- boundary.stylesheets.forEach(
7233
- hoistStylesheetDependency,
7234
- hoistableState
7235
- )),
7580
+ hoistHoistables(hoistableState, boundary.fallbackState),
7236
7581
  flushSubtree(request, destination, segment, hoistableState);
7237
7582
  else if (
7238
7583
  500 < boundary.byteSize &&
@@ -7249,12 +7594,12 @@
7249
7594
  else {
7250
7595
  flushedByteSize += boundary.byteSize;
7251
7596
  hoistableState &&
7252
- ((segment = boundary.contentState),
7253
- segment.styles.forEach(hoistStyleQueueDependency, hoistableState),
7254
- segment.stylesheets.forEach(
7255
- hoistStylesheetDependency,
7256
- hoistableState
7257
- ));
7597
+ hoistHoistables(hoistableState, boundary.contentState);
7598
+ segment = boundary.row;
7599
+ null !== segment &&
7600
+ 500 < boundary.byteSize &&
7601
+ 0 === --segment.pendingTasks &&
7602
+ finishSuspenseListRow(request, segment);
7258
7603
  writeChunkAndReturn(destination, startCompletedSuspenseBoundary);
7259
7604
  segment = boundary.completedSegments;
7260
7605
  if (1 !== segment.length)
@@ -7294,6 +7639,11 @@
7294
7639
  completedSegments[i]
7295
7640
  );
7296
7641
  completedSegments.length = 0;
7642
+ completedSegments = boundary.row;
7643
+ null !== completedSegments &&
7644
+ 500 < boundary.byteSize &&
7645
+ 0 === --completedSegments.pendingTasks &&
7646
+ finishSuspenseListRow(request, completedSegments);
7297
7647
  writeHoistablesForBoundary(
7298
7648
  destination,
7299
7649
  boundary.contentState,
@@ -7687,6 +8037,17 @@
7687
8037
  break a;
7688
8038
  }
7689
8039
  completedSegments.splice(0, JSCompiler_inline_result);
8040
+ var row = boundary$jscomp$0.row;
8041
+ null !== row &&
8042
+ row.together &&
8043
+ 1 === boundary$jscomp$0.pendingTasks &&
8044
+ (1 === row.pendingTasks
8045
+ ? unblockSuspenseListRow(
8046
+ clientRenderedBoundaries,
8047
+ row,
8048
+ row.hoistables
8049
+ )
8050
+ : row.pendingTasks--);
7690
8051
  JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
7691
8052
  boundary,
7692
8053
  boundary$jscomp$0.contentState,
@@ -7806,11 +8167,11 @@
7806
8167
  }
7807
8168
  function ensureCorrectIsomorphicReactVersion() {
7808
8169
  var isomorphicReactPackageVersion = React.version;
7809
- if ("19.2.0-canary-462d08f9-20250517" !== isomorphicReactPackageVersion)
8170
+ if ("19.2.0-canary-23884812-20250520" !== isomorphicReactPackageVersion)
7810
8171
  throw Error(
7811
8172
  'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
7812
8173
  (isomorphicReactPackageVersion +
7813
- "\n - react-dom: 19.2.0-canary-462d08f9-20250517\nLearn more: https://react.dev/warnings/version-mismatch")
8174
+ "\n - react-dom: 19.2.0-canary-23884812-20250520\nLearn more: https://react.dev/warnings/version-mismatch")
7814
8175
  );
7815
8176
  }
7816
8177
  function createDrainHandler(destination, request) {
@@ -9388,6 +9749,7 @@
9388
9749
  PENDING = 0,
9389
9750
  COMPLETED = 1,
9390
9751
  FLUSHED = 2,
9752
+ ABORTED = 3,
9391
9753
  POSTPONED = 5,
9392
9754
  CLOSED = 14,
9393
9755
  currentRequest = null,
@@ -9491,5 +9853,5 @@
9491
9853
  }
9492
9854
  };
9493
9855
  };
9494
- exports.version = "19.2.0-canary-462d08f9-20250517";
9856
+ exports.version = "19.2.0-canary-23884812-20250520";
9495
9857
  })();