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.
@@ -2876,6 +2876,10 @@ function hoistStyleQueueDependency(styleQueue) {
2876
2876
  function hoistStylesheetDependency(stylesheet) {
2877
2877
  this.stylesheets.add(stylesheet);
2878
2878
  }
2879
+ function hoistHoistables(parentState, childState) {
2880
+ childState.styles.forEach(hoistStyleQueueDependency, parentState);
2881
+ childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
2882
+ }
2879
2883
  var bind = Function.prototype.bind,
2880
2884
  REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference");
2881
2885
  function getComponentNameFromType(type) {
@@ -3774,11 +3778,14 @@ function createSuspenseBoundary(
3774
3778
  };
3775
3779
  null !== row &&
3776
3780
  (row.pendingTasks++,
3777
- (row = row.boundaries),
3778
- null !== row &&
3781
+ (contentPreamble = row.boundaries),
3782
+ null !== contentPreamble &&
3779
3783
  (request.allPendingTasks++,
3780
3784
  fallbackAbortableTasks.pendingTasks++,
3781
- row.push(fallbackAbortableTasks)));
3785
+ contentPreamble.push(fallbackAbortableTasks)),
3786
+ (request = row.inheritedHoistables),
3787
+ null !== request &&
3788
+ hoistHoistables(fallbackAbortableTasks.contentState, request));
3782
3789
  return fallbackAbortableTasks;
3783
3790
  }
3784
3791
  function createRenderTask(
@@ -3943,20 +3950,56 @@ function fatalError(request, error) {
3943
3950
  : ((request.status = 13), (request.fatalError = error));
3944
3951
  }
3945
3952
  function finishSuspenseListRow(request, row) {
3946
- for (row = row.next; null !== row; ) {
3947
- var unblockedBoundaries = row.boundaries;
3953
+ unblockSuspenseListRow(request, row.next, row.hoistables);
3954
+ }
3955
+ function unblockSuspenseListRow(request, unblockedRow, inheritedHoistables) {
3956
+ for (; null !== unblockedRow; ) {
3957
+ null !== inheritedHoistables &&
3958
+ (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
3959
+ (unblockedRow.inheritedHoistables = inheritedHoistables));
3960
+ var unblockedBoundaries = unblockedRow.boundaries;
3948
3961
  if (null !== unblockedBoundaries) {
3949
- row.boundaries = null;
3950
- for (var i = 0; i < unblockedBoundaries.length; i++)
3951
- finishedTask(request, unblockedBoundaries[i], null, null);
3962
+ unblockedRow.boundaries = null;
3963
+ for (var i = 0; i < unblockedBoundaries.length; i++) {
3964
+ var unblockedBoundary = unblockedBoundaries[i];
3965
+ null !== inheritedHoistables &&
3966
+ hoistHoistables(unblockedBoundary.contentState, inheritedHoistables);
3967
+ finishedTask(request, unblockedBoundary, null, null);
3968
+ }
3969
+ }
3970
+ unblockedRow.pendingTasks--;
3971
+ if (0 < unblockedRow.pendingTasks) break;
3972
+ inheritedHoistables = unblockedRow.hoistables;
3973
+ unblockedRow = unblockedRow.next;
3974
+ }
3975
+ }
3976
+ function tryToResolveTogetherRow(request, togetherRow) {
3977
+ var boundaries = togetherRow.boundaries;
3978
+ if (null !== boundaries && togetherRow.pendingTasks === boundaries.length) {
3979
+ for (var allCompleteAndInlinable = !0, i = 0; i < boundaries.length; i++) {
3980
+ var rowBoundary = boundaries[i];
3981
+ if (
3982
+ 1 !== rowBoundary.pendingTasks ||
3983
+ rowBoundary.parentFlushed ||
3984
+ 500 < rowBoundary.byteSize
3985
+ ) {
3986
+ allCompleteAndInlinable = !1;
3987
+ break;
3988
+ }
3952
3989
  }
3953
- row.pendingTasks--;
3954
- if (0 < row.pendingTasks) break;
3955
- row = row.next;
3990
+ allCompleteAndInlinable &&
3991
+ unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
3956
3992
  }
3957
3993
  }
3958
3994
  function createSuspenseListRow(previousRow) {
3959
- var newRow = { pendingTasks: 1, boundaries: null, next: null };
3995
+ var newRow = {
3996
+ pendingTasks: 1,
3997
+ boundaries: null,
3998
+ hoistables: createHoistableState(),
3999
+ inheritedHoistables: null,
4000
+ together: !1,
4001
+ next: null
4002
+ };
3960
4003
  null !== previousRow &&
3961
4004
  0 < previousRow.pendingTasks &&
3962
4005
  (newRow.pendingTasks++,
@@ -3965,21 +4008,22 @@ function createSuspenseListRow(previousRow) {
3965
4008
  return newRow;
3966
4009
  }
3967
4010
  function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
3968
- keyPath = task.keyPath;
3969
- var prevTreeContext = task.treeContext,
3970
- prevRow = task.row,
3971
- totalChildren = rows.length,
3972
- previousSuspenseListRow = null;
4011
+ var prevKeyPath = task.keyPath,
4012
+ prevTreeContext = task.treeContext,
4013
+ prevRow = task.row;
4014
+ task.keyPath = keyPath;
4015
+ keyPath = rows.length;
4016
+ var previousSuspenseListRow = null;
3973
4017
  if (null !== task.replay) {
3974
4018
  var resumeSlots = task.replay.slots;
3975
4019
  if (null !== resumeSlots && "object" === typeof resumeSlots)
3976
- for (var n = 0; n < totalChildren; n++) {
3977
- var i = "backwards" !== revealOrder ? n : totalChildren - 1 - n,
4020
+ for (var n = 0; n < keyPath; n++) {
4021
+ var i = "backwards" !== revealOrder ? n : keyPath - 1 - n,
3978
4022
  node = rows[i];
3979
4023
  task.row = previousSuspenseListRow = createSuspenseListRow(
3980
4024
  previousSuspenseListRow
3981
4025
  );
3982
- task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i);
4026
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
3983
4027
  var resumeSegmentID = resumeSlots[i];
3984
4028
  "number" === typeof resumeSegmentID
3985
4029
  ? (resumeNode(request, task, resumeSegmentID, node, i),
@@ -3989,30 +4033,26 @@ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
3989
4033
  finishSuspenseListRow(request, previousSuspenseListRow);
3990
4034
  }
3991
4035
  else
3992
- for (resumeSlots = 0; resumeSlots < totalChildren; resumeSlots++)
4036
+ for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
3993
4037
  (n =
3994
4038
  "backwards" !== revealOrder
3995
4039
  ? resumeSlots
3996
- : totalChildren - 1 - resumeSlots),
4040
+ : keyPath - 1 - resumeSlots),
3997
4041
  (i = rows[n]),
3998
4042
  (task.row = previousSuspenseListRow =
3999
4043
  createSuspenseListRow(previousSuspenseListRow)),
4000
- (task.treeContext = pushTreeContext(
4001
- prevTreeContext,
4002
- totalChildren,
4003
- n
4004
- )),
4044
+ (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
4005
4045
  renderNode(request, task, i, n),
4006
4046
  0 === --previousSuspenseListRow.pendingTasks &&
4007
4047
  finishSuspenseListRow(request, previousSuspenseListRow);
4008
4048
  } else if ("backwards" !== revealOrder)
4009
- for (revealOrder = 0; revealOrder < totalChildren; revealOrder++)
4049
+ for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
4010
4050
  (resumeSlots = rows[revealOrder]),
4011
4051
  (task.row = previousSuspenseListRow =
4012
4052
  createSuspenseListRow(previousSuspenseListRow)),
4013
4053
  (task.treeContext = pushTreeContext(
4014
4054
  prevTreeContext,
4015
- totalChildren,
4055
+ keyPath,
4016
4056
  revealOrder
4017
4057
  )),
4018
4058
  renderNode(request, task, resumeSlots, revealOrder),
@@ -4022,12 +4062,12 @@ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
4022
4062
  revealOrder = task.blockedSegment;
4023
4063
  resumeSlots = revealOrder.children.length;
4024
4064
  n = revealOrder.chunks.length;
4025
- for (i = totalChildren - 1; 0 <= i; i--) {
4065
+ for (i = keyPath - 1; 0 <= i; i--) {
4026
4066
  node = rows[i];
4027
4067
  task.row = previousSuspenseListRow = createSuspenseListRow(
4028
4068
  previousSuspenseListRow
4029
4069
  );
4030
- task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i);
4070
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
4031
4071
  resumeSegmentID = createPendingSegment(
4032
4072
  request,
4033
4073
  n,
@@ -4066,7 +4106,7 @@ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
4066
4106
  (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
4067
4107
  task.treeContext = prevTreeContext;
4068
4108
  task.row = prevRow;
4069
- task.keyPath = keyPath;
4109
+ task.keyPath = prevKeyPath;
4070
4110
  }
4071
4111
  function renderWithHooks(request, task, keyPath, Component, props, secondArg) {
4072
4112
  var prevThenableState = task.thenableState;
@@ -4135,9 +4175,9 @@ function renderElement(request, task, keyPath, type, props, ref) {
4135
4175
  var defaultProps = type.defaultProps;
4136
4176
  if (defaultProps) {
4137
4177
  newProps === props && (newProps = assign({}, newProps, props));
4138
- for (var propName$42 in defaultProps)
4139
- void 0 === newProps[propName$42] &&
4140
- (newProps[propName$42] = defaultProps[propName$42]);
4178
+ for (var propName$43 in defaultProps)
4179
+ void 0 === newProps[propName$43] &&
4180
+ (newProps[propName$43] = defaultProps[propName$43]);
4141
4181
  }
4142
4182
  props = newProps;
4143
4183
  newProps = emptyContextObject;
@@ -4197,16 +4237,16 @@ function renderElement(request, task, keyPath, type, props, ref) {
4197
4237
  defaultProps = ref ? type[0] : newProps.state;
4198
4238
  initialState = !0;
4199
4239
  for (ref = ref ? 1 : 0; ref < type.length; ref++)
4200
- (propName$42 = type[ref]),
4201
- (propName$42 =
4202
- "function" === typeof propName$42
4203
- ? propName$42.call(newProps, defaultProps, props, void 0)
4204
- : propName$42),
4205
- null != propName$42 &&
4240
+ (propName$43 = type[ref]),
4241
+ (propName$43 =
4242
+ "function" === typeof propName$43
4243
+ ? propName$43.call(newProps, defaultProps, props, void 0)
4244
+ : propName$43),
4245
+ null != propName$43 &&
4206
4246
  (initialState
4207
4247
  ? ((initialState = !1),
4208
- (defaultProps = assign({}, defaultProps, propName$42)))
4209
- : assign(defaultProps, propName$42));
4248
+ (defaultProps = assign({}, defaultProps, propName$43)))
4249
+ : assign(defaultProps, propName$43));
4210
4250
  newProps.state = defaultProps;
4211
4251
  }
4212
4252
  else defaultProps.queue = null;
@@ -4380,10 +4420,25 @@ function renderElement(request, task, keyPath, type, props, ref) {
4380
4420
  break a;
4381
4421
  }
4382
4422
  }
4383
- props = task.keyPath;
4384
- task.keyPath = keyPath;
4385
- renderNodeDestructive(request, task, type, -1);
4386
- task.keyPath = props;
4423
+ "together" === props
4424
+ ? ((props = task.keyPath),
4425
+ (newProps = task.row),
4426
+ (defaultProps = task.row = createSuspenseListRow(null)),
4427
+ (defaultProps.boundaries = []),
4428
+ (defaultProps.together = !0),
4429
+ (task.keyPath = keyPath),
4430
+ renderNodeDestructive(request, task, type, -1),
4431
+ 0 === --defaultProps.pendingTasks &&
4432
+ finishSuspenseListRow(request, defaultProps),
4433
+ (task.keyPath = props),
4434
+ (task.row = newProps),
4435
+ null !== newProps &&
4436
+ 0 < defaultProps.pendingTasks &&
4437
+ (newProps.pendingTasks++, (defaultProps.next = newProps)))
4438
+ : ((props = task.keyPath),
4439
+ (task.keyPath = keyPath),
4440
+ renderNodeDestructive(request, task, type, -1),
4441
+ (task.keyPath = props));
4387
4442
  }
4388
4443
  return;
4389
4444
  case REACT_VIEW_TRANSITION_TYPE:
@@ -4412,7 +4467,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4412
4467
  type = task.keyPath;
4413
4468
  ref = task.formatContext;
4414
4469
  var prevRow = task.row;
4415
- propName$42 = task.blockedBoundary;
4470
+ propName$43 = task.blockedBoundary;
4416
4471
  propName = task.blockedPreamble;
4417
4472
  var parentHoistableState = task.hoistableState,
4418
4473
  parentSegment = task.blockedSegment,
@@ -4478,7 +4533,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4478
4533
  boundarySegment.textEmbedded
4479
4534
  ),
4480
4535
  (boundarySegment.status = 1),
4481
- finishedSegment(request, propName$42, boundarySegment);
4536
+ finishedSegment(request, propName$43, boundarySegment);
4482
4537
  } catch (thrownValue) {
4483
4538
  throw (
4484
4539
  ((boundarySegment.status = 12 === request.status ? 3 : 4),
@@ -4536,18 +4591,21 @@ function renderElement(request, task, keyPath, type, props, ref) {
4536
4591
  (contentRootSegment.status = 1),
4537
4592
  finishedSegment(request, newBoundary, contentRootSegment),
4538
4593
  queueCompletedSegment(newBoundary, contentRootSegment),
4539
- 0 === newBoundary.pendingTasks &&
4540
- 0 === newBoundary.status &&
4541
- ((newBoundary.status = 1), !(500 < newBoundary.byteSize)))
4594
+ 0 === newBoundary.pendingTasks && 0 === newBoundary.status)
4542
4595
  ) {
4596
+ if (((newBoundary.status = 1), !(500 < newBoundary.byteSize))) {
4597
+ null !== prevRow &&
4598
+ 0 === --prevRow.pendingTasks &&
4599
+ finishSuspenseListRow(request, prevRow);
4600
+ 0 === request.pendingRootTasks &&
4601
+ task.blockedPreamble &&
4602
+ preparePreamble(request);
4603
+ break a;
4604
+ }
4605
+ } else
4543
4606
  null !== prevRow &&
4544
- 0 === --prevRow.pendingTasks &&
4545
- finishSuspenseListRow(request, prevRow);
4546
- 0 === request.pendingRootTasks &&
4547
- task.blockedPreamble &&
4548
- preparePreamble(request);
4549
- break a;
4550
- }
4607
+ prevRow.together &&
4608
+ tryToResolveTogetherRow(request, prevRow);
4551
4609
  } catch (thrownValue$30) {
4552
4610
  (newBoundary.status = 4),
4553
4611
  12 === request.status
@@ -4564,7 +4622,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4564
4622
  (newBoundary.errorDigest = initialState),
4565
4623
  untrackBoundary(request, newBoundary);
4566
4624
  } finally {
4567
- (task.blockedBoundary = propName$42),
4625
+ (task.blockedBoundary = propName$43),
4568
4626
  (task.blockedPreamble = propName),
4569
4627
  (task.hoistableState = parentHoistableState),
4570
4628
  (task.blockedSegment = parentSegment),
@@ -4577,7 +4635,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4577
4635
  null,
4578
4636
  fallback,
4579
4637
  -1,
4580
- propName$42,
4638
+ propName$43,
4581
4639
  boundarySegment,
4582
4640
  newBoundary.fallbackPreamble,
4583
4641
  newBoundary.fallbackState,
@@ -5167,15 +5225,15 @@ function renderNode(request, task, node, childIndex) {
5167
5225
  chunkLength = segment.chunks.length;
5168
5226
  try {
5169
5227
  return renderNodeDestructive(request, task, node, childIndex);
5170
- } catch (thrownValue$58) {
5228
+ } catch (thrownValue$59) {
5171
5229
  if (
5172
5230
  (resetHooksState(),
5173
5231
  (segment.children.length = childrenLength),
5174
5232
  (segment.chunks.length = chunkLength),
5175
5233
  (node =
5176
- thrownValue$58 === SuspenseException
5234
+ thrownValue$59 === SuspenseException
5177
5235
  ? getSuspendedThenable()
5178
- : thrownValue$58),
5236
+ : thrownValue$59),
5179
5237
  "object" === typeof node && null !== node)
5180
5238
  ) {
5181
5239
  if ("function" === typeof node.then) {
@@ -5277,10 +5335,6 @@ function abortTask(task, request, error) {
5277
5335
  if (6 === segment.status) return;
5278
5336
  segment.status = 3;
5279
5337
  }
5280
- segment = task.row;
5281
- null !== segment &&
5282
- 0 === --segment.pendingTasks &&
5283
- finishSuspenseListRow(request, segment);
5284
5338
  segment = getThrownInfo(task.componentStack);
5285
5339
  if (null === boundary) {
5286
5340
  if (13 !== request.status && 14 !== request.status) {
@@ -5293,32 +5347,40 @@ function abortTask(task, request, error) {
5293
5347
  boundary.pendingTasks--;
5294
5348
  0 === boundary.pendingTasks &&
5295
5349
  0 < boundary.nodes.length &&
5296
- ((task = logRecoverableError(request, error, segment)),
5350
+ ((segment = logRecoverableError(request, error, segment)),
5297
5351
  abortRemainingReplayNodes(
5298
5352
  request,
5299
5353
  null,
5300
5354
  boundary.nodes,
5301
5355
  boundary.slots,
5302
5356
  error,
5303
- task
5357
+ segment
5304
5358
  ));
5305
5359
  request.pendingRootTasks--;
5306
5360
  0 === request.pendingRootTasks && completeShell(request);
5307
5361
  }
5308
5362
  } else
5309
- boundary.pendingTasks--,
5310
- 4 !== boundary.status &&
5311
- ((boundary.status = 4),
5312
- (task = logRecoverableError(request, error, segment)),
5313
- (boundary.status = 4),
5314
- (boundary.errorDigest = task),
5315
- untrackBoundary(request, boundary),
5316
- boundary.parentFlushed &&
5317
- request.clientRenderedBoundaries.push(boundary)),
5363
+ 4 !== boundary.status &&
5364
+ ((boundary.status = 4),
5365
+ (segment = logRecoverableError(request, error, segment)),
5366
+ (boundary.status = 4),
5367
+ (boundary.errorDigest = segment),
5368
+ untrackBoundary(request, boundary),
5369
+ boundary.parentFlushed &&
5370
+ request.clientRenderedBoundaries.push(boundary)),
5371
+ boundary.pendingTasks--,
5372
+ (segment = boundary.row),
5373
+ null !== segment &&
5374
+ 0 === --segment.pendingTasks &&
5375
+ finishSuspenseListRow(request, segment),
5318
5376
  boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
5319
5377
  return abortTask(fallbackTask, request, error);
5320
5378
  }),
5321
5379
  boundary.fallbackAbortableTasks.clear();
5380
+ task = task.row;
5381
+ null !== task &&
5382
+ 0 === --task.pendingTasks &&
5383
+ finishSuspenseListRow(request, task);
5322
5384
  request.allPendingTasks--;
5323
5385
  0 === request.allPendingTasks && completeAll(request);
5324
5386
  }
@@ -5427,8 +5489,9 @@ function finishedSegment(request, boundary, segment) {
5427
5489
  }
5428
5490
  function finishedTask(request, boundary, row, segment) {
5429
5491
  null !== row &&
5430
- 0 === --row.pendingTasks &&
5431
- finishSuspenseListRow(request, row);
5492
+ (0 === --row.pendingTasks
5493
+ ? finishSuspenseListRow(request, row)
5494
+ : row.together && tryToResolveTogetherRow(request, row));
5432
5495
  request.allPendingTasks--;
5433
5496
  if (null === boundary) {
5434
5497
  if (null !== segment && segment.parentFlushed) {
@@ -5452,13 +5515,15 @@ function finishedTask(request, boundary, row, segment) {
5452
5515
  boundary.parentFlushed &&
5453
5516
  request.completedBoundaries.push(boundary),
5454
5517
  1 === boundary.status &&
5455
- (500 < boundary.byteSize ||
5518
+ ((row = boundary.row),
5519
+ null !== row &&
5520
+ hoistHoistables(row.hoistables, boundary.contentState),
5521
+ 500 < boundary.byteSize ||
5456
5522
  (boundary.fallbackAbortableTasks.forEach(
5457
5523
  abortTaskSoft,
5458
5524
  request
5459
5525
  ),
5460
5526
  boundary.fallbackAbortableTasks.clear(),
5461
- (row = boundary.row),
5462
5527
  null !== row &&
5463
5528
  0 === --row.pendingTasks &&
5464
5529
  finishSuspenseListRow(request, row)),
@@ -5466,13 +5531,17 @@ function finishedTask(request, boundary, row, segment) {
5466
5531
  null === request.trackedPostpones &&
5467
5532
  null !== boundary.contentPreamble &&
5468
5533
  preparePreamble(request)))
5469
- : null !== segment &&
5470
- segment.parentFlushed &&
5471
- 1 === segment.status &&
5472
- (queueCompletedSegment(boundary, segment),
5473
- 1 === boundary.completedSegments.length &&
5474
- boundary.parentFlushed &&
5475
- request.partialBoundaries.push(boundary)));
5534
+ : (null !== segment &&
5535
+ segment.parentFlushed &&
5536
+ 1 === segment.status &&
5537
+ (queueCompletedSegment(boundary, segment),
5538
+ 1 === boundary.completedSegments.length &&
5539
+ boundary.parentFlushed &&
5540
+ request.partialBoundaries.push(boundary)),
5541
+ (boundary = boundary.row),
5542
+ null !== boundary &&
5543
+ boundary.together &&
5544
+ tryToResolveTogetherRow(request, boundary)));
5476
5545
  0 === request.allPendingTasks && completeAll(request);
5477
5546
  }
5478
5547
  function performWork(request$jscomp$2) {
@@ -5632,19 +5701,25 @@ function performWork(request$jscomp$2) {
5632
5701
  x$jscomp$0,
5633
5702
  errorInfo$jscomp$0
5634
5703
  );
5635
- null === boundary$jscomp$0
5636
- ? fatalError(request, x$jscomp$0)
5637
- : (boundary$jscomp$0.pendingTasks--,
5638
- 4 !== boundary$jscomp$0.status &&
5639
- ((boundary$jscomp$0.status = 4),
5640
- (boundary$jscomp$0.errorDigest = request$jscomp$0),
5641
- untrackBoundary(request, boundary$jscomp$0),
5642
- boundary$jscomp$0.parentFlushed &&
5643
- request.clientRenderedBoundaries.push(boundary$jscomp$0),
5644
- 0 === request.pendingRootTasks &&
5645
- null === request.trackedPostpones &&
5646
- null !== boundary$jscomp$0.contentPreamble &&
5647
- preparePreamble(request)));
5704
+ if (null === boundary$jscomp$0) fatalError(request, x$jscomp$0);
5705
+ else if (
5706
+ (boundary$jscomp$0.pendingTasks--,
5707
+ 4 !== boundary$jscomp$0.status)
5708
+ ) {
5709
+ boundary$jscomp$0.status = 4;
5710
+ boundary$jscomp$0.errorDigest = request$jscomp$0;
5711
+ untrackBoundary(request, boundary$jscomp$0);
5712
+ var boundaryRow = boundary$jscomp$0.row;
5713
+ null !== boundaryRow &&
5714
+ 0 === --boundaryRow.pendingTasks &&
5715
+ finishSuspenseListRow(request, boundaryRow);
5716
+ boundary$jscomp$0.parentFlushed &&
5717
+ request.clientRenderedBoundaries.push(boundary$jscomp$0);
5718
+ 0 === request.pendingRootTasks &&
5719
+ null === request.trackedPostpones &&
5720
+ null !== boundary$jscomp$0.contentPreamble &&
5721
+ preparePreamble(request);
5722
+ }
5648
5723
  0 === request.allPendingTasks && completeAll(request);
5649
5724
  }
5650
5725
  } finally {
@@ -5812,13 +5887,7 @@ function flushSegment(request, destination, segment, hoistableState) {
5812
5887
  request.renderState,
5813
5888
  boundary.rootSegmentID
5814
5889
  ),
5815
- hoistableState &&
5816
- ((boundary = boundary.fallbackState),
5817
- boundary.styles.forEach(hoistStyleQueueDependency, hoistableState),
5818
- boundary.stylesheets.forEach(
5819
- hoistStylesheetDependency,
5820
- hoistableState
5821
- )),
5890
+ hoistableState && hoistHoistables(hoistableState, boundary.fallbackState),
5822
5891
  flushSubtree(request, destination, segment, hoistableState);
5823
5892
  else if (
5824
5893
  500 < boundary.byteSize &&
@@ -5834,10 +5903,7 @@ function flushSegment(request, destination, segment, hoistableState) {
5834
5903
  flushSubtree(request, destination, segment, hoistableState);
5835
5904
  else {
5836
5905
  flushedByteSize += boundary.byteSize;
5837
- hoistableState &&
5838
- ((segment = boundary.contentState),
5839
- segment.styles.forEach(hoistStyleQueueDependency, hoistableState),
5840
- segment.stylesheets.forEach(hoistStylesheetDependency, hoistableState));
5906
+ hoistableState && hoistHoistables(hoistableState, boundary.contentState);
5841
5907
  segment = boundary.row;
5842
5908
  null !== segment &&
5843
5909
  500 < boundary.byteSize &&
@@ -6165,12 +6231,12 @@ function flushCompletedQueues(request, destination) {
6165
6231
  completedBoundaries.splice(0, i);
6166
6232
  var partialBoundaries = request.partialBoundaries;
6167
6233
  for (i = 0; i < partialBoundaries.length; i++) {
6168
- var boundary$62 = partialBoundaries[i];
6234
+ var boundary$64 = partialBoundaries[i];
6169
6235
  a: {
6170
6236
  clientRenderedBoundaries = request;
6171
6237
  boundary = destination;
6172
- flushedByteSize = boundary$62.byteSize;
6173
- var completedSegments = boundary$62.completedSegments;
6238
+ flushedByteSize = boundary$64.byteSize;
6239
+ var completedSegments = boundary$64.completedSegments;
6174
6240
  for (
6175
6241
  JSCompiler_inline_result = 0;
6176
6242
  JSCompiler_inline_result < completedSegments.length;
@@ -6180,7 +6246,7 @@ function flushCompletedQueues(request, destination) {
6180
6246
  !flushPartiallyCompletedSegment(
6181
6247
  clientRenderedBoundaries,
6182
6248
  boundary,
6183
- boundary$62,
6249
+ boundary$64,
6184
6250
  completedSegments[JSCompiler_inline_result]
6185
6251
  )
6186
6252
  ) {
@@ -6190,9 +6256,20 @@ function flushCompletedQueues(request, destination) {
6190
6256
  break a;
6191
6257
  }
6192
6258
  completedSegments.splice(0, JSCompiler_inline_result);
6259
+ var row = boundary$64.row;
6260
+ null !== row &&
6261
+ row.together &&
6262
+ 1 === boundary$64.pendingTasks &&
6263
+ (1 === row.pendingTasks
6264
+ ? unblockSuspenseListRow(
6265
+ clientRenderedBoundaries,
6266
+ row,
6267
+ row.hoistables
6268
+ )
6269
+ : row.pendingTasks--);
6193
6270
  JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
6194
6271
  boundary,
6195
- boundary$62.contentState,
6272
+ boundary$64.contentState,
6196
6273
  clientRenderedBoundaries.renderState
6197
6274
  );
6198
6275
  }
@@ -6273,19 +6350,19 @@ function abort(request, reason) {
6273
6350
  }
6274
6351
  null !== request.destination &&
6275
6352
  flushCompletedQueues(request, request.destination);
6276
- } catch (error$64) {
6277
- logRecoverableError(request, error$64, {}), fatalError(request, error$64);
6353
+ } catch (error$66) {
6354
+ logRecoverableError(request, error$66, {}), fatalError(request, error$66);
6278
6355
  }
6279
6356
  }
6280
- var isomorphicReactPackageVersion$jscomp$inline_799 = React.version;
6357
+ var isomorphicReactPackageVersion$jscomp$inline_801 = React.version;
6281
6358
  if (
6282
- "19.2.0-canary-c4676e72-20250520" !==
6283
- isomorphicReactPackageVersion$jscomp$inline_799
6359
+ "19.2.0-canary-23884812-20250520" !==
6360
+ isomorphicReactPackageVersion$jscomp$inline_801
6284
6361
  )
6285
6362
  throw Error(
6286
6363
  'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
6287
- (isomorphicReactPackageVersion$jscomp$inline_799 +
6288
- "\n - react-dom: 19.2.0-canary-c4676e72-20250520\nLearn more: https://react.dev/warnings/version-mismatch")
6364
+ (isomorphicReactPackageVersion$jscomp$inline_801 +
6365
+ "\n - react-dom: 19.2.0-canary-23884812-20250520\nLearn more: https://react.dev/warnings/version-mismatch")
6289
6366
  );
6290
6367
  exports.renderToReadableStream = function (children, options) {
6291
6368
  return new Promise(function (resolve, reject) {
@@ -6376,4 +6453,4 @@ exports.renderToReadableStream = function (children, options) {
6376
6453
  startWork(request);
6377
6454
  });
6378
6455
  };
6379
- exports.version = "19.2.0-canary-c4676e72-20250520";
6456
+ exports.version = "19.2.0-canary-23884812-20250520";