Ship useNativeEqualsInNativeReadableArrayAndroid and useNativeTransformHelperAndroid to stable (#53372)

Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53372

We verified that those feature flags are not regressing the experience + we got confirmation from Software Mansion that the fix
is effectively mitigating the regression on Android mounting.

Hence we can ship this to production.

Fixes: https://github.com/facebook/react-native/issues/51869

Changelog:
[Android] [Fixed] - Fix mounting is very slow on Android by shipping native transform optimizations

Reviewed By: javache

Differential Revision: D80624739

fbshipit-source-id: 2e185434f08b5ea0339d59a6ea006017e5abeff2
This commit is contained in:
Nicola Corti
2025-08-21 09:32:21 -07:00
committed by Facebook GitHub Bot
parent 3f74a87027
commit c557311ed8
6 changed files with 15 additions and 27 deletions
@@ -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<<4cc61b5f71805589fa91abbdefb5eade>>
* @generated SignedSource<<69634efaec0f2c63ac2d1ce20dd5c2ac>>
*/
/**
@@ -139,9 +139,9 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
override fun useFabricInterop(): Boolean = true
override fun useNativeEqualsInNativeReadableArrayAndroid(): Boolean = false
override fun useNativeEqualsInNativeReadableArrayAndroid(): Boolean = true
override fun useNativeTransformHelperAndroid(): Boolean = false
override fun useNativeTransformHelperAndroid(): Boolean = true
override fun useNativeViewConfigsInBridgelessMode(): Boolean = false
@@ -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<<1f89971ab4d5b2ee27ace3a3c8da78cf>>
* @generated SignedSource<<4feeb3c1789d8169dd93bee7ae1ff1ac>>
*/
/**
@@ -26,8 +26,4 @@ public open class ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android :
override fun enableAccessibilityOrder(): Boolean = true
override fun preventShadowTreeCommitExhaustion(): Boolean = true
override fun useNativeEqualsInNativeReadableArrayAndroid(): Boolean = true
override fun useNativeTransformHelperAndroid(): Boolean = true
}
@@ -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<<a7f5d45347dee3c9c5b17731e1bf8993>>
* @generated SignedSource<<54a695ed4e9c536cd8650498b9dab2fc>>
*/
/**
@@ -260,11 +260,11 @@ class ReactNativeFeatureFlagsDefaults : public ReactNativeFeatureFlagsProvider {
}
bool useNativeEqualsInNativeReadableArrayAndroid() override {
return false;
return true;
}
bool useNativeTransformHelperAndroid() override {
return false;
return true;
}
bool useNativeViewConfigsInBridgelessMode() override {
@@ -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<<c9b7b95d3cc3fed879476f191a60d3f2>>
* @generated SignedSource<<77870f0db494c7b6932950a1fa475fdc>>
*/
/**
@@ -34,14 +34,6 @@ class ReactNativeFeatureFlagsOverridesOSSExperimental : public ReactNativeFeatur
bool preventShadowTreeCommitExhaustion() override {
return true;
}
bool useNativeEqualsInNativeReadableArrayAndroid() override {
return true;
}
bool useNativeTransformHelperAndroid() override {
return true;
}
};
} // namespace facebook::react
@@ -665,7 +665,7 @@ const definitions: FeatureFlagDefinitions = {
ossReleaseStage: 'none',
},
useNativeEqualsInNativeReadableArrayAndroid: {
defaultValue: false,
defaultValue: true,
metadata: {
dateAdded: '2025-07-15',
description:
@@ -673,17 +673,17 @@ const definitions: FeatureFlagDefinitions = {
expectedReleaseValue: true,
purpose: 'experimentation',
},
ossReleaseStage: 'experimental',
ossReleaseStage: 'stable',
},
useNativeTransformHelperAndroid: {
defaultValue: false,
defaultValue: true,
metadata: {
dateAdded: '2025-07-15',
description: 'Use a native implementation of TransformHelper',
expectedReleaseValue: true,
purpose: 'experimentation',
},
ossReleaseStage: 'experimental',
ossReleaseStage: 'stable',
},
useNativeViewConfigsInBridgelessMode: {
defaultValue: false,
@@ -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<<f082e99b49f5206e95cf0ca3f92d2c1c>>
* @generated SignedSource<<66a3905e1c94e7769418becc3bace939>>
* @flow strict
* @noformat
*/
@@ -415,11 +415,11 @@ export const useFabricInterop: Getter<boolean> = createNativeFlagGetter('useFabr
/**
* Use a native implementation of equals in NativeReadableArray.
*/
export const useNativeEqualsInNativeReadableArrayAndroid: Getter<boolean> = createNativeFlagGetter('useNativeEqualsInNativeReadableArrayAndroid', false);
export const useNativeEqualsInNativeReadableArrayAndroid: Getter<boolean> = createNativeFlagGetter('useNativeEqualsInNativeReadableArrayAndroid', true);
/**
* Use a native implementation of TransformHelper
*/
export const useNativeTransformHelperAndroid: Getter<boolean> = createNativeFlagGetter('useNativeTransformHelperAndroid', false);
export const useNativeTransformHelperAndroid: Getter<boolean> = createNativeFlagGetter('useNativeTransformHelperAndroid', true);
/**
* When enabled, the native view configs are used in bridgeless mode.
*/