react-dom 19.2.0-canary-c4676e72-20250520 → 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.
@@ -3255,6 +3255,10 @@ function hoistStyleQueueDependency(styleQueue) {
3255
3255
  function hoistStylesheetDependency(stylesheet) {
3256
3256
  this.stylesheets.add(stylesheet);
3257
3257
  }
3258
+ function hoistHoistables(parentState, childState) {
3259
+ childState.styles.forEach(hoistStyleQueueDependency, parentState);
3260
+ childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
3261
+ }
3258
3262
  var bind = Function.prototype.bind,
3259
3263
  REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference");
3260
3264
  function getComponentNameFromType(type) {
@@ -4161,11 +4165,14 @@ function createSuspenseBoundary(
4161
4165
  };
4162
4166
  null !== row &&
4163
4167
  (row.pendingTasks++,
4164
- (row = row.boundaries),
4165
- null !== row &&
4168
+ (contentPreamble = row.boundaries),
4169
+ null !== contentPreamble &&
4166
4170
  (request.allPendingTasks++,
4167
4171
  fallbackAbortableTasks.pendingTasks++,
4168
- row.push(fallbackAbortableTasks)));
4172
+ contentPreamble.push(fallbackAbortableTasks)),
4173
+ (request = row.inheritedHoistables),
4174
+ null !== request &&
4175
+ hoistHoistables(fallbackAbortableTasks.contentState, request));
4169
4176
  return fallbackAbortableTasks;
4170
4177
  }
4171
4178
  function createRenderTask(
@@ -4330,20 +4337,56 @@ function fatalError(request, error) {
4330
4337
  : ((request.status = 13), (request.fatalError = error));
4331
4338
  }
4332
4339
  function finishSuspenseListRow(request, row) {
4333
- for (row = row.next; null !== row; ) {
4334
- var unblockedBoundaries = row.boundaries;
4340
+ unblockSuspenseListRow(request, row.next, row.hoistables);
4341
+ }
4342
+ function unblockSuspenseListRow(request, unblockedRow, inheritedHoistables) {
4343
+ for (; null !== unblockedRow; ) {
4344
+ null !== inheritedHoistables &&
4345
+ (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
4346
+ (unblockedRow.inheritedHoistables = inheritedHoistables));
4347
+ var unblockedBoundaries = unblockedRow.boundaries;
4335
4348
  if (null !== unblockedBoundaries) {
4336
- row.boundaries = null;
4337
- for (var i = 0; i < unblockedBoundaries.length; i++)
4338
- finishedTask(request, unblockedBoundaries[i], null, null);
4349
+ unblockedRow.boundaries = null;
4350
+ for (var i = 0; i < unblockedBoundaries.length; i++) {
4351
+ var unblockedBoundary = unblockedBoundaries[i];
4352
+ null !== inheritedHoistables &&
4353
+ hoistHoistables(unblockedBoundary.contentState, inheritedHoistables);
4354
+ finishedTask(request, unblockedBoundary, null, null);
4355
+ }
4356
+ }
4357
+ unblockedRow.pendingTasks--;
4358
+ if (0 < unblockedRow.pendingTasks) break;
4359
+ inheritedHoistables = unblockedRow.hoistables;
4360
+ unblockedRow = unblockedRow.next;
4361
+ }
4362
+ }
4363
+ function tryToResolveTogetherRow(request, togetherRow) {
4364
+ var boundaries = togetherRow.boundaries;
4365
+ if (null !== boundaries && togetherRow.pendingTasks === boundaries.length) {
4366
+ for (var allCompleteAndInlinable = !0, i = 0; i < boundaries.length; i++) {
4367
+ var rowBoundary = boundaries[i];
4368
+ if (
4369
+ 1 !== rowBoundary.pendingTasks ||
4370
+ rowBoundary.parentFlushed ||
4371
+ 500 < rowBoundary.byteSize
4372
+ ) {
4373
+ allCompleteAndInlinable = !1;
4374
+ break;
4375
+ }
4339
4376
  }
4340
- row.pendingTasks--;
4341
- if (0 < row.pendingTasks) break;
4342
- row = row.next;
4377
+ allCompleteAndInlinable &&
4378
+ unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
4343
4379
  }
4344
4380
  }
4345
4381
  function createSuspenseListRow(previousRow) {
4346
- var newRow = { pendingTasks: 1, boundaries: null, next: null };
4382
+ var newRow = {
4383
+ pendingTasks: 1,
4384
+ boundaries: null,
4385
+ hoistables: createHoistableState(),
4386
+ inheritedHoistables: null,
4387
+ together: !1,
4388
+ next: null
4389
+ };
4347
4390
  null !== previousRow &&
4348
4391
  0 < previousRow.pendingTasks &&
4349
4392
  (newRow.pendingTasks++,
@@ -4352,21 +4395,22 @@ function createSuspenseListRow(previousRow) {
4352
4395
  return newRow;
4353
4396
  }
4354
4397
  function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
4355
- keyPath = task.keyPath;
4356
- var prevTreeContext = task.treeContext,
4357
- prevRow = task.row,
4358
- totalChildren = rows.length,
4359
- previousSuspenseListRow = null;
4398
+ var prevKeyPath = task.keyPath,
4399
+ prevTreeContext = task.treeContext,
4400
+ prevRow = task.row;
4401
+ task.keyPath = keyPath;
4402
+ keyPath = rows.length;
4403
+ var previousSuspenseListRow = null;
4360
4404
  if (null !== task.replay) {
4361
4405
  var resumeSlots = task.replay.slots;
4362
4406
  if (null !== resumeSlots && "object" === typeof resumeSlots)
4363
- for (var n = 0; n < totalChildren; n++) {
4364
- var i = "backwards" !== revealOrder ? n : totalChildren - 1 - n,
4407
+ for (var n = 0; n < keyPath; n++) {
4408
+ var i = "backwards" !== revealOrder ? n : keyPath - 1 - n,
4365
4409
  node = rows[i];
4366
4410
  task.row = previousSuspenseListRow = createSuspenseListRow(
4367
4411
  previousSuspenseListRow
4368
4412
  );
4369
- task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i);
4413
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
4370
4414
  var resumeSegmentID = resumeSlots[i];
4371
4415
  "number" === typeof resumeSegmentID
4372
4416
  ? (resumeNode(request, task, resumeSegmentID, node, i),
@@ -4376,30 +4420,26 @@ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
4376
4420
  finishSuspenseListRow(request, previousSuspenseListRow);
4377
4421
  }
4378
4422
  else
4379
- for (resumeSlots = 0; resumeSlots < totalChildren; resumeSlots++)
4423
+ for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
4380
4424
  (n =
4381
4425
  "backwards" !== revealOrder
4382
4426
  ? resumeSlots
4383
- : totalChildren - 1 - resumeSlots),
4427
+ : keyPath - 1 - resumeSlots),
4384
4428
  (i = rows[n]),
4385
4429
  (task.row = previousSuspenseListRow =
4386
4430
  createSuspenseListRow(previousSuspenseListRow)),
4387
- (task.treeContext = pushTreeContext(
4388
- prevTreeContext,
4389
- totalChildren,
4390
- n
4391
- )),
4431
+ (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
4392
4432
  renderNode(request, task, i, n),
4393
4433
  0 === --previousSuspenseListRow.pendingTasks &&
4394
4434
  finishSuspenseListRow(request, previousSuspenseListRow);
4395
4435
  } else if ("backwards" !== revealOrder)
4396
- for (revealOrder = 0; revealOrder < totalChildren; revealOrder++)
4436
+ for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
4397
4437
  (resumeSlots = rows[revealOrder]),
4398
4438
  (task.row = previousSuspenseListRow =
4399
4439
  createSuspenseListRow(previousSuspenseListRow)),
4400
4440
  (task.treeContext = pushTreeContext(
4401
4441
  prevTreeContext,
4402
- totalChildren,
4442
+ keyPath,
4403
4443
  revealOrder
4404
4444
  )),
4405
4445
  renderNode(request, task, resumeSlots, revealOrder),
@@ -4409,12 +4449,12 @@ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
4409
4449
  revealOrder = task.blockedSegment;
4410
4450
  resumeSlots = revealOrder.children.length;
4411
4451
  n = revealOrder.chunks.length;
4412
- for (i = totalChildren - 1; 0 <= i; i--) {
4452
+ for (i = keyPath - 1; 0 <= i; i--) {
4413
4453
  node = rows[i];
4414
4454
  task.row = previousSuspenseListRow = createSuspenseListRow(
4415
4455
  previousSuspenseListRow
4416
4456
  );
4417
- task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i);
4457
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
4418
4458
  resumeSegmentID = createPendingSegment(
4419
4459
  request,
4420
4460
  n,
@@ -4450,7 +4490,7 @@ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
4450
4490
  (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
4451
4491
  task.treeContext = prevTreeContext;
4452
4492
  task.row = prevRow;
4453
- task.keyPath = keyPath;
4493
+ task.keyPath = prevKeyPath;
4454
4494
  }
4455
4495
  function renderWithHooks(request, task, keyPath, Component, props, secondArg) {
4456
4496
  var prevThenableState = task.thenableState;
@@ -4519,9 +4559,9 @@ function renderElement(request, task, keyPath, type, props, ref) {
4519
4559
  var defaultProps = type.defaultProps;
4520
4560
  if (defaultProps) {
4521
4561
  newProps === props && (newProps = assign({}, newProps, props));
4522
- for (var propName$42 in defaultProps)
4523
- void 0 === newProps[propName$42] &&
4524
- (newProps[propName$42] = defaultProps[propName$42]);
4562
+ for (var propName$43 in defaultProps)
4563
+ void 0 === newProps[propName$43] &&
4564
+ (newProps[propName$43] = defaultProps[propName$43]);
4525
4565
  }
4526
4566
  props = newProps;
4527
4567
  newProps = emptyContextObject;
@@ -4581,16 +4621,16 @@ function renderElement(request, task, keyPath, type, props, ref) {
4581
4621
  defaultProps = ref ? type[0] : newProps.state;
4582
4622
  initialState = !0;
4583
4623
  for (ref = ref ? 1 : 0; ref < type.length; ref++)
4584
- (propName$42 = type[ref]),
4585
- (propName$42 =
4586
- "function" === typeof propName$42
4587
- ? propName$42.call(newProps, defaultProps, props, void 0)
4588
- : propName$42),
4589
- null != propName$42 &&
4624
+ (propName$43 = type[ref]),
4625
+ (propName$43 =
4626
+ "function" === typeof propName$43
4627
+ ? propName$43.call(newProps, defaultProps, props, void 0)
4628
+ : propName$43),
4629
+ null != propName$43 &&
4590
4630
  (initialState
4591
4631
  ? ((initialState = !1),
4592
- (defaultProps = assign({}, defaultProps, propName$42)))
4593
- : assign(defaultProps, propName$42));
4632
+ (defaultProps = assign({}, defaultProps, propName$43)))
4633
+ : assign(defaultProps, propName$43));
4594
4634
  newProps.state = defaultProps;
4595
4635
  }
4596
4636
  else defaultProps.queue = null;
@@ -4764,10 +4804,25 @@ function renderElement(request, task, keyPath, type, props, ref) {
4764
4804
  break a;
4765
4805
  }
4766
4806
  }
4767
- props = task.keyPath;
4768
- task.keyPath = keyPath;
4769
- renderNodeDestructive(request, task, type, -1);
4770
- task.keyPath = props;
4807
+ "together" === props
4808
+ ? ((props = task.keyPath),
4809
+ (newProps = task.row),
4810
+ (defaultProps = task.row = createSuspenseListRow(null)),
4811
+ (defaultProps.boundaries = []),
4812
+ (defaultProps.together = !0),
4813
+ (task.keyPath = keyPath),
4814
+ renderNodeDestructive(request, task, type, -1),
4815
+ 0 === --defaultProps.pendingTasks &&
4816
+ finishSuspenseListRow(request, defaultProps),
4817
+ (task.keyPath = props),
4818
+ (task.row = newProps),
4819
+ null !== newProps &&
4820
+ 0 < defaultProps.pendingTasks &&
4821
+ (newProps.pendingTasks++, (defaultProps.next = newProps)))
4822
+ : ((props = task.keyPath),
4823
+ (task.keyPath = keyPath),
4824
+ renderNodeDestructive(request, task, type, -1),
4825
+ (task.keyPath = props));
4771
4826
  }
4772
4827
  return;
4773
4828
  case REACT_VIEW_TRANSITION_TYPE:
@@ -4796,7 +4851,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4796
4851
  type = task.keyPath;
4797
4852
  ref = task.formatContext;
4798
4853
  var prevRow = task.row;
4799
- propName$42 = task.blockedBoundary;
4854
+ propName$43 = task.blockedBoundary;
4800
4855
  propName = task.blockedPreamble;
4801
4856
  var parentHoistableState = task.hoistableState,
4802
4857
  parentSegment = task.blockedSegment,
@@ -4859,7 +4914,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4859
4914
  boundarySegment.textEmbedded &&
4860
4915
  boundarySegment.chunks.push(textSeparator),
4861
4916
  (boundarySegment.status = 1),
4862
- finishedSegment(request, propName$42, boundarySegment);
4917
+ finishedSegment(request, propName$43, boundarySegment);
4863
4918
  } catch (thrownValue) {
4864
4919
  throw (
4865
4920
  ((boundarySegment.status = 12 === request.status ? 3 : 4),
@@ -4914,18 +4969,21 @@ function renderElement(request, task, keyPath, type, props, ref) {
4914
4969
  (contentRootSegment.status = 1),
4915
4970
  finishedSegment(request, newBoundary, contentRootSegment),
4916
4971
  queueCompletedSegment(newBoundary, contentRootSegment),
4917
- 0 === newBoundary.pendingTasks &&
4918
- 0 === newBoundary.status &&
4919
- ((newBoundary.status = 1), !(500 < newBoundary.byteSize)))
4972
+ 0 === newBoundary.pendingTasks && 0 === newBoundary.status)
4920
4973
  ) {
4974
+ if (((newBoundary.status = 1), !(500 < newBoundary.byteSize))) {
4975
+ null !== prevRow &&
4976
+ 0 === --prevRow.pendingTasks &&
4977
+ finishSuspenseListRow(request, prevRow);
4978
+ 0 === request.pendingRootTasks &&
4979
+ task.blockedPreamble &&
4980
+ preparePreamble(request);
4981
+ break a;
4982
+ }
4983
+ } else
4921
4984
  null !== prevRow &&
4922
- 0 === --prevRow.pendingTasks &&
4923
- finishSuspenseListRow(request, prevRow);
4924
- 0 === request.pendingRootTasks &&
4925
- task.blockedPreamble &&
4926
- preparePreamble(request);
4927
- break a;
4928
- }
4985
+ prevRow.together &&
4986
+ tryToResolveTogetherRow(request, prevRow);
4929
4987
  } catch (thrownValue$30) {
4930
4988
  (newBoundary.status = 4),
4931
4989
  12 === request.status
@@ -4942,7 +5000,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4942
5000
  (newBoundary.errorDigest = initialState),
4943
5001
  untrackBoundary(request, newBoundary);
4944
5002
  } finally {
4945
- (task.blockedBoundary = propName$42),
5003
+ (task.blockedBoundary = propName$43),
4946
5004
  (task.blockedPreamble = propName),
4947
5005
  (task.hoistableState = parentHoistableState),
4948
5006
  (task.blockedSegment = parentSegment),
@@ -4955,7 +5013,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4955
5013
  null,
4956
5014
  fallback,
4957
5015
  -1,
4958
- propName$42,
5016
+ propName$43,
4959
5017
  boundarySegment,
4960
5018
  newBoundary.fallbackPreamble,
4961
5019
  newBoundary.fallbackState,
@@ -5532,15 +5590,15 @@ function renderNode(request, task, node, childIndex) {
5532
5590
  chunkLength = segment.chunks.length;
5533
5591
  try {
5534
5592
  return renderNodeDestructive(request, task, node, childIndex);
5535
- } catch (thrownValue$58) {
5593
+ } catch (thrownValue$59) {
5536
5594
  if (
5537
5595
  (resetHooksState(),
5538
5596
  (segment.children.length = childrenLength),
5539
5597
  (segment.chunks.length = chunkLength),
5540
5598
  (node =
5541
- thrownValue$58 === SuspenseException
5599
+ thrownValue$59 === SuspenseException
5542
5600
  ? getSuspendedThenable()
5543
- : thrownValue$58),
5601
+ : thrownValue$59),
5544
5602
  "object" === typeof node && null !== node)
5545
5603
  ) {
5546
5604
  if ("function" === typeof node.then) {
@@ -5639,10 +5697,6 @@ function abortTask(task, request, error) {
5639
5697
  if (6 === segment.status) return;
5640
5698
  segment.status = 3;
5641
5699
  }
5642
- segment = task.row;
5643
- null !== segment &&
5644
- 0 === --segment.pendingTasks &&
5645
- finishSuspenseListRow(request, segment);
5646
5700
  segment = getThrownInfo(task.componentStack);
5647
5701
  if (null === boundary) {
5648
5702
  if (13 !== request.status && 14 !== request.status) {
@@ -5655,32 +5709,40 @@ function abortTask(task, request, error) {
5655
5709
  boundary.pendingTasks--;
5656
5710
  0 === boundary.pendingTasks &&
5657
5711
  0 < boundary.nodes.length &&
5658
- ((task = logRecoverableError(request, error, segment)),
5712
+ ((segment = logRecoverableError(request, error, segment)),
5659
5713
  abortRemainingReplayNodes(
5660
5714
  request,
5661
5715
  null,
5662
5716
  boundary.nodes,
5663
5717
  boundary.slots,
5664
5718
  error,
5665
- task
5719
+ segment
5666
5720
  ));
5667
5721
  request.pendingRootTasks--;
5668
5722
  0 === request.pendingRootTasks && completeShell(request);
5669
5723
  }
5670
5724
  } else
5671
- boundary.pendingTasks--,
5672
- 4 !== boundary.status &&
5673
- ((boundary.status = 4),
5674
- (task = logRecoverableError(request, error, segment)),
5675
- (boundary.status = 4),
5676
- (boundary.errorDigest = task),
5677
- untrackBoundary(request, boundary),
5678
- boundary.parentFlushed &&
5679
- request.clientRenderedBoundaries.push(boundary)),
5725
+ 4 !== boundary.status &&
5726
+ ((boundary.status = 4),
5727
+ (segment = logRecoverableError(request, error, segment)),
5728
+ (boundary.status = 4),
5729
+ (boundary.errorDigest = segment),
5730
+ untrackBoundary(request, boundary),
5731
+ boundary.parentFlushed &&
5732
+ request.clientRenderedBoundaries.push(boundary)),
5733
+ boundary.pendingTasks--,
5734
+ (segment = boundary.row),
5735
+ null !== segment &&
5736
+ 0 === --segment.pendingTasks &&
5737
+ finishSuspenseListRow(request, segment),
5680
5738
  boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
5681
5739
  return abortTask(fallbackTask, request, error);
5682
5740
  }),
5683
5741
  boundary.fallbackAbortableTasks.clear();
5742
+ task = task.row;
5743
+ null !== task &&
5744
+ 0 === --task.pendingTasks &&
5745
+ finishSuspenseListRow(request, task);
5684
5746
  request.allPendingTasks--;
5685
5747
  0 === request.allPendingTasks && completeAll(request);
5686
5748
  }
@@ -5789,8 +5851,9 @@ function finishedSegment(request, boundary, segment) {
5789
5851
  }
5790
5852
  function finishedTask(request, boundary, row, segment) {
5791
5853
  null !== row &&
5792
- 0 === --row.pendingTasks &&
5793
- finishSuspenseListRow(request, row);
5854
+ (0 === --row.pendingTasks
5855
+ ? finishSuspenseListRow(request, row)
5856
+ : row.together && tryToResolveTogetherRow(request, row));
5794
5857
  request.allPendingTasks--;
5795
5858
  if (null === boundary) {
5796
5859
  if (null !== segment && segment.parentFlushed) {
@@ -5812,13 +5875,15 @@ function finishedTask(request, boundary, row, segment) {
5812
5875
  boundary.parentFlushed &&
5813
5876
  request.completedBoundaries.push(boundary),
5814
5877
  1 === boundary.status &&
5815
- (500 < boundary.byteSize ||
5878
+ ((row = boundary.row),
5879
+ null !== row &&
5880
+ hoistHoistables(row.hoistables, boundary.contentState),
5881
+ 500 < boundary.byteSize ||
5816
5882
  (boundary.fallbackAbortableTasks.forEach(
5817
5883
  abortTaskSoft,
5818
5884
  request
5819
5885
  ),
5820
5886
  boundary.fallbackAbortableTasks.clear(),
5821
- (row = boundary.row),
5822
5887
  null !== row &&
5823
5888
  0 === --row.pendingTasks &&
5824
5889
  finishSuspenseListRow(request, row)),
@@ -5826,13 +5891,17 @@ function finishedTask(request, boundary, row, segment) {
5826
5891
  null === request.trackedPostpones &&
5827
5892
  null !== boundary.contentPreamble &&
5828
5893
  preparePreamble(request)))
5829
- : null !== segment &&
5830
- segment.parentFlushed &&
5831
- 1 === segment.status &&
5832
- (queueCompletedSegment(boundary, segment),
5833
- 1 === boundary.completedSegments.length &&
5834
- boundary.parentFlushed &&
5835
- request.partialBoundaries.push(boundary)));
5894
+ : (null !== segment &&
5895
+ segment.parentFlushed &&
5896
+ 1 === segment.status &&
5897
+ (queueCompletedSegment(boundary, segment),
5898
+ 1 === boundary.completedSegments.length &&
5899
+ boundary.parentFlushed &&
5900
+ request.partialBoundaries.push(boundary)),
5901
+ (boundary = boundary.row),
5902
+ null !== boundary &&
5903
+ boundary.together &&
5904
+ tryToResolveTogetherRow(request, boundary)));
5836
5905
  0 === request.allPendingTasks && completeAll(request);
5837
5906
  }
5838
5907
  function performWork(request$jscomp$2) {
@@ -5987,19 +6056,25 @@ function performWork(request$jscomp$2) {
5987
6056
  x$jscomp$0,
5988
6057
  errorInfo$jscomp$0
5989
6058
  );
5990
- null === boundary$jscomp$0
5991
- ? fatalError(request, x$jscomp$0)
5992
- : (boundary$jscomp$0.pendingTasks--,
5993
- 4 !== boundary$jscomp$0.status &&
5994
- ((boundary$jscomp$0.status = 4),
5995
- (boundary$jscomp$0.errorDigest = request$jscomp$0),
5996
- untrackBoundary(request, boundary$jscomp$0),
5997
- boundary$jscomp$0.parentFlushed &&
5998
- request.clientRenderedBoundaries.push(boundary$jscomp$0),
5999
- 0 === request.pendingRootTasks &&
6000
- null === request.trackedPostpones &&
6001
- null !== boundary$jscomp$0.contentPreamble &&
6002
- preparePreamble(request)));
6059
+ if (null === boundary$jscomp$0) fatalError(request, x$jscomp$0);
6060
+ else if (
6061
+ (boundary$jscomp$0.pendingTasks--,
6062
+ 4 !== boundary$jscomp$0.status)
6063
+ ) {
6064
+ boundary$jscomp$0.status = 4;
6065
+ boundary$jscomp$0.errorDigest = request$jscomp$0;
6066
+ untrackBoundary(request, boundary$jscomp$0);
6067
+ var boundaryRow = boundary$jscomp$0.row;
6068
+ null !== boundaryRow &&
6069
+ 0 === --boundaryRow.pendingTasks &&
6070
+ finishSuspenseListRow(request, boundaryRow);
6071
+ boundary$jscomp$0.parentFlushed &&
6072
+ request.clientRenderedBoundaries.push(boundary$jscomp$0);
6073
+ 0 === request.pendingRootTasks &&
6074
+ null === request.trackedPostpones &&
6075
+ null !== boundary$jscomp$0.contentPreamble &&
6076
+ preparePreamble(request);
6077
+ }
6003
6078
  0 === request.allPendingTasks && completeAll(request);
6004
6079
  }
6005
6080
  } finally {
@@ -6166,13 +6241,7 @@ function flushSegment(request, destination, segment, hoistableState) {
6166
6241
  request.renderState,
6167
6242
  boundary.rootSegmentID
6168
6243
  ),
6169
- hoistableState &&
6170
- ((boundary = boundary.fallbackState),
6171
- boundary.styles.forEach(hoistStyleQueueDependency, hoistableState),
6172
- boundary.stylesheets.forEach(
6173
- hoistStylesheetDependency,
6174
- hoistableState
6175
- )),
6244
+ hoistableState && hoistHoistables(hoistableState, boundary.fallbackState),
6176
6245
  flushSubtree(request, destination, segment, hoistableState);
6177
6246
  else if (
6178
6247
  500 < boundary.byteSize &&
@@ -6188,10 +6257,7 @@ function flushSegment(request, destination, segment, hoistableState) {
6188
6257
  flushSubtree(request, destination, segment, hoistableState);
6189
6258
  else {
6190
6259
  flushedByteSize += boundary.byteSize;
6191
- hoistableState &&
6192
- ((segment = boundary.contentState),
6193
- segment.styles.forEach(hoistStyleQueueDependency, hoistableState),
6194
- segment.stylesheets.forEach(hoistStylesheetDependency, hoistableState));
6260
+ hoistableState && hoistHoistables(hoistableState, boundary.contentState);
6195
6261
  segment = boundary.row;
6196
6262
  null !== segment &&
6197
6263
  500 < boundary.byteSize &&
@@ -6508,12 +6574,12 @@ function flushCompletedQueues(request, destination) {
6508
6574
  writtenBytes = 0;
6509
6575
  var partialBoundaries = request.partialBoundaries;
6510
6576
  for (i = 0; i < partialBoundaries.length; i++) {
6511
- var boundary$62 = partialBoundaries[i];
6577
+ var boundary$64 = partialBoundaries[i];
6512
6578
  a: {
6513
6579
  clientRenderedBoundaries = request;
6514
6580
  boundary = destination;
6515
- flushedByteSize = boundary$62.byteSize;
6516
- var completedSegments = boundary$62.completedSegments;
6581
+ flushedByteSize = boundary$64.byteSize;
6582
+ var completedSegments = boundary$64.completedSegments;
6517
6583
  for (
6518
6584
  JSCompiler_inline_result = 0;
6519
6585
  JSCompiler_inline_result < completedSegments.length;
@@ -6523,7 +6589,7 @@ function flushCompletedQueues(request, destination) {
6523
6589
  !flushPartiallyCompletedSegment(
6524
6590
  clientRenderedBoundaries,
6525
6591
  boundary,
6526
- boundary$62,
6592
+ boundary$64,
6527
6593
  completedSegments[JSCompiler_inline_result]
6528
6594
  )
6529
6595
  ) {
@@ -6533,9 +6599,20 @@ function flushCompletedQueues(request, destination) {
6533
6599
  break a;
6534
6600
  }
6535
6601
  completedSegments.splice(0, JSCompiler_inline_result);
6602
+ var row = boundary$64.row;
6603
+ null !== row &&
6604
+ row.together &&
6605
+ 1 === boundary$64.pendingTasks &&
6606
+ (1 === row.pendingTasks
6607
+ ? unblockSuspenseListRow(
6608
+ clientRenderedBoundaries,
6609
+ row,
6610
+ row.hoistables
6611
+ )
6612
+ : row.pendingTasks--);
6536
6613
  JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
6537
6614
  boundary,
6538
- boundary$62.contentState,
6615
+ boundary$64.contentState,
6539
6616
  clientRenderedBoundaries.renderState
6540
6617
  );
6541
6618
  }
@@ -6628,18 +6705,18 @@ function abort(request, reason) {
6628
6705
  }
6629
6706
  null !== request.destination &&
6630
6707
  flushCompletedQueues(request, request.destination);
6631
- } catch (error$64) {
6632
- logRecoverableError(request, error$64, {}), fatalError(request, error$64);
6708
+ } catch (error$66) {
6709
+ logRecoverableError(request, error$66, {}), fatalError(request, error$66);
6633
6710
  }
6634
6711
  }
6635
6712
  function ensureCorrectIsomorphicReactVersion() {
6636
6713
  var isomorphicReactPackageVersion = React.version;
6637
- if ("19.2.0-canary-c4676e72-20250520" !== isomorphicReactPackageVersion)
6714
+ if ("19.2.0-canary-23884812-20250520" !== isomorphicReactPackageVersion)
6638
6715
  throw Error(
6639
6716
  formatProdErrorMessage(
6640
6717
  527,
6641
6718
  isomorphicReactPackageVersion,
6642
- "19.2.0-canary-c4676e72-20250520"
6719
+ "19.2.0-canary-23884812-20250520"
6643
6720
  )
6644
6721
  );
6645
6722
  }
@@ -6786,4 +6863,4 @@ exports.renderToReadableStream = function (children, options) {
6786
6863
  startWork(request);
6787
6864
  });
6788
6865
  };
6789
- exports.version = "19.2.0-canary-c4676e72-20250520";
6866
+ exports.version = "19.2.0-canary-23884812-20250520";