From b58207e61fcb3fb0444860ba11b8a62aff7836c9 Mon Sep 17 00:00:00 2001 From: Kevin Gozali Date: Mon, 14 Aug 2017 10:51:16 -0700 Subject: [PATCH] remove internal copy of ReactNativeFeatureFlags Reviewed By: bvaughn, davidaurelio Differential Revision: D5618991 fbshipit-source-id: 8b93bca186523585732c2177540189a1d83f9c90 --- .../Renderer/shims/ReactNativeFeatureFlags.js | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) 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;