Skip to content

[Flight] Create a fast path parseStackTrace which skips generating a string stack #33735

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 9, 2025

Conversation

sebmarkbage
Copy link
Collaborator

When we know that the object that we pass in is immediately parsed, then we know it couldn't have been reified into a unstructured stack yet. In this path we assume that we'll trigger Error.prepareStackTrace.

Since we know that nobody else will read the stack after us, we can skip generating a string stack and just return empty. We can also skip caching.

@sebmarkbage sebmarkbage requested a review from eps1lon July 8, 2025 17:35
@github-actions github-actions bot added the React Core Team Opened by a member of the React Core Team label Jul 8, 2025
@sebmarkbage sebmarkbage force-pushed the optimizeprivatestackparse branch 2 times, most recently from 67e16ae to f1eacbb Compare July 8, 2025 17:42
@sebmarkbage sebmarkbage force-pushed the optimizeprivatestackparse branch from f1eacbb to 74b719a Compare July 8, 2025 17:42
@react-sizebot
Copy link

Comparing: a7a1165...74b719a

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 = 530.70 kB 530.70 kB = 93.70 kB 93.70 kB
oss-experimental/react-dom/cjs/react-dom.production.js = 6.69 kB 6.69 kB +0.05% 1.83 kB 1.83 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js = 655.25 kB 655.25 kB = 115.40 kB 115.40 kB
facebook-www/ReactDOM-prod.classic.js = 675.13 kB 675.13 kB = 118.75 kB 118.75 kB
facebook-www/ReactDOM-prod.modern.js = 665.56 kB 665.56 kB = 117.12 kB 117.12 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-server/cjs/react-server-flight.development.js +0.75% 126.37 kB 127.32 kB +0.40% 23.01 kB 23.10 kB
oss-stable/react-server/cjs/react-server-flight.development.js +0.75% 126.37 kB 127.32 kB +0.40% 23.01 kB 23.10 kB
oss-experimental/react-server/cjs/react-server-flight.development.js +0.70% 134.97 kB 135.91 kB +0.31% 24.55 kB 24.62 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-server.browser.development.js +0.57% 166.35 kB 167.30 kB +0.28% 30.58 kB 30.67 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-server.browser.development.js +0.57% 166.35 kB 167.30 kB +0.28% 30.58 kB 30.67 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-server.edge.development.js +0.56% 170.08 kB 171.03 kB +0.22% 31.13 kB 31.20 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-server.edge.development.js +0.56% 170.08 kB 171.03 kB +0.22% 31.13 kB 31.20 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.development.js +0.55% 174.12 kB 175.08 kB +0.29% 31.90 kB 31.99 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.development.js +0.55% 174.12 kB 175.08 kB +0.29% 31.90 kB 31.99 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js +0.55% 174.66 kB 175.62 kB +0.29% 32.03 kB 32.13 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js +0.55% 174.66 kB 175.62 kB +0.29% 32.03 kB 32.13 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-server.browser.development.js +0.55% 174.96 kB 175.91 kB +0.29% 32.10 kB 32.19 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.development.js +0.54% 177.89 kB 178.84 kB +0.22% 32.47 kB 32.54 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.development.js +0.54% 177.89 kB 178.84 kB +0.22% 32.47 kB 32.54 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +0.54% 177.96 kB 178.91 kB +0.22% 32.47 kB 32.55 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +0.54% 177.96 kB 178.91 kB +0.22% 32.47 kB 32.55 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-server.edge.development.js +0.53% 179.04 kB 179.99 kB +0.21% 32.66 kB 32.73 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.development.js +0.52% 182.73 kB 183.69 kB +0.26% 33.42 kB 33.51 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js +0.52% 183.27 kB 184.23 kB +0.27% 33.55 kB 33.64 kB
oss-stable-semver/react-server-dom-esm/cjs/react-server-dom-esm-server.node.development.js +0.52% 171.73 kB 172.62 kB +0.21% 31.67 kB 31.74 kB
oss-stable/react-server-dom-esm/cjs/react-server-dom-esm-server.node.development.js +0.52% 171.73 kB 172.62 kB +0.21% 31.67 kB 31.74 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.development.js +0.51% 186.85 kB 187.80 kB +0.21% 33.97 kB 34.04 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +0.51% 186.92 kB 187.87 kB +0.22% 33.98 kB 34.05 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-server.node.development.js +0.50% 177.69 kB 178.58 kB +0.19% 32.28 kB 32.34 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-server.node.development.js +0.50% 177.69 kB 178.58 kB +0.19% 32.28 kB 32.34 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js +0.48% 184.47 kB 185.35 kB +0.19% 33.32 kB 33.38 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js +0.48% 184.47 kB 185.35 kB +0.19% 33.32 kB 33.38 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.development.js +0.48% 185.62 kB 186.50 kB +0.18% 33.59 kB 33.65 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.development.js +0.48% 185.62 kB 186.50 kB +0.18% 33.59 kB 33.65 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js +0.48% 185.67 kB 186.56 kB +0.19% 33.60 kB 33.67 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js +0.48% 185.67 kB 186.56 kB +0.19% 33.60 kB 33.67 kB
oss-experimental/react-server-dom-esm/cjs/react-server-dom-esm-server.node.development.js +0.31% 196.71 kB 197.31 kB +0.17% 36.28 kB 36.34 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-server.node.development.js +0.30% 202.67 kB 203.27 kB +0.15% 36.96 kB 37.02 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js +0.29% 209.44 kB 210.04 kB +0.13% 38.12 kB 38.16 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.development.js +0.29% 210.59 kB 211.19 kB +0.13% 38.41 kB 38.45 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js +0.29% 210.65 kB 211.25 kB +0.12% 38.42 kB 38.47 kB

Generated by 🚫 dangerJS against 74b719a

@sebmarkbage sebmarkbage merged commit 3a43e72 into facebook:main Jul 9, 2025
468 of 469 checks passed
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.

4 participants