react-dom 19.2.0-canary-4448b187-20250515 → 19.2.0-canary-c4676e72-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.
@@ -68,8 +68,15 @@ var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
68
68
  REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"),
69
69
  REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"),
70
70
  REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"),
71
- MAYBE_ITERATOR_SYMBOL = Symbol.iterator,
72
- isArrayImpl = Array.isArray;
71
+ MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
72
+ function getIteratorFn(maybeIterable) {
73
+ if (null === maybeIterable || "object" !== typeof maybeIterable) return null;
74
+ maybeIterable =
75
+ (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
76
+ maybeIterable["@@iterator"];
77
+ return "function" === typeof maybeIterable ? maybeIterable : null;
78
+ }
79
+ var isArrayImpl = Array.isArray;
73
80
  function murmurhash3_32_gc(key, seed) {
74
81
  var remainder = key.length & 3;
75
82
  var bytes = key.length - remainder;
@@ -710,7 +717,8 @@ function getSuspenseViewTransition(parentViewTransition) {
710
717
  nameIdx: 0
711
718
  };
712
719
  }
713
- function getSuspenseFallbackFormatContext(parentContext) {
720
+ function getSuspenseFallbackFormatContext(resumableState, parentContext) {
721
+ parentContext.tagScope & 32 && (resumableState.instructions |= 128);
714
722
  return createFormatContext(
715
723
  parentContext.insertionMode,
716
724
  parentContext.selectedValue,
@@ -718,7 +726,7 @@ function getSuspenseFallbackFormatContext(parentContext) {
718
726
  getSuspenseViewTransition(parentContext.viewTransition)
719
727
  );
720
728
  }
721
- function getSuspenseContentFormatContext(parentContext) {
729
+ function getSuspenseContentFormatContext(resumableState, parentContext) {
722
730
  return createFormatContext(
723
731
  parentContext.insertionMode,
724
732
  parentContext.selectedValue,
@@ -2522,12 +2530,12 @@ var completeSegmentScript1Full = stringToPrecomputedChunk(
2522
2530
  stringToPrecomputedChunk('<template data-rsi="" data-sid="');
2523
2531
  stringToPrecomputedChunk('" data-pid="');
2524
2532
  var completeBoundaryScriptFunctionOnly = stringToPrecomputedChunk(
2525
- '$RB=[];$RC=function(d,c){function m(){$RT=performance.now();var f=$RB;$RB=[];for(var e=0;e<f.length;e+=2){var a=f[e],l=f[e+1],g=a.parentNode;if(g){var h=a.previousSibling,k=0;do{if(a&&8===a.nodeType){var b=a.data;if("/$"===b||"/&"===b)if(0===k)break;else k--;else"$"!==b&&"$?"!==b&&"$~"!==b&&"$!"!==b&&"&"!==b||k++}b=a.nextSibling;g.removeChild(a);a=b}while(a);for(;l.firstChild;)g.insertBefore(l.firstChild,a);h.data="$";h._reactRetry&&h._reactRetry()}}}if(c=document.getElementById(c))if(c.parentNode.removeChild(c),d=\ndocument.getElementById(d))d.previousSibling.data="$~",$RB.push(d,c),2===$RB.length&&setTimeout(m,("number"!==typeof $RT?0:$RT)+300-performance.now())};'
2526
- ),
2527
- completeBoundaryScript1Full = stringToPrecomputedChunk(
2528
- '$RB=[];$RC=function(d,c){function m(){$RT=performance.now();var f=$RB;$RB=[];for(var e=0;e<f.length;e+=2){var a=f[e],l=f[e+1],g=a.parentNode;if(g){var h=a.previousSibling,k=0;do{if(a&&8===a.nodeType){var b=a.data;if("/$"===b||"/&"===b)if(0===k)break;else k--;else"$"!==b&&"$?"!==b&&"$~"!==b&&"$!"!==b&&"&"!==b||k++}b=a.nextSibling;g.removeChild(a);a=b}while(a);for(;l.firstChild;)g.insertBefore(l.firstChild,a);h.data="$";h._reactRetry&&h._reactRetry()}}}if(c=document.getElementById(c))if(c.parentNode.removeChild(c),d=\ndocument.getElementById(d))d.previousSibling.data="$~",$RB.push(d,c),2===$RB.length&&setTimeout(m,("number"!==typeof $RT?0:$RT)+300-performance.now())};$RC("'
2529
- ),
2530
- completeBoundaryScript1Partial = stringToPrecomputedChunk('$RC("'),
2533
+ '$RB=[];$RV=function(){$RT=performance.now();var d=$RB;$RB=[];for(var a=0;a<d.length;a+=2){var b=d[a],h=d[a+1],e=b.parentNode;if(e){var f=b.previousSibling,g=0;do{if(b&&8===b.nodeType){var c=b.data;if("/$"===c||"/&"===c)if(0===g)break;else g--;else"$"!==c&&"$?"!==c&&"$~"!==c&&"$!"!==c&&"&"!==c||g++}c=b.nextSibling;e.removeChild(b);b=c}while(b);for(;h.firstChild;)e.insertBefore(h.firstChild,b);f.data="$";f._reactRetry&&f._reactRetry()}}};$RC=function(d,a){if(a=document.getElementById(a))if(a.parentNode.removeChild(a),d=document.getElementById(d))d.previousSibling.data="$~",$RB.push(d,a),2===$RB.length&&setTimeout($RV,("number"!==typeof $RT?0:$RT)+300-performance.now())};'
2534
+ );
2535
+ stringToPrecomputedChunk(
2536
+ "$RV=function(a){try{var b=document.__reactViewTransition;if(b){b.finished.then($RV,$RV);return}if(window._useVT){var c=document.__reactViewTransition=document.startViewTransition({update:a,types:[]});c.finished.finally(function(){document.__reactViewTransition===c&&(document.__reactViewTransition=null)});return}}catch(d){}a()}.bind(null,$RV);"
2537
+ );
2538
+ var completeBoundaryScript1Partial = stringToPrecomputedChunk('$RC("'),
2531
2539
  completeBoundaryWithStylesScript1FullPartial = stringToPrecomputedChunk(
2532
2540
  '$RM=new Map;$RR=function(n,w,p){function u(q){this._p=null;q()}for(var r=new Map,t=document,h,b,e=t.querySelectorAll("link[data-precedence],style[data-precedence]"),v=[],k=0;b=e[k++];)"not all"===b.getAttribute("media")?v.push(b):("LINK"===b.tagName&&$RM.set(b.getAttribute("href"),b),r.set(b.dataset.precedence,h=b));e=0;b=[];var l,a;for(k=!0;;){if(k){var f=p[e++];if(!f){k=!1;e=0;continue}var c=!1,m=0;var d=f[m++];if(a=$RM.get(d)){var g=a._p;c=!0}else{a=t.createElement("link");a.href=d;a.rel=\n"stylesheet";for(a.dataset.precedence=l=f[m++];g=f[m++];)a.setAttribute(g,f[m++]);g=a._p=new Promise(function(q,x){a.onload=u.bind(a,q);a.onerror=u.bind(a,x)});$RM.set(d,a)}d=a.getAttribute("media");!g||d&&!matchMedia(d).matches||b.push(g);if(c)continue}else{a=v[e++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=r.get(l)||h;c===h&&(h=a);r.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=t.head,c.insertBefore(a,c.firstChild))}if(p=document.getElementById(n))p.previousSibling.data=\n"$~";Promise.all(b).then($RC.bind(null,n,w),$RX.bind(null,n,"CSS failed to load"))};$RR("'
2533
2541
  ),
@@ -4073,6 +4081,7 @@ function createRequest(
4073
4081
  rootFormatContext,
4074
4082
  null,
4075
4083
  emptyTreeContext,
4084
+ null,
4076
4085
  null
4077
4086
  );
4078
4087
  pushComponentStack(children);
@@ -4128,15 +4137,17 @@ function pingTask(request, task) {
4128
4137
  }
4129
4138
  function createSuspenseBoundary(
4130
4139
  request,
4140
+ row,
4131
4141
  fallbackAbortableTasks,
4132
4142
  contentPreamble,
4133
4143
  fallbackPreamble
4134
4144
  ) {
4135
- return {
4145
+ fallbackAbortableTasks = {
4136
4146
  status: 0,
4137
4147
  rootSegmentID: -1,
4138
4148
  parentFlushed: !1,
4139
4149
  pendingTasks: 0,
4150
+ row: row,
4140
4151
  completedSegments: [],
4141
4152
  byteSize: 0,
4142
4153
  fallbackAbortableTasks: fallbackAbortableTasks,
@@ -4148,6 +4159,14 @@ function createSuspenseBoundary(
4148
4159
  trackedContentKeyPath: null,
4149
4160
  trackedFallbackNode: null
4150
4161
  };
4162
+ null !== row &&
4163
+ (row.pendingTasks++,
4164
+ (row = row.boundaries),
4165
+ null !== row &&
4166
+ (request.allPendingTasks++,
4167
+ fallbackAbortableTasks.pendingTasks++,
4168
+ row.push(fallbackAbortableTasks)));
4169
+ return fallbackAbortableTasks;
4151
4170
  }
4152
4171
  function createRenderTask(
4153
4172
  request,
@@ -4163,12 +4182,14 @@ function createRenderTask(
4163
4182
  formatContext,
4164
4183
  context,
4165
4184
  treeContext,
4185
+ row,
4166
4186
  componentStack
4167
4187
  ) {
4168
4188
  request.allPendingTasks++;
4169
4189
  null === blockedBoundary
4170
4190
  ? request.pendingRootTasks++
4171
4191
  : blockedBoundary.pendingTasks++;
4192
+ null !== row && row.pendingTasks++;
4172
4193
  var task = {
4173
4194
  replay: null,
4174
4195
  node: node,
@@ -4185,6 +4206,7 @@ function createRenderTask(
4185
4206
  formatContext: formatContext,
4186
4207
  context: context,
4187
4208
  treeContext: treeContext,
4209
+ row: row,
4188
4210
  componentStack: componentStack,
4189
4211
  thenableState: thenableState
4190
4212
  };
@@ -4204,12 +4226,14 @@ function createReplayTask(
4204
4226
  formatContext,
4205
4227
  context,
4206
4228
  treeContext,
4229
+ row,
4207
4230
  componentStack
4208
4231
  ) {
4209
4232
  request.allPendingTasks++;
4210
4233
  null === blockedBoundary
4211
4234
  ? request.pendingRootTasks++
4212
4235
  : blockedBoundary.pendingTasks++;
4236
+ null !== row && row.pendingTasks++;
4213
4237
  replay.pendingTasks++;
4214
4238
  var task = {
4215
4239
  replay: replay,
@@ -4227,6 +4251,7 @@ function createReplayTask(
4227
4251
  formatContext: formatContext,
4228
4252
  context: context,
4229
4253
  treeContext: treeContext,
4254
+ row: row,
4230
4255
  componentStack: componentStack,
4231
4256
  thenableState: thenableState
4232
4257
  };
@@ -4304,6 +4329,129 @@ function fatalError(request, error) {
4304
4329
  ? ((request.status = 14), closeWithError(request.destination, error))
4305
4330
  : ((request.status = 13), (request.fatalError = error));
4306
4331
  }
4332
+ function finishSuspenseListRow(request, row) {
4333
+ for (row = row.next; null !== row; ) {
4334
+ var unblockedBoundaries = row.boundaries;
4335
+ if (null !== unblockedBoundaries) {
4336
+ row.boundaries = null;
4337
+ for (var i = 0; i < unblockedBoundaries.length; i++)
4338
+ finishedTask(request, unblockedBoundaries[i], null, null);
4339
+ }
4340
+ row.pendingTasks--;
4341
+ if (0 < row.pendingTasks) break;
4342
+ row = row.next;
4343
+ }
4344
+ }
4345
+ function createSuspenseListRow(previousRow) {
4346
+ var newRow = { pendingTasks: 1, boundaries: null, next: null };
4347
+ null !== previousRow &&
4348
+ 0 < previousRow.pendingTasks &&
4349
+ (newRow.pendingTasks++,
4350
+ (newRow.boundaries = []),
4351
+ (previousRow.next = newRow));
4352
+ return newRow;
4353
+ }
4354
+ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
4355
+ keyPath = task.keyPath;
4356
+ var prevTreeContext = task.treeContext,
4357
+ prevRow = task.row,
4358
+ totalChildren = rows.length,
4359
+ previousSuspenseListRow = null;
4360
+ if (null !== task.replay) {
4361
+ var resumeSlots = task.replay.slots;
4362
+ if (null !== resumeSlots && "object" === typeof resumeSlots)
4363
+ for (var n = 0; n < totalChildren; n++) {
4364
+ var i = "backwards" !== revealOrder ? n : totalChildren - 1 - n,
4365
+ node = rows[i];
4366
+ task.row = previousSuspenseListRow = createSuspenseListRow(
4367
+ previousSuspenseListRow
4368
+ );
4369
+ task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i);
4370
+ var resumeSegmentID = resumeSlots[i];
4371
+ "number" === typeof resumeSegmentID
4372
+ ? (resumeNode(request, task, resumeSegmentID, node, i),
4373
+ delete resumeSlots[i])
4374
+ : renderNode(request, task, node, i);
4375
+ 0 === --previousSuspenseListRow.pendingTasks &&
4376
+ finishSuspenseListRow(request, previousSuspenseListRow);
4377
+ }
4378
+ else
4379
+ for (resumeSlots = 0; resumeSlots < totalChildren; resumeSlots++)
4380
+ (n =
4381
+ "backwards" !== revealOrder
4382
+ ? resumeSlots
4383
+ : totalChildren - 1 - resumeSlots),
4384
+ (i = rows[n]),
4385
+ (task.row = previousSuspenseListRow =
4386
+ createSuspenseListRow(previousSuspenseListRow)),
4387
+ (task.treeContext = pushTreeContext(
4388
+ prevTreeContext,
4389
+ totalChildren,
4390
+ n
4391
+ )),
4392
+ renderNode(request, task, i, n),
4393
+ 0 === --previousSuspenseListRow.pendingTasks &&
4394
+ finishSuspenseListRow(request, previousSuspenseListRow);
4395
+ } else if ("backwards" !== revealOrder)
4396
+ for (revealOrder = 0; revealOrder < totalChildren; revealOrder++)
4397
+ (resumeSlots = rows[revealOrder]),
4398
+ (task.row = previousSuspenseListRow =
4399
+ createSuspenseListRow(previousSuspenseListRow)),
4400
+ (task.treeContext = pushTreeContext(
4401
+ prevTreeContext,
4402
+ totalChildren,
4403
+ revealOrder
4404
+ )),
4405
+ renderNode(request, task, resumeSlots, revealOrder),
4406
+ 0 === --previousSuspenseListRow.pendingTasks &&
4407
+ finishSuspenseListRow(request, previousSuspenseListRow);
4408
+ else {
4409
+ revealOrder = task.blockedSegment;
4410
+ resumeSlots = revealOrder.children.length;
4411
+ n = revealOrder.chunks.length;
4412
+ for (i = totalChildren - 1; 0 <= i; i--) {
4413
+ node = rows[i];
4414
+ task.row = previousSuspenseListRow = createSuspenseListRow(
4415
+ previousSuspenseListRow
4416
+ );
4417
+ task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i);
4418
+ resumeSegmentID = createPendingSegment(
4419
+ request,
4420
+ n,
4421
+ null,
4422
+ task.formatContext,
4423
+ 0 === i ? revealOrder.lastPushedText : !0,
4424
+ !0
4425
+ );
4426
+ revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
4427
+ task.blockedSegment = resumeSegmentID;
4428
+ try {
4429
+ renderNode(request, task, node, i),
4430
+ resumeSegmentID.lastPushedText &&
4431
+ resumeSegmentID.textEmbedded &&
4432
+ resumeSegmentID.chunks.push(textSeparator),
4433
+ (resumeSegmentID.status = 1),
4434
+ finishedSegment(request, task.blockedBoundary, resumeSegmentID),
4435
+ 0 === --previousSuspenseListRow.pendingTasks &&
4436
+ finishSuspenseListRow(request, previousSuspenseListRow);
4437
+ } catch (thrownValue) {
4438
+ throw (
4439
+ ((resumeSegmentID.status = 12 === request.status ? 3 : 4),
4440
+ thrownValue)
4441
+ );
4442
+ }
4443
+ }
4444
+ task.blockedSegment = revealOrder;
4445
+ revealOrder.lastPushedText = !1;
4446
+ }
4447
+ null !== prevRow &&
4448
+ null !== previousSuspenseListRow &&
4449
+ 0 < previousSuspenseListRow.pendingTasks &&
4450
+ (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
4451
+ task.treeContext = prevTreeContext;
4452
+ task.row = prevRow;
4453
+ task.keyPath = keyPath;
4454
+ }
4307
4455
  function renderWithHooks(request, task, keyPath, Component, props, secondArg) {
4308
4456
  var prevThenableState = task.thenableState;
4309
4457
  task.thenableState = null;
@@ -4371,9 +4519,9 @@ function renderElement(request, task, keyPath, type, props, ref) {
4371
4519
  var defaultProps = type.defaultProps;
4372
4520
  if (defaultProps) {
4373
4521
  newProps === props && (newProps = assign({}, newProps, props));
4374
- for (var propName$34 in defaultProps)
4375
- void 0 === newProps[propName$34] &&
4376
- (newProps[propName$34] = defaultProps[propName$34]);
4522
+ for (var propName$42 in defaultProps)
4523
+ void 0 === newProps[propName$42] &&
4524
+ (newProps[propName$42] = defaultProps[propName$42]);
4377
4525
  }
4378
4526
  props = newProps;
4379
4527
  newProps = emptyContextObject;
@@ -4433,16 +4581,16 @@ function renderElement(request, task, keyPath, type, props, ref) {
4433
4581
  defaultProps = ref ? type[0] : newProps.state;
4434
4582
  initialState = !0;
4435
4583
  for (ref = ref ? 1 : 0; ref < type.length; ref++)
4436
- (propName$34 = type[ref]),
4437
- (propName$34 =
4438
- "function" === typeof propName$34
4439
- ? propName$34.call(newProps, defaultProps, props, void 0)
4440
- : propName$34),
4441
- null != propName$34 &&
4584
+ (propName$42 = type[ref]),
4585
+ (propName$42 =
4586
+ "function" === typeof propName$42
4587
+ ? propName$42.call(newProps, defaultProps, props, void 0)
4588
+ : propName$42),
4589
+ null != propName$42 &&
4442
4590
  (initialState
4443
4591
  ? ((initialState = !1),
4444
- (defaultProps = assign({}, defaultProps, propName$34)))
4445
- : assign(defaultProps, propName$34));
4592
+ (defaultProps = assign({}, defaultProps, propName$42)))
4593
+ : assign(defaultProps, propName$42));
4446
4594
  newProps.state = defaultProps;
4447
4595
  }
4448
4596
  else defaultProps.queue = null;
@@ -4517,6 +4665,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4517
4665
  task.formatContext,
4518
4666
  task.context,
4519
4667
  task.treeContext,
4668
+ task.row,
4520
4669
  task.componentStack
4521
4670
  )),
4522
4671
  pushComponentStack(keyPath),
@@ -4596,10 +4745,30 @@ function renderElement(request, task, keyPath, type, props, ref) {
4596
4745
  (type.lastPushedText = !1));
4597
4746
  return;
4598
4747
  case REACT_SUSPENSE_LIST_TYPE:
4599
- type = task.keyPath;
4600
- task.keyPath = keyPath;
4601
- renderNodeDestructive(request, task, props.children, -1);
4602
- task.keyPath = type;
4748
+ a: {
4749
+ type = props.children;
4750
+ props = props.revealOrder;
4751
+ if ("forwards" === props || "backwards" === props) {
4752
+ if (isArrayImpl(type)) {
4753
+ renderSuspenseListRows(request, task, keyPath, type, props);
4754
+ break a;
4755
+ }
4756
+ if ((newProps = getIteratorFn(type)))
4757
+ if ((newProps = newProps.call(type))) {
4758
+ defaultProps = newProps.next();
4759
+ if (!defaultProps.done) {
4760
+ do defaultProps = newProps.next();
4761
+ while (!defaultProps.done);
4762
+ renderSuspenseListRows(request, task, keyPath, type, props);
4763
+ }
4764
+ break a;
4765
+ }
4766
+ }
4767
+ props = task.keyPath;
4768
+ task.keyPath = keyPath;
4769
+ renderNodeDestructive(request, task, type, -1);
4770
+ task.keyPath = props;
4771
+ }
4603
4772
  return;
4604
4773
  case REACT_VIEW_TRANSITION_TYPE:
4605
4774
  case REACT_SCOPE_TYPE:
@@ -4608,18 +4777,26 @@ function renderElement(request, task, keyPath, type, props, ref) {
4608
4777
  a: if (null !== task.replay) {
4609
4778
  type = task.keyPath;
4610
4779
  newProps = task.formatContext;
4780
+ defaultProps = task.row;
4611
4781
  task.keyPath = keyPath;
4612
- task.formatContext = getSuspenseContentFormatContext(newProps);
4782
+ task.formatContext = getSuspenseContentFormatContext(
4783
+ request.resumableState,
4784
+ newProps
4785
+ );
4786
+ task.row = null;
4613
4787
  keyPath = props.children;
4614
4788
  try {
4615
4789
  renderNode(request, task, keyPath, -1);
4616
4790
  } finally {
4617
- (task.keyPath = type), (task.formatContext = newProps);
4791
+ (task.keyPath = type),
4792
+ (task.formatContext = newProps),
4793
+ (task.row = defaultProps);
4618
4794
  }
4619
4795
  } else {
4620
4796
  type = task.keyPath;
4621
4797
  ref = task.formatContext;
4622
- propName$34 = task.blockedBoundary;
4798
+ var prevRow = task.row;
4799
+ propName$42 = task.blockedBoundary;
4623
4800
  propName = task.blockedPreamble;
4624
4801
  var parentHoistableState = task.hoistableState,
4625
4802
  parentSegment = task.blockedSegment,
@@ -4630,11 +4807,18 @@ function renderElement(request, task, keyPath, type, props, ref) {
4630
4807
  2 > task.formatContext.insertionMode
4631
4808
  ? createSuspenseBoundary(
4632
4809
  request,
4810
+ task.row,
4633
4811
  fallbackAbortSet,
4634
4812
  createPreambleState(),
4635
4813
  createPreambleState()
4636
4814
  )
4637
- : createSuspenseBoundary(request, fallbackAbortSet, null, null);
4815
+ : createSuspenseBoundary(
4816
+ request,
4817
+ task.row,
4818
+ fallbackAbortSet,
4819
+ null,
4820
+ null
4821
+ );
4638
4822
  null !== request.trackedPostpones &&
4639
4823
  (newBoundary.trackedContentKeyPath = keyPath);
4640
4824
  var boundarySegment = createPendingSegment(
@@ -4664,7 +4848,10 @@ function renderElement(request, task, keyPath, type, props, ref) {
4664
4848
  task.blockedSegment = boundarySegment;
4665
4849
  task.blockedPreamble = newBoundary.fallbackPreamble;
4666
4850
  task.keyPath = newProps;
4667
- task.formatContext = getSuspenseFallbackFormatContext(ref);
4851
+ task.formatContext = getSuspenseFallbackFormatContext(
4852
+ request.resumableState,
4853
+ ref
4854
+ );
4668
4855
  boundarySegment.status = 6;
4669
4856
  try {
4670
4857
  renderNode(request, task, fallback, -1),
@@ -4672,7 +4859,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4672
4859
  boundarySegment.textEmbedded &&
4673
4860
  boundarySegment.chunks.push(textSeparator),
4674
4861
  (boundarySegment.status = 1),
4675
- finishedSegment(request, propName$34, boundarySegment);
4862
+ finishedSegment(request, propName$42, boundarySegment);
4676
4863
  } catch (thrownValue) {
4677
4864
  throw (
4678
4865
  ((boundarySegment.status = 12 === request.status ? 3 : 4),
@@ -4695,9 +4882,13 @@ function renderElement(request, task, keyPath, type, props, ref) {
4695
4882
  newBoundary.contentState,
4696
4883
  task.abortSet,
4697
4884
  keyPath,
4698
- getSuspenseContentFormatContext(task.formatContext),
4885
+ getSuspenseContentFormatContext(
4886
+ request.resumableState,
4887
+ task.formatContext
4888
+ ),
4699
4889
  task.context,
4700
4890
  task.treeContext,
4891
+ null,
4701
4892
  task.componentStack
4702
4893
  );
4703
4894
  pushComponentStack(task);
@@ -4708,7 +4899,11 @@ function renderElement(request, task, keyPath, type, props, ref) {
4708
4899
  task.hoistableState = newBoundary.contentState;
4709
4900
  task.blockedSegment = contentRootSegment;
4710
4901
  task.keyPath = keyPath;
4711
- task.formatContext = getSuspenseContentFormatContext(ref);
4902
+ task.formatContext = getSuspenseContentFormatContext(
4903
+ request.resumableState,
4904
+ ref
4905
+ );
4906
+ task.row = null;
4712
4907
  contentRootSegment.status = 6;
4713
4908
  try {
4714
4909
  if (
@@ -4723,18 +4918,21 @@ function renderElement(request, task, keyPath, type, props, ref) {
4723
4918
  0 === newBoundary.status &&
4724
4919
  ((newBoundary.status = 1), !(500 < newBoundary.byteSize)))
4725
4920
  ) {
4921
+ null !== prevRow &&
4922
+ 0 === --prevRow.pendingTasks &&
4923
+ finishSuspenseListRow(request, prevRow);
4726
4924
  0 === request.pendingRootTasks &&
4727
4925
  task.blockedPreamble &&
4728
4926
  preparePreamble(request);
4729
4927
  break a;
4730
4928
  }
4731
- } catch (thrownValue$29) {
4929
+ } catch (thrownValue$30) {
4732
4930
  (newBoundary.status = 4),
4733
4931
  12 === request.status
4734
4932
  ? ((contentRootSegment.status = 3),
4735
4933
  (newProps = request.fatalError))
4736
4934
  : ((contentRootSegment.status = 4),
4737
- (newProps = thrownValue$29)),
4935
+ (newProps = thrownValue$30)),
4738
4936
  (defaultProps = getThrownInfo(task.componentStack)),
4739
4937
  (initialState = logRecoverableError(
4740
4938
  request,
@@ -4744,27 +4942,32 @@ function renderElement(request, task, keyPath, type, props, ref) {
4744
4942
  (newBoundary.errorDigest = initialState),
4745
4943
  untrackBoundary(request, newBoundary);
4746
4944
  } finally {
4747
- (task.blockedBoundary = propName$34),
4945
+ (task.blockedBoundary = propName$42),
4748
4946
  (task.blockedPreamble = propName),
4749
4947
  (task.hoistableState = parentHoistableState),
4750
4948
  (task.blockedSegment = parentSegment),
4751
4949
  (task.keyPath = type),
4752
- (task.formatContext = ref);
4950
+ (task.formatContext = ref),
4951
+ (task.row = prevRow);
4753
4952
  }
4754
4953
  task = createRenderTask(
4755
4954
  request,
4756
4955
  null,
4757
4956
  fallback,
4758
4957
  -1,
4759
- propName$34,
4958
+ propName$42,
4760
4959
  boundarySegment,
4761
4960
  newBoundary.fallbackPreamble,
4762
4961
  newBoundary.fallbackState,
4763
4962
  fallbackAbortSet,
4764
4963
  [keyPath[0], "Suspense Fallback", keyPath[2]],
4765
- getSuspenseFallbackFormatContext(task.formatContext),
4964
+ getSuspenseFallbackFormatContext(
4965
+ request.resumableState,
4966
+ task.formatContext
4967
+ ),
4766
4968
  task.context,
4767
4969
  task.treeContext,
4970
+ task.row,
4768
4971
  task.componentStack
4769
4972
  );
4770
4973
  pushComponentStack(task);
@@ -4976,6 +5179,7 @@ function retryNode(request, task) {
4976
5179
  null === node$jscomp$0[4] ? null : node$jscomp$0[4][3];
4977
5180
  var prevKeyPath = task.keyPath,
4978
5181
  prevContext = task.formatContext,
5182
+ prevRow = task.row,
4979
5183
  previousReplaySet = task.replay,
4980
5184
  parentBoundary = task.blockedBoundary,
4981
5185
  parentHoistableState = task.hoistableState,
@@ -4986,12 +5190,14 @@ function retryNode(request, task) {
4986
5190
  2 > task.formatContext.insertionMode
4987
5191
  ? createSuspenseBoundary(
4988
5192
  request,
5193
+ task.row,
4989
5194
  fallbackAbortSet,
4990
5195
  createPreambleState(),
4991
5196
  createPreambleState()
4992
5197
  )
4993
5198
  : createSuspenseBoundary(
4994
5199
  request,
5200
+ task.row,
4995
5201
  fallbackAbortSet,
4996
5202
  null,
4997
5203
  null
@@ -5001,8 +5207,11 @@ function retryNode(request, task) {
5001
5207
  task.blockedBoundary = props;
5002
5208
  task.hoistableState = props.contentState;
5003
5209
  task.keyPath = key;
5004
- task.formatContext =
5005
- getSuspenseContentFormatContext(prevContext);
5210
+ task.formatContext = getSuspenseContentFormatContext(
5211
+ request.resumableState,
5212
+ prevContext
5213
+ );
5214
+ task.row = null;
5006
5215
  task.replay = {
5007
5216
  nodes: ref,
5008
5217
  slots: name,
@@ -5037,9 +5246,10 @@ function retryNode(request, task) {
5037
5246
  (task.hoistableState = parentHoistableState),
5038
5247
  (task.replay = previousReplaySet),
5039
5248
  (task.keyPath = prevKeyPath),
5040
- (task.formatContext = prevContext);
5249
+ (task.formatContext = prevContext),
5250
+ (task.row = prevRow);
5041
5251
  }
5042
- task = createReplayTask(
5252
+ childNodes = createReplayTask(
5043
5253
  request,
5044
5254
  null,
5045
5255
  {
@@ -5053,13 +5263,17 @@ function retryNode(request, task) {
5053
5263
  props.fallbackState,
5054
5264
  fallbackAbortSet,
5055
5265
  [key[0], "Suspense Fallback", key[2]],
5056
- getSuspenseFallbackFormatContext(task.formatContext),
5266
+ getSuspenseFallbackFormatContext(
5267
+ request.resumableState,
5268
+ task.formatContext
5269
+ ),
5057
5270
  task.context,
5058
5271
  task.treeContext,
5272
+ task.row,
5059
5273
  task.componentStack
5060
5274
  );
5061
- pushComponentStack(task);
5062
- request.pingedTasks.push(task);
5275
+ pushComponentStack(childNodes);
5276
+ request.pingedTasks.push(childNodes);
5063
5277
  }
5064
5278
  }
5065
5279
  childIndex.splice(node, 1);
@@ -5082,22 +5296,17 @@ function retryNode(request, task) {
5082
5296
  renderChildrenArray(request, task, node, childIndex);
5083
5297
  return;
5084
5298
  }
5085
- null === node || "object" !== typeof node
5086
- ? (childNodes = null)
5087
- : ((childNodes =
5088
- (MAYBE_ITERATOR_SYMBOL && node[MAYBE_ITERATOR_SYMBOL]) ||
5089
- node["@@iterator"]),
5090
- (childNodes = "function" === typeof childNodes ? childNodes : null));
5091
- if (childNodes && (childNodes = childNodes.call(node))) {
5092
- node = childNodes.next();
5093
- if (!node.done) {
5094
- props = [];
5095
- do props.push(node.value), (node = childNodes.next());
5096
- while (!node.done);
5097
- renderChildrenArray(request, task, props, childIndex);
5299
+ if ((childNodes = getIteratorFn(node)))
5300
+ if ((childNodes = childNodes.call(node))) {
5301
+ node = childNodes.next();
5302
+ if (!node.done) {
5303
+ props = [];
5304
+ do props.push(node.value), (node = childNodes.next());
5305
+ while (!node.done);
5306
+ renderChildrenArray(request, task, props, childIndex);
5307
+ }
5308
+ return;
5098
5309
  }
5099
- return;
5100
- }
5101
5310
  if ("function" === typeof node.then)
5102
5311
  return (
5103
5312
  (task.thenableState = null),
@@ -5239,6 +5448,7 @@ function spawnNewSuspendedReplayTask(request, task, thenableState) {
5239
5448
  task.formatContext,
5240
5449
  task.context,
5241
5450
  task.treeContext,
5451
+ task.row,
5242
5452
  task.componentStack
5243
5453
  );
5244
5454
  }
@@ -5268,6 +5478,7 @@ function spawnNewSuspendedRenderTask(request, task, thenableState) {
5268
5478
  task.formatContext,
5269
5479
  task.context,
5270
5480
  task.treeContext,
5481
+ task.row,
5271
5482
  task.componentStack
5272
5483
  );
5273
5484
  }
@@ -5321,15 +5532,15 @@ function renderNode(request, task, node, childIndex) {
5321
5532
  chunkLength = segment.chunks.length;
5322
5533
  try {
5323
5534
  return renderNodeDestructive(request, task, node, childIndex);
5324
- } catch (thrownValue$51) {
5535
+ } catch (thrownValue$58) {
5325
5536
  if (
5326
5537
  (resetHooksState(),
5327
5538
  (segment.children.length = childrenLength),
5328
5539
  (segment.chunks.length = chunkLength),
5329
5540
  (node =
5330
- thrownValue$51 === SuspenseException
5541
+ thrownValue$58 === SuspenseException
5331
5542
  ? getSuspendedThenable()
5332
- : thrownValue$51),
5543
+ : thrownValue$58),
5333
5544
  "object" === typeof node && null !== node)
5334
5545
  ) {
5335
5546
  if ("function" === typeof node.then) {
@@ -5367,9 +5578,10 @@ function renderNode(request, task, node, childIndex) {
5367
5578
  throw node;
5368
5579
  }
5369
5580
  function abortTaskSoft(task) {
5370
- var boundary = task.blockedBoundary;
5371
- task = task.blockedSegment;
5372
- null !== task && ((task.status = 3), finishedTask(this, boundary, task));
5581
+ var boundary = task.blockedBoundary,
5582
+ segment = task.blockedSegment;
5583
+ null !== segment &&
5584
+ ((segment.status = 3), finishedTask(this, boundary, task.row, segment));
5373
5585
  }
5374
5586
  function abortRemainingReplayNodes(
5375
5587
  request$jscomp$0,
@@ -5396,6 +5608,7 @@ function abortRemainingReplayNodes(
5396
5608
  errorDigest = errorDigest$jscomp$0,
5397
5609
  resumedBoundary = createSuspenseBoundary(
5398
5610
  request,
5611
+ null,
5399
5612
  new Set(),
5400
5613
  null,
5401
5614
  null
@@ -5426,6 +5639,10 @@ function abortTask(task, request, error) {
5426
5639
  if (6 === segment.status) return;
5427
5640
  segment.status = 3;
5428
5641
  }
5642
+ segment = task.row;
5643
+ null !== segment &&
5644
+ 0 === --segment.pendingTasks &&
5645
+ finishSuspenseListRow(request, segment);
5429
5646
  segment = getThrownInfo(task.componentStack);
5430
5647
  if (null === boundary) {
5431
5648
  if (13 !== request.status && 14 !== request.status) {
@@ -5570,7 +5787,11 @@ function finishedSegment(request, boundary, segment) {
5570
5787
  : (boundary.byteSize += segmentByteSize);
5571
5788
  }
5572
5789
  }
5573
- function finishedTask(request, boundary, segment) {
5790
+ function finishedTask(request, boundary, row, segment) {
5791
+ null !== row &&
5792
+ 0 === --row.pendingTasks &&
5793
+ finishSuspenseListRow(request, row);
5794
+ request.allPendingTasks--;
5574
5795
  if (null === boundary) {
5575
5796
  if (null !== segment && segment.parentFlushed) {
5576
5797
  if (null !== request.completedRootSegment)
@@ -5596,7 +5817,11 @@ function finishedTask(request, boundary, segment) {
5596
5817
  abortTaskSoft,
5597
5818
  request
5598
5819
  ),
5599
- boundary.fallbackAbortableTasks.clear()),
5820
+ boundary.fallbackAbortableTasks.clear(),
5821
+ (row = boundary.row),
5822
+ null !== row &&
5823
+ 0 === --row.pendingTasks &&
5824
+ finishSuspenseListRow(request, row)),
5600
5825
  0 === request.pendingRootTasks &&
5601
5826
  null === request.trackedPostpones &&
5602
5827
  null !== boundary.contentPreamble &&
@@ -5608,7 +5833,6 @@ function finishedTask(request, boundary, segment) {
5608
5833
  1 === boundary.completedSegments.length &&
5609
5834
  boundary.parentFlushed &&
5610
5835
  request.partialBoundaries.push(boundary)));
5611
- request.allPendingTasks--;
5612
5836
  0 === request.allPendingTasks && completeAll(request);
5613
5837
  }
5614
5838
  function performWork(request$jscomp$2) {
@@ -5650,7 +5874,12 @@ function performWork(request$jscomp$2) {
5650
5874
  throw Error(formatProdErrorMessage(488));
5651
5875
  task.replay.pendingTasks--;
5652
5876
  task.abortSet.delete(task);
5653
- finishedTask(request$jscomp$0, task.blockedBoundary, null);
5877
+ finishedTask(
5878
+ request$jscomp$0,
5879
+ task.blockedBoundary,
5880
+ task.row,
5881
+ null
5882
+ );
5654
5883
  } catch (thrownValue) {
5655
5884
  resetHooksState();
5656
5885
  var x =
@@ -5718,7 +5947,12 @@ function performWork(request$jscomp$2) {
5718
5947
  task.abortSet.delete(task),
5719
5948
  (request$jscomp$1.status = 1),
5720
5949
  finishedSegment(request, task.blockedBoundary, request$jscomp$1),
5721
- finishedTask(request, task.blockedBoundary, request$jscomp$1);
5950
+ finishedTask(
5951
+ request,
5952
+ task.blockedBoundary,
5953
+ task.row,
5954
+ request$jscomp$1
5955
+ );
5722
5956
  } catch (thrownValue) {
5723
5957
  resetHooksState();
5724
5958
  request$jscomp$1.children.length = childrenLength;
@@ -5742,7 +5976,12 @@ function performWork(request$jscomp$2) {
5742
5976
  var errorInfo$jscomp$0 = getThrownInfo(task.componentStack);
5743
5977
  task.abortSet.delete(task);
5744
5978
  request$jscomp$1.status = 4;
5745
- var boundary$jscomp$0 = task.blockedBoundary;
5979
+ var boundary$jscomp$0 = task.blockedBoundary,
5980
+ row = task.row;
5981
+ null !== row &&
5982
+ 0 === --row.pendingTasks &&
5983
+ finishSuspenseListRow(request, row);
5984
+ request.allPendingTasks--;
5746
5985
  request$jscomp$0 = logRecoverableError(
5747
5986
  request,
5748
5987
  x$jscomp$0,
@@ -5761,7 +6000,6 @@ function performWork(request$jscomp$2) {
5761
6000
  null === request.trackedPostpones &&
5762
6001
  null !== boundary$jscomp$0.contentPreamble &&
5763
6002
  preparePreamble(request)));
5764
- request.allPendingTasks--;
5765
6003
  0 === request.allPendingTasks && completeAll(request);
5766
6004
  }
5767
6005
  } finally {
@@ -5902,20 +6140,24 @@ function flushSegment(request, destination, segment, hoistableState) {
5902
6140
  if (null === boundary)
5903
6141
  return flushSubtree(request, destination, segment, hoistableState);
5904
6142
  boundary.parentFlushed = !0;
5905
- if (4 === boundary.status)
5906
- (boundary = boundary.errorDigest),
5907
- writeChunkAndReturn(destination, startClientRenderedSuspenseBoundary),
5908
- writeChunk(destination, clientRenderedSuspenseBoundaryError1),
5909
- boundary &&
5910
- (writeChunk(destination, clientRenderedSuspenseBoundaryError1A),
5911
- writeChunk(destination, stringToChunk(escapeTextForBrowser(boundary))),
5912
- writeChunk(
5913
- destination,
5914
- clientRenderedSuspenseBoundaryErrorAttrInterstitial
5915
- )),
5916
- writeChunkAndReturn(destination, clientRenderedSuspenseBoundaryError2),
5917
- flushSubtree(request, destination, segment, hoistableState);
5918
- else if (1 !== boundary.status)
6143
+ if (4 === boundary.status) {
6144
+ var row = boundary.row;
6145
+ null !== row &&
6146
+ 0 === --row.pendingTasks &&
6147
+ finishSuspenseListRow(request, row);
6148
+ boundary = boundary.errorDigest;
6149
+ writeChunkAndReturn(destination, startClientRenderedSuspenseBoundary);
6150
+ writeChunk(destination, clientRenderedSuspenseBoundaryError1);
6151
+ boundary &&
6152
+ (writeChunk(destination, clientRenderedSuspenseBoundaryError1A),
6153
+ writeChunk(destination, stringToChunk(escapeTextForBrowser(boundary))),
6154
+ writeChunk(
6155
+ destination,
6156
+ clientRenderedSuspenseBoundaryErrorAttrInterstitial
6157
+ ));
6158
+ writeChunkAndReturn(destination, clientRenderedSuspenseBoundaryError2);
6159
+ flushSubtree(request, destination, segment, hoistableState);
6160
+ } else if (1 !== boundary.status)
5919
6161
  0 === boundary.status && (boundary.rootSegmentID = request.nextSegmentId++),
5920
6162
  0 < boundary.completedSegments.length &&
5921
6163
  request.partialBoundaries.push(boundary),
@@ -5950,6 +6192,11 @@ function flushSegment(request, destination, segment, hoistableState) {
5950
6192
  ((segment = boundary.contentState),
5951
6193
  segment.styles.forEach(hoistStyleQueueDependency, hoistableState),
5952
6194
  segment.stylesheets.forEach(hoistStylesheetDependency, hoistableState));
6195
+ segment = boundary.row;
6196
+ null !== segment &&
6197
+ 500 < boundary.byteSize &&
6198
+ 0 === --segment.pendingTasks &&
6199
+ finishSuspenseListRow(request, segment);
5953
6200
  writeChunkAndReturn(destination, startCompletedSuspenseBoundary);
5954
6201
  segment = boundary.completedSegments;
5955
6202
  if (1 !== segment.length) throw Error(formatProdErrorMessage(391));
@@ -5981,6 +6228,11 @@ function flushCompletedBoundary(request, destination, boundary) {
5981
6228
  completedSegments[i]
5982
6229
  );
5983
6230
  completedSegments.length = 0;
6231
+ completedSegments = boundary.row;
6232
+ null !== completedSegments &&
6233
+ 500 < boundary.byteSize &&
6234
+ 0 === --completedSegments.pendingTasks &&
6235
+ finishSuspenseListRow(request, completedSegments);
5984
6236
  writeHoistablesForBoundary(
5985
6237
  destination,
5986
6238
  boundary.contentState,
@@ -6005,10 +6257,10 @@ function flushCompletedBoundary(request, destination, boundary) {
6005
6257
  ? ((completedSegments.instructions |= 8),
6006
6258
  writeChunk(destination, completeBoundaryWithStylesScript1FullPartial))
6007
6259
  : writeChunk(destination, completeBoundaryWithStylesScript1Partial))
6008
- : 0 === (completedSegments.instructions & 2)
6009
- ? ((completedSegments.instructions |= 2),
6010
- writeChunk(destination, completeBoundaryScript1Full))
6011
- : writeChunk(destination, completeBoundaryScript1Partial);
6260
+ : (0 === (completedSegments.instructions & 2) &&
6261
+ ((completedSegments.instructions |= 2),
6262
+ writeChunk(destination, completeBoundaryScriptFunctionOnly)),
6263
+ writeChunk(destination, completeBoundaryScript1Partial));
6012
6264
  completedSegments = stringToChunk(i.toString(16));
6013
6265
  writeChunk(destination, request.boundaryPrefix);
6014
6266
  writeChunk(destination, completedSegments);
@@ -6256,12 +6508,12 @@ function flushCompletedQueues(request, destination) {
6256
6508
  writtenBytes = 0;
6257
6509
  var partialBoundaries = request.partialBoundaries;
6258
6510
  for (i = 0; i < partialBoundaries.length; i++) {
6259
- var boundary$54 = partialBoundaries[i];
6511
+ var boundary$62 = partialBoundaries[i];
6260
6512
  a: {
6261
6513
  clientRenderedBoundaries = request;
6262
6514
  boundary = destination;
6263
- flushedByteSize = boundary$54.byteSize;
6264
- var completedSegments = boundary$54.completedSegments;
6515
+ flushedByteSize = boundary$62.byteSize;
6516
+ var completedSegments = boundary$62.completedSegments;
6265
6517
  for (
6266
6518
  JSCompiler_inline_result = 0;
6267
6519
  JSCompiler_inline_result < completedSegments.length;
@@ -6271,7 +6523,7 @@ function flushCompletedQueues(request, destination) {
6271
6523
  !flushPartiallyCompletedSegment(
6272
6524
  clientRenderedBoundaries,
6273
6525
  boundary,
6274
- boundary$54,
6526
+ boundary$62,
6275
6527
  completedSegments[JSCompiler_inline_result]
6276
6528
  )
6277
6529
  ) {
@@ -6283,7 +6535,7 @@ function flushCompletedQueues(request, destination) {
6283
6535
  completedSegments.splice(0, JSCompiler_inline_result);
6284
6536
  JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
6285
6537
  boundary,
6286
- boundary$54.contentState,
6538
+ boundary$62.contentState,
6287
6539
  clientRenderedBoundaries.renderState
6288
6540
  );
6289
6541
  }
@@ -6376,18 +6628,18 @@ function abort(request, reason) {
6376
6628
  }
6377
6629
  null !== request.destination &&
6378
6630
  flushCompletedQueues(request, request.destination);
6379
- } catch (error$56) {
6380
- logRecoverableError(request, error$56, {}), fatalError(request, error$56);
6631
+ } catch (error$64) {
6632
+ logRecoverableError(request, error$64, {}), fatalError(request, error$64);
6381
6633
  }
6382
6634
  }
6383
6635
  function ensureCorrectIsomorphicReactVersion() {
6384
6636
  var isomorphicReactPackageVersion = React.version;
6385
- if ("19.2.0-canary-4448b187-20250515" !== isomorphicReactPackageVersion)
6637
+ if ("19.2.0-canary-c4676e72-20250520" !== isomorphicReactPackageVersion)
6386
6638
  throw Error(
6387
6639
  formatProdErrorMessage(
6388
6640
  527,
6389
6641
  isomorphicReactPackageVersion,
6390
- "19.2.0-canary-4448b187-20250515"
6642
+ "19.2.0-canary-c4676e72-20250520"
6391
6643
  )
6392
6644
  );
6393
6645
  }
@@ -6534,4 +6786,4 @@ exports.renderToReadableStream = function (children, options) {
6534
6786
  startWork(request);
6535
6787
  });
6536
6788
  };
6537
- exports.version = "19.2.0-canary-4448b187-20250515";
6789
+ exports.version = "19.2.0-canary-c4676e72-20250520";