From 8b1b0720cc856d6b43d35dd29e50f260c7472347 Mon Sep 17 00:00:00 2001 From: Brian Vaughn Date: Thu, 10 Aug 2017 08:41:51 -0700 Subject: [PATCH] Wrap warning() calls in a DEV check for RN_* builds too (#10428) * Wrap warning() calls in a DEV check for RN_* builds too. * Wrapped several warning() imports and calls in if-DEV checks. * Removed a useless variable (allTypesByEventName) and loop from ReactNativeBridgeEventPlugin. --- scripts/rollup/build.js | 2 ++ .../classic/element/ReactElementValidator.js | 18 +++++++------ .../dom/stack/client/ReactDOMComponent.js | 5 +++- .../native/ReactNativeBridgeEventPlugin.js | 24 +++++++---------- .../native/ReactNativeEventEmitter.js | 4 ++- src/renderers/native/findNodeHandle.js | 5 +++- .../ResponderTouchHistoryStore.js | 16 +++++++----- .../stack/reconciler/ReactChildReconciler.js | 5 +++- .../reconciler/ReactCompositeComponent.js | 2 +- .../stack/reconciler/ReactReconciler.js | 26 +++++++++++-------- .../stack/reconciler/flattenStackChildren.js | 5 +++- .../reconciler/instantiateReactComponent.js | 5 +++- .../stack/reconciler/traverseStackChildren.js | 2 +- 13 files changed, 70 insertions(+), 49 deletions(-) diff --git a/scripts/rollup/build.js b/scripts/rollup/build.js index b46546e3c4..a4d3151fea 100644 --- a/scripts/rollup/build.js +++ b/scripts/rollup/build.js @@ -124,6 +124,8 @@ function updateBabelConfig(babelOpts, bundleType) { switch (bundleType) { case FB_DEV: case FB_PROD: + case RN_DEV: + case RN_PROD: return Object.assign({}, babelOpts, { plugins: babelOpts.plugins.concat([ // Wrap warning() calls in a __DEV__ check so they are stripped from production. diff --git a/src/isomorphic/classic/element/ReactElementValidator.js b/src/isomorphic/classic/element/ReactElementValidator.js index 8aa8b240b4..8d2f6e5539 100644 --- a/src/isomorphic/classic/element/ReactElementValidator.js +++ b/src/isomorphic/classic/element/ReactElementValidator.js @@ -144,14 +144,16 @@ function validateExplicitKey(element, parentType) { } currentlyValidatingElement = element; - warning( - false, - 'Each child in an array or iterator should have a unique "key" prop.' + - '%s%s See https://fb.me/react-warning-keys for more information.%s', - currentComponentErrorInfo, - childOwner, - getStackAddendum(), - ); + if (__DEV__) { + warning( + false, + 'Each child in an array or iterator should have a unique "key" prop.' + + '%s%s See https://fb.me/react-warning-keys for more information.%s', + currentComponentErrorInfo, + childOwner, + getStackAddendum(), + ); + } currentlyValidatingElement = null; } diff --git a/src/renderers/dom/stack/client/ReactDOMComponent.js b/src/renderers/dom/stack/client/ReactDOMComponent.js index 5453df69b5..f5f63a67c6 100644 --- a/src/renderers/dom/stack/client/ReactDOMComponent.js +++ b/src/renderers/dom/stack/client/ReactDOMComponent.js @@ -42,9 +42,12 @@ var memoizeStringOnly = require('fbjs/lib/memoizeStringOnly'); var omittedCloseTags = require('omittedCloseTags'); var validateDOMNesting = require('validateDOMNesting'); var voidElementTags = require('voidElementTags'); -var warning = require('fbjs/lib/warning'); var warnValidStyle = require('warnValidStyle'); +if (__DEV__) { + var warning = require('fbjs/lib/warning'); +} + var didWarnShadyDOM = false; var Flags = ReactDOMComponentFlags; diff --git a/src/renderers/native/ReactNativeBridgeEventPlugin.js b/src/renderers/native/ReactNativeBridgeEventPlugin.js index 628b9e0d0f..121f7663a3 100644 --- a/src/renderers/native/ReactNativeBridgeEventPlugin.js +++ b/src/renderers/native/ReactNativeBridgeEventPlugin.js @@ -15,25 +15,19 @@ var EventPropagators = require('EventPropagators'); var SyntheticEvent = require('SyntheticEvent'); var UIManager = require('UIManager'); -var warning = require('fbjs/lib/warning'); - var customBubblingEventTypes = UIManager.customBubblingEventTypes; var customDirectEventTypes = UIManager.customDirectEventTypes; -var allTypesByEventName = {}; +if (__DEV__) { + var warning = require('fbjs/lib/warning'); -for (var bubblingTypeName in customBubblingEventTypes) { - allTypesByEventName[bubblingTypeName] = - customBubblingEventTypes[bubblingTypeName]; -} - -for (var directTypeName in customDirectEventTypes) { - warning( - !customBubblingEventTypes[directTypeName], - 'Event cannot be both direct and bubbling: %s', - directTypeName, - ); - allTypesByEventName[directTypeName] = customDirectEventTypes[directTypeName]; + for (var directTypeName in customDirectEventTypes) { + warning( + !customBubblingEventTypes[directTypeName], + 'Event cannot be both direct and bubbling: %s', + directTypeName, + ); + } } var ReactNativeBridgeEventPlugin = { diff --git a/src/renderers/native/ReactNativeEventEmitter.js b/src/renderers/native/ReactNativeEventEmitter.js index 42b69aa150..19d31b24b0 100644 --- a/src/renderers/native/ReactNativeEventEmitter.js +++ b/src/renderers/native/ReactNativeEventEmitter.js @@ -18,7 +18,9 @@ var ReactNativeComponentTree = require('ReactNativeComponentTree'); var ReactNativeTagHandles = require('ReactNativeTagHandles'); var ReactGenericBatching = require('ReactGenericBatching'); -var warning = require('fbjs/lib/warning'); +if (__DEV__) { + var warning = require('fbjs/lib/warning'); +} /** * Version of `ReactBrowserEventEmitter` that works on the receiving side of a diff --git a/src/renderers/native/findNodeHandle.js b/src/renderers/native/findNodeHandle.js index e401cbfd63..6d5d674c72 100644 --- a/src/renderers/native/findNodeHandle.js +++ b/src/renderers/native/findNodeHandle.js @@ -18,7 +18,10 @@ var ReactNativeFiberRenderer = require('ReactNativeFiberRenderer'); var {ReactCurrentOwner} = require('ReactGlobalSharedState'); var invariant = require('fbjs/lib/invariant'); -var warning = require('fbjs/lib/warning'); + +if (__DEV__) { + var warning = require('fbjs/lib/warning'); +} import type {Fiber} from 'ReactFiber'; import type {ReactInstance} from 'ReactInstanceType'; diff --git a/src/renderers/shared/shared/event/eventPlugins/ResponderTouchHistoryStore.js b/src/renderers/shared/shared/event/eventPlugins/ResponderTouchHistoryStore.js index f7c47d3f17..6a7360c421 100644 --- a/src/renderers/shared/shared/event/eventPlugins/ResponderTouchHistoryStore.js +++ b/src/renderers/shared/shared/event/eventPlugins/ResponderTouchHistoryStore.js @@ -104,13 +104,15 @@ function resetTouchRecord(touchRecord: TouchRecord, touch: Touch): void { function getTouchIdentifier({identifier}: Touch): number { invariant(identifier != null, 'Touch object is missing identifier.'); - warning( - identifier <= MAX_TOUCH_BANK, - 'Touch identifier %s is greater than maximum supported %s which causes ' + - 'performance issues backfilling array locations for all of the indices.', - identifier, - MAX_TOUCH_BANK, - ); + if (__DEV__) { + warning( + identifier <= MAX_TOUCH_BANK, + 'Touch identifier %s is greater than maximum supported %s which causes ' + + 'performance issues backfilling array locations for all of the indices.', + identifier, + MAX_TOUCH_BANK, + ); + } return identifier; } diff --git a/src/renderers/shared/stack/reconciler/ReactChildReconciler.js b/src/renderers/shared/stack/reconciler/ReactChildReconciler.js index c4fb8555d7..0f6d7dfd4a 100644 --- a/src/renderers/shared/stack/reconciler/ReactChildReconciler.js +++ b/src/renderers/shared/stack/reconciler/ReactChildReconciler.js @@ -17,7 +17,10 @@ var ReactReconciler = require('ReactReconciler'); var instantiateReactComponent = require('instantiateReactComponent'); var shouldUpdateReactComponent = require('shouldUpdateReactComponent'); var traverseStackChildren = require('traverseStackChildren'); -var warning = require('fbjs/lib/warning'); + +if (__DEV__) { + var warning = require('fbjs/lib/warning'); +} var ReactComponentTreeHook; diff --git a/src/renderers/shared/stack/reconciler/ReactCompositeComponent.js b/src/renderers/shared/stack/reconciler/ReactCompositeComponent.js index 77f9414f0b..f85aa6ed49 100644 --- a/src/renderers/shared/stack/reconciler/ReactCompositeComponent.js +++ b/src/renderers/shared/stack/reconciler/ReactCompositeComponent.js @@ -24,6 +24,7 @@ var {ReactCurrentOwner} = require('ReactGlobalSharedState'); if (__DEV__) { var {ReactDebugCurrentFrame} = require('ReactGlobalSharedState'); var ReactDebugCurrentStack = require('ReactDebugCurrentStack'); + var warning = require('fbjs/lib/warning'); var warningAboutMissingGetChildContext = {}; } @@ -32,7 +33,6 @@ var emptyObject = require('fbjs/lib/emptyObject'); var invariant = require('fbjs/lib/invariant'); var shallowEqual = require('fbjs/lib/shallowEqual'); var shouldUpdateReactComponent = require('shouldUpdateReactComponent'); -var warning = require('fbjs/lib/warning'); function StatelessComponent(Component) {} StatelessComponent.prototype.render = function() { diff --git a/src/renderers/shared/stack/reconciler/ReactReconciler.js b/src/renderers/shared/stack/reconciler/ReactReconciler.js index 221ebd584a..4250b70141 100644 --- a/src/renderers/shared/stack/reconciler/ReactReconciler.js +++ b/src/renderers/shared/stack/reconciler/ReactReconciler.js @@ -14,7 +14,9 @@ var ReactRef = require('ReactRef'); var ReactInstrumentation = require('ReactInstrumentation'); -var warning = require('fbjs/lib/warning'); +if (__DEV__) { + var warning = require('fbjs/lib/warning'); +} /** * Helper to call ReactRef.attachRefs with this composite component, split out @@ -187,16 +189,18 @@ var ReactReconciler = { updateBatchNumber, ) { if (internalInstance._updateBatchNumber !== updateBatchNumber) { - // The component's enqueued batch number should always be the current - // batch or the following one. - warning( - internalInstance._updateBatchNumber == null || - internalInstance._updateBatchNumber === updateBatchNumber + 1, - 'performUpdateIfNecessary: Unexpected batch number (current %s, ' + - 'pending %s)', - updateBatchNumber, - internalInstance._updateBatchNumber, - ); + if (__DEV__) { + // The component's enqueued batch number should always be the current + // batch or the following one. + warning( + internalInstance._updateBatchNumber == null || + internalInstance._updateBatchNumber === updateBatchNumber + 1, + 'performUpdateIfNecessary: Unexpected batch number (current %s, ' + + 'pending %s)', + updateBatchNumber, + internalInstance._updateBatchNumber, + ); + } return; } if (__DEV__) { diff --git a/src/renderers/shared/stack/reconciler/flattenStackChildren.js b/src/renderers/shared/stack/reconciler/flattenStackChildren.js index 295bc25e39..699747d839 100644 --- a/src/renderers/shared/stack/reconciler/flattenStackChildren.js +++ b/src/renderers/shared/stack/reconciler/flattenStackChildren.js @@ -14,7 +14,10 @@ var KeyEscapeUtils = require('KeyEscapeUtils'); var traverseStackChildren = require('traverseStackChildren'); -var warning = require('fbjs/lib/warning'); + +if (__DEV__) { + var warning = require('fbjs/lib/warning'); +} var ReactComponentTreeHook; diff --git a/src/renderers/shared/stack/reconciler/instantiateReactComponent.js b/src/renderers/shared/stack/reconciler/instantiateReactComponent.js index c8e8ee5024..d92f00f27b 100644 --- a/src/renderers/shared/stack/reconciler/instantiateReactComponent.js +++ b/src/renderers/shared/stack/reconciler/instantiateReactComponent.js @@ -16,7 +16,10 @@ var ReactEmptyComponent = require('ReactEmptyComponent'); var ReactHostComponent = require('ReactHostComponent'); var invariant = require('fbjs/lib/invariant'); -var warning = require('fbjs/lib/warning'); + +if (__DEV__) { + var warning = require('fbjs/lib/warning'); +} var nextDebugID = 1; diff --git a/src/renderers/shared/stack/reconciler/traverseStackChildren.js b/src/renderers/shared/stack/reconciler/traverseStackChildren.js index 59819726f9..765be094b5 100644 --- a/src/renderers/shared/stack/reconciler/traverseStackChildren.js +++ b/src/renderers/shared/stack/reconciler/traverseStackChildren.js @@ -13,7 +13,6 @@ var invariant = require('fbjs/lib/invariant'); var KeyEscapeUtils = require('KeyEscapeUtils'); -var warning = require('fbjs/lib/warning'); var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. @@ -24,6 +23,7 @@ var REACT_ELEMENT_TYPE = 0xeac7; if (__DEV__) { + var warning = require('fbjs/lib/warning'); var { getCurrentStackAddendum, } = require('ReactGlobalSharedState').ReactComponentTreeHook;