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.
@@ -4617,6 +4617,10 @@ function hoistStyleQueueDependency(styleQueue) {
4617
4617
  function hoistStylesheetDependency(stylesheet) {
4618
4618
  this.stylesheets.add(stylesheet);
4619
4619
  }
4620
+ function hoistHoistables(parentState, childState) {
4621
+ childState.styles.forEach(hoistStyleQueueDependency, parentState);
4622
+ childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
4623
+ }
4620
4624
  var bind = Function.prototype.bind,
4621
4625
  REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference");
4622
4626
  function getComponentNameFromType(type) {
@@ -5772,11 +5776,14 @@ function createSuspenseBoundary(
5772
5776
  };
5773
5777
  null !== row &&
5774
5778
  (row.pendingTasks++,
5775
- (row = row.boundaries),
5776
- null !== row &&
5779
+ (contentPreamble = row.boundaries),
5780
+ null !== contentPreamble &&
5777
5781
  (request.allPendingTasks++,
5778
5782
  fallbackAbortableTasks.pendingTasks++,
5779
- row.push(fallbackAbortableTasks)));
5783
+ contentPreamble.push(fallbackAbortableTasks)),
5784
+ (request = row.inheritedHoistables),
5785
+ null !== request &&
5786
+ hoistHoistables(fallbackAbortableTasks.contentState, request));
5780
5787
  return fallbackAbortableTasks;
5781
5788
  }
5782
5789
  function createRenderTask(
@@ -6052,20 +6059,56 @@ function fatalError(request, error, errorInfo, debugTask) {
6052
6059
  : ((request.status = 13), (request.fatalError = error));
6053
6060
  }
6054
6061
  function finishSuspenseListRow(request, row) {
6055
- for (row = row.next; null !== row; ) {
6056
- var unblockedBoundaries = row.boundaries;
6062
+ unblockSuspenseListRow(request, row.next, row.hoistables);
6063
+ }
6064
+ function unblockSuspenseListRow(request, unblockedRow, inheritedHoistables) {
6065
+ for (; null !== unblockedRow; ) {
6066
+ null !== inheritedHoistables &&
6067
+ (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
6068
+ (unblockedRow.inheritedHoistables = inheritedHoistables));
6069
+ var unblockedBoundaries = unblockedRow.boundaries;
6057
6070
  if (null !== unblockedBoundaries) {
6058
- row.boundaries = null;
6059
- for (var i = 0; i < unblockedBoundaries.length; i++)
6060
- finishedTask(request, unblockedBoundaries[i], null, null);
6071
+ unblockedRow.boundaries = null;
6072
+ for (var i = 0; i < unblockedBoundaries.length; i++) {
6073
+ var unblockedBoundary = unblockedBoundaries[i];
6074
+ null !== inheritedHoistables &&
6075
+ hoistHoistables(unblockedBoundary.contentState, inheritedHoistables);
6076
+ finishedTask(request, unblockedBoundary, null, null);
6077
+ }
6078
+ }
6079
+ unblockedRow.pendingTasks--;
6080
+ if (0 < unblockedRow.pendingTasks) break;
6081
+ inheritedHoistables = unblockedRow.hoistables;
6082
+ unblockedRow = unblockedRow.next;
6083
+ }
6084
+ }
6085
+ function tryToResolveTogetherRow(request, togetherRow) {
6086
+ var boundaries = togetherRow.boundaries;
6087
+ if (null !== boundaries && togetherRow.pendingTasks === boundaries.length) {
6088
+ for (var allCompleteAndInlinable = !0, i = 0; i < boundaries.length; i++) {
6089
+ var rowBoundary = boundaries[i];
6090
+ if (
6091
+ 1 !== rowBoundary.pendingTasks ||
6092
+ rowBoundary.parentFlushed ||
6093
+ 500 < rowBoundary.byteSize
6094
+ ) {
6095
+ allCompleteAndInlinable = !1;
6096
+ break;
6097
+ }
6061
6098
  }
6062
- row.pendingTasks--;
6063
- if (0 < row.pendingTasks) break;
6064
- row = row.next;
6099
+ allCompleteAndInlinable &&
6100
+ unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
6065
6101
  }
6066
6102
  }
6067
6103
  function createSuspenseListRow(previousRow) {
6068
- var newRow = { pendingTasks: 1, boundaries: null, next: null };
6104
+ var newRow = {
6105
+ pendingTasks: 1,
6106
+ boundaries: null,
6107
+ hoistables: createHoistableState(),
6108
+ inheritedHoistables: null,
6109
+ together: !1,
6110
+ next: null
6111
+ };
6069
6112
  null !== previousRow &&
6070
6113
  0 < previousRow.pendingTasks &&
6071
6114
  (newRow.pendingTasks++,
@@ -6074,24 +6117,25 @@ function createSuspenseListRow(previousRow) {
6074
6117
  return newRow;
6075
6118
  }
6076
6119
  function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
6077
- keyPath = task.keyPath;
6078
- var previousComponentStack = task.componentStack;
6120
+ var prevKeyPath = task.keyPath,
6121
+ prevTreeContext = task.treeContext,
6122
+ prevRow = task.row,
6123
+ previousComponentStack = task.componentStack;
6079
6124
  var previousDebugTask = task.debugTask;
6080
6125
  pushServerComponentStack(task, task.node.props.children._debugInfo);
6081
- var prevTreeContext = task.treeContext,
6082
- prevRow = task.row,
6083
- totalChildren = rows.length,
6084
- previousSuspenseListRow = null;
6126
+ task.keyPath = keyPath;
6127
+ keyPath = rows.length;
6128
+ var previousSuspenseListRow = null;
6085
6129
  if (null !== task.replay) {
6086
6130
  var resumeSlots = task.replay.slots;
6087
6131
  if (null !== resumeSlots && "object" === typeof resumeSlots)
6088
- for (var n = 0; n < totalChildren; n++) {
6089
- var i = "backwards" !== revealOrder ? n : totalChildren - 1 - n,
6132
+ for (var n = 0; n < keyPath; n++) {
6133
+ var i = "backwards" !== revealOrder ? n : keyPath - 1 - n,
6090
6134
  node = rows[i];
6091
6135
  task.row = previousSuspenseListRow = createSuspenseListRow(
6092
6136
  previousSuspenseListRow
6093
6137
  );
6094
- task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i);
6138
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
6095
6139
  var resumeSegmentID = resumeSlots[i];
6096
6140
  "number" === typeof resumeSegmentID
6097
6141
  ? (resumeNode(request, task, resumeSegmentID, node, i),
@@ -6101,32 +6145,28 @@ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
6101
6145
  finishSuspenseListRow(request, previousSuspenseListRow);
6102
6146
  }
6103
6147
  else
6104
- for (resumeSlots = 0; resumeSlots < totalChildren; resumeSlots++)
6148
+ for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
6105
6149
  (n =
6106
6150
  "backwards" !== revealOrder
6107
6151
  ? resumeSlots
6108
- : totalChildren - 1 - resumeSlots),
6152
+ : keyPath - 1 - resumeSlots),
6109
6153
  (i = rows[n]),
6110
6154
  warnForMissingKey(request, task, i),
6111
6155
  (task.row = previousSuspenseListRow =
6112
6156
  createSuspenseListRow(previousSuspenseListRow)),
6113
- (task.treeContext = pushTreeContext(
6114
- prevTreeContext,
6115
- totalChildren,
6116
- n
6117
- )),
6157
+ (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
6118
6158
  renderNode(request, task, i, n),
6119
6159
  0 === --previousSuspenseListRow.pendingTasks &&
6120
6160
  finishSuspenseListRow(request, previousSuspenseListRow);
6121
6161
  } else if ("backwards" !== revealOrder)
6122
- for (revealOrder = 0; revealOrder < totalChildren; revealOrder++)
6162
+ for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
6123
6163
  (resumeSlots = rows[revealOrder]),
6124
6164
  warnForMissingKey(request, task, resumeSlots),
6125
6165
  (task.row = previousSuspenseListRow =
6126
6166
  createSuspenseListRow(previousSuspenseListRow)),
6127
6167
  (task.treeContext = pushTreeContext(
6128
6168
  prevTreeContext,
6129
- totalChildren,
6169
+ keyPath,
6130
6170
  revealOrder
6131
6171
  )),
6132
6172
  renderNode(request, task, resumeSlots, revealOrder),
@@ -6136,12 +6176,12 @@ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
6136
6176
  revealOrder = task.blockedSegment;
6137
6177
  resumeSlots = revealOrder.children.length;
6138
6178
  n = revealOrder.chunks.length;
6139
- for (i = totalChildren - 1; 0 <= i; i--) {
6179
+ for (i = keyPath - 1; 0 <= i; i--) {
6140
6180
  node = rows[i];
6141
6181
  task.row = previousSuspenseListRow = createSuspenseListRow(
6142
6182
  previousSuspenseListRow
6143
6183
  );
6144
- task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i);
6184
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
6145
6185
  resumeSegmentID = createPendingSegment(
6146
6186
  request,
6147
6187
  n,
@@ -6181,7 +6221,7 @@ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
6181
6221
  (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
6182
6222
  task.treeContext = prevTreeContext;
6183
6223
  task.row = prevRow;
6184
- task.keyPath = keyPath;
6224
+ task.keyPath = prevKeyPath;
6185
6225
  task.componentStack = previousComponentStack;
6186
6226
  task.debugTask = previousDebugTask;
6187
6227
  }
@@ -6690,7 +6730,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
6690
6730
  );
6691
6731
  segment.lastPushedText = !1;
6692
6732
  var _prevContext2 = task.formatContext,
6693
- _prevKeyPath2 = task.keyPath;
6733
+ _prevKeyPath3 = task.keyPath;
6694
6734
  task.keyPath = keyPath;
6695
6735
  if (
6696
6736
  (task.formatContext = getChildFormatContext(_prevContext2, type, props))
@@ -6728,7 +6768,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
6728
6768
  request.pingedTasks.push(preambleTask);
6729
6769
  } else renderNode(request, task, _children, -1);
6730
6770
  task.formatContext = _prevContext2;
6731
- task.keyPath = _prevKeyPath2;
6771
+ task.keyPath = _prevKeyPath3;
6732
6772
  a: {
6733
6773
  var target = segment.chunks,
6734
6774
  resumableState = request.resumableState;
@@ -6794,10 +6834,10 @@ function renderElement(request, task, keyPath, type, props, ref) {
6794
6834
  } else if ("hidden" !== props.mode) {
6795
6835
  segment$jscomp$0.chunks.push("\x3c!--&--\x3e");
6796
6836
  segment$jscomp$0.lastPushedText = !1;
6797
- var _prevKeyPath3 = task.keyPath;
6837
+ var _prevKeyPath4 = task.keyPath;
6798
6838
  task.keyPath = keyPath;
6799
6839
  renderNode(request, task, props.children, -1);
6800
- task.keyPath = _prevKeyPath3;
6840
+ task.keyPath = _prevKeyPath4;
6801
6841
  segment$jscomp$0.chunks.push("\x3c!--/&--\x3e");
6802
6842
  segment$jscomp$0.lastPushedText = !1;
6803
6843
  }
@@ -6845,10 +6885,27 @@ function renderElement(request, task, keyPath, type, props, ref) {
6845
6885
  }
6846
6886
  }
6847
6887
  }
6848
- var prevKeyPath$jscomp$3 = task.keyPath;
6849
- task.keyPath = keyPath;
6850
- renderNodeDestructive(request, task, children$jscomp$0, -1);
6851
- task.keyPath = prevKeyPath$jscomp$3;
6888
+ if ("together" === revealOrder) {
6889
+ var _prevKeyPath2 = task.keyPath,
6890
+ prevRow = task.row,
6891
+ newRow = (task.row = createSuspenseListRow(null));
6892
+ newRow.boundaries = [];
6893
+ newRow.together = !0;
6894
+ task.keyPath = keyPath;
6895
+ renderNodeDestructive(request, task, children$jscomp$0, -1);
6896
+ 0 === --newRow.pendingTasks &&
6897
+ finishSuspenseListRow(request, newRow);
6898
+ task.keyPath = _prevKeyPath2;
6899
+ task.row = prevRow;
6900
+ null !== prevRow &&
6901
+ 0 < newRow.pendingTasks &&
6902
+ (prevRow.pendingTasks++, (newRow.next = prevRow));
6903
+ } else {
6904
+ var prevKeyPath$jscomp$3 = task.keyPath;
6905
+ task.keyPath = keyPath;
6906
+ renderNodeDestructive(request, task, children$jscomp$0, -1);
6907
+ task.keyPath = prevKeyPath$jscomp$3;
6908
+ }
6852
6909
  }
6853
6910
  return;
6854
6911
  case REACT_VIEW_TRANSITION_TYPE:
@@ -6876,7 +6933,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
6876
6933
  } else {
6877
6934
  var prevKeyPath$jscomp$4 = task.keyPath,
6878
6935
  prevContext$jscomp$0 = task.formatContext,
6879
- prevRow = task.row,
6936
+ prevRow$jscomp$0 = task.row,
6880
6937
  parentBoundary = task.blockedBoundary,
6881
6938
  parentPreamble = task.blockedPreamble,
6882
6939
  parentHoistableState = task.hoistableState,
@@ -7012,18 +7069,24 @@ function renderElement(request, task, keyPath, type, props, ref) {
7012
7069
  finishedSegment(request, newBoundary, contentRootSegment),
7013
7070
  queueCompletedSegment(newBoundary, contentRootSegment),
7014
7071
  0 === newBoundary.pendingTasks &&
7015
- newBoundary.status === PENDING &&
7016
- ((newBoundary.status = COMPLETED),
7017
- !(500 < newBoundary.byteSize)))
7072
+ newBoundary.status === PENDING)
7018
7073
  ) {
7019
- null !== prevRow &&
7020
- 0 === --prevRow.pendingTasks &&
7021
- finishSuspenseListRow(request, prevRow);
7022
- 0 === request.pendingRootTasks &&
7023
- task.blockedPreamble &&
7024
- preparePreamble(request);
7025
- break a;
7026
- }
7074
+ if (
7075
+ ((newBoundary.status = COMPLETED),
7076
+ !(500 < newBoundary.byteSize))
7077
+ ) {
7078
+ null !== prevRow$jscomp$0 &&
7079
+ 0 === --prevRow$jscomp$0.pendingTasks &&
7080
+ finishSuspenseListRow(request, prevRow$jscomp$0);
7081
+ 0 === request.pendingRootTasks &&
7082
+ task.blockedPreamble &&
7083
+ preparePreamble(request);
7084
+ break a;
7085
+ }
7086
+ } else
7087
+ null !== prevRow$jscomp$0 &&
7088
+ prevRow$jscomp$0.together &&
7089
+ tryToResolveTogetherRow(request, prevRow$jscomp$0);
7027
7090
  } catch (thrownValue$2) {
7028
7091
  newBoundary.status = CLIENT_RENDERED;
7029
7092
  if (12 === request.status) {
@@ -7052,7 +7115,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
7052
7115
  (task.blockedSegment = parentSegment),
7053
7116
  (task.keyPath = prevKeyPath$jscomp$4),
7054
7117
  (task.formatContext = prevContext$jscomp$0),
7055
- (task.row = prevRow);
7118
+ (task.row = prevRow$jscomp$0);
7056
7119
  }
7057
7120
  var suspendedFallbackTask = createRenderTask(
7058
7121
  request,
@@ -7977,10 +8040,6 @@ function abortTask(task, request, error) {
7977
8040
  if (6 === segment.status) return;
7978
8041
  segment.status = ABORTED;
7979
8042
  }
7980
- segment = task.row;
7981
- null !== segment &&
7982
- 0 === --segment.pendingTasks &&
7983
- finishSuspenseListRow(request, segment);
7984
8043
  segment = getThrownInfo(task.componentStack);
7985
8044
  if (null === boundary) {
7986
8045
  if (13 !== request.status && request.status !== CLOSED) {
@@ -7991,36 +8050,44 @@ function abortTask(task, request, error) {
7991
8050
  return;
7992
8051
  }
7993
8052
  boundary.pendingTasks--;
7994
- 0 === boundary.pendingTasks &&
7995
- 0 < boundary.nodes.length &&
7996
- ((task = logRecoverableError(request, error, segment, null)),
8053
+ if (0 === boundary.pendingTasks && 0 < boundary.nodes.length) {
8054
+ var errorDigest = logRecoverableError(request, error, segment, null);
7997
8055
  abortRemainingReplayNodes(
7998
8056
  request,
7999
8057
  null,
8000
8058
  boundary.nodes,
8001
8059
  boundary.slots,
8002
8060
  error,
8003
- task,
8061
+ errorDigest,
8004
8062
  segment,
8005
8063
  !0
8006
- ));
8064
+ );
8065
+ }
8007
8066
  request.pendingRootTasks--;
8008
8067
  0 === request.pendingRootTasks && completeShell(request);
8009
8068
  }
8010
8069
  } else
8011
- boundary.pendingTasks--,
8012
- boundary.status !== CLIENT_RENDERED &&
8013
- ((boundary.status = CLIENT_RENDERED),
8014
- (task = logRecoverableError(request, error, segment, null)),
8015
- (boundary.status = CLIENT_RENDERED),
8016
- encodeErrorForBoundary(boundary, task, error, segment, !0),
8017
- untrackBoundary(request, boundary),
8018
- boundary.parentFlushed &&
8019
- request.clientRenderedBoundaries.push(boundary)),
8070
+ boundary.status !== CLIENT_RENDERED &&
8071
+ ((boundary.status = CLIENT_RENDERED),
8072
+ (errorDigest = logRecoverableError(request, error, segment, null)),
8073
+ (boundary.status = CLIENT_RENDERED),
8074
+ encodeErrorForBoundary(boundary, errorDigest, error, segment, !0),
8075
+ untrackBoundary(request, boundary),
8076
+ boundary.parentFlushed &&
8077
+ request.clientRenderedBoundaries.push(boundary)),
8078
+ boundary.pendingTasks--,
8079
+ (segment = boundary.row),
8080
+ null !== segment &&
8081
+ 0 === --segment.pendingTasks &&
8082
+ finishSuspenseListRow(request, segment),
8020
8083
  boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
8021
8084
  return abortTask(fallbackTask, request, error);
8022
8085
  }),
8023
8086
  boundary.fallbackAbortableTasks.clear();
8087
+ task = task.row;
8088
+ null !== task &&
8089
+ 0 === --task.pendingTasks &&
8090
+ finishSuspenseListRow(request, task);
8024
8091
  request.allPendingTasks--;
8025
8092
  0 === request.allPendingTasks && completeAll(request);
8026
8093
  }
@@ -8130,8 +8197,9 @@ function finishedSegment(request, boundary, segment) {
8130
8197
  }
8131
8198
  function finishedTask(request, boundary, row, segment) {
8132
8199
  null !== row &&
8133
- 0 === --row.pendingTasks &&
8134
- finishSuspenseListRow(request, row);
8200
+ (0 === --row.pendingTasks
8201
+ ? finishSuspenseListRow(request, row)
8202
+ : row.together && tryToResolveTogetherRow(request, row));
8135
8203
  request.allPendingTasks--;
8136
8204
  if (null === boundary) {
8137
8205
  if (null !== segment && segment.parentFlushed) {
@@ -8155,13 +8223,15 @@ function finishedTask(request, boundary, row, segment) {
8155
8223
  boundary.parentFlushed &&
8156
8224
  request.completedBoundaries.push(boundary),
8157
8225
  boundary.status === COMPLETED &&
8158
- (500 < boundary.byteSize ||
8226
+ ((row = boundary.row),
8227
+ null !== row &&
8228
+ hoistHoistables(row.hoistables, boundary.contentState),
8229
+ 500 < boundary.byteSize ||
8159
8230
  (boundary.fallbackAbortableTasks.forEach(
8160
8231
  abortTaskSoft,
8161
8232
  request
8162
8233
  ),
8163
8234
  boundary.fallbackAbortableTasks.clear(),
8164
- (row = boundary.row),
8165
8235
  null !== row &&
8166
8236
  0 === --row.pendingTasks &&
8167
8237
  finishSuspenseListRow(request, row)),
@@ -8169,13 +8239,17 @@ function finishedTask(request, boundary, row, segment) {
8169
8239
  null === request.trackedPostpones &&
8170
8240
  null !== boundary.contentPreamble &&
8171
8241
  preparePreamble(request)))
8172
- : null !== segment &&
8173
- segment.parentFlushed &&
8174
- segment.status === COMPLETED &&
8175
- (queueCompletedSegment(boundary, segment),
8176
- 1 === boundary.completedSegments.length &&
8177
- boundary.parentFlushed &&
8178
- request.partialBoundaries.push(boundary)));
8242
+ : (null !== segment &&
8243
+ segment.parentFlushed &&
8244
+ segment.status === COMPLETED &&
8245
+ (queueCompletedSegment(boundary, segment),
8246
+ 1 === boundary.completedSegments.length &&
8247
+ boundary.parentFlushed &&
8248
+ request.partialBoundaries.push(boundary)),
8249
+ (boundary = boundary.row),
8250
+ null !== boundary &&
8251
+ boundary.together &&
8252
+ tryToResolveTogetherRow(request, boundary)));
8179
8253
  0 === request.allPendingTasks && completeAll(request);
8180
8254
  }
8181
8255
  function performWork(request$jscomp$2) {
@@ -8357,25 +8431,32 @@ function performWork(request$jscomp$2) {
8357
8431
  errorInfo$jscomp$1,
8358
8432
  debugTask
8359
8433
  );
8360
- null === boundary$jscomp$0
8361
- ? fatalError(request, x$jscomp$0, errorInfo$jscomp$1, debugTask)
8362
- : (boundary$jscomp$0.pendingTasks--,
8363
- boundary$jscomp$0.status !== CLIENT_RENDERED &&
8364
- ((boundary$jscomp$0.status = CLIENT_RENDERED),
8365
- encodeErrorForBoundary(
8366
- boundary$jscomp$0,
8367
- prevTaskInDEV,
8368
- x$jscomp$0,
8369
- errorInfo$jscomp$1,
8370
- !1
8371
- ),
8372
- untrackBoundary(request, boundary$jscomp$0),
8373
- boundary$jscomp$0.parentFlushed &&
8374
- request.clientRenderedBoundaries.push(boundary$jscomp$0),
8375
- 0 === request.pendingRootTasks &&
8376
- null === request.trackedPostpones &&
8377
- null !== boundary$jscomp$0.contentPreamble &&
8378
- preparePreamble(request)));
8434
+ if (null === boundary$jscomp$0)
8435
+ fatalError(request, x$jscomp$0, errorInfo$jscomp$1, debugTask);
8436
+ else if (
8437
+ (boundary$jscomp$0.pendingTasks--,
8438
+ boundary$jscomp$0.status !== CLIENT_RENDERED)
8439
+ ) {
8440
+ boundary$jscomp$0.status = CLIENT_RENDERED;
8441
+ encodeErrorForBoundary(
8442
+ boundary$jscomp$0,
8443
+ prevTaskInDEV,
8444
+ x$jscomp$0,
8445
+ errorInfo$jscomp$1,
8446
+ !1
8447
+ );
8448
+ untrackBoundary(request, boundary$jscomp$0);
8449
+ var boundaryRow = boundary$jscomp$0.row;
8450
+ null !== boundaryRow &&
8451
+ 0 === --boundaryRow.pendingTasks &&
8452
+ finishSuspenseListRow(request, boundaryRow);
8453
+ boundary$jscomp$0.parentFlushed &&
8454
+ request.clientRenderedBoundaries.push(boundary$jscomp$0);
8455
+ 0 === request.pendingRootTasks &&
8456
+ null === request.trackedPostpones &&
8457
+ null !== boundary$jscomp$0.contentPreamble &&
8458
+ preparePreamble(request);
8459
+ }
8379
8460
  0 === request.allPendingTasks && completeAll(request);
8380
8461
  }
8381
8462
  } finally {
@@ -8574,13 +8655,7 @@ function flushSegment(request, destination, segment, hoistableState) {
8574
8655
  request.renderState,
8575
8656
  boundary.rootSegmentID
8576
8657
  ),
8577
- hoistableState &&
8578
- ((boundary = boundary.fallbackState),
8579
- boundary.styles.forEach(hoistStyleQueueDependency, hoistableState),
8580
- boundary.stylesheets.forEach(
8581
- hoistStylesheetDependency,
8582
- hoistableState
8583
- )),
8658
+ hoistableState && hoistHoistables(hoistableState, boundary.fallbackState),
8584
8659
  flushSubtree(request, destination, segment, hoistableState);
8585
8660
  else if (
8586
8661
  500 < boundary.byteSize &&
@@ -8596,10 +8671,7 @@ function flushSegment(request, destination, segment, hoistableState) {
8596
8671
  flushSubtree(request, destination, segment, hoistableState);
8597
8672
  else {
8598
8673
  flushedByteSize += boundary.byteSize;
8599
- hoistableState &&
8600
- ((segment = boundary.contentState),
8601
- segment.styles.forEach(hoistStyleQueueDependency, hoistableState),
8602
- segment.stylesheets.forEach(hoistStylesheetDependency, hoistableState));
8674
+ hoistableState && hoistHoistables(hoistableState, boundary.contentState);
8603
8675
  segment = boundary.row;
8604
8676
  null !== segment &&
8605
8677
  500 < boundary.byteSize &&
@@ -8976,6 +9048,17 @@ function flushCompletedQueues(request, destination) {
8976
9048
  break a;
8977
9049
  }
8978
9050
  completedSegments.splice(0, JSCompiler_inline_result);
9051
+ var row = boundary$jscomp$0.row;
9052
+ null !== row &&
9053
+ row.together &&
9054
+ 1 === boundary$jscomp$0.pendingTasks &&
9055
+ (1 === row.pendingTasks
9056
+ ? unblockSuspenseListRow(
9057
+ clientRenderedBoundaries,
9058
+ row,
9059
+ row.hoistables
9060
+ )
9061
+ : row.pendingTasks--);
8979
9062
  JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
8980
9063
  boundary,
8981
9064
  boundary$jscomp$0.contentState,
@@ -9071,13 +9154,13 @@ function abort(request, reason) {
9071
9154
  }
9072
9155
  var isomorphicReactPackageVersion$jscomp$inline_752 = React.version;
9073
9156
  if (
9074
- "19.2.0-canary-c4676e72-20250520" !==
9157
+ "19.2.0-canary-23884812-20250520" !==
9075
9158
  isomorphicReactPackageVersion$jscomp$inline_752
9076
9159
  )
9077
9160
  throw Error(
9078
9161
  'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
9079
9162
  (isomorphicReactPackageVersion$jscomp$inline_752 +
9080
- "\n - react-dom: 19.2.0-canary-c4676e72-20250520\nLearn more: https://react.dev/warnings/version-mismatch")
9163
+ "\n - react-dom: 19.2.0-canary-23884812-20250520\nLearn more: https://react.dev/warnings/version-mismatch")
9081
9164
  );
9082
9165
  exports.renderToReadableStream = function (children, options) {
9083
9166
  return new Promise(function (resolve, reject) {
@@ -9170,4 +9253,4 @@ exports.renderToReadableStream = function (children, options) {
9170
9253
  startWork(request$jscomp$0);
9171
9254
  });
9172
9255
  };
9173
- exports.version = "19.2.0-canary-c4676e72-20250520";
9256
+ exports.version = "19.2.0-canary-23884812-20250520";