@samitouri / QOS-React / commits / 0dc0ddc1ef

Rename AsyncMode -> ConcurrentMode (#13732)

* Rename AsyncMode -> ConcurrentMode

Dominic Gannaway committed Sep 26, 2018 at 17:13 UTC 0dc0ddc1ef5f90fe48b58f1a1ba753757961fc74
29 files changed +211 -170
fixtures/unstable-async/time-slicing/src/index.js
+2 -2
@@ -147,8 +147,8 @@ class App extends PureComponent {
147
148 const container = document.getElementById('root');
149 render(
150 - <React.unstable_AsyncMode>
150 + <React.unstable_ConcurrentMode>
151 <App />
152 - </React.unstable_AsyncMode>,
152 + </React.unstable_ConcurrentMode>,
153 container
154 );
packages/react-dom/src/__tests__/ReactDOMFiberAsync-test.internal.js
+16 -16
@@ -14,7 +14,7 @@ let ReactFeatureFlags = require('shared/ReactFeatureFlags');
14
15 let ReactDOM;
16
17 -const AsyncMode = React.unstable_AsyncMode;
17 +const ConcurrentMode = React.unstable_ConcurrentMode;
18
19 const setUntrackedInputValue = Object.getOwnPropertyDescriptor(
20 HTMLInputElement.prototype,
@@ -108,9 +108,9 @@ describe('ReactDOMFiberAsync', () => {
108 }
109 }
110 ReactDOM.render(
111 - <AsyncMode>
111 + <ConcurrentMode>
112 <Counter />
113 - </AsyncMode>,
113 + </ConcurrentMode>,
114 container,
115 );
116 expect(asyncValueRef.current.textContent).toBe('');
@@ -137,17 +137,17 @@ describe('ReactDOMFiberAsync', () => {
137
138 it('renders synchronously', () => {
139 ReactDOM.render(
140 - <AsyncMode>
140 + <ConcurrentMode>
141 <div>Hi</div>
142 - </AsyncMode>,
142 + </ConcurrentMode>,
143 container,
144 );
145 expect(container.textContent).toEqual('Hi');
146
147 ReactDOM.render(
148 - <AsyncMode>
148 + <ConcurrentMode>
149 <div>Bye</div>
150 - </AsyncMode>,
150 + </ConcurrentMode>,
151 container,
152 );
153 expect(container.textContent).toEqual('Bye');
@@ -197,7 +197,7 @@ describe('ReactDOMFiberAsync', () => {
197 expect(container.textContent).toEqual('1');
198 });
199
200 - it('AsyncMode creates an async subtree', () => {
200 + it('ConcurrentMode creates an async subtree', () => {
201 let instance;
202 class Component extends React.Component {
203 state = {step: 0};
@@ -208,9 +208,9 @@ describe('ReactDOMFiberAsync', () => {
208 }
209
210 ReactDOM.render(
211 - <AsyncMode>
211 + <ConcurrentMode>
212 <Component />
213 - </AsyncMode>,
213 + </ConcurrentMode>,
214 container,
215 );
216 jest.runAllTimers();
@@ -233,9 +233,9 @@ describe('ReactDOMFiberAsync', () => {
233
234 ReactDOM.render(
235 <div>
236 - <AsyncMode>
236 + <ConcurrentMode>
237 <Child />
238 - </AsyncMode>
238 + </ConcurrentMode>
239 </div>,
240 container,
241 );
@@ -364,9 +364,9 @@ describe('ReactDOMFiberAsync', () => {
364 }
365
366 ReactDOM.render(
367 - <AsyncMode>
367 + <ConcurrentMode>
368 <Component />
369 - </AsyncMode>,
369 + </ConcurrentMode>,
370 container,
371 );
372 jest.runAllTimers();
@@ -409,9 +409,9 @@ describe('ReactDOMFiberAsync', () => {
409 }
410 }
411 ReactDOM.render(
412 - <AsyncMode>
412 + <ConcurrentMode>
413 <Counter />
414 - </AsyncMode>,
414 + </ConcurrentMode>,
415 container,
416 );
417 expect(container.textContent).toEqual('0');
packages/react-dom/src/__tests__/ReactDOMRoot-test.js
+8 -8
@@ -12,7 +12,7 @@
12 let React = require('react');
13 let ReactDOM = require('react-dom');
14 let ReactDOMServer = require('react-dom/server');
15 -let AsyncMode = React.unstable_AsyncMode;
15 +let ConcurrentMode = React.unstable_ConcurrentMode;
16
17 describe('ReactDOMRoot', () => {
18 let container;
@@ -63,7 +63,7 @@ describe('ReactDOMRoot', () => {
63 React = require('react');
64 ReactDOM = require('react-dom');
65 ReactDOMServer = require('react-dom/server');
66 - AsyncMode = React.unstable_AsyncMode;
66 + ConcurrentMode = React.unstable_ConcurrentMode;
67 });
68
69 it('renders children', () => {
@@ -85,7 +85,7 @@ describe('ReactDOMRoot', () => {
85
86 it('`root.render` returns a thenable work object', () => {
87 const root = ReactDOM.unstable_createRoot(container);
88 - const work = root.render(<AsyncMode>Hi</AsyncMode>);
88 + const work = root.render(<ConcurrentMode>Hi</ConcurrentMode>);
89 let ops = [];
90 work.then(() => {
91 ops.push('inside callback: ' + container.textContent);
@@ -103,7 +103,7 @@ describe('ReactDOMRoot', () => {
103
104 it('resolves `work.then` callback synchronously if the work already committed', () => {
105 const root = ReactDOM.unstable_createRoot(container);
106 - const work = root.render(<AsyncMode>Hi</AsyncMode>);
106 + const work = root.render(<ConcurrentMode>Hi</ConcurrentMode>);
107 jest.runAllTimers();
108 let ops = [];
109 work.then(() => {
@@ -196,9 +196,9 @@ describe('ReactDOMRoot', () => {
196 const root = ReactDOM.unstable_createRoot(container);
197 const batch = root.createBatch();
198 batch.render(
199 - <AsyncMode>
199 + <ConcurrentMode>
200 <App />
201 - </AsyncMode>,
201 + </ConcurrentMode>,
202 );
203
204 jest.runAllTimers();
@@ -246,7 +246,7 @@ describe('ReactDOMRoot', () => {
246 it('can wait for a batch to finish', () => {
247 const root = ReactDOM.unstable_createRoot(container);
248 const batch = root.createBatch();
249 - batch.render(<AsyncMode>Foo</AsyncMode>);
249 + batch.render(<ConcurrentMode>Foo</ConcurrentMode>);
250
251 jest.runAllTimers();
252
@@ -286,7 +286,7 @@ describe('ReactDOMRoot', () => {
286
287 it('can commit an empty batch', () => {
288 const root = ReactDOM.unstable_createRoot(container);
289 - root.render(<AsyncMode>1</AsyncMode>);
289 + root.render(<ConcurrentMode>1</ConcurrentMode>);
290
291 advanceCurrentTime(2000);
292 // This batch has a later expiration time than the earlier update.
packages/react-dom/src/__tests__/ReactDOMServerIntegrationModes-test.js
+22 -22
@@ -104,36 +104,36 @@ describe('ReactDOMServerIntegration', () => {
104 });
105 });
106
107 - describe('React.unstable_AsyncMode', () => {
108 - itRenders('an async mode with one child', async render => {
107 + describe('React.unstable_ConcurrentMode', () => {
108 + itRenders('an concurrent mode with one child', async render => {
109 let e = await render(
110 - <React.unstable_AsyncMode>
110 + <React.unstable_ConcurrentMode>
111 <div>text1</div>
112 - </React.unstable_AsyncMode>,
112 + </React.unstable_ConcurrentMode>,
113 );
114 let parent = e.parentNode;
115 expect(parent.childNodes[0].tagName).toBe('DIV');
116 });
117
118 - itRenders('an async mode with several children', async render => {
118 + itRenders('an concurrent mode with several children', async render => {
119 let Header = props => {
120 return <p>header</p>;
121 };
122 let Footer = props => {
123 return (
124 - <React.unstable_AsyncMode>
124 + <React.unstable_ConcurrentMode>
125 <h2>footer</h2>
126 <h3>about</h3>
127 - </React.unstable_AsyncMode>
127 + </React.unstable_ConcurrentMode>
128 );
129 };
130 let e = await render(
131 - <React.unstable_AsyncMode>
131 + <React.unstable_ConcurrentMode>
132 <div>text1</div>
133 <span>text2</span>
134 <Header />
135 <Footer />
136 - </React.unstable_AsyncMode>,
136 + </React.unstable_ConcurrentMode>,
137 );
138 let parent = e.parentNode;
139 expect(parent.childNodes[0].tagName).toBe('DIV');
@@ -143,23 +143,23 @@ describe('ReactDOMServerIntegration', () => {
143 expect(parent.childNodes[4].tagName).toBe('H3');
144 });
145
146 - itRenders('a nested async mode', async render => {
146 + itRenders('a nested concurrent mode', async render => {
147 let e = await render(
148 - <React.unstable_AsyncMode>
149 - <React.unstable_AsyncMode>
148 + <React.unstable_ConcurrentMode>
149 + <React.unstable_ConcurrentMode>
150 <div>text1</div>
151 - </React.unstable_AsyncMode>
151 + </React.unstable_ConcurrentMode>
152 <span>text2</span>
153 - <React.unstable_AsyncMode>
154 - <React.unstable_AsyncMode>
155 - <React.unstable_AsyncMode>
153 + <React.unstable_ConcurrentMode>
154 + <React.unstable_ConcurrentMode>
155 + <React.unstable_ConcurrentMode>
156 {null}
157 <p />
158 - </React.unstable_AsyncMode>
158 + </React.unstable_ConcurrentMode>
159 {false}
160 - </React.unstable_AsyncMode>
161 - </React.unstable_AsyncMode>
162 - </React.unstable_AsyncMode>,
160 + </React.unstable_ConcurrentMode>
161 + </React.unstable_ConcurrentMode>
162 + </React.unstable_ConcurrentMode>,
163 );
164 let parent = e.parentNode;
165 expect(parent.childNodes[0].tagName).toBe('DIV');
@@ -167,8 +167,8 @@ describe('ReactDOMServerIntegration', () => {
167 expect(parent.childNodes[2].tagName).toBe('P');
168 });
169
170 - itRenders('an empty async mode', async render => {
171 - expect(await render(<React.unstable_AsyncMode />)).toBe(null);
170 + itRenders('an empty concurrent mode', async render => {
171 + expect(await render(<React.unstable_ConcurrentMode />)).toBe(null);
172 });
173 });
174 });
packages/react-dom/src/client/ReactDOM.js
+8 -4
@@ -330,8 +330,12 @@ ReactWork.prototype._onCommit = function(): void {
330 }
331 };
332
333 -function ReactRoot(container: Container, isAsync: boolean, hydrate: boolean) {
334 - const root = DOMRenderer.createContainer(container, isAsync, hydrate);
333 +function ReactRoot(
334 + container: Container,
335 + isConcurrent: boolean,
336 + hydrate: boolean,
337 +) {
338 + const root = DOMRenderer.createContainer(container, isConcurrent, hydrate);
339 this._internalRoot = root;
340 }
341 ReactRoot.prototype.render = function(
@@ -497,8 +501,8 @@ function legacyCreateRootFromDOMContainer(
501 }
502 }
503 // Legacy roots are not async by default.
500 - const isAsync = false;
501 - return new ReactRoot(container, isAsync, shouldHydrate);
504 + const isConcurrent = false;
505 + return new ReactRoot(container, isConcurrent, shouldHydrate);
506 }
507
508 function legacyRenderSubtreeIntoContainer(
packages/react-dom/src/events/__tests__/SimpleEventPlugin-test.internal.js
+2 -2
@@ -426,9 +426,9 @@ describe('SimpleEventPlugin', function() {
426 // Intentionally not using the updater form here
427 () => this.setState({highPriCount: this.state.highPriCount + 1})
428 }>
429 - <React.unstable_AsyncMode>
429 + <React.unstable_ConcurrentMode>
430 <Button highPriCount={this.state.highPriCount} />
431 - </React.unstable_AsyncMode>
431 + </React.unstable_ConcurrentMode>
432 </div>
433 );
434 }
packages/react-dom/src/server/ReactPartialRenderer.js
+2 -2
@@ -32,7 +32,7 @@ import {
32 REACT_FORWARD_REF_TYPE,
33 REACT_FRAGMENT_TYPE,
34 REACT_STRICT_MODE_TYPE,
35 - REACT_ASYNC_MODE_TYPE,
35 + REACT_CONCURRENT_MODE_TYPE,
36 REACT_PLACEHOLDER_TYPE,
37 REACT_PORTAL_TYPE,
38 REACT_PROFILER_TYPE,
@@ -896,7 +896,7 @@ class ReactDOMServerRenderer {
896
897 switch (elementType) {
898 case REACT_STRICT_MODE_TYPE:
899 - case REACT_ASYNC_MODE_TYPE:
899 + case REACT_CONCURRENT_MODE_TYPE:
900 case REACT_PROFILER_TYPE:
901 case REACT_FRAGMENT_TYPE: {
902 const nextChildren = toArray(
packages/react-is/README.md
+3 -3
@@ -44,14 +44,14 @@ ReactIs.isValidElementType(React.createFactory("div")); // true
44
45 ### Determining an Element's Type
46
47 -#### AsyncMode
47 +#### ConcurrentMode
48
49 ```js
50 import React from "react";
51 import * as ReactIs from 'react-is';
52
53 -ReactIs.isAsyncMode(<React.unstable_AsyncMode />); // true
54 -ReactIs.typeOf(<React.unstable_AsyncMode />) === ReactIs.AsyncMode; // true
53 +ReactIs.isConcurrentMode(<React.unstable_ConcurrentMode />); // true
54 +ReactIs.typeOf(<React.unstable_ConcurrentMode />) === ReactIs.ConcurrentMode; // true
55 ```
56
57 #### Context
packages/react-is/src/ReactIs.js
+24 -4
@@ -10,7 +10,7 @@
10 'use strict';
11
12 import {
13 - REACT_ASYNC_MODE_TYPE,
13 + REACT_CONCURRENT_MODE_TYPE,
14 REACT_CONTEXT_TYPE,
15 REACT_ELEMENT_TYPE,
16 REACT_FORWARD_REF_TYPE,
@@ -21,6 +21,7 @@ import {
21 REACT_STRICT_MODE_TYPE,
22 } from 'shared/ReactSymbols';
23 import isValidElementType from 'shared/isValidElementType';
24 +import lowPriorityWarning from 'shared/lowPriorityWarning';
25
26 export function typeOf(object: any) {
27 if (typeof object === 'object' && object !== null) {
@@ -31,7 +32,7 @@ export function typeOf(object: any) {
32 const type = object.type;
33
34 switch (type) {
34 - case REACT_ASYNC_MODE_TYPE:
35 + case REACT_CONCURRENT_MODE_TYPE:
36 case REACT_FRAGMENT_TYPE:
37 case REACT_PROFILER_TYPE:
38 case REACT_STRICT_MODE_TYPE:
@@ -56,7 +57,9 @@ export function typeOf(object: any) {
57 return undefined;
58 }
59
59 -export const AsyncMode = REACT_ASYNC_MODE_TYPE;
60 +// AsyncMode alias is deprecated along with isAsyncMode
61 +export const AsyncMode = REACT_CONCURRENT_MODE_TYPE;
62 +export const ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
63 export const ContextConsumer = REACT_CONTEXT_TYPE;
64 export const ContextProvider = REACT_PROVIDER_TYPE;
65 export const Element = REACT_ELEMENT_TYPE;
@@ -68,8 +71,25 @@ export const StrictMode = REACT_STRICT_MODE_TYPE;
71
72 export {isValidElementType};
73
74 +let hasWarnedAboutDeprecatedIsAsyncMode = false;
75 +
76 +// AsyncMode should be deprecated
77 export function isAsyncMode(object: any) {
72 - return typeOf(object) === REACT_ASYNC_MODE_TYPE;
78 + if (__DEV__) {
79 + if (!hasWarnedAboutDeprecatedIsAsyncMode) {
80 + hasWarnedAboutDeprecatedIsAsyncMode = true;
81 + lowPriorityWarning(
82 + false,
83 + 'The ReactIs.isAsyncMode() alias has been deprecated, ' +
84 + 'and will be removed in React 17+. Update your code to use ' +
85 + 'ReactIs.isConcurrentMode() instead. It has the exact same API.',
86 + );
87 + }
88 + }
89 + return isConcurrentMode(object);
90 +}
91 +export function isConcurrentMode(object: any) {
92 + return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
93 }
94 export function isContextConsumer(object: any) {
95 return typeOf(object) === REACT_CONTEXT_TYPE;
packages/react-is/src/__tests__/ReactIs-test.js
+17 -11
@@ -56,7 +56,9 @@ describe('ReactIs', () => {
56 true,
57 );
58 expect(ReactIs.isValidElementType(React.Fragment)).toEqual(true);
59 - expect(ReactIs.isValidElementType(React.unstable_AsyncMode)).toEqual(true);
59 + expect(ReactIs.isValidElementType(React.unstable_ConcurrentMode)).toEqual(
60 + true,
61 + );
62 expect(ReactIs.isValidElementType(React.StrictMode)).toEqual(true);
63
64 expect(ReactIs.isValidElementType(true)).toEqual(false);
@@ -68,13 +70,17 @@ describe('ReactIs', () => {
70 });
71
72 it('should identify async mode', () => {
71 - expect(ReactIs.typeOf(<React.unstable_AsyncMode />)).toBe(
72 - ReactIs.AsyncMode,
73 + expect(ReactIs.typeOf(<React.unstable_ConcurrentMode />)).toBe(
74 + ReactIs.ConcurrentMode,
75 + );
76 + expect(ReactIs.isConcurrentMode(<React.unstable_ConcurrentMode />)).toBe(
77 + true,
78 + );
79 + expect(ReactIs.isConcurrentMode({type: ReactIs.ConcurrentMode})).toBe(
80 + false,
81 );
74 - expect(ReactIs.isAsyncMode(<React.unstable_AsyncMode />)).toBe(true);
75 - expect(ReactIs.isAsyncMode({type: ReactIs.AsyncMode})).toBe(false);
76 - expect(ReactIs.isAsyncMode(<React.StrictMode />)).toBe(false);
77 - expect(ReactIs.isAsyncMode(<div />)).toBe(false);
82 + expect(ReactIs.isConcurrentMode(<React.StrictMode />)).toBe(false);
83 + expect(ReactIs.isConcurrentMode(<div />)).toBe(false);
84 });
85
86 it('should identify context consumers', () => {
@@ -108,7 +114,7 @@ describe('ReactIs', () => {
114 expect(ReactIs.isElement(<Context.Provider />)).toBe(true);
115 expect(ReactIs.isElement(<Context.Consumer />)).toBe(true);
116 expect(ReactIs.isElement(<React.Fragment />)).toBe(true);
111 - expect(ReactIs.isElement(<React.unstable_AsyncMode />)).toBe(true);
117 + expect(ReactIs.isElement(<React.unstable_ConcurrentMode />)).toBe(true);
118 expect(ReactIs.isElement(<React.StrictMode />)).toBe(true);
119 });
120
@@ -117,7 +123,7 @@ describe('ReactIs', () => {
123 expect(ReactIs.typeOf(<RefForwardingComponent />)).toBe(ReactIs.ForwardRef);
124 expect(ReactIs.isForwardRef(<RefForwardingComponent />)).toBe(true);
125 expect(ReactIs.isForwardRef({type: ReactIs.StrictMode})).toBe(false);
120 - expect(ReactIs.isForwardRef(<React.unstable_AsyncMode />)).toBe(false);
126 + expect(ReactIs.isForwardRef(<React.unstable_ConcurrentMode />)).toBe(false);
127 expect(ReactIs.isForwardRef(<div />)).toBe(false);
128 });
129
@@ -142,7 +148,7 @@ describe('ReactIs', () => {
148 expect(ReactIs.typeOf(<React.StrictMode />)).toBe(ReactIs.StrictMode);
149 expect(ReactIs.isStrictMode(<React.StrictMode />)).toBe(true);
150 expect(ReactIs.isStrictMode({type: ReactIs.StrictMode})).toBe(false);
145 - expect(ReactIs.isStrictMode(<React.unstable_AsyncMode />)).toBe(false);
151 + expect(ReactIs.isStrictMode(<React.unstable_ConcurrentMode />)).toBe(false);
152 expect(ReactIs.isStrictMode(<div />)).toBe(false);
153 });
154
@@ -156,7 +162,7 @@ describe('ReactIs', () => {
162 ),
163 ).toBe(true);
164 expect(ReactIs.isProfiler({type: ReactIs.unstable_Profiler})).toBe(false);
159 - expect(ReactIs.isProfiler(<React.unstable_AsyncMode />)).toBe(false);
165 + expect(ReactIs.isProfiler(<React.unstable_ConcurrentMode />)).toBe(false);
166 expect(ReactIs.isProfiler(<div />)).toBe(false);
167 });
168 });
packages/react-noop-renderer/src/createReactNoop.js
+12 -6
@@ -451,13 +451,13 @@ function createReactNoop(reconciler: Function, useMutation: boolean) {
451
452 getOrCreateRootContainer(
453 rootID: string = DEFAULT_ROOT_ID,
454 - isAsync: boolean = false,
454 + isConcurrent: boolean = false,
455 ) {
456 let root = roots.get(rootID);
457 if (!root) {
458 const container = {rootID: rootID, children: []};
459 rootContainers.set(rootID, container);
460 - root = NoopRenderer.createContainer(container, isAsync, false);
460 + root = NoopRenderer.createContainer(container, isConcurrent, false);
461 roots.set(rootID, root);
462 }
463 return root.current.stateNode.containerInfo;
@@ -478,8 +478,11 @@ function createReactNoop(reconciler: Function, useMutation: boolean) {
478
479 renderLegacySyncRoot(element: React$Element<any>, callback: ?Function) {
480 const rootID = DEFAULT_ROOT_ID;
481 - const isAsync = false;
482 - const container = ReactNoop.getOrCreateRootContainer(rootID, isAsync);
481 + const isConcurrent = false;
482 + const container = ReactNoop.getOrCreateRootContainer(
483 + rootID,
484 + isConcurrent,
485 + );
486 const root = roots.get(container.rootID);
487 NoopRenderer.updateContainer(element, root, null, callback);
488 },
@@ -489,8 +492,11 @@ function createReactNoop(reconciler: Function, useMutation: boolean) {
492 rootID: string,
493 callback: ?Function,
494 ) {
492 - const isAsync = true;
493 - const container = ReactNoop.getOrCreateRootContainer(rootID, isAsync);
495 + const isConcurrent = true;
496 + const container = ReactNoop.getOrCreateRootContainer(
497 + rootID,
498 + isConcurrent,
499 + );
500 const root = roots.get(container.rootID);
501 NoopRenderer.updateContainer(element, root, null, callback);
502 },
packages/react-reconciler/src/ReactFiber.js
+12 -7
@@ -42,7 +42,12 @@ import getComponentName from 'shared/getComponentName';
42
43 import {isDevToolsPresent} from './ReactFiberDevToolsHook';
44 import {NoWork} from './ReactFiberExpirationTime';
45 -import {NoContext, AsyncMode, ProfileMode, StrictMode} from './ReactTypeOfMode';
45 +import {
46 + NoContext,
47 + ConcurrentMode,
48 + ProfileMode,
49 + StrictMode,
50 +} from './ReactTypeOfMode';
51 import {
52 REACT_FORWARD_REF_TYPE,
53 REACT_FRAGMENT_TYPE,
@@ -50,7 +55,7 @@ import {
55 REACT_PROFILER_TYPE,
56 REACT_PROVIDER_TYPE,
57 REACT_CONTEXT_TYPE,
53 - REACT_ASYNC_MODE_TYPE,
58 + REACT_CONCURRENT_MODE_TYPE,
59 REACT_PLACEHOLDER_TYPE,
60 } from 'shared/ReactSymbols';
61
@@ -133,7 +138,7 @@ export type Fiber = {|
138 firstContextDependency: ContextDependency<mixed> | null,
139
140 // Bitfield that describes properties about the fiber and its subtree. E.g.
136 - // the AsyncMode flag indicates whether the subtree should be async-by-
141 + // the ConcurrentMode flag indicates whether the subtree should be async-by-
142 // default. When a fiber is created, it inherits the mode of its
143 // parent. Additional flags can be set at creation time, but after that the
144 // value should remain unchanged throughout the fiber's lifetime, particularly
@@ -387,8 +392,8 @@ export function createWorkInProgress(
392 return workInProgress;
393 }
394
390 -export function createHostRootFiber(isAsync: boolean): Fiber {
391 - let mode = isAsync ? AsyncMode | StrictMode : NoContext;
395 +export function createHostRootFiber(isConcurrent: boolean): Fiber {
396 + let mode = isConcurrent ? ConcurrentMode | StrictMode : NoContext;
397
398 if (enableProfilerTimer && isDevToolsPresent) {
399 // Always collect profile timings when DevTools are present.
@@ -429,9 +434,9 @@ export function createFiberFromElement(
434 expirationTime,
435 key,
436 );
432 - case REACT_ASYNC_MODE_TYPE:
437 + case REACT_CONCURRENT_MODE_TYPE:
438 fiberTag = Mode;
434 - mode |= AsyncMode | StrictMode;
439 + mode |= ConcurrentMode | StrictMode;
440 break;
441 case REACT_STRICT_MODE_TYPE:
442 fiberTag = Mode;
packages/react-reconciler/src/ReactFiberBeginWork.js
+2 -2
@@ -66,7 +66,7 @@ import {
66 } from './ReactChildFiber';
67 import {processUpdateQueue} from './ReactUpdateQueue';
68 import {NoWork, Never} from './ReactFiberExpirationTime';
69 -import {AsyncMode, StrictMode} from './ReactTypeOfMode';
69 +import {ConcurrentMode, StrictMode} from './ReactTypeOfMode';
70 import {
71 shouldSetTextContent,
72 shouldDeprioritizeSubtree,
@@ -568,7 +568,7 @@ function updateHostComponent(current, workInProgress, renderExpirationTime) {
568 // Check the host config to see if the children are offscreen/hidden.
569 if (
570 renderExpirationTime !== Never &&
571 - workInProgress.mode & AsyncMode &&
571 + workInProgress.mode & ConcurrentMode &&
572 shouldDeprioritizeSubtree(type, nextProps)
573 ) {
574 // Schedule this fiber to re-render at offscreen priority. Then bailout.
packages/react-reconciler/src/ReactFiberReconciler.js
+2 -2
@@ -211,10 +211,10 @@ function findHostInstance(component: Object): PublicInstance | null {
211
212 export function createContainer(
213 containerInfo: Container,
214 - isAsync: boolean,
214 + isConcurrent: boolean,
215 hydrate: boolean,
216 ): OpaqueRoot {
217 - return createFiberRoot(containerInfo, isAsync, hydrate);
217 + return createFiberRoot(containerInfo, isConcurrent, hydrate);
218 }
219
220 export function updateContainer(
packages/react-reconciler/src/ReactFiberRoot.js
+2 -2
@@ -101,12 +101,12 @@ export type FiberRoot = {
101
102 export function createFiberRoot(
103 containerInfo: any,
104 - isAsync: boolean,
104 + isConcurrent: boolean,
105 hydrate: boolean,
106 ): FiberRoot {
107 // Cyclic construction. This cheats the type system right now because
108 // stateNode is any.
109 - const uninitializedFiber = createHostRootFiber(isAsync);
109 + const uninitializedFiber = createHostRootFiber(isConcurrent);
110
111 let root;
112 if (enableSchedulerTracing) {
packages/react-reconciler/src/ReactFiberScheduler.js
+2 -2
@@ -112,7 +112,7 @@ import {
112 computeAsyncExpiration,
113 computeInteractiveExpiration,
114 } from './ReactFiberExpirationTime';
115 -import {AsyncMode, ProfileMode} from './ReactTypeOfMode';
115 +import {ConcurrentMode, ProfileMode} from './ReactTypeOfMode';
116 import {enqueueUpdate, resetCurrentlyProcessingQueue} from './ReactUpdateQueue';
117 import {createCapturedValue} from './ReactCapturedValue';
118 import {
@@ -1545,7 +1545,7 @@ function computeExpirationForFiber(currentTime: ExpirationTime, fiber: Fiber) {
1545 } else {
1546 // No explicit expiration context was set, and we're not currently
1547 // performing work. Calculate a new expiration time.
1548 - if (fiber.mode & AsyncMode) {
1548 + if (fiber.mode & ConcurrentMode) {
1549 if (isBatchingInteractiveUpdates) {
1550 // This is an interactive update
1551 expirationTime = computeInteractiveExpiration(currentTime);
packages/react-reconciler/src/ReactFiberUnwindWork.js
+3 -3
@@ -38,7 +38,7 @@ import {
38 enableSuspense,
39 enableSchedulerTracing,
40 } from 'shared/ReactFeatureFlags';
41 -import {StrictMode, AsyncMode} from './ReactTypeOfMode';
41 +import {StrictMode, ConcurrentMode} from './ReactTypeOfMode';
42
43 import {createCapturedValue} from './ReactCapturedValue';
44 import {
@@ -211,10 +211,10 @@ function throwException(
211 if (!didTimeout) {
212 // Found the nearest boundary.
213
214 - // If the boundary is not in async mode, we should not suspend, and
214 + // If the boundary is not in concurrent mode, we should not suspend, and
215 // likewise, when the promise resolves, we should ping synchronously.
216 const pingTime =
217 - (workInProgress.mode & AsyncMode) === NoEffect
217 + (workInProgress.mode & ConcurrentMode) === NoEffect
218 ? Sync
219 : renderExpirationTime;
220
packages/react-reconciler/src/ReactTypeOfMode.js
+1 -1
@@ -10,6 +10,6 @@
10 export type TypeOfMode = number;
11
12 export const NoContext = 0b000;
13 -export const AsyncMode = 0b001;
13 +export const ConcurrentMode = 0b001;
14 export const StrictMode = 0b010;
15 export const ProfileMode = 0b100;
packages/react-reconciler/src/__tests__/ReactIncrementalPerf-test.internal.js
+3 -3
@@ -186,14 +186,14 @@ describe('ReactDebugFiberPerf', () => {
186 expect(getFlameChart()).toMatchSnapshot();
187 });
188
189 - it('does not include AsyncMode, StrictMode, or Profiler components in measurements', () => {
189 + it('does not include ConcurrentMode, StrictMode, or Profiler components in measurements', () => {
190 ReactNoop.render(
191 <React.unstable_Profiler id="test" onRender={jest.fn()}>
192 <React.StrictMode>
193 <Parent>
194 - <React.unstable_AsyncMode>
194 + <React.unstable_ConcurrentMode>
195 <Child />
196 - </React.unstable_AsyncMode>
196 + </React.unstable_ConcurrentMode>
197 </Parent>
198 </React.StrictMode>
199 </React.unstable_Profiler>,
packages/react-reconciler/src/__tests__/ReactSuspense-test.internal.js
+12 -12
@@ -5,7 +5,7 @@ let ReactNoop;
5 let SimpleCacheProvider;
6 let Placeholder;
7 let StrictMode;
8 -let AsyncMode;
8 +let ConcurrentMode;
9 let lazy;
10
11 let cache;
@@ -25,7 +25,7 @@ describe('ReactSuspense', () => {
25 SimpleCacheProvider = require('simple-cache-provider');
26 Placeholder = React.Placeholder;
27 StrictMode = React.StrictMode;
28 - AsyncMode = React.unstable_AsyncMode;
28 + ConcurrentMode = React.unstable_ConcurrentMode;
29 lazy = React.lazy;
30
31 function invalidateCache() {
@@ -927,10 +927,10 @@ describe('ReactSuspense', () => {
927 function App() {
928 return (
929 <Placeholder delayMs={1000} fallback={<Spinner />}>
930 - <AsyncMode>
930 + <ConcurrentMode>
931 <UpdatingText ref={text} />
932 <Text text="Sibling" />
933 - </AsyncMode>
933 + </ConcurrentMode>
934 </Placeholder>
935 );
936 }
@@ -1004,7 +1004,7 @@ describe('ReactSuspense', () => {
1004 return (
1005 <StrictMode>
1006 <Placeholder delayMs={1000} fallback={<Text text="Loading..." />}>
1007 - <AsyncMode>
1007 + <ConcurrentMode>
1008 <UpdatingText ref={text1} initialText="Async: 1">
1009 {text => (
1010 <Fragment>
@@ -1014,9 +1014,9 @@ describe('ReactSuspense', () => {
1014 </Fragment>
1015 )}
1016 </UpdatingText>
1017 - </AsyncMode>
1017 + </ConcurrentMode>
1018 </Placeholder>
1019 - <AsyncMode>
1019 + <ConcurrentMode>
1020 <UpdatingText ref={text2} initialText="Sync: 1">
1021 {text => (
1022 <Fragment>
@@ -1026,7 +1026,7 @@ describe('ReactSuspense', () => {
1026 </Fragment>
1027 )}
1028 </UpdatingText>
1029 - </AsyncMode>
1029 + </ConcurrentMode>
1030 </StrictMode>
1031 );
1032 }
@@ -1136,7 +1136,7 @@ describe('ReactSuspense', () => {
1136 return (
1137 <Fragment>
1138 <Placeholder delayMs={1000} fallback={<Text text="Loading..." />}>
1139 - <AsyncMode>
1139 + <ConcurrentMode>
1140 <UpdatingText ref={text1} initialText="Async: 1">
1141 {text => (
1142 <Fragment>
@@ -1146,9 +1146,9 @@ describe('ReactSuspense', () => {
1146 </Fragment>
1147 )}
1148 </UpdatingText>
1149 - </AsyncMode>
1149 + </ConcurrentMode>
1150 </Placeholder>
1151 - <AsyncMode>
1151 + <ConcurrentMode>
1152 <UpdatingText ref={text2} initialText="Sync: 1">
1153 {text => (
1154 <Fragment>
@@ -1158,7 +1158,7 @@ describe('ReactSuspense', () => {
1158 </Fragment>
1159 )}
1160 </UpdatingText>
1161 - </AsyncMode>
1161 + </ConcurrentMode>
1162 </Fragment>
1163 );
1164 }
packages/react-reconciler/src/__tests__/__snapshots__/ReactIncrementalPerf-test.internal.js.snap
+1 -1
@@ -91,7 +91,7 @@ exports[`ReactDebugFiberPerf deduplicates lifecycle names during commit to reduc
91 "
92 `;
93
94 -exports[`ReactDebugFiberPerf does not include AsyncMode, StrictMode, or Profiler components in measurements 1`] = `
94 +exports[`ReactDebugFiberPerf does not include ConcurrentMode, StrictMode, or Profiler components in measurements 1`] = `
95 "⚛ (Waiting for async callback... will force flush in 5250 ms)
96
97 // Mount
packages/react-test-renderer/src/ReactTestRenderer.js
+5 -5
@@ -39,7 +39,7 @@ import * as TestRendererScheduling from './ReactTestRendererScheduling';
39
40 type TestRendererOptions = {
41 createNodeMock: (element: React$Element<any>) => any,
42 - unstable_isAsync: boolean,
42 + unstable_isConcurrent: boolean,
43 };
44
45 type ReactTestRendererJSON = {|
@@ -419,13 +419,13 @@ function propsMatch(props: Object, filter: Object): boolean {
419 const ReactTestRendererFiber = {
420 create(element: React$Element<any>, options: TestRendererOptions) {
421 let createNodeMock = defaultTestOptions.createNodeMock;
422 - let isAsync = false;
422 + let isConcurrent = false;
423 if (typeof options === 'object' && options !== null) {
424 if (typeof options.createNodeMock === 'function') {
425 createNodeMock = options.createNodeMock;
426 }
427 - if (options.unstable_isAsync === true) {
428 - isAsync = true;
427 + if (options.unstable_isConcurrent === true) {
428 + isConcurrent = true;
429 }
430 }
431 let container = {
@@ -435,7 +435,7 @@ const ReactTestRendererFiber = {
435 };
436 let root: FiberRoot | null = TestRenderer.createContainer(
437 container,
438 - isAsync,
438 + isConcurrent,
439 false,
440 );
441 invariant(root != null, 'something went wrong');
packages/react-test-renderer/src/__tests__/ReactTestRendererAsync-test.js
+7 -7
@@ -25,7 +25,7 @@ describe('ReactTestRendererAsync', () => {
25 return props.children;
26 }
27 const renderer = ReactTestRenderer.create(<Foo>Hi</Foo>, {
28 - unstable_isAsync: true,
28 + unstable_isConcurrent: true,
29 });
30
31 // Before flushing, nothing has mounted.
@@ -59,7 +59,7 @@ describe('ReactTestRendererAsync', () => {
59 );
60 }
61 const renderer = ReactTestRenderer.create(<Parent step={1} />, {
62 - unstable_isAsync: true,
62 + unstable_isConcurrent: true,
63 });
64
65 expect(renderer).toFlushAll(['A:1', 'B:1', 'C:1']);
@@ -85,7 +85,7 @@ describe('ReactTestRendererAsync', () => {
85 );
86 }
87 const renderer = ReactTestRenderer.create(<Parent step={1} />, {
88 - unstable_isAsync: true,
88 + unstable_isConcurrent: true,
89 });
90
91 // Flush the first two siblings
@@ -122,7 +122,7 @@ describe('ReactTestRendererAsync', () => {
122 }
123
124 const renderer = ReactTestRenderer.create(<Example step={1} />, {
125 - unstable_isAsync: true,
125 + unstable_isConcurrent: true,
126 });
127
128 // Flush the some of the changes, but don't commit
@@ -152,7 +152,7 @@ describe('ReactTestRendererAsync', () => {
152 <Yield id="baz" />
153 </div>,
154 {
155 - unstable_isAsync: true,
155 + unstable_isConcurrent: true,
156 },
157 );
158
@@ -174,7 +174,7 @@ describe('ReactTestRendererAsync', () => {
174 <Yield id="baz" />
175 </div>,
176 {
177 - unstable_isAsync: true,
177 + unstable_isConcurrent: true,
178 },
179 );
180
@@ -218,7 +218,7 @@ describe('ReactTestRendererAsync', () => {
218 }
219
220 const renderer = ReactTestRenderer.create(<App />, {
221 - unstable_isAsync: true,
221 + unstable_isConcurrent: true,
222 });
223
224 expect(() => {
packages/react/src/React.js
+2 -2
@@ -7,7 +7,7 @@
7
8 import ReactVersion from 'shared/ReactVersion';
9 import {
10 - REACT_ASYNC_MODE_TYPE,
10 + REACT_CONCURRENT_MODE_TYPE,
11 REACT_FRAGMENT_TYPE,
12 REACT_PROFILER_TYPE,
13 REACT_STRICT_MODE_TYPE,
@@ -52,7 +52,7 @@ const React = {
52
53 Fragment: REACT_FRAGMENT_TYPE,
54 StrictMode: REACT_STRICT_MODE_TYPE,
55 - unstable_AsyncMode: REACT_ASYNC_MODE_TYPE,
55 + unstable_ConcurrentMode: REACT_CONCURRENT_MODE_TYPE,
56 unstable_Profiler: REACT_PROFILER_TYPE,
57
58 createElement: __DEV__ ? createElementWithValidation : createElement,
packages/react/src/__tests__/ReactProfiler-test.internal.js
+18 -18
@@ -223,7 +223,7 @@ describe('Profiler', () => {
223 <Yield value="last" />
224 </React.unstable_Profiler>,
225 {
226 - unstable_isAsync: true,
226 + unstable_isConcurrent: true,
227 },
228 );
229
@@ -578,7 +578,7 @@ describe('Profiler', () => {
578 <Yield renderTime={2} />
579 <Yield renderTime={3} />
580 </React.unstable_Profiler>,
581 - {unstable_isAsync: true},
581 + {unstable_isConcurrent: true},
582 );
583 expect(renderer).toFlushThrough(['Yield:2']);
584 expect(callback).toHaveBeenCalledTimes(0);
@@ -616,7 +616,7 @@ describe('Profiler', () => {
616 <Yield renderTime={17} />
617 </React.unstable_Profiler>
618 </React.unstable_Profiler>,
619 - {unstable_isAsync: true},
619 + {unstable_isConcurrent: true},
620 );
621 expect(renderer).toFlushThrough(['Yield:5']);
622 expect(callback).toHaveBeenCalledTimes(0);
@@ -663,7 +663,7 @@ describe('Profiler', () => {
663 <Yield renderTime={10} />
664 <Yield renderTime={20} />
665 </React.unstable_Profiler>,
666 - {unstable_isAsync: true},
666 + {unstable_isConcurrent: true},
667 );
668 expect(renderer).toFlushThrough(['Yield:10']);
669 expect(callback).toHaveBeenCalledTimes(0);
@@ -714,7 +714,7 @@ describe('Profiler', () => {
714 <Yield renderTime={6} />
715 <Yield renderTime={15} />
716 </React.unstable_Profiler>,
717 - {unstable_isAsync: true},
717 + {unstable_isConcurrent: true},
718 );
719
720 // Render everything initially.
@@ -820,7 +820,7 @@ describe('Profiler', () => {
820 <FirstComponent />
821 <SecondComponent />
822 </React.unstable_Profiler>,
823 - {unstable_isAsync: true},
823 + {unstable_isConcurrent: true},
824 );
825
826 // Render everything initially.
@@ -1295,7 +1295,7 @@ describe('Profiler', () => {
1295 expect(() => {
1296 SchedulerTracing.unstable_trace('event', mockNow(), () => {
1297 renderer = ReactTestRenderer.create(<Component>fail</Component>, {
1298 - unstable_isAsync: true,
1298 + unstable_isConcurrent: true,
1299 });
1300 });
1301 }).toThrow('Expected error onWorkScheduled');
@@ -1304,7 +1304,7 @@ describe('Profiler', () => {
1304
1305 // But should not leave React in a broken state for subsequent renders.
1306 renderer = ReactTestRenderer.create(<Component>succeed</Component>, {
1307 - unstable_isAsync: true,
1307 + unstable_isConcurrent: true,
1308 });
1309 expect(renderer).toFlushAll(['Component:succeed']);
1310 const tree = renderer.toTree();
@@ -1321,7 +1321,7 @@ describe('Profiler', () => {
1321 let renderer;
1322 SchedulerTracing.unstable_trace('event', mockNow(), () => {
1323 renderer = ReactTestRenderer.create(<Component>text</Component>, {
1324 - unstable_isAsync: true,
1324 + unstable_isConcurrent: true,
1325 });
1326 });
1327 onWorkStarted.mockClear();
@@ -1350,7 +1350,7 @@ describe('Profiler', () => {
1350 let renderer;
1351 SchedulerTracing.unstable_trace('event', mockNow(), () => {
1352 renderer = ReactTestRenderer.create(<Component>text</Component>, {
1353 - unstable_isAsync: true,
1353 + unstable_isConcurrent: true,
1354 });
1355 });
1356 expect(onInteractionScheduledWorkCompleted).not.toHaveBeenCalled();
@@ -1393,7 +1393,7 @@ describe('Profiler', () => {
1393 SchedulerTracing.unstable_trace(eventOne.name, mockNow(), () => {
1394 SchedulerTracing.unstable_trace(eventTwo.name, mockNow(), () => {
1395 renderer = ReactTestRenderer.create(<Component>text</Component>, {
1396 - unstable_isAsync: true,
1396 + unstable_isConcurrent: true,
1397 });
1398 });
1399 });
@@ -1482,7 +1482,7 @@ describe('Profiler', () => {
1482 <Example />
1483 </React.unstable_Profiler>,
1484 {
1485 - unstable_isAsync: true,
1485 + unstable_isConcurrent: true,
1486 },
1487 );
1488 },
@@ -1723,7 +1723,7 @@ describe('Profiler', () => {
1723 <FirstComponent />
1724 <SecondComponent />
1725 </React.unstable_Profiler>,
1726 - {unstable_isAsync: true},
1726 + {unstable_isConcurrent: true},
1727 );
1728
1729 // Initial mount.
@@ -1897,7 +1897,7 @@ describe('Profiler', () => {
1897 <React.unstable_Profiler id="test" onRender={onRender}>
1898 <Example />
1899 </React.unstable_Profiler>,
1900 - {unstable_isAsync: true},
1900 + {unstable_isConcurrent: true},
1901 );
1902 });
1903
@@ -2102,7 +2102,7 @@ describe('Profiler', () => {
2102 advanceTimeBy(1);
2103
2104 const renderer = ReactTestRenderer.create(<Parent />, {
2105 - unstable_isAsync: true,
2105 + unstable_isConcurrent: true,
2106 });
2107 renderer.unstable_flushAll(['Child:0']);
2108 onRender.mockClear();
@@ -2413,7 +2413,7 @@ describe('Profiler', () => {
2413 </React.Placeholder>
2414 </React.unstable_Profiler>,
2415 {
2416 - unstable_isAsync: true,
2416 + unstable_isConcurrent: true,
2417 },
2418 );
2419 },
@@ -2456,7 +2456,7 @@ describe('Profiler', () => {
2456 <AsyncText text="loaded" ms={1000} />
2457 </React.Placeholder>
2458 </React.unstable_Profiler>,
2459 - {unstable_isAsync: true},
2459 + {unstable_isConcurrent: true},
2460 );
2461 },
2462 );
@@ -2587,7 +2587,7 @@ describe('Profiler', () => {
2587 </React.Placeholder>
2588 <Text text="initial" />
2589 </React.unstable_Profiler>,
2590 - {unstable_isAsync: true},
2590 + {unstable_isConcurrent: true},
2591 );
2592 },
2593 );
packages/react/src/__tests__/ReactStrictMode-test.internal.js
+16 -16
@@ -313,9 +313,9 @@ describe('ReactStrictMode', () => {
313 UNSAFE_componentWillReceiveProps() {}
314 render() {
315 return (
316 - <React.unstable_AsyncMode>
316 + <React.unstable_ConcurrentMode>
317 <AsyncRoot />
318 - </React.unstable_AsyncMode>
318 + </React.unstable_ConcurrentMode>
319 );
320 }
321 }
@@ -357,7 +357,7 @@ describe('ReactStrictMode', () => {
357 rendered = ReactTestRenderer.create(<SyncRoot />);
358 }).toWarnDev(
359 'Unsafe lifecycle methods were found within a strict-mode tree:' +
360 - '\n in AsyncMode (at **)' +
360 + '\n in ConcurrentMode (at **)' +
361 '\n in SyncRoot (at **)' +
362 '\n\ncomponentWillMount: Please update the following components ' +
363 'to use componentDidMount instead: AsyncRoot' +
@@ -381,9 +381,9 @@ describe('ReactStrictMode', () => {
381 UNSAFE_componentWillReceiveProps() {}
382 render() {
383 return (
384 - <React.unstable_AsyncMode>
384 + <React.unstable_ConcurrentMode>
385 <AsyncRoot />
386 - </React.unstable_AsyncMode>
386 + </React.unstable_ConcurrentMode>
387 );
388 }
389 }
@@ -415,7 +415,7 @@ describe('ReactStrictMode', () => {
415 () => (rendered = ReactTestRenderer.create(<SyncRoot />)),
416 ).toWarnDev(
417 'Unsafe lifecycle methods were found within a strict-mode tree:' +
418 - '\n in AsyncMode (at **)' +
418 + '\n in ConcurrentMode (at **)' +
419 '\n in SyncRoot (at **)' +
420 '\n\ncomponentWillMount: Please update the following components ' +
421 'to use componentDidMount instead: AsyncRoot, Parent' +
@@ -449,22 +449,22 @@ describe('ReactStrictMode', () => {
449 class AsyncRootOne extends React.Component {
450 render() {
451 return (
452 - <React.unstable_AsyncMode>
452 + <React.unstable_ConcurrentMode>
453 <Foo>
454 <Bar />
455 </Foo>
456 - </React.unstable_AsyncMode>
456 + </React.unstable_ConcurrentMode>
457 );
458 }
459 }
460 class AsyncRootTwo extends React.Component {
461 render() {
462 return (
463 - <React.unstable_AsyncMode>
463 + <React.unstable_ConcurrentMode>
464 <Foo>
465 <Baz />
466 </Foo>
467 - </React.unstable_AsyncMode>
467 + </React.unstable_ConcurrentMode>
468 );
469 }
470 }
@@ -493,14 +493,14 @@ describe('ReactStrictMode', () => {
493 () => (rendered = ReactTestRenderer.create(<SyncRoot />)),
494 ).toWarnDev([
495 'Unsafe lifecycle methods were found within a strict-mode tree:' +
496 - '\n in AsyncMode (at **)' +
496 + '\n in ConcurrentMode (at **)' +
497 '\n in AsyncRootOne (at **)' +
498 '\n in div (at **)' +
499 '\n in SyncRoot (at **)' +
500 '\n\ncomponentWillMount: Please update the following components ' +
501 'to use componentDidMount instead: Bar, Foo',
502 'Unsafe lifecycle methods were found within a strict-mode tree:' +
503 - '\n in AsyncMode (at **)' +
503 + '\n in ConcurrentMode (at **)' +
504 '\n in AsyncRootTwo (at **)' +
505 '\n in div (at **)' +
506 '\n in SyncRoot (at **)' +
@@ -517,9 +517,9 @@ describe('ReactStrictMode', () => {
517 class AsyncRoot extends React.Component {
518 render() {
519 return (
520 - <React.unstable_AsyncMode>
520 + <React.unstable_ConcurrentMode>
521 {this.props.foo ? <Foo /> : <Bar />}
522 - </React.unstable_AsyncMode>
522 + </React.unstable_ConcurrentMode>
523 );
524 }
525 }
@@ -541,7 +541,7 @@ describe('ReactStrictMode', () => {
541 rendered = ReactTestRenderer.create(<AsyncRoot foo={true} />);
542 }).toWarnDev(
543 'Unsafe lifecycle methods were found within a strict-mode tree:' +
544 - '\n in AsyncMode (at **)' +
544 + '\n in ConcurrentMode (at **)' +
545 '\n in AsyncRoot (at **)' +
546 '\n\ncomponentWillMount: Please update the following components ' +
547 'to use componentDidMount instead: Foo' +
@@ -551,7 +551,7 @@ describe('ReactStrictMode', () => {
551
552 expect(() => rendered.update(<AsyncRoot foo={false} />)).toWarnDev(
553 'Unsafe lifecycle methods were found within a strict-mode tree:' +
554 - '\n in AsyncMode (at **)' +
554 + '\n in ConcurrentMode (at **)' +
555 '\n in AsyncRoot (at **)' +
556 '\n\ncomponentWillMount: Please update the following components ' +
557 'to use componentDidMount instead: Bar' +
packages/shared/ReactSymbols.js
+2 -2
@@ -32,8 +32,8 @@ export const REACT_PROVIDER_TYPE = hasSymbol
32 export const REACT_CONTEXT_TYPE = hasSymbol
33 ? Symbol.for('react.context')
34 : 0xeace;
35 -export const REACT_ASYNC_MODE_TYPE = hasSymbol
36 - ? Symbol.for('react.async_mode')
35 +export const REACT_CONCURRENT_MODE_TYPE = hasSymbol
36 + ? Symbol.for('react.concurrent_mode')
37 : 0xeacf;
38 export const REACT_FORWARD_REF_TYPE = hasSymbol
39 ? Symbol.for('react.forward_ref')
packages/shared/getComponentName.js
+3 -3
@@ -11,7 +11,7 @@ import type {Thenable} from 'shared/ReactLazyComponent';
11
12 import warningWithoutStack from 'shared/warningWithoutStack';
13 import {
14 - REACT_ASYNC_MODE_TYPE,
14 + REACT_CONCURRENT_MODE_TYPE,
15 REACT_CONTEXT_TYPE,
16 REACT_FORWARD_REF_TYPE,
17 REACT_FRAGMENT_TYPE,
@@ -44,8 +44,8 @@ function getComponentName(type: mixed): string | null {
44 return type;
45 }
46 switch (type) {
47 - case REACT_ASYNC_MODE_TYPE:
48 - return 'AsyncMode';
47 + case REACT_CONCURRENT_MODE_TYPE:
48 + return 'ConcurrentMode';
49 case REACT_FRAGMENT_TYPE:
50 return 'Fragment';
51 case REACT_PORTAL_TYPE:
packages/shared/isValidElementType.js
+2 -2
@@ -8,7 +8,7 @@
8 */
9
10 import {
11 - REACT_ASYNC_MODE_TYPE,
11 + REACT_CONCURRENT_MODE_TYPE,
12 REACT_CONTEXT_TYPE,
13 REACT_FORWARD_REF_TYPE,
14 REACT_FRAGMENT_TYPE,
@@ -24,7 +24,7 @@ export default function isValidElementType(type: mixed) {
24 typeof type === 'function' ||
25 // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
26 type === REACT_FRAGMENT_TYPE ||
27 - type === REACT_ASYNC_MODE_TYPE ||
27 + type === REACT_CONCURRENT_MODE_TYPE ||
28 type === REACT_PROFILER_TYPE ||
29 type === REACT_STRICT_MODE_TYPE ||
30 type === REACT_PLACEHOLDER_TYPE ||