diff --git a/Libraries/Renderer/shims/ReactNativeFeatureFlags.js b/Libraries/Renderer/shims/ReactNativeFeatureFlags.js index 17719817959..035f135e905 100644 --- a/Libraries/Renderer/shims/ReactNativeFeatureFlags.js +++ b/Libraries/Renderer/shims/ReactNativeFeatureFlags.js @@ -12,12 +12,30 @@ 'use strict'; +var useFiber; + var ReactNativeFeatureFlags = { - useFiber: false, + get useFiber(): boolean { + if (useFiber == null) { + useFiber = true; + if (__DEV__) { + require('Systrace').installReactHook(useFiber); + } + } + return useFiber; + }, + set useFiber(enabled: boolean): void { + if (useFiber != null) { + throw new Error( + 'Cannot set useFiber feature flag after it has been accessed. ' + + 'Please override it before requiring React.', + ); + } + useFiber = enabled; + if (__DEV__) { + require('Systrace').installReactHook(useFiber); + } + }, }; -if (__DEV__) { - require('Systrace').installReactHook(false); -} - module.exports = ReactNativeFeatureFlags;