From 2a13d200850e4f161a29b252a0ccedc158e53937 Mon Sep 17 00:00:00 2001 From: Tim Yung Date: Tue, 27 May 2025 14:17:30 -0700 Subject: [PATCH] RN: Enable `avoidStateUpdateInAnimatedPropsMemo` by Default (#51635) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/51635 Enables a feature flag by default, that reduces the memory usage of`Animated`. For more details, see: https://github.com/facebook/react-native/pull/49184 Changelog: [General][Changed] - Enabled a feature flag that optimizes `Animated` to reduce memory usage. Reviewed By: jehartzog Differential Revision: D75466724 fbshipit-source-id: 3fdb57f394448bbd0530dcb558a58958010d0edd --- .../scripts/featureflags/ReactNativeFeatureFlags.config.js | 5 ++--- .../src/private/featureflags/ReactNativeFeatureFlags.js | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js b/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js index 9e7249b0b9e..356e7ecfaf7 100644 --- a/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js +++ b/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js @@ -613,13 +613,12 @@ const definitions: FeatureFlagDefinitions = { ossReleaseStage: 'none', }, avoidStateUpdateInAnimatedPropsMemo: { - defaultValue: false, + defaultValue: true, metadata: { - dateAdded: '2025-02-05', description: 'Changes `useAnimatedPropsMemo` to avoid state updates to invalidate the cached `AnimatedProps`.', expectedReleaseValue: true, - purpose: 'experimentation', + purpose: 'release', }, ossReleaseStage: 'none', }, diff --git a/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js b/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js index 8096ad8c056..fa10ec4c0a2 100644 --- a/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js +++ b/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<4d96a5f9132ea827faeb183fe8bbf095>> + * @generated SignedSource<<116217572bb442c615e346324966d670>> * @flow strict * @noformat */ @@ -121,7 +121,7 @@ export const animatedShouldUseSingleOp: Getter = createJavaScriptFlagGe /** * Changes `useAnimatedPropsMemo` to avoid state updates to invalidate the cached `AnimatedProps`. */ -export const avoidStateUpdateInAnimatedPropsMemo: Getter = createJavaScriptFlagGetter('avoidStateUpdateInAnimatedPropsMemo', false); +export const avoidStateUpdateInAnimatedPropsMemo: Getter = createJavaScriptFlagGetter('avoidStateUpdateInAnimatedPropsMemo', true); /** * Disables InteractionManager and replaces its scheduler with `setImmediate`.