react-markup 0.0.0-experimental-462d08f9-20250517 → 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.
@@ -53,8 +53,15 @@ var React = require("react"),
53
53
  REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"),
54
54
  REACT_POSTPONE_TYPE = Symbol.for("react.postpone"),
55
55
  REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"),
56
- MAYBE_ITERATOR_SYMBOL = Symbol.iterator,
57
- ASYNC_ITERATOR = Symbol.asyncIterator,
56
+ MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
57
+ function getIteratorFn(maybeIterable) {
58
+ if (null === maybeIterable || "object" !== typeof maybeIterable) return null;
59
+ maybeIterable =
60
+ (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
61
+ maybeIterable["@@iterator"];
62
+ return "function" === typeof maybeIterable ? maybeIterable : null;
63
+ }
64
+ var ASYNC_ITERATOR = Symbol.asyncIterator,
58
65
  isArrayImpl = Array.isArray;
59
66
  function murmurhash3_32_gc(key, seed) {
60
67
  var remainder = key.length & 3;
@@ -2787,6 +2794,10 @@ function hoistStyleQueueDependency(styleQueue) {
2787
2794
  function hoistStylesheetDependency(stylesheet) {
2788
2795
  this.stylesheets.add(stylesheet);
2789
2796
  }
2797
+ function hoistHoistables(parentState, childState) {
2798
+ childState.styles.forEach(hoistStyleQueueDependency, parentState);
2799
+ childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
2800
+ }
2790
2801
  var bind = Function.prototype.bind,
2791
2802
  REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference");
2792
2803
  function getComponentNameFromType(type) {
@@ -3569,6 +3580,7 @@ function createRequest(
3569
3580
  rootFormatContext,
3570
3581
  null,
3571
3582
  emptyTreeContext,
3583
+ null,
3572
3584
  null
3573
3585
  );
3574
3586
  pushComponentStack(children);
@@ -3583,15 +3595,17 @@ function pingTask(request, task) {
3583
3595
  }
3584
3596
  function createSuspenseBoundary(
3585
3597
  request,
3598
+ row,
3586
3599
  fallbackAbortableTasks,
3587
3600
  contentPreamble,
3588
3601
  fallbackPreamble
3589
3602
  ) {
3590
- return {
3603
+ fallbackAbortableTasks = {
3591
3604
  status: 0,
3592
3605
  rootSegmentID: -1,
3593
3606
  parentFlushed: !1,
3594
3607
  pendingTasks: 0,
3608
+ row: row,
3595
3609
  completedSegments: [],
3596
3610
  byteSize: 0,
3597
3611
  fallbackAbortableTasks: fallbackAbortableTasks,
@@ -3603,6 +3617,17 @@ function createSuspenseBoundary(
3603
3617
  trackedContentKeyPath: null,
3604
3618
  trackedFallbackNode: null
3605
3619
  };
3620
+ null !== row &&
3621
+ (row.pendingTasks++,
3622
+ (contentPreamble = row.boundaries),
3623
+ null !== contentPreamble &&
3624
+ (request.allPendingTasks++,
3625
+ fallbackAbortableTasks.pendingTasks++,
3626
+ contentPreamble.push(fallbackAbortableTasks)),
3627
+ (request = row.inheritedHoistables),
3628
+ null !== request &&
3629
+ hoistHoistables(fallbackAbortableTasks.contentState, request));
3630
+ return fallbackAbortableTasks;
3606
3631
  }
3607
3632
  function createRenderTask(
3608
3633
  request,
@@ -3618,12 +3643,14 @@ function createRenderTask(
3618
3643
  formatContext,
3619
3644
  context,
3620
3645
  treeContext,
3646
+ row,
3621
3647
  componentStack
3622
3648
  ) {
3623
3649
  request.allPendingTasks++;
3624
3650
  null === blockedBoundary
3625
3651
  ? request.pendingRootTasks++
3626
3652
  : blockedBoundary.pendingTasks++;
3653
+ null !== row && row.pendingTasks++;
3627
3654
  var task = {
3628
3655
  replay: null,
3629
3656
  node: node,
@@ -3640,6 +3667,7 @@ function createRenderTask(
3640
3667
  formatContext: formatContext,
3641
3668
  context: context,
3642
3669
  treeContext: treeContext,
3670
+ row: row,
3643
3671
  componentStack: componentStack,
3644
3672
  thenableState: thenableState
3645
3673
  };
@@ -3659,12 +3687,14 @@ function createReplayTask(
3659
3687
  formatContext,
3660
3688
  context,
3661
3689
  treeContext,
3690
+ row,
3662
3691
  componentStack
3663
3692
  ) {
3664
3693
  request.allPendingTasks++;
3665
3694
  null === blockedBoundary
3666
3695
  ? request.pendingRootTasks++
3667
3696
  : blockedBoundary.pendingTasks++;
3697
+ null !== row && row.pendingTasks++;
3668
3698
  replay.pendingTasks++;
3669
3699
  var task = {
3670
3700
  replay: replay,
@@ -3682,6 +3712,7 @@ function createReplayTask(
3682
3712
  formatContext: formatContext,
3683
3713
  context: context,
3684
3714
  treeContext: treeContext,
3715
+ row: row,
3685
3716
  componentStack: componentStack,
3686
3717
  thenableState: thenableState
3687
3718
  };
@@ -3763,6 +3794,158 @@ function fatalError(request, error) {
3763
3794
  ? ((request.status = 14), request.destination.destroy(error))
3764
3795
  : ((request.status = 13), (request.fatalError = error));
3765
3796
  }
3797
+ function finishSuspenseListRow(request, row) {
3798
+ unblockSuspenseListRow(request, row.next, row.hoistables);
3799
+ }
3800
+ function unblockSuspenseListRow(request, unblockedRow, inheritedHoistables) {
3801
+ for (; null !== unblockedRow; ) {
3802
+ null !== inheritedHoistables &&
3803
+ (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
3804
+ (unblockedRow.inheritedHoistables = inheritedHoistables));
3805
+ var unblockedBoundaries = unblockedRow.boundaries;
3806
+ if (null !== unblockedBoundaries) {
3807
+ unblockedRow.boundaries = null;
3808
+ for (var i = 0; i < unblockedBoundaries.length; i++) {
3809
+ var unblockedBoundary = unblockedBoundaries[i];
3810
+ null !== inheritedHoistables &&
3811
+ hoistHoistables(unblockedBoundary.contentState, inheritedHoistables);
3812
+ finishedTask(request, unblockedBoundary, null, null);
3813
+ }
3814
+ }
3815
+ unblockedRow.pendingTasks--;
3816
+ if (0 < unblockedRow.pendingTasks) break;
3817
+ inheritedHoistables = unblockedRow.hoistables;
3818
+ unblockedRow = unblockedRow.next;
3819
+ }
3820
+ }
3821
+ function tryToResolveTogetherRow(request, togetherRow) {
3822
+ var boundaries = togetherRow.boundaries;
3823
+ if (null !== boundaries && togetherRow.pendingTasks === boundaries.length) {
3824
+ for (var allCompleteAndInlinable = !0, i = 0; i < boundaries.length; i++) {
3825
+ var rowBoundary = boundaries[i];
3826
+ if (
3827
+ 1 !== rowBoundary.pendingTasks ||
3828
+ rowBoundary.parentFlushed ||
3829
+ 500 < rowBoundary.byteSize
3830
+ ) {
3831
+ allCompleteAndInlinable = !1;
3832
+ break;
3833
+ }
3834
+ }
3835
+ allCompleteAndInlinable &&
3836
+ unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
3837
+ }
3838
+ }
3839
+ function createSuspenseListRow(previousRow) {
3840
+ var newRow = {
3841
+ pendingTasks: 1,
3842
+ boundaries: null,
3843
+ hoistables: createHoistableState(),
3844
+ inheritedHoistables: null,
3845
+ together: !1,
3846
+ next: null
3847
+ };
3848
+ null !== previousRow &&
3849
+ 0 < previousRow.pendingTasks &&
3850
+ (newRow.pendingTasks++,
3851
+ (newRow.boundaries = []),
3852
+ (previousRow.next = newRow));
3853
+ return newRow;
3854
+ }
3855
+ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
3856
+ var prevKeyPath = task.keyPath,
3857
+ prevTreeContext = task.treeContext,
3858
+ prevRow = task.row;
3859
+ task.keyPath = keyPath;
3860
+ keyPath = rows.length;
3861
+ var previousSuspenseListRow = null;
3862
+ if (null !== task.replay) {
3863
+ var resumeSlots = task.replay.slots;
3864
+ if (null !== resumeSlots && "object" === typeof resumeSlots)
3865
+ for (var n = 0; n < keyPath; n++) {
3866
+ var i = "backwards" !== revealOrder ? n : keyPath - 1 - n,
3867
+ node = rows[i];
3868
+ task.row = previousSuspenseListRow = createSuspenseListRow(
3869
+ previousSuspenseListRow
3870
+ );
3871
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
3872
+ var resumeSegmentID = resumeSlots[i];
3873
+ "number" === typeof resumeSegmentID
3874
+ ? (resumeNode(request, task, resumeSegmentID, node, i),
3875
+ delete resumeSlots[i])
3876
+ : renderNode(request, task, node, i);
3877
+ 0 === --previousSuspenseListRow.pendingTasks &&
3878
+ finishSuspenseListRow(request, previousSuspenseListRow);
3879
+ }
3880
+ else
3881
+ for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
3882
+ (n =
3883
+ "backwards" !== revealOrder
3884
+ ? resumeSlots
3885
+ : keyPath - 1 - resumeSlots),
3886
+ (i = rows[n]),
3887
+ (task.row = previousSuspenseListRow =
3888
+ createSuspenseListRow(previousSuspenseListRow)),
3889
+ (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
3890
+ renderNode(request, task, i, n),
3891
+ 0 === --previousSuspenseListRow.pendingTasks &&
3892
+ finishSuspenseListRow(request, previousSuspenseListRow);
3893
+ } else if ("backwards" !== revealOrder)
3894
+ for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
3895
+ (resumeSlots = rows[revealOrder]),
3896
+ (task.row = previousSuspenseListRow =
3897
+ createSuspenseListRow(previousSuspenseListRow)),
3898
+ (task.treeContext = pushTreeContext(
3899
+ prevTreeContext,
3900
+ keyPath,
3901
+ revealOrder
3902
+ )),
3903
+ renderNode(request, task, resumeSlots, revealOrder),
3904
+ 0 === --previousSuspenseListRow.pendingTasks &&
3905
+ finishSuspenseListRow(request, previousSuspenseListRow);
3906
+ else {
3907
+ revealOrder = task.blockedSegment;
3908
+ resumeSlots = revealOrder.children.length;
3909
+ n = revealOrder.chunks.length;
3910
+ for (i = keyPath - 1; 0 <= i; i--) {
3911
+ node = rows[i];
3912
+ task.row = previousSuspenseListRow = createSuspenseListRow(
3913
+ previousSuspenseListRow
3914
+ );
3915
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
3916
+ resumeSegmentID = createPendingSegment(
3917
+ request,
3918
+ n,
3919
+ null,
3920
+ task.formatContext,
3921
+ 0 === i ? revealOrder.lastPushedText : !0,
3922
+ !0
3923
+ );
3924
+ revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
3925
+ task.blockedSegment = resumeSegmentID;
3926
+ try {
3927
+ renderNode(request, task, node, i),
3928
+ (resumeSegmentID.status = 1),
3929
+ 0 === --previousSuspenseListRow.pendingTasks &&
3930
+ finishSuspenseListRow(request, previousSuspenseListRow);
3931
+ } catch (thrownValue) {
3932
+ throw (
3933
+ ((resumeSegmentID.status = 12 === request.status ? 3 : 4),
3934
+ thrownValue)
3935
+ );
3936
+ }
3937
+ }
3938
+ task.blockedSegment = revealOrder;
3939
+ revealOrder.lastPushedText = !1;
3940
+ }
3941
+ null !== prevRow &&
3942
+ null !== previousSuspenseListRow &&
3943
+ 0 < previousSuspenseListRow.pendingTasks &&
3944
+ (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
3945
+ task.treeContext = prevTreeContext;
3946
+ task.row = prevRow;
3947
+ task.keyPath = prevKeyPath;
3948
+ }
3766
3949
  function renderWithHooks(request, task, keyPath, Component, props, secondArg) {
3767
3950
  var prevThenableState = task.thenableState;
3768
3951
  task.thenableState = null;
@@ -3830,9 +4013,9 @@ function renderElement(request, task, keyPath, type, props, ref) {
3830
4013
  var defaultProps = type.defaultProps;
3831
4014
  if (defaultProps) {
3832
4015
  newProps === props && (newProps = assign({}, newProps, props));
3833
- for (var propName$24 in defaultProps)
3834
- void 0 === newProps[propName$24] &&
3835
- (newProps[propName$24] = defaultProps[propName$24]);
4016
+ for (var propName$36 in defaultProps)
4017
+ void 0 === newProps[propName$36] &&
4018
+ (newProps[propName$36] = defaultProps[propName$36]);
3836
4019
  }
3837
4020
  var JSCompiler_inline_result = newProps;
3838
4021
  var context = emptyContextObject,
@@ -3999,13 +4182,13 @@ function renderElement(request, task, keyPath, type, props, ref) {
3999
4182
  textEmbedded
4000
4183
  );
4001
4184
  segment.lastPushedText = !1;
4002
- var prevContext$22 = task.formatContext,
4003
- prevKeyPath$23 = task.keyPath;
4185
+ var prevContext$34 = task.formatContext,
4186
+ prevKeyPath$35 = task.keyPath;
4004
4187
  task.keyPath = keyPath;
4005
4188
  if (
4006
4189
  3 ===
4007
4190
  (task.formatContext = getChildFormatContext(
4008
- prevContext$22,
4191
+ prevContext$34,
4009
4192
  type,
4010
4193
  props
4011
4194
  )).insertionMode
@@ -4033,13 +4216,14 @@ function renderElement(request, task, keyPath, type, props, ref) {
4033
4216
  task.formatContext,
4034
4217
  task.context,
4035
4218
  task.treeContext,
4219
+ task.row,
4036
4220
  task.componentStack
4037
4221
  );
4038
4222
  pushComponentStack(preambleTask);
4039
4223
  request.pingedTasks.push(preambleTask);
4040
4224
  } else renderNode(request, task, JSCompiler_inline_result$jscomp$2, -1);
4041
- task.formatContext = prevContext$22;
4042
- task.keyPath = prevKeyPath$23;
4225
+ task.formatContext = prevContext$34;
4226
+ task.keyPath = prevKeyPath$35;
4043
4227
  a: {
4044
4228
  var target$jscomp$0 = segment.chunks,
4045
4229
  resumableState$jscomp$0 = request.resumableState;
@@ -4064,19 +4248,19 @@ function renderElement(request, task, keyPath, type, props, ref) {
4064
4248
  case "wbr":
4065
4249
  break a;
4066
4250
  case "body":
4067
- if (1 >= prevContext$22.insertionMode) {
4251
+ if (1 >= prevContext$34.insertionMode) {
4068
4252
  resumableState$jscomp$0.hasBody = !0;
4069
4253
  break a;
4070
4254
  }
4071
4255
  break;
4072
4256
  case "html":
4073
- if (0 === prevContext$22.insertionMode) {
4257
+ if (0 === prevContext$34.insertionMode) {
4074
4258
  resumableState$jscomp$0.hasHtml = !0;
4075
4259
  break a;
4076
4260
  }
4077
4261
  break;
4078
4262
  case "head":
4079
- if (1 >= prevContext$22.insertionMode) break a;
4263
+ if (1 >= prevContext$34.insertionMode) break a;
4080
4264
  }
4081
4265
  target$jscomp$0.push(endChunkForTag(type));
4082
4266
  }
@@ -4104,22 +4288,114 @@ function renderElement(request, task, keyPath, type, props, ref) {
4104
4288
  }
4105
4289
  } else if ("hidden" !== props.mode) {
4106
4290
  segment$jscomp$0.lastPushedText = !1;
4107
- var prevKeyPath$26 = task.keyPath;
4291
+ var prevKeyPath$38 = task.keyPath;
4108
4292
  task.keyPath = keyPath;
4109
4293
  renderNode(request, task, props.children, -1);
4110
- task.keyPath = prevKeyPath$26;
4294
+ task.keyPath = prevKeyPath$38;
4111
4295
  segment$jscomp$0.lastPushedText = !1;
4112
4296
  }
4113
4297
  return;
4114
4298
  case REACT_SUSPENSE_LIST_TYPE:
4115
- var prevKeyPath$27 = task.keyPath;
4116
- task.keyPath = keyPath;
4117
- renderNodeDestructive(request, task, props.children, -1);
4118
- task.keyPath = prevKeyPath$27;
4299
+ a: {
4300
+ var children$jscomp$0 = props.children,
4301
+ revealOrder = props.revealOrder;
4302
+ if ("forwards" === revealOrder || "backwards" === revealOrder) {
4303
+ if (isArrayImpl(children$jscomp$0)) {
4304
+ renderSuspenseListRows(
4305
+ request,
4306
+ task,
4307
+ keyPath,
4308
+ children$jscomp$0,
4309
+ revealOrder
4310
+ );
4311
+ break a;
4312
+ }
4313
+ var iteratorFn = getIteratorFn(children$jscomp$0);
4314
+ if (iteratorFn) {
4315
+ var iterator = iteratorFn.call(children$jscomp$0);
4316
+ if (iterator) {
4317
+ var step = iterator.next();
4318
+ if (!step.done) {
4319
+ do step = iterator.next();
4320
+ while (!step.done);
4321
+ renderSuspenseListRows(
4322
+ request,
4323
+ task,
4324
+ keyPath,
4325
+ children$jscomp$0,
4326
+ revealOrder
4327
+ );
4328
+ }
4329
+ break a;
4330
+ }
4331
+ }
4332
+ if ("function" === typeof children$jscomp$0[ASYNC_ITERATOR]) {
4333
+ var iterator$29 = children$jscomp$0[ASYNC_ITERATOR]();
4334
+ if (iterator$29) {
4335
+ var prevThenableState = task.thenableState;
4336
+ task.thenableState = null;
4337
+ thenableIndexCounter = 0;
4338
+ thenableState = prevThenableState;
4339
+ var rows = [],
4340
+ done = !1;
4341
+ if (iterator$29 === children$jscomp$0)
4342
+ for (
4343
+ var step$30 = readPreviousThenableFromState();
4344
+ void 0 !== step$30;
4345
+
4346
+ ) {
4347
+ if (step$30.done) {
4348
+ done = !0;
4349
+ break;
4350
+ }
4351
+ rows.push(step$30.value);
4352
+ step$30 = readPreviousThenableFromState();
4353
+ }
4354
+ if (!done)
4355
+ for (
4356
+ var step$31 = unwrapThenable(iterator$29.next());
4357
+ !step$31.done;
4358
+
4359
+ )
4360
+ rows.push(step$31.value),
4361
+ (step$31 = unwrapThenable(iterator$29.next()));
4362
+ renderSuspenseListRows(
4363
+ request,
4364
+ task,
4365
+ keyPath,
4366
+ rows,
4367
+ revealOrder
4368
+ );
4369
+ break a;
4370
+ }
4371
+ }
4372
+ }
4373
+ if ("together" === revealOrder) {
4374
+ var prevKeyPath$32 = task.keyPath,
4375
+ prevRow = task.row,
4376
+ newRow = (task.row = createSuspenseListRow(null));
4377
+ newRow.boundaries = [];
4378
+ newRow.together = !0;
4379
+ task.keyPath = keyPath;
4380
+ renderNodeDestructive(request, task, children$jscomp$0, -1);
4381
+ 0 === --newRow.pendingTasks &&
4382
+ finishSuspenseListRow(request, newRow);
4383
+ task.keyPath = prevKeyPath$32;
4384
+ task.row = prevRow;
4385
+ null !== prevRow &&
4386
+ 0 < newRow.pendingTasks &&
4387
+ (prevRow.pendingTasks++, (newRow.next = prevRow));
4388
+ } else {
4389
+ var prevKeyPath$jscomp$3 = task.keyPath;
4390
+ task.keyPath = keyPath;
4391
+ renderNodeDestructive(request, task, children$jscomp$0, -1);
4392
+ task.keyPath = prevKeyPath$jscomp$3;
4393
+ }
4394
+ }
4119
4395
  return;
4120
4396
  case REACT_VIEW_TRANSITION_TYPE:
4121
4397
  var prevContext$jscomp$0 = task.formatContext,
4122
- prevKeyPath$jscomp$3 = task.keyPath;
4398
+ prevKeyPath$jscomp$4 = task.keyPath;
4123
4399
  var resumableState$jscomp$1 = request.resumableState;
4124
4400
  if (null == props.name || "auto" === props.name) {
4125
4401
  var treeId = getTreeId(task.treeContext);
@@ -4136,29 +4412,33 @@ function renderElement(request, task, keyPath, type, props, ref) {
4136
4412
  task.treeContext = prevTreeContext;
4137
4413
  }
4138
4414
  task.formatContext = prevContext$jscomp$0;
4139
- task.keyPath = prevKeyPath$jscomp$3;
4415
+ task.keyPath = prevKeyPath$jscomp$4;
4140
4416
  return;
4141
4417
  case REACT_SCOPE_TYPE:
4142
4418
  throw Error("ReactDOMServer does not yet support scope components.");
4143
4419
  case REACT_SUSPENSE_TYPE:
4144
4420
  a: if (null !== task.replay) {
4145
4421
  var prevKeyPath$16 = task.keyPath,
4146
- prevContext$17 = task.formatContext;
4422
+ prevContext$17 = task.formatContext,
4423
+ prevRow$18 = task.row;
4147
4424
  task.keyPath = keyPath;
4148
4425
  task.formatContext = getSuspenseContentFormatContext(
4149
4426
  request.resumableState,
4150
4427
  prevContext$17
4151
4428
  );
4152
- var content$18 = props.children;
4429
+ task.row = null;
4430
+ var content$19 = props.children;
4153
4431
  try {
4154
- renderNode(request, task, content$18, -1);
4432
+ renderNode(request, task, content$19, -1);
4155
4433
  } finally {
4156
4434
  (task.keyPath = prevKeyPath$16),
4157
- (task.formatContext = prevContext$17);
4435
+ (task.formatContext = prevContext$17),
4436
+ (task.row = prevRow$18);
4158
4437
  }
4159
4438
  } else {
4160
- var prevKeyPath$jscomp$4 = task.keyPath,
4439
+ var prevKeyPath$jscomp$5 = task.keyPath,
4161
4440
  prevContext$jscomp$1 = task.formatContext,
4441
+ prevRow$jscomp$0 = task.row,
4162
4442
  parentBoundary = task.blockedBoundary,
4163
4443
  parentPreamble = task.blockedPreamble,
4164
4444
  parentHoistableState = task.hoistableState,
@@ -4170,11 +4450,18 @@ function renderElement(request, task, keyPath, type, props, ref) {
4170
4450
  2 > task.formatContext.insertionMode
4171
4451
  ? createSuspenseBoundary(
4172
4452
  request,
4453
+ task.row,
4173
4454
  fallbackAbortSet,
4174
4455
  createPreambleState(),
4175
4456
  createPreambleState()
4176
4457
  )
4177
- : createSuspenseBoundary(request, fallbackAbortSet, null, null);
4458
+ : createSuspenseBoundary(
4459
+ request,
4460
+ task.row,
4461
+ fallbackAbortSet,
4462
+ null,
4463
+ null
4464
+ );
4178
4465
  null !== request.trackedPostpones &&
4179
4466
  (newBoundary.trackedContentKeyPath = keyPath);
4180
4467
  var boundarySegment = createPendingSegment(
@@ -4228,7 +4515,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4228
4515
  } finally {
4229
4516
  (task.blockedSegment = parentSegment),
4230
4517
  (task.blockedPreamble = parentPreamble),
4231
- (task.keyPath = prevKeyPath$jscomp$4),
4518
+ (task.keyPath = prevKeyPath$jscomp$5),
4232
4519
  (task.formatContext = prevContext$jscomp$1);
4233
4520
  }
4234
4521
  var suspendedPrimaryTask = createRenderTask(
@@ -4248,6 +4535,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4248
4535
  ),
4249
4536
  task.context,
4250
4537
  task.treeContext,
4538
+ null,
4251
4539
  task.componentStack
4252
4540
  );
4253
4541
  pushComponentStack(suspendedPrimaryTask);
@@ -4262,27 +4550,34 @@ function renderElement(request, task, keyPath, type, props, ref) {
4262
4550
  request.resumableState,
4263
4551
  prevContext$jscomp$1
4264
4552
  );
4553
+ task.row = null;
4265
4554
  contentRootSegment.status = 6;
4266
4555
  try {
4267
4556
  if (
4268
4557
  (renderNode(request, task, content, -1),
4269
4558
  (contentRootSegment.status = 1),
4270
4559
  queueCompletedSegment(newBoundary, contentRootSegment),
4271
- 0 === newBoundary.pendingTasks &&
4272
- 0 === newBoundary.status &&
4273
- ((newBoundary.status = 1), !(500 < newBoundary.byteSize)))
4560
+ 0 === newBoundary.pendingTasks && 0 === newBoundary.status)
4274
4561
  ) {
4275
- 0 === request.pendingRootTasks &&
4276
- task.blockedPreamble &&
4277
- preparePreamble(request);
4278
- break a;
4279
- }
4280
- } catch (thrownValue$19) {
4562
+ if (((newBoundary.status = 1), !(500 < newBoundary.byteSize))) {
4563
+ null !== prevRow$jscomp$0 &&
4564
+ 0 === --prevRow$jscomp$0.pendingTasks &&
4565
+ finishSuspenseListRow(request, prevRow$jscomp$0);
4566
+ 0 === request.pendingRootTasks &&
4567
+ task.blockedPreamble &&
4568
+ preparePreamble(request);
4569
+ break a;
4570
+ }
4571
+ } else
4572
+ null !== prevRow$jscomp$0 &&
4573
+ prevRow$jscomp$0.together &&
4574
+ tryToResolveTogetherRow(request, prevRow$jscomp$0);
4575
+ } catch (thrownValue$20) {
4281
4576
  newBoundary.status = 4;
4282
4577
  if (12 === request.status) {
4283
4578
  contentRootSegment.status = 3;
4284
4579
  var error = request.fatalError;
4285
- } else (contentRootSegment.status = 4), (error = thrownValue$19);
4580
+ } else (contentRootSegment.status = 4), (error = thrownValue$20);
4286
4581
  var thrownInfo = getThrownInfo(task.componentStack);
4287
4582
  if (
4288
4583
  "object" === typeof error &&
@@ -4300,8 +4595,9 @@ function renderElement(request, task, keyPath, type, props, ref) {
4300
4595
  (task.blockedPreamble = parentPreamble),
4301
4596
  (task.hoistableState = parentHoistableState),
4302
4597
  (task.blockedSegment = parentSegment),
4303
- (task.keyPath = prevKeyPath$jscomp$4),
4304
- (task.formatContext = prevContext$jscomp$1);
4598
+ (task.keyPath = prevKeyPath$jscomp$5),
4599
+ (task.formatContext = prevContext$jscomp$1),
4600
+ (task.row = prevRow$jscomp$0);
4305
4601
  }
4306
4602
  var suspendedFallbackTask = createRenderTask(
4307
4603
  request,
@@ -4320,6 +4616,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4320
4616
  ),
4321
4617
  task.context,
4322
4618
  task.treeContext,
4619
+ task.row,
4323
4620
  task.componentStack
4324
4621
  );
4325
4622
  pushComponentStack(suspendedFallbackTask);
@@ -4336,7 +4633,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4336
4633
  for (var key in props)
4337
4634
  "ref" !== key && (propsWithoutRef[key] = props[key]);
4338
4635
  } else propsWithoutRef = props;
4339
- var children$jscomp$0 = renderWithHooks(
4636
+ var children$jscomp$1 = renderWithHooks(
4340
4637
  request,
4341
4638
  task,
4342
4639
  keyPath,
@@ -4348,7 +4645,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4348
4645
  request,
4349
4646
  task,
4350
4647
  keyPath,
4351
- children$jscomp$0,
4648
+ children$jscomp$1,
4352
4649
  0 !== localIdCounter,
4353
4650
  actionStateCounter,
4354
4651
  actionStateMatchingIndex
@@ -4359,8 +4656,8 @@ function renderElement(request, task, keyPath, type, props, ref) {
4359
4656
  return;
4360
4657
  case REACT_PROVIDER_TYPE:
4361
4658
  case REACT_CONTEXT_TYPE:
4362
- var children$jscomp$1 = props.children,
4363
- prevKeyPath$jscomp$5 = task.keyPath,
4659
+ var children$jscomp$2 = props.children,
4660
+ prevKeyPath$jscomp$6 = task.keyPath,
4364
4661
  nextValue = props.value;
4365
4662
  var prevValue = type._currentValue2;
4366
4663
  type._currentValue2 = nextValue;
@@ -4375,7 +4672,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4375
4672
  currentActiveSnapshot = newNode;
4376
4673
  task.context = newNode;
4377
4674
  task.keyPath = keyPath;
4378
- renderNodeDestructive(request, task, children$jscomp$1, -1);
4675
+ renderNodeDestructive(request, task, children$jscomp$2, -1);
4379
4676
  var prevSnapshot = currentActiveSnapshot;
4380
4677
  if (null === prevSnapshot)
4381
4678
  throw Error(
@@ -4385,15 +4682,15 @@ function renderElement(request, task, keyPath, type, props, ref) {
4385
4682
  var JSCompiler_inline_result$jscomp$3 = (currentActiveSnapshot =
4386
4683
  prevSnapshot.parent);
4387
4684
  task.context = JSCompiler_inline_result$jscomp$3;
4388
- task.keyPath = prevKeyPath$jscomp$5;
4685
+ task.keyPath = prevKeyPath$jscomp$6;
4389
4686
  return;
4390
4687
  case REACT_CONSUMER_TYPE:
4391
4688
  var render = props.children,
4392
4689
  newChildren = render(type._context._currentValue2),
4393
- prevKeyPath$jscomp$6 = task.keyPath;
4690
+ prevKeyPath$jscomp$7 = task.keyPath;
4394
4691
  task.keyPath = keyPath;
4395
4692
  renderNodeDestructive(request, task, newChildren, -1);
4396
- task.keyPath = prevKeyPath$jscomp$6;
4693
+ task.keyPath = prevKeyPath$jscomp$7;
4397
4694
  return;
4398
4695
  case REACT_LAZY_TYPE:
4399
4696
  var init = type._init;
@@ -4536,6 +4833,7 @@ function retryNode(request, task) {
4536
4833
  null === node$jscomp$0[4] ? null : node$jscomp$0[4][3];
4537
4834
  var prevKeyPath = task.keyPath,
4538
4835
  prevContext = task.formatContext,
4836
+ prevRow = task.row,
4539
4837
  previousReplaySet = task.replay,
4540
4838
  parentBoundary = task.blockedBoundary,
4541
4839
  parentHoistableState = task.hoistableState,
@@ -4546,12 +4844,14 @@ function retryNode(request, task) {
4546
4844
  2 > task.formatContext.insertionMode
4547
4845
  ? createSuspenseBoundary(
4548
4846
  request,
4847
+ task.row,
4549
4848
  fallbackAbortSet,
4550
4849
  createPreambleState(),
4551
4850
  createPreambleState()
4552
4851
  )
4553
4852
  : createSuspenseBoundary(
4554
4853
  request,
4854
+ task.row,
4555
4855
  fallbackAbortSet,
4556
4856
  null,
4557
4857
  null
@@ -4565,6 +4865,7 @@ function retryNode(request, task) {
4565
4865
  request.resumableState,
4566
4866
  prevContext
4567
4867
  );
4868
+ task.row = null;
4568
4869
  task.replay = {
4569
4870
  nodes: replay,
4570
4871
  slots: name,
@@ -4606,7 +4907,8 @@ function retryNode(request, task) {
4606
4907
  (task.hoistableState = parentHoistableState),
4607
4908
  (task.replay = previousReplaySet),
4608
4909
  (task.keyPath = prevKeyPath),
4609
- (task.formatContext = prevContext);
4910
+ (task.formatContext = prevContext),
4911
+ (task.row = prevRow);
4610
4912
  }
4611
4913
  task = createReplayTask(
4612
4914
  request,
@@ -4628,6 +4930,7 @@ function retryNode(request, task) {
4628
4930
  ),
4629
4931
  task.context,
4630
4932
  task.treeContext,
4933
+ task.row,
4631
4934
  task.componentStack
4632
4935
  );
4633
4936
  pushComponentStack(task);
@@ -4656,22 +4959,17 @@ function retryNode(request, task) {
4656
4959
  renderChildrenArray(request, task, node, childIndex);
4657
4960
  return;
4658
4961
  }
4659
- null === node || "object" !== typeof node
4660
- ? (childNodes = null)
4661
- : ((childNodes =
4662
- (MAYBE_ITERATOR_SYMBOL && node[MAYBE_ITERATOR_SYMBOL]) ||
4663
- node["@@iterator"]),
4664
- (childNodes = "function" === typeof childNodes ? childNodes : null));
4665
- if (childNodes && (childNodes = childNodes.call(node))) {
4666
- node = childNodes.next();
4667
- if (!node.done) {
4668
- props = [];
4669
- do props.push(node.value), (node = childNodes.next());
4670
- while (!node.done);
4671
- renderChildrenArray(request, task, props, childIndex);
4962
+ if ((childNodes = getIteratorFn(node)))
4963
+ if ((childNodes = childNodes.call(node))) {
4964
+ node = childNodes.next();
4965
+ if (!node.done) {
4966
+ props = [];
4967
+ do props.push(node.value), (node = childNodes.next());
4968
+ while (!node.done);
4969
+ renderChildrenArray(request, task, props, childIndex);
4970
+ }
4971
+ return;
4672
4972
  }
4673
- return;
4674
- }
4675
4973
  if (
4676
4974
  "function" === typeof node[ASYNC_ITERATOR] &&
4677
4975
  (childNodes = node[ASYNC_ITERATOR]())
@@ -4709,25 +5007,25 @@ function retryNode(request, task) {
4709
5007
  node._currentValue2,
4710
5008
  childIndex
4711
5009
  );
4712
- task = Object.prototype.toString.call(node);
5010
+ childIndex = Object.prototype.toString.call(node);
4713
5011
  throw Error(
4714
5012
  "Objects are not valid as a React child (found: " +
4715
- ("[object Object]" === task
5013
+ ("[object Object]" === childIndex
4716
5014
  ? "object with keys {" + Object.keys(node).join(", ") + "}"
4717
- : task) +
5015
+ : childIndex) +
4718
5016
  "). If you meant to render a collection of children, use an array instead."
4719
5017
  );
4720
5018
  }
4721
5019
  if ("string" === typeof node)
4722
- (task = task.blockedSegment),
4723
- null !== task &&
4724
- (task.chunks.push(escapeTextForBrowser(node)),
4725
- (task.lastPushedText = !1));
5020
+ (childIndex = task.blockedSegment),
5021
+ null !== childIndex &&
5022
+ (childIndex.chunks.push(escapeTextForBrowser(node)),
5023
+ (childIndex.lastPushedText = !1));
4726
5024
  else if ("number" === typeof node || "bigint" === typeof node)
4727
- (task = task.blockedSegment),
4728
- null !== task &&
4729
- (task.chunks.push(escapeTextForBrowser("" + node)),
4730
- (task.lastPushedText = !1));
5025
+ (childIndex = task.blockedSegment),
5026
+ null !== childIndex &&
5027
+ (childIndex.chunks.push(escapeTextForBrowser("" + node)),
5028
+ (childIndex.lastPushedText = !1));
4731
5029
  }
4732
5030
  }
4733
5031
  function renderChildrenArray(request, task, children, childIndex) {
@@ -4843,9 +5141,9 @@ function trackPostpone(request, trackedPostpones, task, segment) {
4843
5141
  addToReplayParent(segment, boundaryKeyPath[0], trackedPostpones);
4844
5142
  return;
4845
5143
  }
4846
- var boundaryNode$36 = trackedPostpones.workingMap.get(boundaryKeyPath);
4847
- void 0 === boundaryNode$36
4848
- ? ((boundaryNode$36 = [
5144
+ var boundaryNode$47 = trackedPostpones.workingMap.get(boundaryKeyPath);
5145
+ void 0 === boundaryNode$47
5146
+ ? ((boundaryNode$47 = [
4849
5147
  boundaryKeyPath[1],
4850
5148
  boundaryKeyPath[2],
4851
5149
  children,
@@ -4853,13 +5151,13 @@ function trackPostpone(request, trackedPostpones, task, segment) {
4853
5151
  fallbackReplayNode,
4854
5152
  boundary.rootSegmentID
4855
5153
  ]),
4856
- trackedPostpones.workingMap.set(boundaryKeyPath, boundaryNode$36),
5154
+ trackedPostpones.workingMap.set(boundaryKeyPath, boundaryNode$47),
4857
5155
  addToReplayParent(
4858
- boundaryNode$36,
5156
+ boundaryNode$47,
4859
5157
  boundaryKeyPath[0],
4860
5158
  trackedPostpones
4861
5159
  ))
4862
- : ((boundaryKeyPath = boundaryNode$36),
5160
+ : ((boundaryKeyPath = boundaryNode$47),
4863
5161
  (boundaryKeyPath[4] = fallbackReplayNode),
4864
5162
  (boundaryKeyPath[5] = boundary.rootSegmentID));
4865
5163
  }
@@ -4928,6 +5226,7 @@ function spawnNewSuspendedReplayTask(request, task, thenableState) {
4928
5226
  task.formatContext,
4929
5227
  task.context,
4930
5228
  task.treeContext,
5229
+ task.row,
4931
5230
  task.componentStack
4932
5231
  );
4933
5232
  }
@@ -4957,6 +5256,7 @@ function spawnNewSuspendedRenderTask(request, task, thenableState) {
4957
5256
  task.formatContext,
4958
5257
  task.context,
4959
5258
  task.treeContext,
5259
+ task.row,
4960
5260
  task.componentStack
4961
5261
  );
4962
5262
  }
@@ -5011,15 +5311,15 @@ function renderNode(request, task, node, childIndex) {
5011
5311
  chunkLength = segment.chunks.length;
5012
5312
  try {
5013
5313
  return renderNodeDestructive(request, task, node, childIndex);
5014
- } catch (thrownValue$48) {
5314
+ } catch (thrownValue$59) {
5015
5315
  if (
5016
5316
  (resetHooksState(),
5017
5317
  (segment.children.length = childrenLength),
5018
5318
  (segment.chunks.length = chunkLength),
5019
5319
  (childIndex =
5020
- thrownValue$48 === SuspenseException
5320
+ thrownValue$59 === SuspenseException
5021
5321
  ? getSuspendedThenable()
5022
- : thrownValue$48),
5322
+ : thrownValue$59),
5023
5323
  "object" === typeof childIndex && null !== childIndex)
5024
5324
  ) {
5025
5325
  if ("function" === typeof childIndex.then) {
@@ -5108,9 +5408,10 @@ function erroredReplay(
5108
5408
  );
5109
5409
  }
5110
5410
  function abortTaskSoft(task) {
5111
- var boundary = task.blockedBoundary;
5112
- task = task.blockedSegment;
5113
- null !== task && ((task.status = 3), finishedTask(this, boundary, task));
5411
+ var boundary = task.blockedBoundary,
5412
+ segment = task.blockedSegment;
5413
+ null !== segment &&
5414
+ ((segment.status = 3), finishedTask(this, boundary, task.row, segment));
5114
5415
  }
5115
5416
  function abortRemainingReplayNodes(
5116
5417
  request$jscomp$0,
@@ -5137,6 +5438,7 @@ function abortRemainingReplayNodes(
5137
5438
  errorDigest = errorDigest$jscomp$0,
5138
5439
  resumedBoundary = createSuspenseBoundary(
5139
5440
  request,
5441
+ null,
5140
5442
  new Set(),
5141
5443
  null,
5142
5444
  null
@@ -5182,7 +5484,7 @@ function abortTask(task, request, error) {
5182
5484
  null !== boundary && null !== segment
5183
5485
  ? (logPostpone(request, error.message, errorInfo),
5184
5486
  trackPostpone(request, boundary, task, segment),
5185
- finishedTask(request, null, segment))
5487
+ finishedTask(request, null, task.row, segment))
5186
5488
  : ((task = Error(
5187
5489
  "The render was aborted with postpone when the shell is incomplete. Reason: " +
5188
5490
  error.message
@@ -5193,7 +5495,7 @@ function abortTask(task, request, error) {
5193
5495
  ? ((boundary = request.trackedPostpones),
5194
5496
  logRecoverableError(request, error, errorInfo),
5195
5497
  trackPostpone(request, boundary, task, segment),
5196
- finishedTask(request, null, segment))
5498
+ finishedTask(request, null, task.row, segment))
5197
5499
  : (logRecoverableError(request, error, errorInfo),
5198
5500
  fatalError(request, error));
5199
5501
  return;
@@ -5219,22 +5521,21 @@ function abortTask(task, request, error) {
5219
5521
  0 === request.pendingRootTasks && completeShell(request);
5220
5522
  }
5221
5523
  } else {
5222
- boundary.pendingTasks--;
5223
- var trackedPostpones$51 = request.trackedPostpones;
5524
+ var trackedPostpones$62 = request.trackedPostpones;
5224
5525
  if (4 !== boundary.status) {
5225
- if (null !== trackedPostpones$51 && null !== segment)
5526
+ if (null !== trackedPostpones$62 && null !== segment)
5226
5527
  return (
5227
5528
  "object" === typeof error &&
5228
5529
  null !== error &&
5229
5530
  error.$$typeof === REACT_POSTPONE_TYPE
5230
5531
  ? logPostpone(request, error.message, errorInfo)
5231
5532
  : logRecoverableError(request, error, errorInfo),
5232
- trackPostpone(request, trackedPostpones$51, task, segment),
5533
+ trackPostpone(request, trackedPostpones$62, task, segment),
5233
5534
  boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
5234
5535
  return abortTask(fallbackTask, request, error);
5235
5536
  }),
5236
5537
  boundary.fallbackAbortableTasks.clear(),
5237
- finishedTask(request, boundary, segment)
5538
+ finishedTask(request, boundary, task.row, segment)
5238
5539
  );
5239
5540
  boundary.status = 4;
5240
5541
  if (
@@ -5245,7 +5546,7 @@ function abortTask(task, request, error) {
5245
5546
  logPostpone(request, error.message, errorInfo);
5246
5547
  if (null !== request.trackedPostpones && null !== segment) {
5247
5548
  trackPostpone(request, request.trackedPostpones, task, segment);
5248
- finishedTask(request, task.blockedBoundary, segment);
5549
+ finishedTask(request, task.blockedBoundary, task.row, segment);
5249
5550
  boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
5250
5551
  return abortTask(fallbackTask, request, error);
5251
5552
  });
@@ -5259,11 +5560,20 @@ function abortTask(task, request, error) {
5259
5560
  untrackBoundary(request, boundary);
5260
5561
  boundary.parentFlushed && request.clientRenderedBoundaries.push(boundary);
5261
5562
  }
5563
+ boundary.pendingTasks--;
5564
+ errorInfo = boundary.row;
5565
+ null !== errorInfo &&
5566
+ 0 === --errorInfo.pendingTasks &&
5567
+ finishSuspenseListRow(request, errorInfo);
5262
5568
  boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
5263
5569
  return abortTask(fallbackTask, request, error);
5264
5570
  });
5265
5571
  boundary.fallbackAbortableTasks.clear();
5266
5572
  }
5573
+ task = task.row;
5574
+ null !== task &&
5575
+ 0 === --task.pendingTasks &&
5576
+ finishSuspenseListRow(request, task);
5267
5577
  request.allPendingTasks--;
5268
5578
  0 === request.allPendingTasks && completeAll(request);
5269
5579
  }
@@ -5360,7 +5670,11 @@ function queueCompletedSegment(boundary, segment) {
5360
5670
  1 === childSegment.status && queueCompletedSegment(boundary, childSegment);
5361
5671
  } else boundary.completedSegments.push(segment);
5362
5672
  }
5363
- function finishedTask(request, boundary, segment) {
5673
+ function finishedTask(request, boundary, row, segment) {
5674
+ null !== row &&
5675
+ (0 === --row.pendingTasks
5676
+ ? finishSuspenseListRow(request, row)
5677
+ : row.together && tryToResolveTogetherRow(request, row));
5364
5678
  request.allPendingTasks--;
5365
5679
  if (null === boundary) {
5366
5680
  if (null !== segment && segment.parentFlushed) {
@@ -5384,23 +5698,33 @@ function finishedTask(request, boundary, segment) {
5384
5698
  boundary.parentFlushed &&
5385
5699
  request.completedBoundaries.push(boundary),
5386
5700
  1 === boundary.status &&
5387
- (500 < boundary.byteSize ||
5701
+ ((row = boundary.row),
5702
+ null !== row &&
5703
+ hoistHoistables(row.hoistables, boundary.contentState),
5704
+ 500 < boundary.byteSize ||
5388
5705
  (boundary.fallbackAbortableTasks.forEach(
5389
5706
  abortTaskSoft,
5390
5707
  request
5391
5708
  ),
5392
- boundary.fallbackAbortableTasks.clear()),
5709
+ boundary.fallbackAbortableTasks.clear(),
5710
+ null !== row &&
5711
+ 0 === --row.pendingTasks &&
5712
+ finishSuspenseListRow(request, row)),
5393
5713
  0 === request.pendingRootTasks &&
5394
5714
  null === request.trackedPostpones &&
5395
5715
  null !== boundary.contentPreamble &&
5396
5716
  preparePreamble(request)))
5397
- : null !== segment &&
5398
- segment.parentFlushed &&
5399
- 1 === segment.status &&
5400
- (queueCompletedSegment(boundary, segment),
5401
- 1 === boundary.completedSegments.length &&
5402
- boundary.parentFlushed &&
5403
- request.partialBoundaries.push(boundary)));
5717
+ : (null !== segment &&
5718
+ segment.parentFlushed &&
5719
+ 1 === segment.status &&
5720
+ (queueCompletedSegment(boundary, segment),
5721
+ 1 === boundary.completedSegments.length &&
5722
+ boundary.parentFlushed &&
5723
+ request.partialBoundaries.push(boundary)),
5724
+ (boundary = boundary.row),
5725
+ null !== boundary &&
5726
+ boundary.together &&
5727
+ tryToResolveTogetherRow(request, boundary)));
5404
5728
  0 === request.allPendingTasks && completeAll(request);
5405
5729
  }
5406
5730
  function performWork(request$jscomp$1) {
@@ -5442,7 +5766,12 @@ function performWork(request$jscomp$1) {
5442
5766
  );
5443
5767
  task.replay.pendingTasks--;
5444
5768
  task.abortSet.delete(task);
5445
- finishedTask(request$jscomp$0, task.blockedBoundary, null);
5769
+ finishedTask(
5770
+ request$jscomp$0,
5771
+ task.blockedBoundary,
5772
+ task.row,
5773
+ null
5774
+ );
5446
5775
  } catch (thrownValue) {
5447
5776
  resetHooksState();
5448
5777
  var x =
@@ -5494,7 +5823,12 @@ function performWork(request$jscomp$1) {
5494
5823
  retryNode(request, task),
5495
5824
  task.abortSet.delete(task),
5496
5825
  (segment$jscomp$0.status = 1),
5497
- finishedTask(request, task.blockedBoundary, segment$jscomp$0);
5826
+ finishedTask(
5827
+ request,
5828
+ task.blockedBoundary,
5829
+ task.row,
5830
+ segment$jscomp$0
5831
+ );
5498
5832
  } catch (thrownValue) {
5499
5833
  resetHooksState();
5500
5834
  segment$jscomp$0.children.length = childrenLength;
@@ -5523,7 +5857,12 @@ function performWork(request$jscomp$1) {
5523
5857
  task,
5524
5858
  segment$jscomp$0
5525
5859
  );
5526
- finishedTask(request, task.blockedBoundary, segment$jscomp$0);
5860
+ finishedTask(
5861
+ request,
5862
+ task.blockedBoundary,
5863
+ task.row,
5864
+ segment$jscomp$0
5865
+ );
5527
5866
  } else {
5528
5867
  if ("object" === typeof x$jscomp$0 && null !== x$jscomp$0) {
5529
5868
  if ("function" === typeof x$jscomp$0.then) {
@@ -5537,19 +5876,20 @@ function performWork(request$jscomp$1) {
5537
5876
  null !== request.trackedPostpones &&
5538
5877
  x$jscomp$0.$$typeof === REACT_POSTPONE_TYPE
5539
5878
  ) {
5540
- var trackedPostpones$55 = request.trackedPostpones;
5879
+ var trackedPostpones$67 = request.trackedPostpones;
5541
5880
  task.abortSet.delete(task);
5542
5881
  var postponeInfo = getThrownInfo(task.componentStack);
5543
5882
  logPostpone(request, x$jscomp$0.message, postponeInfo);
5544
5883
  trackPostpone(
5545
5884
  request,
5546
- trackedPostpones$55,
5885
+ trackedPostpones$67,
5547
5886
  task,
5548
5887
  segment$jscomp$0
5549
5888
  );
5550
5889
  finishedTask(
5551
5890
  request,
5552
5891
  task.blockedBoundary,
5892
+ task.row,
5553
5893
  segment$jscomp$0
5554
5894
  );
5555
5895
  break a;
@@ -5558,7 +5898,12 @@ function performWork(request$jscomp$1) {
5558
5898
  var errorInfo$jscomp$0 = getThrownInfo(task.componentStack);
5559
5899
  task.abortSet.delete(task);
5560
5900
  segment$jscomp$0.status = 4;
5561
- var boundary = task.blockedBoundary;
5901
+ var boundary = task.blockedBoundary,
5902
+ row = task.row;
5903
+ null !== row &&
5904
+ 0 === --row.pendingTasks &&
5905
+ finishSuspenseListRow(request, row);
5906
+ request.allPendingTasks--;
5562
5907
  "object" === typeof x$jscomp$0 &&
5563
5908
  null !== x$jscomp$0 &&
5564
5909
  x$jscomp$0.$$typeof === REACT_POSTPONE_TYPE
@@ -5573,20 +5918,22 @@ function performWork(request$jscomp$1) {
5573
5918
  x$jscomp$0,
5574
5919
  errorInfo$jscomp$0
5575
5920
  ));
5576
- null === boundary
5577
- ? fatalError(request, x$jscomp$0)
5578
- : (boundary.pendingTasks--,
5579
- 4 !== boundary.status &&
5580
- ((boundary.status = 4),
5581
- (boundary.errorDigest = request$jscomp$0),
5582
- untrackBoundary(request, boundary),
5583
- boundary.parentFlushed &&
5584
- request.clientRenderedBoundaries.push(boundary),
5585
- 0 === request.pendingRootTasks &&
5586
- null === request.trackedPostpones &&
5587
- null !== boundary.contentPreamble &&
5588
- preparePreamble(request)));
5589
- request.allPendingTasks--;
5921
+ if (null === boundary) fatalError(request, x$jscomp$0);
5922
+ else if ((boundary.pendingTasks--, 4 !== boundary.status)) {
5923
+ boundary.status = 4;
5924
+ boundary.errorDigest = request$jscomp$0;
5925
+ untrackBoundary(request, boundary);
5926
+ var boundaryRow = boundary.row;
5927
+ null !== boundaryRow &&
5928
+ 0 === --boundaryRow.pendingTasks &&
5929
+ finishSuspenseListRow(request, boundaryRow);
5930
+ boundary.parentFlushed &&
5931
+ request.clientRenderedBoundaries.push(boundary);
5932
+ 0 === request.pendingRootTasks &&
5933
+ null === request.trackedPostpones &&
5934
+ null !== boundary.contentPreamble &&
5935
+ preparePreamble(request);
5936
+ }
5590
5937
  0 === request.allPendingTasks && completeAll(request);
5591
5938
  }
5592
5939
  } finally {
@@ -5732,7 +6079,14 @@ function flushSegment(request, destination, segment, hoistableState) {
5732
6079
  return flushSubtree(request, destination, segment, hoistableState);
5733
6080
  boundary.parentFlushed = !0;
5734
6081
  if (4 === boundary.status)
5735
- return flushSubtree(request, destination, segment, hoistableState), !0;
6082
+ return (
6083
+ (boundary = boundary.row),
6084
+ null !== boundary &&
6085
+ 0 === --boundary.pendingTasks &&
6086
+ finishSuspenseListRow(request, boundary),
6087
+ flushSubtree(request, destination, segment, hoistableState),
6088
+ !0
6089
+ );
5736
6090
  if (1 !== boundary.status)
5737
6091
  return (
5738
6092
  0 === boundary.status &&
@@ -5744,13 +6098,7 @@ function flushSegment(request, destination, segment, hoistableState) {
5744
6098
  request.renderState,
5745
6099
  boundary.rootSegmentID
5746
6100
  ),
5747
- hoistableState &&
5748
- ((boundary = boundary.fallbackState),
5749
- boundary.styles.forEach(hoistStyleQueueDependency, hoistableState),
5750
- boundary.stylesheets.forEach(
5751
- hoistStylesheetDependency,
5752
- hoistableState
5753
- )),
6101
+ hoistableState && hoistHoistables(hoistableState, boundary.fallbackState),
5754
6102
  flushSubtree(request, destination, segment, hoistableState),
5755
6103
  destination.push("\x3c!--/$--\x3e")
5756
6104
  );
@@ -5770,10 +6118,12 @@ function flushSegment(request, destination, segment, hoistableState) {
5770
6118
  destination.push("\x3c!--/$--\x3e")
5771
6119
  );
5772
6120
  flushedByteSize += boundary.byteSize;
5773
- hoistableState &&
5774
- ((segment = boundary.contentState),
5775
- segment.styles.forEach(hoistStyleQueueDependency, hoistableState),
5776
- segment.stylesheets.forEach(hoistStylesheetDependency, hoistableState));
6121
+ hoistableState && hoistHoistables(hoistableState, boundary.contentState);
6122
+ segment = boundary.row;
6123
+ null !== segment &&
6124
+ 500 < boundary.byteSize &&
6125
+ 0 === --segment.pendingTasks &&
6126
+ finishSuspenseListRow(request, segment);
5777
6127
  segment = boundary.completedSegments;
5778
6128
  if (1 !== segment.length)
5779
6129
  throw Error(
@@ -5806,6 +6156,11 @@ function flushCompletedBoundary(request, destination, boundary) {
5806
6156
  completedSegments[i]
5807
6157
  );
5808
6158
  completedSegments.length = 0;
6159
+ completedSegments = boundary.row;
6160
+ null !== completedSegments &&
6161
+ 500 < boundary.byteSize &&
6162
+ 0 === --completedSegments.pendingTasks &&
6163
+ finishSuspenseListRow(request, completedSegments);
5809
6164
  writeHoistablesForBoundary(
5810
6165
  destination,
5811
6166
  boundary.contentState,
@@ -5877,11 +6232,12 @@ function flushCompletedBoundary(request, destination, boundary) {
5877
6232
  ? destination.push(")\x3c/script>")
5878
6233
  : destination.push('"></template>');
5879
6234
  request = request.bootstrapChunks;
5880
- for (i = 0; i < request.length - 1; i++) destination.push(request[i]);
5881
- i < request.length
5882
- ? ((i = request[i]),
6235
+ for (boundary = 0; boundary < request.length - 1; boundary++)
6236
+ destination.push(request[boundary]);
6237
+ boundary < request.length
6238
+ ? ((boundary = request[boundary]),
5883
6239
  (request.length = 0),
5884
- (destination = destination.push(i)))
6240
+ (destination = destination.push(boundary)))
5885
6241
  : (destination = !0);
5886
6242
  return destination && completedSegments;
5887
6243
  }
@@ -6109,12 +6465,12 @@ function flushCompletedQueues(request, destination) {
6109
6465
  completedBoundaries.splice(0, i);
6110
6466
  var partialBoundaries = request.partialBoundaries;
6111
6467
  for (i = 0; i < partialBoundaries.length; i++) {
6112
- var boundary$58 = partialBoundaries[i];
6468
+ var boundary$71 = partialBoundaries[i];
6113
6469
  a: {
6114
6470
  clientRenderedBoundaries = request;
6115
6471
  boundary = destination;
6116
- flushedByteSize = boundary$58.byteSize;
6117
- var completedSegments = boundary$58.completedSegments;
6472
+ flushedByteSize = boundary$71.byteSize;
6473
+ var completedSegments = boundary$71.completedSegments;
6118
6474
  for (
6119
6475
  JSCompiler_inline_result = 0;
6120
6476
  JSCompiler_inline_result < completedSegments.length;
@@ -6124,7 +6480,7 @@ function flushCompletedQueues(request, destination) {
6124
6480
  !flushPartiallyCompletedSegment(
6125
6481
  clientRenderedBoundaries,
6126
6482
  boundary,
6127
- boundary$58,
6483
+ boundary$71,
6128
6484
  completedSegments[JSCompiler_inline_result]
6129
6485
  )
6130
6486
  ) {
@@ -6134,9 +6490,20 @@ function flushCompletedQueues(request, destination) {
6134
6490
  break a;
6135
6491
  }
6136
6492
  completedSegments.splice(0, JSCompiler_inline_result);
6493
+ var row = boundary$71.row;
6494
+ null !== row &&
6495
+ row.together &&
6496
+ 1 === boundary$71.pendingTasks &&
6497
+ (1 === row.pendingTasks
6498
+ ? unblockSuspenseListRow(
6499
+ clientRenderedBoundaries,
6500
+ row,
6501
+ row.hoistables
6502
+ )
6503
+ : row.pendingTasks--);
6137
6504
  JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
6138
6505
  boundary,
6139
- boundary$58.contentState,
6506
+ boundary$71.contentState,
6140
6507
  clientRenderedBoundaries.renderState
6141
6508
  );
6142
6509
  }
@@ -6207,8 +6574,8 @@ function abort(request, reason) {
6207
6574
  }
6208
6575
  null !== request.destination &&
6209
6576
  flushCompletedQueues(request, request.destination);
6210
- } catch (error$60) {
6211
- logRecoverableError(request, error$60, {}), fatalError(request, error$60);
6577
+ } catch (error$73) {
6578
+ logRecoverableError(request, error$73, {}), fatalError(request, error$73);
6212
6579
  }
6213
6580
  }
6214
6581
  function addToReplayParent(node, parentKeyPath, trackedPostpones) {
@@ -6282,4 +6649,4 @@ exports.experimental_renderToHTML = function (children, options) {
6282
6649
  });
6283
6650
  });
6284
6651
  };
6285
- exports.version = "19.2.0-experimental-462d08f9-20250517";
6652
+ exports.version = "19.2.0-experimental-23884812-20250520";