From 83393bc2be12dfcc449fd4c1d0bf86260215e76f Mon Sep 17 00:00:00 2001 From: Andrew Clark Date: Thu, 24 Aug 2017 10:54:03 -0700 Subject: [PATCH] Enable opt-in to async mode (#10535) When the feature flag enableAsyncSubtreeAPI is true, React.unstable_AsyncComponent creates an async subtree. When it's false, it behaves like a normal, sync React component. We use this flag in www as a fail safe so that if we ship an async bug, we can set the flag to false and revert back to sync mode. For open source, we should enable the feature flag. --- .../__tests__/ReactDOMFiberAsync-test.js | 32 ++++++++++++------- .../shared/utils/ReactFeatureFlags.js | 2 +- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/renderers/dom/fiber/__tests__/ReactDOMFiberAsync-test.js b/src/renderers/dom/fiber/__tests__/ReactDOMFiberAsync-test.js index 8b1211c43f..0b96592359 100644 --- a/src/renderers/dom/fiber/__tests__/ReactDOMFiberAsync-test.js +++ b/src/renderers/dom/fiber/__tests__/ReactDOMFiberAsync-test.js @@ -26,18 +26,28 @@ describe('ReactDOMFiberAsync', () => { }); if (ReactDOMFeatureFlags.useFiber) { - it('renders synchronously when feature flag is disabled', () => { - ReactDOM.render( -
Hi
, - container, - ); - expect(container.textContent).toEqual('Hi'); + describe('with feature flag disabled', () => { + beforeEach(() => { + jest.resetModules(); + ReactFeatureFlags = require('ReactFeatureFlags'); + container = document.createElement('div'); + ReactFeatureFlags.enableAsyncSubtreeAPI = false; + ReactDOM = require('react-dom'); + }); - ReactDOM.render( -
Bye
, - container, - ); - expect(container.textContent).toEqual('Bye'); + it('renders synchronously', () => { + ReactDOM.render( +
Hi
, + container, + ); + expect(container.textContent).toEqual('Hi'); + + ReactDOM.render( +
Bye
, + container, + ); + expect(container.textContent).toEqual('Bye'); + }); }); describe('with feature flag enabled', () => { diff --git a/src/renderers/shared/utils/ReactFeatureFlags.js b/src/renderers/shared/utils/ReactFeatureFlags.js index ae3a710354..e0c72dd380 100644 --- a/src/renderers/shared/utils/ReactFeatureFlags.js +++ b/src/renderers/shared/utils/ReactFeatureFlags.js @@ -14,7 +14,7 @@ var ReactFeatureFlags = { disableNewFiberFeatures: false, - enableAsyncSubtreeAPI: false, + enableAsyncSubtreeAPI: true, }; module.exports = ReactFeatureFlags;