Skip to content

Conversation

@sebmarkbage
Copy link
Collaborator

Stacked on #35018.

This mounts the children of SuspenseList backwards. Meaning the first child is mounted last in the DOM (and effect list). It's like calling reverse() on the children.

This is meant to set us up for allowing AsyncIterable children where the unknown number of children streams in at the end (which is the beginning in a backwards SuspenseList). For consistency we do that with other children too.

unstable_legacy-backwards still exists for the old mode but is meant to be deprecated.

image

@meta-cla meta-cla bot added the CLA Signed label Oct 31, 2025
@github-actions github-actions bot added the React Core Team Opened by a member of the React Core Team label Oct 31, 2025
@react-sizebot
Copy link

react-sizebot commented Oct 31, 2025

Comparing: 26cf280...096b356

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name +/- Base Current +/- gzip Base gzip Current gzip
oss-stable/react-dom/cjs/react-dom.production.js = 6.68 kB 6.68 kB = 1.83 kB 1.83 kB
oss-stable/react-dom/cjs/react-dom-client.production.js +0.16% 605.27 kB 606.22 kB +0.18% 107.19 kB 107.38 kB
oss-experimental/react-dom/cjs/react-dom.production.js = 6.69 kB 6.69 kB = 1.83 kB 1.83 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js +0.14% 664.24 kB 665.19 kB +0.18% 117.05 kB 117.26 kB
facebook-www/ReactDOM-prod.classic.js +0.14% 688.11 kB 689.06 kB +0.16% 121.11 kB 121.30 kB
facebook-www/ReactDOM-prod.modern.js +0.14% 678.53 kB 679.49 kB +0.19% 119.46 kB 119.69 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name +/- Base Current +/- gzip Base gzip Current gzip
oss-stable-semver/react-test-renderer/cjs/react-test-renderer.production.js +0.29% 324.46 kB 325.41 kB +0.34% 56.48 kB 56.67 kB
oss-stable/react-test-renderer/cjs/react-test-renderer.production.js +0.29% 324.54 kB 325.49 kB +0.34% 56.50 kB 56.69 kB
oss-experimental/react-test-renderer/cjs/react-test-renderer.production.js +0.29% 324.71 kB 325.66 kB +0.34% 56.54 kB 56.73 kB
oss-stable-semver/react-art/cjs/react-art.production.js +0.29% 329.18 kB 330.13 kB +0.34% 55.77 kB 55.96 kB
oss-stable/react-art/cjs/react-art.production.js +0.29% 329.25 kB 330.20 kB +0.34% 55.79 kB 55.98 kB
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-prod.js +0.28% 344.40 kB 345.38 kB +0.30% 59.89 kB 60.06 kB
oss-experimental/react-art/cjs/react-art.production.js +0.27% 353.93 kB 354.88 kB +0.29% 59.75 kB 59.92 kB
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-profiling.js +0.26% 369.19 kB 370.17 kB +0.31% 63.24 kB 63.43 kB
react-native/implementations/ReactFabric-prod.js +0.25% 376.23 kB 377.17 kB +0.28% 65.30 kB 65.49 kB
facebook-www/ReactART-prod.modern.js +0.25% 379.10 kB 380.04 kB +0.27% 63.58 kB 63.75 kB
react-native/implementations/ReactFabric-prod.fb.js +0.25% 380.99 kB 381.94 kB +0.26% 66.06 kB 66.23 kB
facebook-www/ReactART-prod.classic.js +0.24% 388.94 kB 389.88 kB +0.25% 65.20 kB 65.37 kB
oss-stable-semver/react-reconciler/cjs/react-reconciler.production.js +0.23% 446.51 kB 447.54 kB +0.27% 71.40 kB 71.59 kB
oss-stable/react-reconciler/cjs/react-reconciler.production.js +0.23% 446.54 kB 447.57 kB +0.27% 71.42 kB 71.62 kB
oss-experimental/react-reconciler/cjs/react-reconciler.production.js +0.21% 484.58 kB 485.61 kB +0.31% 77.03 kB 77.27 kB
react-native/implementations/ReactFabric-profiling.js +0.21% 450.38 kB 451.33 kB +0.24% 75.89 kB 76.08 kB
react-native/implementations/ReactFabric-profiling.fb.js +0.21% 455.61 kB 456.55 kB +0.22% 76.10 kB 76.26 kB
facebook-www/ReactReconciler-prod.modern.js +0.21% 502.81 kB 503.84 kB +0.28% 79.92 kB 80.14 kB
facebook-www/ReactReconciler-prod.classic.js +0.20% 512.97 kB 514.01 kB +0.27% 81.51 kB 81.73 kB
oss-stable-semver/react-reconciler/cjs/react-reconciler.profiling.js +0.20% 517.19 kB 518.22 kB +0.25% 80.89 kB 81.09 kB
oss-stable/react-reconciler/cjs/react-reconciler.profiling.js +0.20% 517.21 kB 518.25 kB +0.25% 80.91 kB 81.12 kB
test_utils/ReactAllWarnings.js = 66.61 kB 66.43 kB = 16.79 kB 16.72 kB

Generated by 🚫 dangerJS against 096b356

Copy link
Contributor

@jackpope jackpope left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have some usage with unstable_legacy-backwards + calling reverse() on the children. Will be nice to clean that up after this lands

@sebmarkbage sebmarkbage merged commit 488d88b into facebook:main Oct 31, 2025
240 checks passed
github-actions bot pushed a commit that referenced this pull request Oct 31, 2025
…rder (#35021)

Stacked on #35018.

This mounts the children of SuspenseList backwards. Meaning the first
child is mounted last in the DOM (and effect list). It's like calling
reverse() on the children.

This is meant to set us up for allowing AsyncIterable children where the
unknown number of children streams in at the end (which is the beginning
in a backwards SuspenseList). For consistency we do that with other
children too.

`unstable_legacy-backwards` still exists for the old mode but is meant
to be deprecated.

<img width="100" alt="image"
src="https://github.com/user-attachments/assets/5c2a95d7-34c4-4a4e-b602-3646a834d779"
/>

DiffTrain build for [488d88b](488d88b)
github-actions bot pushed a commit that referenced this pull request Oct 31, 2025
…rder (#35021)

Stacked on #35018.

This mounts the children of SuspenseList backwards. Meaning the first
child is mounted last in the DOM (and effect list). It's like calling
reverse() on the children.

This is meant to set us up for allowing AsyncIterable children where the
unknown number of children streams in at the end (which is the beginning
in a backwards SuspenseList). For consistency we do that with other
children too.

`unstable_legacy-backwards` still exists for the old mode but is meant
to be deprecated.

<img width="100" alt="image"
src="https://github.com/user-attachments/assets/5c2a95d7-34c4-4a4e-b602-3646a834d779"
/>

DiffTrain build for [488d88b](488d88b)
github-actions bot pushed a commit to code/lib-react that referenced this pull request Nov 2, 2025
…rder (facebook#35021)

Stacked on facebook#35018.

This mounts the children of SuspenseList backwards. Meaning the first
child is mounted last in the DOM (and effect list). It's like calling
reverse() on the children.

This is meant to set us up for allowing AsyncIterable children where the
unknown number of children streams in at the end (which is the beginning
in a backwards SuspenseList). For consistency we do that with other
children too.

`unstable_legacy-backwards` still exists for the old mode but is meant
to be deprecated.

<img width="100" alt="image"
src="https://github.com/user-attachments/assets/5c2a95d7-34c4-4a4e-b602-3646a834d779"
/>

DiffTrain build for [488d88b](facebook@488d88b)
github-actions bot pushed a commit to code/lib-react that referenced this pull request Nov 2, 2025
…rder (facebook#35021)

Stacked on facebook#35018.

This mounts the children of SuspenseList backwards. Meaning the first
child is mounted last in the DOM (and effect list). It's like calling
reverse() on the children.

This is meant to set us up for allowing AsyncIterable children where the
unknown number of children streams in at the end (which is the beginning
in a backwards SuspenseList). For consistency we do that with other
children too.

`unstable_legacy-backwards` still exists for the old mode but is meant
to be deprecated.

<img width="100" alt="image"
src="https://github.com/user-attachments/assets/5c2a95d7-34c4-4a4e-b602-3646a834d779"
/>

DiffTrain build for [488d88b](facebook@488d88b)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed React Core Team Opened by a member of the React Core Team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants