diff --git a/packages/shared/ReactFeatureFlags.js b/packages/shared/ReactFeatureFlags.js index bc1ae542fa6e1..6a77c29ff32e2 100644 --- a/packages/shared/ReactFeatureFlags.js +++ b/packages/shared/ReactFeatureFlags.js @@ -261,3 +261,5 @@ export const enableUpdaterTracking = __PROFILE__; // Internal only. export const enableDO_NOT_USE_disableStrictPassiveEffect = false; + +export const enableRemoveConsolePatches = true; diff --git a/packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js b/packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js index fc9bed7cc056f..b6e3b098dbb40 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js +++ b/packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js @@ -27,3 +27,4 @@ export const enableFabricCompleteRootInCommitPhase = __VARIANT__; export const enableSiblingPrerendering = __VARIANT__; export const enableUseResourceEffectHook = __VARIANT__; export const enableOwnerStacks = __VARIANT__; +export const enableRemoveConsolePatches = __VARIANT__; diff --git a/packages/shared/forks/ReactFeatureFlags.native-fb.js b/packages/shared/forks/ReactFeatureFlags.native-fb.js index 7a01d9c9281db..c1d23e898ca83 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-fb.js +++ b/packages/shared/forks/ReactFeatureFlags.native-fb.js @@ -29,6 +29,7 @@ export const { passChildrenWhenCloningPersistedNodes, enableSiblingPrerendering, enableOwnerStacks, + enableRemoveConsolePatches, } = dynamicFlags; // The rest of the flags are static for better dead code elimination. diff --git a/packages/shared/forks/ReactFeatureFlags.native-oss.js b/packages/shared/forks/ReactFeatureFlags.native-oss.js index 26e05087c61db..afe18430eba9d 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-oss.js +++ b/packages/shared/forks/ReactFeatureFlags.native-oss.js @@ -78,6 +78,7 @@ export const enableProfilerTimer = __PROFILE__; export const enableProfilerCommitHooks = __PROFILE__; export const enableProfilerNestedUpdatePhase = __PROFILE__; export const enableUpdaterTracking = __PROFILE__; +export const enableRemoveConsolePatches = false; // Flow magic to verify the exports of this file match the original version. ((((null: any): ExportsType): FeatureFlagsType): ExportsType); diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.js index 7e11aceaf7806..5b4c33f331231 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.js @@ -88,6 +88,7 @@ export const disableDefaultPropsExceptForClasses = true; export const enableObjectFiber = false; export const enableOwnerStacks = false; +export const enableRemoveConsolePatches = true; // Flow magic to verify the exports of this file match the original version. ((((null: any): ExportsType): FeatureFlagsType): ExportsType); diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js index 72731529b17a3..ebc8c5eb97796 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js @@ -68,6 +68,7 @@ export const enableHydrationLaneScheduling = true; export const enableYieldingBeforePassive = false; export const enableThrottledScheduling = false; export const enableViewTransition = false; +export const enableRemoveConsolePatches = false; // Flow magic to verify the exports of this file match the original version. ((((null: any): ExportsType): FeatureFlagsType): ExportsType); diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js index bfd3316019bde..c7c0e627305f0 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js @@ -83,6 +83,7 @@ export const enableYieldingBeforePassive = false; export const enableThrottledScheduling = false; export const enableViewTransition = false; +export const enableRemoveConsolePatches = false; // Flow magic to verify the exports of this file match the original version. ((((null: any): ExportsType): FeatureFlagsType): ExportsType); diff --git a/packages/shared/forks/ReactFeatureFlags.www-dynamic.js b/packages/shared/forks/ReactFeatureFlags.www-dynamic.js index 6c99d5e278df4..b75a0a91756e1 100644 --- a/packages/shared/forks/ReactFeatureFlags.www-dynamic.js +++ b/packages/shared/forks/ReactFeatureFlags.www-dynamic.js @@ -37,6 +37,7 @@ export const enableInfiniteRenderLoopDetection = __VARIANT__; export const enableSiblingPrerendering = __VARIANT__; export const enableUseResourceEffectHook = __VARIANT__; +export const enableRemoveConsolePatches = __VARIANT__; // TODO: These flags are hard-coded to the default values used in open source. // Update the tests so that they pass in either mode, then set these diff --git a/packages/shared/forks/ReactFeatureFlags.www.js b/packages/shared/forks/ReactFeatureFlags.www.js index b317fca356c92..58a7bcd26f9d6 100644 --- a/packages/shared/forks/ReactFeatureFlags.www.js +++ b/packages/shared/forks/ReactFeatureFlags.www.js @@ -36,6 +36,7 @@ export const { syncLaneExpirationMs, transitionLaneExpirationMs, enableOwnerStacks, + enableRemoveConsolePatches, } = dynamicFeatureFlags; // On WWW, __EXPERIMENTAL__ is used for a new modern build. diff --git a/packages/shared/forks/consoleWithStackDev.www.js b/packages/shared/forks/consoleWithStackDev.www.js index c4311efe09f2a..02dc641156039 100644 --- a/packages/shared/forks/consoleWithStackDev.www.js +++ b/packages/shared/forks/consoleWithStackDev.www.js @@ -5,18 +5,27 @@ * LICENSE file in the root directory of this source tree. */ +const {enableRemoveConsolePatches} = require('shared/ReactFeatureFlags'); + // This refers to a WWW module. const warningWWW = require('warning'); let suppressWarning = false; export function setSuppressWarning(newSuppressWarning) { + if (enableRemoveConsolePatches) { + return; + } if (__DEV__) { suppressWarning = newSuppressWarning; } } export function warn(format, ...args) { - if (__DEV__) { + if (enableRemoveConsolePatches) { + if (__DEV__) { + console['warn'](format, ...args); + } + } else if (__DEV__) { if (!suppressWarning) { printWarning('warn', format, args); } @@ -24,7 +33,11 @@ export function warn(format, ...args) { } export function error(format, ...args) { - if (__DEV__) { + if (enableRemoveConsolePatches) { + if (__DEV__) { + console['error'](format, ...args); + } + } else if (__DEV__) { if (!suppressWarning) { printWarning('error', format, args); } @@ -32,6 +45,9 @@ export function error(format, ...args) { } function printWarning(level, format, args) { + if (enableRemoveConsolePatches) { + return; + } if (__DEV__) { const React = require('react'); const ReactSharedInternals =