Skip to content

Remove unused arguments from ReactElement#34174

Merged
kassens merged 1 commit into
react:mainfrom
kassens:pr34174
Aug 12, 2025
Merged

Remove unused arguments from ReactElement#34174
kassens merged 1 commit into
react:mainfrom
kassens:pr34174

Conversation

@kassens

@kassens kassens commented Aug 11, 2025

Copy link
Copy Markdown
Contributor

After various feature flag removals recently, these arguments became unused and can be deleted.

@meta-cla meta-cla Bot added the CLA Signed label Aug 11, 2025
@github-actions github-actions Bot added the React Core Team Opened by a member of the React Core Team label Aug 11, 2025
@react-sizebot

Copy link
Copy Markdown

Comparing: ac7820a...7b06483

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 +0.11% 1.83 kB 1.83 kB
oss-stable/react-dom/cjs/react-dom-client.production.js = 530.16 kB 530.16 kB = 93.39 kB 93.39 kB
oss-experimental/react-dom/cjs/react-dom.production.js = 6.69 kB 6.69 kB +0.11% 1.83 kB 1.83 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js = 654.53 kB 654.53 kB = 115.11 kB 115.11 kB
facebook-www/ReactDOM-prod.classic.js = 674.30 kB 674.30 kB = 118.29 kB 118.29 kB
facebook-www/ReactDOM-prod.modern.js = 664.73 kB 664.73 kB = 116.64 kB 116.64 kB
oss-experimental/react/cjs/react-jsx-dev-runtime.react-server.development.js = 13.18 kB 12.90 kB = 3.47 kB 3.44 kB
oss-experimental/react/cjs/react-jsx-runtime.react-server.development.js = 13.18 kB 12.89 kB = 3.46 kB 3.44 kB
oss-stable-semver/react/cjs/react-jsx-dev-runtime.react-server.development.js = 13.03 kB 12.75 kB = 3.43 kB 3.40 kB
oss-stable/react/cjs/react-jsx-dev-runtime.react-server.development.js = 13.03 kB 12.75 kB = 3.43 kB 3.40 kB
oss-stable-semver/react/cjs/react-jsx-runtime.react-server.development.js = 13.03 kB 12.74 kB = 3.42 kB 3.40 kB
oss-stable/react/cjs/react-jsx-runtime.react-server.development.js = 13.03 kB 12.74 kB = 3.42 kB 3.40 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name +/- Base Current +/- gzip Base gzip Current gzip
oss-experimental/react/cjs/react.development.js = 50.26 kB 50.11 kB = 11.33 kB 11.31 kB
oss-stable/react/cjs/react.development.js = 46.89 kB 46.74 kB = 10.66 kB 10.64 kB
oss-stable-semver/react/cjs/react.development.js = 46.87 kB 46.72 kB = 10.63 kB 10.62 kB
oss-experimental/react/cjs/react.react-server.development.js = 38.00 kB 37.85 kB = 8.96 kB 8.94 kB
oss-experimental/react/cjs/react.production.js = 19.42 kB 19.33 kB = 4.94 kB 4.92 kB
oss-experimental/react/cjs/react.react-server.production.js = 19.03 kB 18.94 kB = 5.02 kB 4.99 kB
oss-stable/react/cjs/react.react-server.development.js = 30.22 kB 30.07 kB = 7.25 kB 7.23 kB
oss-stable-semver/react/cjs/react.react-server.development.js = 30.19 kB 30.04 kB = 7.22 kB 7.20 kB
facebook-www/React-profiling.classic.js = 20.47 kB 20.37 kB = 5.27 kB 5.25 kB
facebook-www/React-profiling.modern.js = 20.47 kB 20.37 kB = 5.27 kB 5.25 kB
oss-stable/react/cjs/react.production.js = 17.07 kB 16.99 kB = 4.43 kB 4.41 kB
oss-stable-semver/react/cjs/react.production.js = 17.05 kB 16.96 kB = 4.41 kB 4.38 kB
facebook-www/React-prod.classic.js = 20.04 kB 19.94 kB = 5.18 kB 5.17 kB
facebook-www/React-prod.modern.js = 20.04 kB 19.93 kB = 5.18 kB 5.17 kB
facebook-react-native/react/cjs/React-profiling.js = 19.58 kB 19.48 kB = 5.04 kB 5.02 kB
facebook-react-native/react/cjs/React-prod.js = 19.15 kB 19.05 kB = 4.96 kB 4.94 kB
oss-stable/react/cjs/react.react-server.production.js = 13.47 kB 13.38 kB = 3.72 kB 3.70 kB
oss-stable-semver/react/cjs/react.react-server.production.js = 13.45 kB 13.36 kB = 3.70 kB 3.67 kB
facebook-www/React-dev.classic.js = 52.74 kB 52.36 kB = 11.77 kB 11.72 kB
facebook-www/React-dev.modern.js = 52.74 kB 52.35 kB = 11.77 kB 11.71 kB
facebook-react-native/react/cjs/React-dev.js = 51.78 kB 51.40 kB = 11.52 kB 11.48 kB
facebook-www/JSXDEVRuntime-dev.classic.js = 12.51 kB 12.31 kB = 3.43 kB 3.42 kB
facebook-www/JSXDEVRuntime-dev.modern.js = 12.51 kB 12.31 kB = 3.43 kB 3.42 kB
facebook-react-native/react/cjs/JSXRuntime-dev.js = 12.41 kB 12.21 kB = 3.34 kB 3.32 kB
oss-experimental/react/cjs/react-jsx-runtime.development.js = 12.33 kB 12.13 kB = 3.33 kB 3.31 kB
oss-stable-semver/react/cjs/react-jsx-runtime.development.js = 12.19 kB 11.99 kB = 3.29 kB 3.27 kB
oss-stable/react/cjs/react-jsx-runtime.development.js = 12.19 kB 11.99 kB = 3.29 kB 3.27 kB
facebook-react-native/react/cjs/JSXDEVRuntime-dev.js = 12.01 kB 11.81 kB = 3.32 kB 3.31 kB
oss-experimental/react/cjs/react-jsx-dev-runtime.development.js = 11.94 kB 11.74 kB = 3.31 kB 3.30 kB
oss-stable-semver/react/cjs/react-jsx-dev-runtime.development.js = 11.79 kB 11.59 kB = 3.27 kB 3.26 kB
oss-stable/react/cjs/react-jsx-dev-runtime.development.js = 11.79 kB 11.59 kB = 3.27 kB 3.26 kB
oss-experimental/react/cjs/react-jsx-dev-runtime.react-server.development.js = 13.18 kB 12.90 kB = 3.47 kB 3.44 kB
oss-experimental/react/cjs/react-jsx-runtime.react-server.development.js = 13.18 kB 12.89 kB = 3.46 kB 3.44 kB
oss-stable-semver/react/cjs/react-jsx-dev-runtime.react-server.development.js = 13.03 kB 12.75 kB = 3.43 kB 3.40 kB
oss-stable/react/cjs/react-jsx-dev-runtime.react-server.development.js = 13.03 kB 12.75 kB = 3.43 kB 3.40 kB
oss-stable-semver/react/cjs/react-jsx-runtime.react-server.development.js = 13.03 kB 12.74 kB = 3.42 kB 3.40 kB
oss-stable/react/cjs/react-jsx-runtime.react-server.development.js = 13.03 kB 12.74 kB = 3.42 kB 3.40 kB

Generated by 🚫 dangerJS against 7b06483

debugStack,
debugTask,
) {
function ReactElement(type, key, owner, props, debugStack, debugTask) {

@sebmarkbage sebmarkbage Aug 11, 2025

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Since owner is only tracked in DEV, it probably makes sense to put that after props. We do that elsewhere with dev only arguments since Closure Compiler seems better at removing them when they're always the same given some constant.

After various feature flag removals recently, these arguments became unused and can be deleted.
@kassens
kassens merged commit 1dc3bde into react:main Aug 12, 2025
244 of 245 checks passed
@kassens
kassens deleted the pr34174 branch August 12, 2025 15:09
hoxyq pushed a commit that referenced this pull request Jul 6, 2026
)

`validateChildKeys` in `packages/react/src/jsx/ReactJSXElement.js` had a
signature
of `validateChildKeys(node, parentType)`, but #34174 ("Remove unused
arguments from
ReactElement") dropped the second argument, changing the signature to
`validateChildKeys(node)` and updating every call site to pass a single
argument.

That change removed several now-unused `@param` lines from the same
file, but left
one behind on `validateChildKeys`:

```js
/**
 * ...
 * @internal
 * @param {ReactNode} node Statically passed child of any type.
 * @param {*} parentType node's parent's type.   // <- no such parameter anymore
 */
function validateChildKeys(node) {
```

`parentType` no longer appears anywhere in the function signature or
body, so this
`@param` line is stale and misleading to anyone reading the doc comment.
This PR
deletes that single line. The remaining `@param {ReactNode} node`
already fully and
correctly documents the sole parameter. No code or behavior change.

## How did you test this change?

This is a documentation-only change (a JSDoc comment on an `@internal`
helper), so
there is no runtime behavior to test. I verified it as follows:

- Confirmed `parentType` no longer appears anywhere in
`packages/react/src/jsx/ReactJSXElement.js` (`grep -n parentType`
returns no
  matches after the change).
- Confirmed the signature `function validateChildKeys(node)` and all
call sites are
  unchanged by this diff.
- `yarn prettier` (via `scripts/prettier/index.js check-changed`) -
clean.
- `yarn linc` (ESLint on changed files) - passed.
- `yarn flow dom-node` - No errors.

---

## Diff (for reference)

```diff
diff --git a/packages/react/src/jsx/ReactJSXElement.js b/packages/react/src/jsx/ReactJSXElement.js
@@ -860,7 +860,6 @@ export function cloneElement(element, config, children) {
   *
   * @internal
   * @param {ReactNode} node Statically passed child of any type.
- * @param {*} parentType node's parent's type.
   */
 function validateChildKeys(node) {
```
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