From 9b1300209eb00a2d6c645fddf6d2729d67d7b10a Mon Sep 17 00:00:00 2001 From: Timothy Yung Date: Mon, 6 May 2024 10:30:40 -0700 Subject: [PATCH] Setup Wave 2 of Feature Flags for React Native (#28990) ## Summary Sets up dynamic feature flags for `disableStringRefs`, `enableFastJSX`, and `enableRefAsProp` in React Native (at Meta). ## How did you test this change? ``` $ yarn test $ yarn flow fabric ``` --- .../forks/ReactFeatureFlags.native-fb-dynamic.js | 9 ++++++--- .../shared/forks/ReactFeatureFlags.native-fb.js | 15 ++++++--------- .../ReactFeatureFlags.test-renderer.native-fb.js | 6 +++--- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js b/packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js index 915959e123857..1aa9154eb5a12 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js +++ b/packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js @@ -19,10 +19,13 @@ export const alwaysThrottleRetries = __VARIANT__; export const consoleManagedByDevToolsDuringStrictMode = __VARIANT__; -export const enableEarlyReturnForPropDiffing = __VARIANT__; +export const disableDefaultPropsExceptForClasses = __VARIANT__; +export const disableStringRefs = __VARIANT__; +export const enableAddPropertiesFastPath = __VARIANT__; export const enableDeferRootSchedulingToMicrotask = __VARIANT__; +export const enableEarlyReturnForPropDiffing = __VARIANT__; +export const enableFastJSX = __VARIANT__; export const enableInfiniteRenderLoopDetection = __VARIANT__; +export const enableRefAsProp = __VARIANT__; export const enableUnifiedSyncLane = __VARIANT__; export const passChildrenWhenCloningPersistedNodes = __VARIANT__; -export const disableDefaultPropsExceptForClasses = __VARIANT__; -export const enableAddPropertiesFastPath = __VARIANT__; diff --git a/packages/shared/forks/ReactFeatureFlags.native-fb.js b/packages/shared/forks/ReactFeatureFlags.native-fb.js index ef96c1c216ee9..580c49bafc4e2 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-fb.js +++ b/packages/shared/forks/ReactFeatureFlags.native-fb.js @@ -21,13 +21,16 @@ const dynamicFlags: DynamicExportsType = (dynamicFlagsUntyped: any); export const { alwaysThrottleRetries, consoleManagedByDevToolsDuringStrictMode, - enableEarlyReturnForPropDiffing, + disableDefaultPropsExceptForClasses, + disableStringRefs, + enableAddPropertiesFastPath, enableDeferRootSchedulingToMicrotask, + enableEarlyReturnForPropDiffing, + enableFastJSX, enableInfiniteRenderLoopDetection, + enableRefAsProp, enableUnifiedSyncLane, passChildrenWhenCloningPersistedNodes, - disableDefaultPropsExceptForClasses, - enableAddPropertiesFastPath, } = dynamicFlags; // The rest of the flags are static for better dead code elimination. @@ -94,12 +97,6 @@ export const disableClientCache = true; export const enableServerComponentKeys = true; export const enableServerComponentLogs = true; -// TODO: Roll out with GK. Don't keep as dynamic flag for too long, though, -// because JSX is an extremely hot path. -export const enableRefAsProp = false; -export const disableStringRefs = false; -export const enableFastJSX = false; - export const enableReactTestRendererWarning = false; export const disableLegacyMode = false; export const disableDOMTestUtils = false; diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js index 4193ddc64f02f..72a69a3b9cad3 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js @@ -80,9 +80,9 @@ export const disableClientCache = true; export const enableServerComponentKeys = true; export const enableServerComponentLogs = true; -export const enableRefAsProp = false; -export const disableStringRefs = false; -export const enableFastJSX = false; +export const enableRefAsProp = true; +export const disableStringRefs = true; +export const enableFastJSX = true; export const enableReactTestRendererWarning = false; export const disableLegacyMode = false;