Remove unused arguments from ReactElement (#34174)

After various feature flag removals recently, these arguments became
unused and can be deleted.
This commit is contained in:
Jan Kassens
2025-08-12 11:09:35 -04:00
committed by GitHub
parent de06211dbe
commit 1dc3bdead1

View File

@@ -156,30 +156,9 @@ function elementRefGetterWithDeprecationWarning() {
* will not work. Instead test $$typeof field against Symbol.for('react.transitional.element') to check
* if something is a React Element.
*
* @param {*} type
* @param {*} props
* @param {*} key
* @param {string|object} ref
* @param {*} owner
* @param {*} self A *temporary* helper to detect places where `this` is
* different from the `owner` when React.createElement is called, so that we
* can warn. We want to get rid of owner and replace string `ref`s with arrow
* functions, and as long as `this` and owner are the same, there will be no
* change in behavior.
* @param {*} source An annotation object (added by a transpiler or otherwise)
* indicating filename, line number, and/or other information.
* @internal
*/
function ReactElement(
type,
key,
self,
source,
owner,
props,
debugStack,
debugTask,
) {
function ReactElement(type, key, props, owner, debugStack, debugTask) {
// Ignore whatever was passed as the ref argument and treat `props.ref` as
// the source of truth. The only thing we use this for is `element.ref`,
// which will log a deprecation warning on access. In the next release, we
@@ -348,16 +327,7 @@ export function jsxProd(type, config, maybeKey) {
}
}
return ReactElement(
type,
key,
undefined,
undefined,
getOwner(),
props,
undefined,
undefined,
);
return ReactElement(type, key, props, getOwner(), undefined, undefined);
}
// While `jsxDEV` should never be called when running in production, we do
@@ -376,8 +346,6 @@ export function jsxProdSignatureRunningInDevWithDynamicChildren(
type,
config,
maybeKey,
source,
self,
) {
if (__DEV__) {
const isStaticChildren = false;
@@ -389,8 +357,6 @@ export function jsxProdSignatureRunningInDevWithDynamicChildren(
config,
maybeKey,
isStaticChildren,
source,
self,
__DEV__ &&
(trackActualOwner
? Error('react-stack-top-frame')
@@ -407,8 +373,6 @@ export function jsxProdSignatureRunningInDevWithStaticChildren(
type,
config,
maybeKey,
source,
self,
) {
if (__DEV__) {
const isStaticChildren = true;
@@ -420,8 +384,6 @@ export function jsxProdSignatureRunningInDevWithStaticChildren(
config,
maybeKey,
isStaticChildren,
source,
self,
__DEV__ &&
(trackActualOwner
? Error('react-stack-top-frame')
@@ -442,7 +404,7 @@ const didWarnAboutKeySpread = {};
* @param {object} props
* @param {string} key
*/
export function jsxDEV(type, config, maybeKey, isStaticChildren, source, self) {
export function jsxDEV(type, config, maybeKey, isStaticChildren) {
const trackActualOwner =
__DEV__ &&
ReactSharedInternals.recentlyCreatedOwnerStacks++ < ownerStackLimit;
@@ -451,8 +413,6 @@ export function jsxDEV(type, config, maybeKey, isStaticChildren, source, self) {
config,
maybeKey,
isStaticChildren,
source,
self,
__DEV__ &&
(trackActualOwner
? Error('react-stack-top-frame')
@@ -469,8 +429,6 @@ function jsxDEVImpl(
config,
maybeKey,
isStaticChildren,
source,
self,
debugStack,
debugTask,
) {
@@ -491,7 +449,7 @@ function jsxDEVImpl(
if (isStaticChildren) {
if (isArray(children)) {
for (let i = 0; i < children.length; i++) {
validateChildKeys(children[i], type);
validateChildKeys(children[i]);
}
if (Object.freeze) {
@@ -505,7 +463,7 @@ function jsxDEVImpl(
);
}
} else {
validateChildKeys(children, type);
validateChildKeys(children);
}
}
@@ -591,16 +549,7 @@ function jsxDEVImpl(
defineKeyPropWarningGetter(props, displayName);
}
return ReactElement(
type,
key,
self,
source,
getOwner(),
props,
debugStack,
debugTask,
);
return ReactElement(type, key, props, getOwner(), debugStack, debugTask);
}
}
@@ -620,7 +569,7 @@ export function createElement(type, config, children) {
// prod. (Rendering will throw with a helpful message and as soon as the
// type is fixed, the key warnings will appear.)
for (let i = 2; i < arguments.length; i++) {
validateChildKeys(arguments[i], type);
validateChildKeys(arguments[i]);
}
// Unlike the jsx() runtime, createElement() doesn't warn about key spread.
@@ -721,10 +670,8 @@ export function createElement(type, config, children) {
return ReactElement(
type,
key,
undefined,
undefined,
getOwner(),
props,
getOwner(),
__DEV__ &&
(trackActualOwner
? Error('react-stack-top-frame')
@@ -740,10 +687,8 @@ export function cloneAndReplaceKey(oldElement, newKey) {
const clonedElement = ReactElement(
oldElement.type,
newKey,
undefined,
undefined,
!__DEV__ ? undefined : oldElement._owner,
oldElement.props,
!__DEV__ ? undefined : oldElement._owner,
__DEV__ && oldElement._debugStack,
__DEV__ && oldElement._debugTask,
);
@@ -829,16 +774,14 @@ export function cloneElement(element, config, children) {
const clonedElement = ReactElement(
element.type,
key,
undefined,
undefined,
owner,
props,
owner,
__DEV__ && element._debugStack,
__DEV__ && element._debugTask,
);
for (let i = 2; i < arguments.length; i++) {
validateChildKeys(arguments[i], clonedElement.type);
validateChildKeys(arguments[i]);
}
return clonedElement;
@@ -853,10 +796,9 @@ export function cloneElement(element, config, children) {
* @param {ReactNode} node Statically passed child of any type.
* @param {*} parentType node's parent's type.
*/
function validateChildKeys(node, parentType) {
function validateChildKeys(node) {
if (__DEV__) {
// With owner stacks is, no warnings happens. All we do is
// mark elements as being in a valid static child position so they
// Mark elements as being in a valid static child position so they
// don't need keys.
if (isValidElement(node)) {
if (node._store) {