react-markup 0.0.0-experimental-c4676e72-20250520 → 0.0.0-experimental-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.
@@ -5736,6 +5736,10 @@ function hoistStyleQueueDependency(styleQueue) {
5736
5736
  function hoistStylesheetDependency(stylesheet) {
5737
5737
  this.stylesheets.add(stylesheet);
5738
5738
  }
5739
+ function hoistHoistables(parentState, childState) {
5740
+ childState.styles.forEach(hoistStyleQueueDependency, parentState);
5741
+ childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
5742
+ }
5739
5743
  var emptyContextObject = {},
5740
5744
  currentActiveSnapshot = null;
5741
5745
  function popToNearestCommonAncestor(prev, next) {
@@ -6344,11 +6348,14 @@ function createSuspenseBoundary(
6344
6348
  };
6345
6349
  null !== row &&
6346
6350
  (row.pendingTasks++,
6347
- (row = row.boundaries),
6348
- null !== row &&
6351
+ (contentPreamble = row.boundaries),
6352
+ null !== contentPreamble &&
6349
6353
  (request.allPendingTasks++,
6350
6354
  fallbackAbortableTasks.pendingTasks++,
6351
- row.push(fallbackAbortableTasks)));
6355
+ contentPreamble.push(fallbackAbortableTasks)),
6356
+ (request = row.inheritedHoistables),
6357
+ null !== request &&
6358
+ hoistHoistables(fallbackAbortableTasks.contentState, request));
6352
6359
  return fallbackAbortableTasks;
6353
6360
  }
6354
6361
  function createRenderTask(
@@ -6517,20 +6524,56 @@ function fatalError(request, error) {
6517
6524
  : ((request.status = 13), (request.fatalError = error));
6518
6525
  }
6519
6526
  function finishSuspenseListRow(request, row) {
6520
- for (row = row.next; null !== row; ) {
6521
- var unblockedBoundaries = row.boundaries;
6527
+ unblockSuspenseListRow(request, row.next, row.hoistables);
6528
+ }
6529
+ function unblockSuspenseListRow(request, unblockedRow, inheritedHoistables) {
6530
+ for (; null !== unblockedRow; ) {
6531
+ null !== inheritedHoistables &&
6532
+ (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
6533
+ (unblockedRow.inheritedHoistables = inheritedHoistables));
6534
+ var unblockedBoundaries = unblockedRow.boundaries;
6522
6535
  if (null !== unblockedBoundaries) {
6523
- row.boundaries = null;
6524
- for (var i = 0; i < unblockedBoundaries.length; i++)
6525
- finishedTask(request, unblockedBoundaries[i], null, null);
6536
+ unblockedRow.boundaries = null;
6537
+ for (var i = 0; i < unblockedBoundaries.length; i++) {
6538
+ var unblockedBoundary = unblockedBoundaries[i];
6539
+ null !== inheritedHoistables &&
6540
+ hoistHoistables(unblockedBoundary.contentState, inheritedHoistables);
6541
+ finishedTask(request, unblockedBoundary, null, null);
6542
+ }
6543
+ }
6544
+ unblockedRow.pendingTasks--;
6545
+ if (0 < unblockedRow.pendingTasks) break;
6546
+ inheritedHoistables = unblockedRow.hoistables;
6547
+ unblockedRow = unblockedRow.next;
6548
+ }
6549
+ }
6550
+ function tryToResolveTogetherRow(request, togetherRow) {
6551
+ var boundaries = togetherRow.boundaries;
6552
+ if (null !== boundaries && togetherRow.pendingTasks === boundaries.length) {
6553
+ for (var allCompleteAndInlinable = !0, i = 0; i < boundaries.length; i++) {
6554
+ var rowBoundary = boundaries[i];
6555
+ if (
6556
+ 1 !== rowBoundary.pendingTasks ||
6557
+ rowBoundary.parentFlushed ||
6558
+ 500 < rowBoundary.byteSize
6559
+ ) {
6560
+ allCompleteAndInlinable = !1;
6561
+ break;
6562
+ }
6526
6563
  }
6527
- row.pendingTasks--;
6528
- if (0 < row.pendingTasks) break;
6529
- row = row.next;
6564
+ allCompleteAndInlinable &&
6565
+ unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
6530
6566
  }
6531
6567
  }
6532
6568
  function createSuspenseListRow(previousRow) {
6533
- var newRow = { pendingTasks: 1, boundaries: null, next: null };
6569
+ var newRow = {
6570
+ pendingTasks: 1,
6571
+ boundaries: null,
6572
+ hoistables: createHoistableState(),
6573
+ inheritedHoistables: null,
6574
+ together: !1,
6575
+ next: null
6576
+ };
6534
6577
  null !== previousRow &&
6535
6578
  0 < previousRow.pendingTasks &&
6536
6579
  (newRow.pendingTasks++,
@@ -6539,21 +6582,22 @@ function createSuspenseListRow(previousRow) {
6539
6582
  return newRow;
6540
6583
  }
6541
6584
  function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
6542
- keyPath = task.keyPath;
6543
- var prevTreeContext = task.treeContext,
6544
- prevRow = task.row,
6545
- totalChildren = rows.length,
6546
- previousSuspenseListRow = null;
6585
+ var prevKeyPath = task.keyPath,
6586
+ prevTreeContext = task.treeContext,
6587
+ prevRow = task.row;
6588
+ task.keyPath = keyPath;
6589
+ keyPath = rows.length;
6590
+ var previousSuspenseListRow = null;
6547
6591
  if (null !== task.replay) {
6548
6592
  var resumeSlots = task.replay.slots;
6549
6593
  if (null !== resumeSlots && "object" === typeof resumeSlots)
6550
- for (var n = 0; n < totalChildren; n++) {
6551
- var i = "backwards" !== revealOrder ? n : totalChildren - 1 - n,
6594
+ for (var n = 0; n < keyPath; n++) {
6595
+ var i = "backwards" !== revealOrder ? n : keyPath - 1 - n,
6552
6596
  node = rows[i];
6553
6597
  task.row = previousSuspenseListRow = createSuspenseListRow(
6554
6598
  previousSuspenseListRow
6555
6599
  );
6556
- task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i);
6600
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
6557
6601
  var resumeSegmentID = resumeSlots[i];
6558
6602
  "number" === typeof resumeSegmentID
6559
6603
  ? (resumeNode(request, task, resumeSegmentID, node, i),
@@ -6563,30 +6607,26 @@ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
6563
6607
  finishSuspenseListRow(request, previousSuspenseListRow);
6564
6608
  }
6565
6609
  else
6566
- for (resumeSlots = 0; resumeSlots < totalChildren; resumeSlots++)
6610
+ for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
6567
6611
  (n =
6568
6612
  "backwards" !== revealOrder
6569
6613
  ? resumeSlots
6570
- : totalChildren - 1 - resumeSlots),
6614
+ : keyPath - 1 - resumeSlots),
6571
6615
  (i = rows[n]),
6572
6616
  (task.row = previousSuspenseListRow =
6573
6617
  createSuspenseListRow(previousSuspenseListRow)),
6574
- (task.treeContext = pushTreeContext(
6575
- prevTreeContext,
6576
- totalChildren,
6577
- n
6578
- )),
6618
+ (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
6579
6619
  renderNode(request, task, i, n),
6580
6620
  0 === --previousSuspenseListRow.pendingTasks &&
6581
6621
  finishSuspenseListRow(request, previousSuspenseListRow);
6582
6622
  } else if ("backwards" !== revealOrder)
6583
- for (revealOrder = 0; revealOrder < totalChildren; revealOrder++)
6623
+ for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
6584
6624
  (resumeSlots = rows[revealOrder]),
6585
6625
  (task.row = previousSuspenseListRow =
6586
6626
  createSuspenseListRow(previousSuspenseListRow)),
6587
6627
  (task.treeContext = pushTreeContext(
6588
6628
  prevTreeContext,
6589
- totalChildren,
6629
+ keyPath,
6590
6630
  revealOrder
6591
6631
  )),
6592
6632
  renderNode(request, task, resumeSlots, revealOrder),
@@ -6596,12 +6636,12 @@ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
6596
6636
  revealOrder = task.blockedSegment;
6597
6637
  resumeSlots = revealOrder.children.length;
6598
6638
  n = revealOrder.chunks.length;
6599
- for (i = totalChildren - 1; 0 <= i; i--) {
6639
+ for (i = keyPath - 1; 0 <= i; i--) {
6600
6640
  node = rows[i];
6601
6641
  task.row = previousSuspenseListRow = createSuspenseListRow(
6602
6642
  previousSuspenseListRow
6603
6643
  );
6604
- task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i);
6644
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
6605
6645
  resumeSegmentID = createPendingSegment(
6606
6646
  request,
6607
6647
  n,
@@ -6633,7 +6673,7 @@ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
6633
6673
  (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
6634
6674
  task.treeContext = prevTreeContext;
6635
6675
  task.row = prevRow;
6636
- task.keyPath = keyPath;
6676
+ task.keyPath = prevKeyPath;
6637
6677
  }
6638
6678
  function renderWithHooks(request, task, keyPath, Component, props, secondArg) {
6639
6679
  var prevThenableState = task.thenableState;
@@ -6702,9 +6742,9 @@ function renderElement(request, task, keyPath, type, props, ref) {
6702
6742
  var defaultProps = type.defaultProps;
6703
6743
  if (defaultProps) {
6704
6744
  newProps === props && (newProps = assign({}, newProps, props));
6705
- for (var propName$100 in defaultProps)
6706
- void 0 === newProps[propName$100] &&
6707
- (newProps[propName$100] = defaultProps[propName$100]);
6745
+ for (var propName$101 in defaultProps)
6746
+ void 0 === newProps[propName$101] &&
6747
+ (newProps[propName$101] = defaultProps[propName$101]);
6708
6748
  }
6709
6749
  var JSCompiler_inline_result = newProps;
6710
6750
  var context = emptyContextObject,
@@ -6871,13 +6911,13 @@ function renderElement(request, task, keyPath, type, props, ref) {
6871
6911
  textEmbedded
6872
6912
  );
6873
6913
  segment.lastPushedText = !1;
6874
- var prevContext$98 = task.formatContext,
6875
- prevKeyPath$99 = task.keyPath;
6914
+ var prevContext$99 = task.formatContext,
6915
+ prevKeyPath$100 = task.keyPath;
6876
6916
  task.keyPath = keyPath;
6877
6917
  if (
6878
6918
  3 ===
6879
6919
  (task.formatContext = getChildFormatContext(
6880
- prevContext$98,
6920
+ prevContext$99,
6881
6921
  type,
6882
6922
  props
6883
6923
  )).insertionMode
@@ -6911,8 +6951,8 @@ function renderElement(request, task, keyPath, type, props, ref) {
6911
6951
  pushComponentStack(preambleTask);
6912
6952
  request.pingedTasks.push(preambleTask);
6913
6953
  } else renderNode(request, task, JSCompiler_inline_result$jscomp$2, -1);
6914
- task.formatContext = prevContext$98;
6915
- task.keyPath = prevKeyPath$99;
6954
+ task.formatContext = prevContext$99;
6955
+ task.keyPath = prevKeyPath$100;
6916
6956
  a: {
6917
6957
  var target$jscomp$0 = segment.chunks,
6918
6958
  resumableState$jscomp$0 = request.resumableState;
@@ -6937,19 +6977,19 @@ function renderElement(request, task, keyPath, type, props, ref) {
6937
6977
  case "wbr":
6938
6978
  break a;
6939
6979
  case "body":
6940
- if (1 >= prevContext$98.insertionMode) {
6980
+ if (1 >= prevContext$99.insertionMode) {
6941
6981
  resumableState$jscomp$0.hasBody = !0;
6942
6982
  break a;
6943
6983
  }
6944
6984
  break;
6945
6985
  case "html":
6946
- if (0 === prevContext$98.insertionMode) {
6986
+ if (0 === prevContext$99.insertionMode) {
6947
6987
  resumableState$jscomp$0.hasHtml = !0;
6948
6988
  break a;
6949
6989
  }
6950
6990
  break;
6951
6991
  case "head":
6952
- if (1 >= prevContext$98.insertionMode) break a;
6992
+ if (1 >= prevContext$99.insertionMode) break a;
6953
6993
  }
6954
6994
  target$jscomp$0.push(endChunkForTag(type));
6955
6995
  }
@@ -6977,10 +7017,10 @@ function renderElement(request, task, keyPath, type, props, ref) {
6977
7017
  }
6978
7018
  } else if ("hidden" !== props.mode) {
6979
7019
  segment$jscomp$0.lastPushedText = !1;
6980
- var prevKeyPath$102 = task.keyPath;
7020
+ var prevKeyPath$103 = task.keyPath;
6981
7021
  task.keyPath = keyPath;
6982
7022
  renderNode(request, task, props.children, -1);
6983
- task.keyPath = prevKeyPath$102;
7023
+ task.keyPath = prevKeyPath$103;
6984
7024
  segment$jscomp$0.lastPushedText = !1;
6985
7025
  }
6986
7026
  return;
@@ -7059,10 +7099,27 @@ function renderElement(request, task, keyPath, type, props, ref) {
7059
7099
  }
7060
7100
  }
7061
7101
  }
7062
- var prevKeyPath$jscomp$3 = task.keyPath;
7063
- task.keyPath = keyPath;
7064
- renderNodeDestructive(request, task, children$jscomp$0, -1);
7065
- task.keyPath = prevKeyPath$jscomp$3;
7102
+ if ("together" === revealOrder) {
7103
+ var prevKeyPath$97 = task.keyPath,
7104
+ prevRow = task.row,
7105
+ newRow = (task.row = createSuspenseListRow(null));
7106
+ newRow.boundaries = [];
7107
+ newRow.together = !0;
7108
+ task.keyPath = keyPath;
7109
+ renderNodeDestructive(request, task, children$jscomp$0, -1);
7110
+ 0 === --newRow.pendingTasks &&
7111
+ finishSuspenseListRow(request, newRow);
7112
+ task.keyPath = prevKeyPath$97;
7113
+ task.row = prevRow;
7114
+ null !== prevRow &&
7115
+ 0 < newRow.pendingTasks &&
7116
+ (prevRow.pendingTasks++, (newRow.next = prevRow));
7117
+ } else {
7118
+ var prevKeyPath$jscomp$3 = task.keyPath;
7119
+ task.keyPath = keyPath;
7120
+ renderNodeDestructive(request, task, children$jscomp$0, -1);
7121
+ task.keyPath = prevKeyPath$jscomp$3;
7122
+ }
7066
7123
  }
7067
7124
  return;
7068
7125
  case REACT_VIEW_TRANSITION_TYPE:
@@ -7110,7 +7167,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
7110
7167
  } else {
7111
7168
  var prevKeyPath$jscomp$5 = task.keyPath,
7112
7169
  prevContext$jscomp$1 = task.formatContext,
7113
- prevRow = task.row,
7170
+ prevRow$jscomp$0 = task.row,
7114
7171
  parentBoundary = task.blockedBoundary,
7115
7172
  parentPreamble = task.blockedPreamble,
7116
7173
  parentHoistableState = task.hoistableState,
@@ -7229,18 +7286,21 @@ function renderElement(request, task, keyPath, type, props, ref) {
7229
7286
  (renderNode(request, task, content, -1),
7230
7287
  (contentRootSegment.status = 1),
7231
7288
  queueCompletedSegment(newBoundary, contentRootSegment),
7232
- 0 === newBoundary.pendingTasks &&
7233
- 0 === newBoundary.status &&
7234
- ((newBoundary.status = 1), !(500 < newBoundary.byteSize)))
7289
+ 0 === newBoundary.pendingTasks && 0 === newBoundary.status)
7235
7290
  ) {
7236
- null !== prevRow &&
7237
- 0 === --prevRow.pendingTasks &&
7238
- finishSuspenseListRow(request, prevRow);
7239
- 0 === request.pendingRootTasks &&
7240
- task.blockedPreamble &&
7241
- preparePreamble(request);
7242
- break a;
7243
- }
7291
+ if (((newBoundary.status = 1), !(500 < newBoundary.byteSize))) {
7292
+ null !== prevRow$jscomp$0 &&
7293
+ 0 === --prevRow$jscomp$0.pendingTasks &&
7294
+ finishSuspenseListRow(request, prevRow$jscomp$0);
7295
+ 0 === request.pendingRootTasks &&
7296
+ task.blockedPreamble &&
7297
+ preparePreamble(request);
7298
+ break a;
7299
+ }
7300
+ } else
7301
+ null !== prevRow$jscomp$0 &&
7302
+ prevRow$jscomp$0.together &&
7303
+ tryToResolveTogetherRow(request, prevRow$jscomp$0);
7244
7304
  } catch (thrownValue$85) {
7245
7305
  newBoundary.status = 4;
7246
7306
  if (12 === request.status) {
@@ -7266,7 +7326,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
7266
7326
  (task.blockedSegment = parentSegment),
7267
7327
  (task.keyPath = prevKeyPath$jscomp$5),
7268
7328
  (task.formatContext = prevContext$jscomp$1),
7269
- (task.row = prevRow);
7329
+ (task.row = prevRow$jscomp$0);
7270
7330
  }
7271
7331
  var suspendedFallbackTask = createRenderTask(
7272
7332
  request,
@@ -7810,9 +7870,9 @@ function trackPostpone(request, trackedPostpones, task, segment) {
7810
7870
  addToReplayParent(segment, boundaryKeyPath[0], trackedPostpones);
7811
7871
  return;
7812
7872
  }
7813
- var boundaryNode$111 = trackedPostpones.workingMap.get(boundaryKeyPath);
7814
- void 0 === boundaryNode$111
7815
- ? ((boundaryNode$111 = [
7873
+ var boundaryNode$112 = trackedPostpones.workingMap.get(boundaryKeyPath);
7874
+ void 0 === boundaryNode$112
7875
+ ? ((boundaryNode$112 = [
7816
7876
  boundaryKeyPath[1],
7817
7877
  boundaryKeyPath[2],
7818
7878
  children,
@@ -7820,13 +7880,13 @@ function trackPostpone(request, trackedPostpones, task, segment) {
7820
7880
  fallbackReplayNode,
7821
7881
  boundary.rootSegmentID
7822
7882
  ]),
7823
- trackedPostpones.workingMap.set(boundaryKeyPath, boundaryNode$111),
7883
+ trackedPostpones.workingMap.set(boundaryKeyPath, boundaryNode$112),
7824
7884
  addToReplayParent(
7825
- boundaryNode$111,
7885
+ boundaryNode$112,
7826
7886
  boundaryKeyPath[0],
7827
7887
  trackedPostpones
7828
7888
  ))
7829
- : ((boundaryKeyPath = boundaryNode$111),
7889
+ : ((boundaryKeyPath = boundaryNode$112),
7830
7890
  (boundaryKeyPath[4] = fallbackReplayNode),
7831
7891
  (boundaryKeyPath[5] = boundary.rootSegmentID));
7832
7892
  }
@@ -7980,15 +8040,15 @@ function renderNode(request, task, node, childIndex) {
7980
8040
  chunkLength = segment.chunks.length;
7981
8041
  try {
7982
8042
  return renderNodeDestructive(request, task, node, childIndex);
7983
- } catch (thrownValue$123) {
8043
+ } catch (thrownValue$124) {
7984
8044
  if (
7985
8045
  (resetHooksState(),
7986
8046
  (segment.children.length = childrenLength),
7987
8047
  (segment.chunks.length = chunkLength),
7988
8048
  (childIndex =
7989
- thrownValue$123 === SuspenseException
8049
+ thrownValue$124 === SuspenseException
7990
8050
  ? getSuspendedThenable()
7991
- : thrownValue$123),
8051
+ : thrownValue$124),
7992
8052
  "object" === typeof childIndex && null !== childIndex)
7993
8053
  ) {
7994
8054
  if ("function" === typeof childIndex.then) {
@@ -8141,10 +8201,6 @@ function abortTask(task, request, error) {
8141
8201
  if (6 === segment.status) return;
8142
8202
  segment.status = 3;
8143
8203
  }
8144
- var row = task.row;
8145
- null !== row &&
8146
- 0 === --row.pendingTasks &&
8147
- finishSuspenseListRow(request, row);
8148
8204
  var errorInfo = getThrownInfo(task.componentStack);
8149
8205
  if (null === boundary) {
8150
8206
  if (13 !== request.status && 14 !== request.status) {
@@ -8157,7 +8213,7 @@ function abortTask(task, request, error) {
8157
8213
  null !== boundary && null !== segment
8158
8214
  ? (logPostpone(request, error.message, errorInfo),
8159
8215
  trackPostpone(request, boundary, task, segment),
8160
- finishedTask(request, null, row, segment))
8216
+ finishedTask(request, null, task.row, segment))
8161
8217
  : ((task = Error(
8162
8218
  "The render was aborted with postpone when the shell is incomplete. Reason: " +
8163
8219
  error.message
@@ -8168,7 +8224,7 @@ function abortTask(task, request, error) {
8168
8224
  ? ((boundary = request.trackedPostpones),
8169
8225
  logRecoverableError(request, error, errorInfo),
8170
8226
  trackPostpone(request, boundary, task, segment),
8171
- finishedTask(request, null, row, segment))
8227
+ finishedTask(request, null, task.row, segment))
8172
8228
  : (logRecoverableError(request, error, errorInfo),
8173
8229
  fatalError(request, error));
8174
8230
  return;
@@ -8194,22 +8250,21 @@ function abortTask(task, request, error) {
8194
8250
  0 === request.pendingRootTasks && completeShell(request);
8195
8251
  }
8196
8252
  } else {
8197
- boundary.pendingTasks--;
8198
- var trackedPostpones$126 = request.trackedPostpones;
8253
+ var trackedPostpones$127 = request.trackedPostpones;
8199
8254
  if (4 !== boundary.status) {
8200
- if (null !== trackedPostpones$126 && null !== segment)
8255
+ if (null !== trackedPostpones$127 && null !== segment)
8201
8256
  return (
8202
8257
  "object" === typeof error &&
8203
8258
  null !== error &&
8204
8259
  error.$$typeof === REACT_POSTPONE_TYPE
8205
8260
  ? logPostpone(request, error.message, errorInfo)
8206
8261
  : logRecoverableError(request, error, errorInfo),
8207
- trackPostpone(request, trackedPostpones$126, task, segment),
8262
+ trackPostpone(request, trackedPostpones$127, task, segment),
8208
8263
  boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
8209
8264
  return abortTask(fallbackTask, request, error);
8210
8265
  }),
8211
8266
  boundary.fallbackAbortableTasks.clear(),
8212
- finishedTask(request, boundary, row, segment)
8267
+ finishedTask(request, boundary, task.row, segment)
8213
8268
  );
8214
8269
  boundary.status = 4;
8215
8270
  if (
@@ -8220,7 +8275,7 @@ function abortTask(task, request, error) {
8220
8275
  logPostpone(request, error.message, errorInfo);
8221
8276
  if (null !== request.trackedPostpones && null !== segment) {
8222
8277
  trackPostpone(request, request.trackedPostpones, task, segment);
8223
- finishedTask(request, task.blockedBoundary, row, segment);
8278
+ finishedTask(request, task.blockedBoundary, task.row, segment);
8224
8279
  boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
8225
8280
  return abortTask(fallbackTask, request, error);
8226
8281
  });
@@ -8234,11 +8289,20 @@ function abortTask(task, request, error) {
8234
8289
  untrackBoundary(request, boundary);
8235
8290
  boundary.parentFlushed && request.clientRenderedBoundaries.push(boundary);
8236
8291
  }
8292
+ boundary.pendingTasks--;
8293
+ errorInfo = boundary.row;
8294
+ null !== errorInfo &&
8295
+ 0 === --errorInfo.pendingTasks &&
8296
+ finishSuspenseListRow(request, errorInfo);
8237
8297
  boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
8238
8298
  return abortTask(fallbackTask, request, error);
8239
8299
  });
8240
8300
  boundary.fallbackAbortableTasks.clear();
8241
8301
  }
8302
+ task = task.row;
8303
+ null !== task &&
8304
+ 0 === --task.pendingTasks &&
8305
+ finishSuspenseListRow(request, task);
8242
8306
  request.allPendingTasks--;
8243
8307
  0 === request.allPendingTasks && completeAll(request);
8244
8308
  }
@@ -8337,8 +8401,9 @@ function queueCompletedSegment(boundary, segment) {
8337
8401
  }
8338
8402
  function finishedTask(request, boundary, row, segment) {
8339
8403
  null !== row &&
8340
- 0 === --row.pendingTasks &&
8341
- finishSuspenseListRow(request, row);
8404
+ (0 === --row.pendingTasks
8405
+ ? finishSuspenseListRow(request, row)
8406
+ : row.together && tryToResolveTogetherRow(request, row));
8342
8407
  request.allPendingTasks--;
8343
8408
  if (null === boundary) {
8344
8409
  if (null !== segment && segment.parentFlushed) {
@@ -8362,13 +8427,15 @@ function finishedTask(request, boundary, row, segment) {
8362
8427
  boundary.parentFlushed &&
8363
8428
  request.completedBoundaries.push(boundary),
8364
8429
  1 === boundary.status &&
8365
- (500 < boundary.byteSize ||
8430
+ ((row = boundary.row),
8431
+ null !== row &&
8432
+ hoistHoistables(row.hoistables, boundary.contentState),
8433
+ 500 < boundary.byteSize ||
8366
8434
  (boundary.fallbackAbortableTasks.forEach(
8367
8435
  abortTaskSoft,
8368
8436
  request
8369
8437
  ),
8370
8438
  boundary.fallbackAbortableTasks.clear(),
8371
- (row = boundary.row),
8372
8439
  null !== row &&
8373
8440
  0 === --row.pendingTasks &&
8374
8441
  finishSuspenseListRow(request, row)),
@@ -8376,13 +8443,17 @@ function finishedTask(request, boundary, row, segment) {
8376
8443
  null === request.trackedPostpones &&
8377
8444
  null !== boundary.contentPreamble &&
8378
8445
  preparePreamble(request)))
8379
- : null !== segment &&
8380
- segment.parentFlushed &&
8381
- 1 === segment.status &&
8382
- (queueCompletedSegment(boundary, segment),
8383
- 1 === boundary.completedSegments.length &&
8384
- boundary.parentFlushed &&
8385
- request.partialBoundaries.push(boundary)));
8446
+ : (null !== segment &&
8447
+ segment.parentFlushed &&
8448
+ 1 === segment.status &&
8449
+ (queueCompletedSegment(boundary, segment),
8450
+ 1 === boundary.completedSegments.length &&
8451
+ boundary.parentFlushed &&
8452
+ request.partialBoundaries.push(boundary)),
8453
+ (boundary = boundary.row),
8454
+ null !== boundary &&
8455
+ boundary.together &&
8456
+ tryToResolveTogetherRow(request, boundary)));
8386
8457
  0 === request.allPendingTasks && completeAll(request);
8387
8458
  }
8388
8459
  function performWork(request$jscomp$1) {
@@ -8534,13 +8605,13 @@ function performWork(request$jscomp$1) {
8534
8605
  null !== request.trackedPostpones &&
8535
8606
  x$jscomp$0.$$typeof === REACT_POSTPONE_TYPE
8536
8607
  ) {
8537
- var trackedPostpones$130 = request.trackedPostpones;
8608
+ var trackedPostpones$132 = request.trackedPostpones;
8538
8609
  task.abortSet.delete(task);
8539
8610
  var postponeInfo = getThrownInfo(task.componentStack);
8540
8611
  logPostpone(request, x$jscomp$0.message, postponeInfo);
8541
8612
  trackPostpone(
8542
8613
  request,
8543
- trackedPostpones$130,
8614
+ trackedPostpones$132,
8544
8615
  task,
8545
8616
  segment$jscomp$0
8546
8617
  );
@@ -8576,19 +8647,22 @@ function performWork(request$jscomp$1) {
8576
8647
  x$jscomp$0,
8577
8648
  errorInfo$jscomp$0
8578
8649
  ));
8579
- null === boundary
8580
- ? fatalError(request, x$jscomp$0)
8581
- : (boundary.pendingTasks--,
8582
- 4 !== boundary.status &&
8583
- ((boundary.status = 4),
8584
- (boundary.errorDigest = request$jscomp$0),
8585
- untrackBoundary(request, boundary),
8586
- boundary.parentFlushed &&
8587
- request.clientRenderedBoundaries.push(boundary),
8588
- 0 === request.pendingRootTasks &&
8589
- null === request.trackedPostpones &&
8590
- null !== boundary.contentPreamble &&
8591
- preparePreamble(request)));
8650
+ if (null === boundary) fatalError(request, x$jscomp$0);
8651
+ else if ((boundary.pendingTasks--, 4 !== boundary.status)) {
8652
+ boundary.status = 4;
8653
+ boundary.errorDigest = request$jscomp$0;
8654
+ untrackBoundary(request, boundary);
8655
+ var boundaryRow = boundary.row;
8656
+ null !== boundaryRow &&
8657
+ 0 === --boundaryRow.pendingTasks &&
8658
+ finishSuspenseListRow(request, boundaryRow);
8659
+ boundary.parentFlushed &&
8660
+ request.clientRenderedBoundaries.push(boundary);
8661
+ 0 === request.pendingRootTasks &&
8662
+ null === request.trackedPostpones &&
8663
+ null !== boundary.contentPreamble &&
8664
+ preparePreamble(request);
8665
+ }
8592
8666
  0 === request.allPendingTasks && completeAll(request);
8593
8667
  }
8594
8668
  } finally {
@@ -8753,13 +8827,7 @@ function flushSegment(request, destination, segment, hoistableState) {
8753
8827
  request.renderState,
8754
8828
  boundary.rootSegmentID
8755
8829
  ),
8756
- hoistableState &&
8757
- ((boundary = boundary.fallbackState),
8758
- boundary.styles.forEach(hoistStyleQueueDependency, hoistableState),
8759
- boundary.stylesheets.forEach(
8760
- hoistStylesheetDependency,
8761
- hoistableState
8762
- )),
8830
+ hoistableState && hoistHoistables(hoistableState, boundary.fallbackState),
8763
8831
  flushSubtree(request, destination, segment, hoistableState),
8764
8832
  destination.push("\x3c!--/$--\x3e")
8765
8833
  );
@@ -8779,10 +8847,7 @@ function flushSegment(request, destination, segment, hoistableState) {
8779
8847
  destination.push("\x3c!--/$--\x3e")
8780
8848
  );
8781
8849
  flushedByteSize += boundary.byteSize;
8782
- hoistableState &&
8783
- ((segment = boundary.contentState),
8784
- segment.styles.forEach(hoistStyleQueueDependency, hoistableState),
8785
- segment.stylesheets.forEach(hoistStylesheetDependency, hoistableState));
8850
+ hoistableState && hoistHoistables(hoistableState, boundary.contentState);
8786
8851
  segment = boundary.row;
8787
8852
  null !== segment &&
8788
8853
  500 < boundary.byteSize &&
@@ -9129,12 +9194,12 @@ function flushCompletedQueues(request, destination) {
9129
9194
  completedBoundaries.splice(0, i);
9130
9195
  var partialBoundaries = request.partialBoundaries;
9131
9196
  for (i = 0; i < partialBoundaries.length; i++) {
9132
- var boundary$134 = partialBoundaries[i];
9197
+ var boundary$136 = partialBoundaries[i];
9133
9198
  a: {
9134
9199
  clientRenderedBoundaries = request;
9135
9200
  boundary = destination;
9136
- flushedByteSize = boundary$134.byteSize;
9137
- var completedSegments = boundary$134.completedSegments;
9201
+ flushedByteSize = boundary$136.byteSize;
9202
+ var completedSegments = boundary$136.completedSegments;
9138
9203
  for (
9139
9204
  JSCompiler_inline_result = 0;
9140
9205
  JSCompiler_inline_result < completedSegments.length;
@@ -9144,7 +9209,7 @@ function flushCompletedQueues(request, destination) {
9144
9209
  !flushPartiallyCompletedSegment(
9145
9210
  clientRenderedBoundaries,
9146
9211
  boundary,
9147
- boundary$134,
9212
+ boundary$136,
9148
9213
  completedSegments[JSCompiler_inline_result]
9149
9214
  )
9150
9215
  ) {
@@ -9154,9 +9219,20 @@ function flushCompletedQueues(request, destination) {
9154
9219
  break a;
9155
9220
  }
9156
9221
  completedSegments.splice(0, JSCompiler_inline_result);
9222
+ var row = boundary$136.row;
9223
+ null !== row &&
9224
+ row.together &&
9225
+ 1 === boundary$136.pendingTasks &&
9226
+ (1 === row.pendingTasks
9227
+ ? unblockSuspenseListRow(
9228
+ clientRenderedBoundaries,
9229
+ row,
9230
+ row.hoistables
9231
+ )
9232
+ : row.pendingTasks--);
9157
9233
  JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
9158
9234
  boundary,
9159
- boundary$134.contentState,
9235
+ boundary$136.contentState,
9160
9236
  clientRenderedBoundaries.renderState
9161
9237
  );
9162
9238
  }
@@ -9227,8 +9303,8 @@ function abort(request, reason) {
9227
9303
  }
9228
9304
  null !== request.destination &&
9229
9305
  flushCompletedQueues(request, request.destination);
9230
- } catch (error$136) {
9231
- logRecoverableError(request, error$136, {}), fatalError(request, error$136);
9306
+ } catch (error$138) {
9307
+ logRecoverableError(request, error$138, {}), fatalError(request, error$138);
9232
9308
  }
9233
9309
  }
9234
9310
  function addToReplayParent(node, parentKeyPath, trackedPostpones) {
@@ -9539,4 +9615,4 @@ exports.experimental_renderToHTML = function (children, options) {
9539
9615
  });
9540
9616
  });
9541
9617
  };
9542
- exports.version = "19.2.0-experimental-c4676e72-20250520";
9618
+ exports.version = "19.2.0-experimental-23884812-20250520";