mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
Introduce a faster version of the addProperties function (#28969)
## Summary
This PR introduces a faster version of the `addProperties` function.
This new function is basically the `diffProperties` with `prevProps` set
to `null`, propagated constants, and all the unreachable code paths
collapsed.
## How did you test this change?
I've tested this change with [the benchmark
app](https://github.com/react-native-community/RNNewArchitectureApp/tree/new-architecture-benchmarks)
and got ~4.4% improvement in the view creation time.
DiffTrain build for [73bcdfbae5](https://github.com/facebook/react/commit/73bcdfbae57545aa8f88ecdf67426275610b5573)
This commit is contained in:
@@ -1 +1 @@
|
||||
c7b1ae5a9ed58abece101d09c47ddd1e0b181fe2
|
||||
73bcdfbae57545aa8f88ecdf67426275610b5573
|
||||
|
||||
@@ -63,7 +63,7 @@ function _assertThisInitialized(self) {
|
||||
return self;
|
||||
}
|
||||
|
||||
var ReactVersion = '19.0.0-www-classic-f53782f7';
|
||||
var ReactVersion = '19.0.0-www-classic-0ce7839f';
|
||||
|
||||
var LegacyRoot = 0;
|
||||
var ConcurrentRoot = 1;
|
||||
@@ -160,7 +160,8 @@ var enableDebugTracing = dynamicFeatureFlags.enableDebugTracing,
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext,
|
||||
enableRefAsProp = dynamicFeatureFlags.enableRefAsProp,
|
||||
disableDefaultPropsExceptForClasses = dynamicFeatureFlags.disableDefaultPropsExceptForClasses,
|
||||
enableNoCloningMemoCache = dynamicFeatureFlags.enableNoCloningMemoCache; // On WWW, false is used for a new modern build.
|
||||
enableNoCloningMemoCache = dynamicFeatureFlags.enableNoCloningMemoCache;
|
||||
// On WWW, false is used for a new modern build.
|
||||
var enableProfilerTimer = true;
|
||||
var enableProfilerCommitHooks = true;
|
||||
var enableProfilerNestedUpdatePhase = true;
|
||||
|
||||
@@ -63,7 +63,7 @@ function _assertThisInitialized(self) {
|
||||
return self;
|
||||
}
|
||||
|
||||
var ReactVersion = '19.0.0-www-modern-b38d5faf';
|
||||
var ReactVersion = '19.0.0-www-modern-3acd2c75';
|
||||
|
||||
var LegacyRoot = 0;
|
||||
var ConcurrentRoot = 1;
|
||||
@@ -160,7 +160,8 @@ var enableDebugTracing = dynamicFeatureFlags.enableDebugTracing,
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext,
|
||||
enableRefAsProp = dynamicFeatureFlags.enableRefAsProp,
|
||||
disableDefaultPropsExceptForClasses = dynamicFeatureFlags.disableDefaultPropsExceptForClasses,
|
||||
enableNoCloningMemoCache = dynamicFeatureFlags.enableNoCloningMemoCache; // On WWW, true is used for a new modern build.
|
||||
enableNoCloningMemoCache = dynamicFeatureFlags.enableNoCloningMemoCache;
|
||||
// On WWW, true is used for a new modern build.
|
||||
var enableProfilerTimer = true;
|
||||
var enableProfilerCommitHooks = true;
|
||||
var enableProfilerNestedUpdatePhase = true;
|
||||
|
||||
@@ -125,7 +125,8 @@ var enableTrustedTypesIntegration = dynamicFeatureFlags.enableTrustedTypesIntegr
|
||||
enableRefAsProp = dynamicFeatureFlags.enableRefAsProp,
|
||||
favorSafetyOverHydrationPerf = dynamicFeatureFlags.favorSafetyOverHydrationPerf,
|
||||
disableDefaultPropsExceptForClasses = dynamicFeatureFlags.disableDefaultPropsExceptForClasses,
|
||||
enableNoCloningMemoCache = dynamicFeatureFlags.enableNoCloningMemoCache; // On WWW, false is used for a new modern build.
|
||||
enableNoCloningMemoCache = dynamicFeatureFlags.enableNoCloningMemoCache;
|
||||
// On WWW, false is used for a new modern build.
|
||||
var enableProfilerTimer = true;
|
||||
var enableProfilerCommitHooks = true;
|
||||
var enableProfilerNestedUpdatePhase = true;
|
||||
@@ -30840,7 +30841,7 @@ identifierPrefix, onUncaughtError, onCaughtError, onRecoverableError, transition
|
||||
return root;
|
||||
}
|
||||
|
||||
var ReactVersion = '19.0.0-www-classic-512ac9b4';
|
||||
var ReactVersion = '19.0.0-www-classic-c1bcb6b8';
|
||||
|
||||
function createPortal$1(children, containerInfo, // TODO: figure out the API for cross-renderer implementation.
|
||||
implementation) {
|
||||
|
||||
@@ -122,7 +122,8 @@ var enableTrustedTypesIntegration = dynamicFeatureFlags.enableTrustedTypesIntegr
|
||||
enableRefAsProp = dynamicFeatureFlags.enableRefAsProp,
|
||||
favorSafetyOverHydrationPerf = dynamicFeatureFlags.favorSafetyOverHydrationPerf,
|
||||
disableDefaultPropsExceptForClasses = dynamicFeatureFlags.disableDefaultPropsExceptForClasses,
|
||||
enableNoCloningMemoCache = dynamicFeatureFlags.enableNoCloningMemoCache; // On WWW, true is used for a new modern build.
|
||||
enableNoCloningMemoCache = dynamicFeatureFlags.enableNoCloningMemoCache;
|
||||
// On WWW, true is used for a new modern build.
|
||||
var enableProfilerTimer = true;
|
||||
var enableProfilerCommitHooks = true;
|
||||
var enableProfilerNestedUpdatePhase = true;
|
||||
@@ -30015,7 +30016,7 @@ identifierPrefix, onUncaughtError, onCaughtError, onRecoverableError, transition
|
||||
return root;
|
||||
}
|
||||
|
||||
var ReactVersion = '19.0.0-www-modern-5ee2f667';
|
||||
var ReactVersion = '19.0.0-www-modern-2f73daed';
|
||||
|
||||
function createPortal$1(children, containerInfo, // TODO: figure out the API for cross-renderer implementation.
|
||||
implementation) {
|
||||
|
||||
@@ -116,7 +116,8 @@ var enableTrustedTypesIntegration = dynamicFeatureFlags.enableTrustedTypesIntegr
|
||||
enableRefAsProp = dynamicFeatureFlags.enableRefAsProp,
|
||||
favorSafetyOverHydrationPerf = dynamicFeatureFlags.favorSafetyOverHydrationPerf,
|
||||
disableDefaultPropsExceptForClasses = dynamicFeatureFlags.disableDefaultPropsExceptForClasses,
|
||||
enableNoCloningMemoCache = dynamicFeatureFlags.enableNoCloningMemoCache; // On WWW, false is used for a new modern build.
|
||||
enableNoCloningMemoCache = dynamicFeatureFlags.enableNoCloningMemoCache;
|
||||
// On WWW, false is used for a new modern build.
|
||||
var enableProfilerTimer = true;
|
||||
var enableProfilerCommitHooks = true;
|
||||
var enableProfilerNestedUpdatePhase = true;
|
||||
@@ -31403,7 +31404,7 @@ identifierPrefix, onUncaughtError, onCaughtError, onRecoverableError, transition
|
||||
return root;
|
||||
}
|
||||
|
||||
var ReactVersion = '19.0.0-www-classic-af3b0dd2';
|
||||
var ReactVersion = '19.0.0-www-classic-547fcced';
|
||||
|
||||
function createPortal$1(children, containerInfo, // TODO: figure out the API for cross-renderer implementation.
|
||||
implementation) {
|
||||
|
||||
@@ -113,7 +113,8 @@ var enableTrustedTypesIntegration = dynamicFeatureFlags.enableTrustedTypesIntegr
|
||||
enableRefAsProp = dynamicFeatureFlags.enableRefAsProp,
|
||||
favorSafetyOverHydrationPerf = dynamicFeatureFlags.favorSafetyOverHydrationPerf,
|
||||
disableDefaultPropsExceptForClasses = dynamicFeatureFlags.disableDefaultPropsExceptForClasses,
|
||||
enableNoCloningMemoCache = dynamicFeatureFlags.enableNoCloningMemoCache; // On WWW, true is used for a new modern build.
|
||||
enableNoCloningMemoCache = dynamicFeatureFlags.enableNoCloningMemoCache;
|
||||
// On WWW, true is used for a new modern build.
|
||||
var enableProfilerTimer = true;
|
||||
var enableProfilerCommitHooks = true;
|
||||
var enableProfilerNestedUpdatePhase = true;
|
||||
@@ -30578,7 +30579,7 @@ identifierPrefix, onUncaughtError, onCaughtError, onRecoverableError, transition
|
||||
return root;
|
||||
}
|
||||
|
||||
var ReactVersion = '19.0.0-www-modern-1407495b';
|
||||
var ReactVersion = '19.0.0-www-modern-826b7a52';
|
||||
|
||||
function createPortal$1(children, containerInfo, // TODO: figure out the API for cross-renderer implementation.
|
||||
implementation) {
|
||||
|
||||
@@ -116,7 +116,8 @@ var enableDebugTracing = dynamicFeatureFlags.enableDebugTracing,
|
||||
enableRefAsProp = dynamicFeatureFlags.enableRefAsProp,
|
||||
favorSafetyOverHydrationPerf = dynamicFeatureFlags.favorSafetyOverHydrationPerf,
|
||||
disableDefaultPropsExceptForClasses = dynamicFeatureFlags.disableDefaultPropsExceptForClasses,
|
||||
enableNoCloningMemoCache = dynamicFeatureFlags.enableNoCloningMemoCache; // On WWW, false is used for a new modern build.
|
||||
enableNoCloningMemoCache = dynamicFeatureFlags.enableNoCloningMemoCache;
|
||||
// On WWW, false is used for a new modern build.
|
||||
var enableProfilerTimer = true;
|
||||
var enableProfilerCommitHooks = true;
|
||||
var enableProfilerNestedUpdatePhase = true;
|
||||
@@ -28659,7 +28660,7 @@ identifierPrefix, onUncaughtError, onCaughtError, onRecoverableError, transition
|
||||
return root;
|
||||
}
|
||||
|
||||
var ReactVersion = '19.0.0-www-classic-0492085a';
|
||||
var ReactVersion = '19.0.0-www-classic-6ec34ee9';
|
||||
|
||||
/*
|
||||
* The `'' + value` pattern (used in perf-sensitive code) throws for Symbol
|
||||
|
||||
@@ -116,7 +116,8 @@ var enableDebugTracing = dynamicFeatureFlags.enableDebugTracing,
|
||||
enableRefAsProp = dynamicFeatureFlags.enableRefAsProp,
|
||||
favorSafetyOverHydrationPerf = dynamicFeatureFlags.favorSafetyOverHydrationPerf,
|
||||
disableDefaultPropsExceptForClasses = dynamicFeatureFlags.disableDefaultPropsExceptForClasses,
|
||||
enableNoCloningMemoCache = dynamicFeatureFlags.enableNoCloningMemoCache; // On WWW, true is used for a new modern build.
|
||||
enableNoCloningMemoCache = dynamicFeatureFlags.enableNoCloningMemoCache;
|
||||
// On WWW, true is used for a new modern build.
|
||||
var enableProfilerTimer = true;
|
||||
var enableProfilerCommitHooks = true;
|
||||
var enableProfilerNestedUpdatePhase = true;
|
||||
@@ -27925,7 +27926,7 @@ identifierPrefix, onUncaughtError, onCaughtError, onRecoverableError, transition
|
||||
return root;
|
||||
}
|
||||
|
||||
var ReactVersion = '19.0.0-www-modern-30613c5e';
|
||||
var ReactVersion = '19.0.0-www-modern-e8748e87';
|
||||
|
||||
/*
|
||||
* The `'' + value` pattern (used in perf-sensitive code) throws for Symbol
|
||||
|
||||
Reference in New Issue
Block a user