mirror of
https://github.com/zebrajr/react.git
synced 2025-12-06 12:20:20 +01:00
Clean up feature flag to use lazy public instances in Fabric (#33943)
## Summary We have thoroughly tested this flag in production and proved stability and performance, so we can clean it up and "ship it".
This commit is contained in:
parent
28d4bc496b
commit
e9638c33d7
|
|
@ -66,10 +66,7 @@ import {
|
|||
getInspectorDataForInstance,
|
||||
} from './ReactNativeFiberInspector';
|
||||
|
||||
import {
|
||||
passChildrenWhenCloningPersistedNodes,
|
||||
enableLazyPublicInstanceInFabric,
|
||||
} from 'shared/ReactFeatureFlags';
|
||||
import {passChildrenWhenCloningPersistedNodes} from 'shared/ReactFeatureFlags';
|
||||
import {REACT_CONTEXT_TYPE} from 'shared/ReactSymbols';
|
||||
import type {ReactContext} from 'shared/ReactTypes';
|
||||
|
||||
|
|
@ -204,37 +201,17 @@ export function createInstance(
|
|||
internalInstanceHandle, // internalInstanceHandle
|
||||
);
|
||||
|
||||
if (enableLazyPublicInstanceInFabric) {
|
||||
return {
|
||||
node: node,
|
||||
canonical: {
|
||||
nativeTag: tag,
|
||||
viewConfig,
|
||||
currentProps: props,
|
||||
internalInstanceHandle,
|
||||
publicInstance: null,
|
||||
publicRootInstance: rootContainerInstance.publicInstance,
|
||||
},
|
||||
};
|
||||
} else {
|
||||
const component = createPublicInstance(
|
||||
tag,
|
||||
return {
|
||||
node: node,
|
||||
canonical: {
|
||||
nativeTag: tag,
|
||||
viewConfig,
|
||||
currentProps: props,
|
||||
internalInstanceHandle,
|
||||
rootContainerInstance.publicInstance,
|
||||
);
|
||||
|
||||
return {
|
||||
node: node,
|
||||
canonical: {
|
||||
nativeTag: tag,
|
||||
viewConfig,
|
||||
currentProps: props,
|
||||
internalInstanceHandle,
|
||||
publicInstance: component,
|
||||
},
|
||||
};
|
||||
}
|
||||
publicInstance: null,
|
||||
publicRootInstance: rootContainerInstance.publicInstance,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
export function createTextInstance(
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ import {
|
|||
ReactNativeViewConfigRegistry,
|
||||
UIManager,
|
||||
deepFreezeAndThrowOnMutationInDev,
|
||||
createPublicInstance,
|
||||
type PublicRootInstance,
|
||||
} from 'react-native/Libraries/ReactPrivate/ReactNativePrivateInterface';
|
||||
|
||||
|
|
@ -285,8 +286,26 @@ export function getChildHostContext(
|
|||
|
||||
export function getPublicInstance(instance: Instance): PublicInstance {
|
||||
// $FlowExpectedError[prop-missing] For compatibility with Fabric
|
||||
if (instance.canonical != null && instance.canonical.publicInstance != null) {
|
||||
// $FlowFixMe[incompatible-return]
|
||||
if (instance.canonical != null) {
|
||||
if (instance.canonical.publicInstance == null) {
|
||||
// $FlowExpectedError[incompatible-use]
|
||||
instance.canonical.publicInstance = createPublicInstance(
|
||||
// $FlowExpectedError[incompatible-use]
|
||||
instance.canonical.nativeTag,
|
||||
// $FlowExpectedError[incompatible-use]
|
||||
instance.canonical.viewConfig,
|
||||
// $FlowExpectedError[incompatible-use]
|
||||
instance.canonical.internalInstanceHandle,
|
||||
// $FlowExpectedError[incompatible-use]
|
||||
instance.canonical.publicRootInstance ?? null,
|
||||
);
|
||||
// This was only necessary to create the public instance.
|
||||
// $FlowExpectedError[prop-missing]
|
||||
instance.canonical.publicRootInstance = null;
|
||||
}
|
||||
|
||||
// $FlowExpectedError[prop-missing]
|
||||
// $FlowExpectedError[incompatible-return]
|
||||
return instance.canonical.publicInstance;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -151,8 +151,6 @@ export const transitionLaneExpirationMs = 5000;
|
|||
*/
|
||||
export const enableInfiniteRenderLoopDetection = false;
|
||||
|
||||
export const enableLazyPublicInstanceInFabric = false;
|
||||
|
||||
export const enableFragmentRefs = __EXPERIMENTAL__;
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ export const enableHiddenSubtreeInsertionEffectCleanup = __VARIANT__;
|
|||
export const enablePersistedModeClonedFlag = __VARIANT__;
|
||||
export const enableEagerAlternateStateNodeCleanup = __VARIANT__;
|
||||
export const passChildrenWhenCloningPersistedNodes = __VARIANT__;
|
||||
export const enableLazyPublicInstanceInFabric = __VARIANT__;
|
||||
export const renameElementSymbol = __VARIANT__;
|
||||
export const enableFragmentRefs = __VARIANT__;
|
||||
export const enableComponentPerformanceTrack = __VARIANT__;
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ export const {
|
|||
enablePersistedModeClonedFlag,
|
||||
enableEagerAlternateStateNodeCleanup,
|
||||
passChildrenWhenCloningPersistedNodes,
|
||||
enableLazyPublicInstanceInFabric,
|
||||
renameElementSymbol,
|
||||
enableFragmentRefs,
|
||||
} = dynamicFlags;
|
||||
|
|
|
|||
|
|
@ -64,7 +64,6 @@ export const enableYieldingBeforePassive = false;
|
|||
export const enableThrottledScheduling = false;
|
||||
export const enableViewTransition = false;
|
||||
export const enableGestureTransition = false;
|
||||
export const enableLazyPublicInstanceInFabric = false;
|
||||
export const enableScrollEndPolyfill = true;
|
||||
export const enableSuspenseyImages = false;
|
||||
export const enableFizzBlockingRender = true;
|
||||
|
|
|
|||
|
|
@ -66,7 +66,6 @@ export const enableYieldingBeforePassive = true;
|
|||
export const enableThrottledScheduling = false;
|
||||
export const enableViewTransition = false;
|
||||
export const enableGestureTransition = false;
|
||||
export const enableLazyPublicInstanceInFabric = false;
|
||||
export const enableScrollEndPolyfill = true;
|
||||
export const enableSuspenseyImages = false;
|
||||
export const enableFizzBlockingRender = true;
|
||||
|
|
|
|||
|
|
@ -62,7 +62,6 @@ export const enableYieldingBeforePassive = false;
|
|||
export const enableThrottledScheduling = false;
|
||||
export const enableViewTransition = false;
|
||||
export const enableGestureTransition = false;
|
||||
export const enableLazyPublicInstanceInFabric = false;
|
||||
export const enableScrollEndPolyfill = true;
|
||||
export const enableSuspenseyImages = false;
|
||||
export const enableFizzBlockingRender = true;
|
||||
|
|
|
|||
|
|
@ -74,7 +74,6 @@ export const enableYieldingBeforePassive = false;
|
|||
export const enableThrottledScheduling = false;
|
||||
export const enableViewTransition = false;
|
||||
export const enableGestureTransition = false;
|
||||
export const enableLazyPublicInstanceInFabric = false;
|
||||
export const enableScrollEndPolyfill = true;
|
||||
export const enableSuspenseyImages = false;
|
||||
export const enableFizzBlockingRender = true;
|
||||
|
|
|
|||
|
|
@ -31,7 +31,6 @@ export const enableSchedulingProfiler = __VARIANT__;
|
|||
export const enableInfiniteRenderLoopDetection = __VARIANT__;
|
||||
|
||||
export const enableFastAddPropertiesInDiffing = __VARIANT__;
|
||||
export const enableLazyPublicInstanceInFabric = false;
|
||||
export const enableViewTransition = __VARIANT__;
|
||||
export const enableComponentPerformanceTrack = __VARIANT__;
|
||||
export const enableScrollEndPolyfill = __VARIANT__;
|
||||
|
|
|
|||
|
|
@ -102,8 +102,6 @@ export const disableLegacyMode = true;
|
|||
|
||||
export const enableEagerAlternateStateNodeCleanup = true;
|
||||
|
||||
export const enableLazyPublicInstanceInFabric = false;
|
||||
|
||||
export const enableGestureTransition = false;
|
||||
|
||||
export const enableSuspenseyImages = false;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user