diff --git a/src/isomorphic/classic/element/ReactDebugCurrentFrame.js b/src/isomorphic/classic/element/ReactDebugCurrentFrame.js index 9e90f13f9f..056a38bbcb 100644 --- a/src/isomorphic/classic/element/ReactDebugCurrentFrame.js +++ b/src/isomorphic/classic/element/ReactDebugCurrentFrame.js @@ -38,7 +38,7 @@ if (__DEV__) { if (typeof current === 'number') { // DebugID from Stack. const debugID = current; - stack = getStackAddendumByID(debugID); + stack = getStackAddendumByID && getStackAddendumByID(debugID); } else if (typeof current.tag === 'number') { // This is a Fiber. // The stack will only be correct if this is a work in progress @@ -47,7 +47,7 @@ if (__DEV__) { stack = getStackAddendumByWorkInProgressFiber(workInProgress); } } else if (element !== null) { - stack = getCurrentStackAddendum(element); + stack = getCurrentStackAddendum && getCurrentStackAddendum(element); } return stack; }; diff --git a/src/renderers/shared/ReactDebugTool.js b/src/renderers/shared/ReactDebugTool.js index b0e91811e0..b8a3ae7e6e 100644 --- a/src/renderers/shared/ReactDebugTool.js +++ b/src/renderers/shared/ReactDebugTool.js @@ -120,7 +120,9 @@ if (__DEV__) { var lifeCycleTimerHasWarned = false; const clearHistory = function() { - purgeUnmountedComponents(); + if (purgeUnmountedComponents) { + purgeUnmountedComponents(); + } ReactHostOperationHistoryHook.clearHistory(); }; @@ -156,14 +158,16 @@ if (__DEV__) { } if (previousMeasurements.length || previousOperations.length) { - var registeredIDs = getRegisteredIDs(); + if (getRegisteredIDs) { + var registeredIDs = getRegisteredIDs(); - flushHistory.push({ - duration: performanceNow() - previousStartTime, - measurements: previousMeasurements || [], - operations: previousOperations || [], - treeSnapshot: getTreeSnapshot(registeredIDs), - }); + flushHistory.push({ + duration: performanceNow() - previousStartTime, + measurements: previousMeasurements || [], + operations: previousOperations || [], + treeSnapshot: getTreeSnapshot(registeredIDs), + }); + } } clearHistory(); @@ -266,7 +270,7 @@ if (__DEV__) { if (!isProfiling || !canUsePerformanceMeasure) { return false; } - var element = getElement(debugID); + var element = getElement && getElement(debugID); if (element == null || typeof element !== 'object') { return false; } @@ -293,7 +297,7 @@ if (__DEV__) { } var markName = `${debugID}::${markType}`; - var displayName = getDisplayName(debugID) || 'Unknown'; + var displayName = getDisplayName && getDisplayName(debugID) || 'Unknown'; // Chrome has an issue of dropping markers recorded too fast: // https://bugs.chromium.org/p/chromium/issues/detail?id=640652 diff --git a/src/renderers/shared/stack/reconciler/ReactRef.js b/src/renderers/shared/stack/reconciler/ReactRef.js index 7f2e5c4567..6705ec9aa3 100644 --- a/src/renderers/shared/stack/reconciler/ReactRef.js +++ b/src/renderers/shared/stack/reconciler/ReactRef.js @@ -49,7 +49,7 @@ function attachRef(ref, component, owner) { if (element && element._source) { warningKey = element._source.fileName + ':' + element._source.lineNumber; } - if (!warnedAboutStatelessRefs[warningKey]) { + if (!warnedAboutStatelessRefs[warningKey] && getStackAddendumByID) { warnedAboutStatelessRefs[warningKey] = true; warning( false, diff --git a/src/shared/utils/flattenChildren.js b/src/shared/utils/flattenChildren.js index 2a8165c829..a5a3d85bb5 100644 --- a/src/shared/utils/flattenChildren.js +++ b/src/shared/utils/flattenChildren.js @@ -55,7 +55,7 @@ function flattenSingleChildIntoContext( } const { getStackAddendumByID }: ComponentTreeHookDevType = (ReactComponentTreeHook: any); - if (!keyUnique) { + if (!keyUnique && getStackAddendumByID) { warning( false, 'flattenChildren(...): Encountered two children with the same key, ' + diff --git a/src/umd/ReactUMDEntry.js b/src/umd/ReactUMDEntry.js index ab926354a6..8cacdceb35 100644 --- a/src/umd/ReactUMDEntry.js +++ b/src/umd/ReactUMDEntry.js @@ -17,17 +17,8 @@ var React = require('React'); var ReactUMDEntry = Object.assign({ __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: { ReactCurrentOwner: require('react/lib/ReactCurrentOwner'), + ReactComponentTreeHook: require('react/lib/ReactComponentTreeHook'), }, }, React); -if (__DEV__) { - Object.assign( - ReactUMDEntry.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, - { - // ReactComponentTreeHook should not be included in production. - ReactComponentTreeHook: require('react/lib/ReactComponentTreeHook'), - } - ); -} - module.exports = ReactUMDEntry;