1. /**
    
  2.  * Copyright (c) Meta Platforms, Inc. and affiliates.
    
  3.  *
    
  4.  * This source code is licensed under the MIT license found in the
    
  5.  * LICENSE file in the root directory of this source tree.
    
  6.  *
    
  7.  * @flow
    
  8.  */
    
  9. 
    
  10. import typeof * as FeatureFlagsType from 'shared/ReactFeatureFlags';
    
  11. import typeof * as ExportsType from './ReactFeatureFlags.www';
    
  12. import typeof * as DynamicFeatureFlags from './ReactFeatureFlags.www-dynamic';
    
  13. 
    
  14. // Re-export dynamic flags from the www version.
    
  15. const dynamicFeatureFlags: DynamicFeatureFlags = require('ReactFeatureFlags');
    
  16. 
    
  17. export const {
    
  18.   disableInputAttributeSyncing,
    
  19.   disableIEWorkarounds,
    
  20.   enableTrustedTypesIntegration,
    
  21.   replayFailedUnitOfWorkWithInvokeGuardedCallback,
    
  22.   enableLegacyFBSupport,
    
  23.   enableDebugTracing,
    
  24.   enableUseRefAccessWarning,
    
  25.   enableLazyContextPropagation,
    
  26.   enableUnifiedSyncLane,
    
  27.   enableTransitionTracing,
    
  28.   enableCustomElementPropertySupport,
    
  29.   enableDeferRootSchedulingToMicrotask,
    
  30.   enableAsyncActions,
    
  31.   alwaysThrottleRetries,
    
  32.   enableDO_NOT_USE_disableStrictPassiveEffect,
    
  33.   disableSchedulerTimeoutInWorkLoop,
    
  34.   enableUseDeferredValueInitialArg,
    
  35. } = dynamicFeatureFlags;
    
  36. 
    
  37. // On WWW, __EXPERIMENTAL__ is used for a new modern build.
    
  38. // It's not used anywhere in production yet.
    
  39. 
    
  40. export const debugRenderPhaseSideEffectsForStrictMode = __DEV__;
    
  41. export const enableProfilerTimer = __PROFILE__;
    
  42. export const enableProfilerCommitHooks = __PROFILE__;
    
  43. export const enableProfilerNestedUpdatePhase = __PROFILE__;
    
  44. export const enableProfilerNestedUpdateScheduledHook: boolean =
    
  45.   __PROFILE__ && dynamicFeatureFlags.enableProfilerNestedUpdateScheduledHook;
    
  46. export const enableUpdaterTracking = __PROFILE__;
    
  47. 
    
  48. export const createRootStrictEffectsByDefault = false;
    
  49. export const enableSuspenseAvoidThisFallback = true;
    
  50. export const enableSuspenseAvoidThisFallbackFizz = false;
    
  51. 
    
  52. export const enableCPUSuspense = true;
    
  53. export const enableFloat = true;
    
  54. export const enableUseMemoCacheHook = true;
    
  55. export const enableUseEffectEventHook = true;
    
  56. export const enableHostSingletons = true;
    
  57. export const enableClientRenderFallbackOnTextMismatch = false;
    
  58. export const enableFilterEmptyStringAttributesDOM = true;
    
  59. 
    
  60. // Logs additional User Timing API marks for use with an experimental profiling tool.
    
  61. export const enableSchedulingProfiler: boolean =
    
  62.   __PROFILE__ && dynamicFeatureFlags.enableSchedulingProfiler;
    
  63. 
    
  64. // Note: we'll want to remove this when we to userland implementation.
    
  65. // For now, we'll turn it on for everyone because it's *already* on for everyone in practice.
    
  66. // At least this will let us stop shipping <Profiler> implementation to all users.
    
  67. export const enableSchedulerDebugging = true;
    
  68. export const disableLegacyContext = __EXPERIMENTAL__;
    
  69. export const enableGetInspectorDataForInstanceInProduction = false;
    
  70. 
    
  71. export const enableCache = true;
    
  72. export const enableLegacyCache = true;
    
  73. export const enableCacheElement = true;
    
  74. export const enableFetchInstrumentation = false;
    
  75. 
    
  76. export const enableFormActions = false;
    
  77. 
    
  78. export const enableBinaryFlight = true;
    
  79. export const enableTaint = false;
    
  80. 
    
  81. export const enablePostpone = false;
    
  82. 
    
  83. export const disableJavaScriptURLs = true;
    
  84. 
    
  85. // TODO: www currently relies on this feature. It's disabled in open source.
    
  86. // Need to remove it.
    
  87. export const disableCommentsAsDOMContainers = false;
    
  88. 
    
  89. export const disableModulePatternComponents = true;
    
  90. 
    
  91. export const enableCreateEventHandleAPI = true;
    
  92. 
    
  93. export const enableScopeAPI = true;
    
  94. 
    
  95. export const enableSuspenseCallback = true;
    
  96. 
    
  97. export const enableLegacyHidden = true;
    
  98. 
    
  99. export const enableComponentStackLocations = true;
    
  100. 
    
  101. export const disableTextareaChildren = __EXPERIMENTAL__;
    
  102. 
    
  103. export const allowConcurrentByDefault = true;
    
  104. 
    
  105. export const consoleManagedByDevToolsDuringStrictMode = true;
    
  106. export const enableServerContext = false;
    
  107. 
    
  108. export const useModernStrictMode = false;
    
  109. export const enableFizzExternalRuntime = true;
    
  110. 
    
  111. export const forceConcurrentByDefaultForTesting = false;
    
  112. 
    
  113. export const useMicrotasksForSchedulingInFabric = false;
    
  114. export const passChildrenWhenCloningPersistedNodes = false;
    
  115. 
    
  116. // Flow magic to verify the exports of this file match the original version.
    
  117. ((((null: any): ExportsType): FeatureFlagsType): ExportsType);