Skip to content

Conversation

@sebmarkbage
Copy link
Collaborator

This ensures that if the name is set manually after the declaration, then we get that name when we log the value. For example Node.js Response is declared as _Response and then later assigned a new name.

We should probably really serialize all static enumerable properties but "name" is non-enumerable so it's still a special case.

@sebmarkbage sebmarkbage requested a review from eps1lon August 2, 2025 22:59
@meta-cla meta-cla bot added the CLA Signed label Aug 2, 2025
@github-actions github-actions bot added the React Core Team Opened by a member of the React Core Team label Aug 2, 2025
@react-sizebot
Copy link

react-sizebot commented Aug 2, 2025

Comparing: 738aebd...01128dd

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.04 kB 530.04 kB = 93.63 kB 93.63 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 = 654.48 kB 654.48 kB = 115.34 kB 115.34 kB
facebook-www/ReactDOM-prod.classic.js = 674.42 kB 674.42 kB = 118.68 kB 118.68 kB
facebook-www/ReactDOM-prod.modern.js = 664.84 kB 664.84 kB = 117.02 kB 117.02 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-dom-esm/esm/react-server-dom-esm-client.browser.development.js +0.70% 171.21 kB 172.42 kB +0.92% 38.86 kB 39.22 kB
oss-stable/react-server-dom-esm/esm/react-server-dom-esm-client.browser.development.js +0.70% 171.24 kB 172.44 kB +0.92% 38.89 kB 39.25 kB
oss-experimental/react-server-dom-esm/esm/react-server-dom-esm-client.browser.development.js +0.58% 206.02 kB 207.23 kB +0.82% 45.43 kB 45.80 kB
oss-stable-semver/react-client/cjs/react-client-flight.development.js +0.35% 118.49 kB 118.91 kB +1.07% 21.35 kB 21.58 kB
oss-stable/react-client/cjs/react-client-flight.development.js +0.35% 118.52 kB 118.93 kB +1.07% 21.37 kB 21.60 kB
oss-stable-semver/react-server-dom-esm/cjs/react-server-dom-esm-client.browser.development.js +0.34% 122.55 kB 122.97 kB +0.98% 22.44 kB 22.66 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-client.edge.development.js +0.34% 122.59 kB 123.01 kB +0.99% 22.62 kB 22.85 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-client.edge.development.js +0.34% 122.59 kB 123.01 kB +0.99% 22.62 kB 22.85 kB
oss-stable/react-server-dom-esm/cjs/react-server-dom-esm-client.browser.development.js +0.34% 122.60 kB 123.02 kB +0.99% 22.47 kB 22.69 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-client.browser.development.js +0.34% 123.69 kB 124.11 kB +0.99% 22.45 kB 22.67 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-client.browser.development.js +0.34% 123.74 kB 124.16 kB +0.99% 22.48 kB 22.70 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js +0.33% 124.70 kB 125.12 kB +0.96% 22.84 kB 23.06 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js +0.33% 124.75 kB 125.17 kB +0.97% 22.86 kB 23.08 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js +0.33% 125.29 kB 125.71 kB +0.96% 22.98 kB 23.20 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js +0.33% 125.34 kB 125.76 kB +0.96% 23.01 kB 23.23 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js +0.33% 125.59 kB 126.01 kB +0.97% 23.09 kB 23.32 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js +0.33% 125.59 kB 126.01 kB +0.97% 23.09 kB 23.32 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +0.33% 125.72 kB 126.14 kB +0.97% 23.13 kB 23.36 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +0.33% 125.72 kB 126.14 kB +0.97% 23.13 kB 23.36 kB
oss-stable-semver/react-server-dom-esm/cjs/react-server-dom-esm-client.node.development.js +0.33% 125.84 kB 126.25 kB +0.97% 22.90 kB 23.13 kB
oss-stable/react-server-dom-esm/cjs/react-server-dom-esm-client.node.development.js +0.33% 125.84 kB 126.25 kB +0.97% 22.90 kB 23.13 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.development.js +0.33% 127.96 kB 128.37 kB +0.95% 23.36 kB 23.59 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.development.js +0.33% 127.96 kB 128.37 kB +0.95% 23.36 kB 23.59 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +0.32% 129.61 kB 130.03 kB +0.93% 23.65 kB 23.88 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +0.32% 129.61 kB 130.03 kB +0.93% 23.65 kB 23.88 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js +0.32% 130.82 kB 131.23 kB +0.92% 23.87 kB 24.09 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js +0.32% 130.82 kB 131.23 kB +0.92% 23.87 kB 24.09 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +0.32% 130.94 kB 131.36 kB +0.92% 23.91 kB 24.13 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +0.32% 130.94 kB 131.36 kB +0.92% 23.91 kB 24.13 kB
oss-experimental/react-client/cjs/react-client-flight.development.js +0.26% 160.01 kB 160.42 kB +0.85% 28.00 kB 28.24 kB
oss-experimental/react-server-dom-esm/cjs/react-server-dom-esm-client.browser.development.js +0.25% 164.10 kB 164.51 kB +0.81% 29.05 kB 29.29 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-client.edge.development.js +0.25% 164.11 kB 164.53 kB +0.78% 29.34 kB 29.57 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-client.browser.development.js +0.25% 165.24 kB 165.66 kB +0.78% 29.06 kB 29.29 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js +0.25% 166.25 kB 166.66 kB +0.79% 29.44 kB 29.68 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js +0.25% 166.84 kB 167.26 kB +0.78% 29.59 kB 29.82 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js +0.25% 167.12 kB 167.53 kB +0.76% 29.81 kB 30.04 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +0.25% 167.24 kB 167.66 kB +0.76% 29.84 kB 30.07 kB
oss-experimental/react-server-dom-esm/cjs/react-server-dom-esm-client.node.development.js +0.25% 167.32 kB 167.74 kB +0.78% 29.59 kB 29.82 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.development.js +0.25% 169.44 kB 169.86 kB +0.76% 30.02 kB 30.25 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +0.24% 171.10 kB 171.51 kB +0.76% 30.30 kB 30.53 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js +0.24% 172.30 kB 172.72 kB +0.76% 30.52 kB 30.75 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +0.24% 172.43 kB 172.84 kB +0.77% 30.55 kB 30.79 kB

Generated by 🚫 dangerJS against 01128dd

return (0, eval)('({' + JSON.stringify(name) + ':class{}})')[
name
];
let fn;
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

We should really take this fallback path whenever there’s a static initializer or static constructor function since that causes a side effect that might be unexpected even if it doesn’t error.

It could also be a security issue if you’re debugging a third party RSC service (which isn’t really supported yet but should minimize the surface).

It’s just tricky. Might have to bail on anything that contains lower case class and static at word boundaries.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Added this bailout

@sebmarkbage sebmarkbage force-pushed the flightfunctionprops branch from 6d4dd70 to 01128dd Compare August 7, 2025 14:46
@sebmarkbage
Copy link
Collaborator Author

Unfortunately it seems that Chrome doesn't always use this name as the display name of a class instance even when defined on the constructor.

@sebmarkbage sebmarkbage merged commit 3958d5d into facebook:main Aug 7, 2025
241 checks passed
github-actions bot pushed a commit to code/lib-react that referenced this pull request Aug 10, 2025
…cebook#34085)

This ensures that if the name is set manually after the declaration,
then we get that name when we log the value. For example Node.js
`Response` is declared as `_Response` and then later assigned a new
name.

We should probably really serialize all static enumerable properties but
"name" is non-enumerable so it's still a special case.

DiffTrain build for [3958d5d](facebook@3958d5d)
github-actions bot pushed a commit to code/lib-react that referenced this pull request Aug 10, 2025
…cebook#34085)

This ensures that if the name is set manually after the declaration,
then we get that name when we log the value. For example Node.js
`Response` is declared as `_Response` and then later assigned a new
name.

We should probably really serialize all static enumerable properties but
"name" is non-enumerable so it's still a special case.

DiffTrain build for [3958d5d](facebook@3958d5d)
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