@samitouri / QOS-React / commits / 02404d793b

Avoid dynamic dispatch for scheduler calls (#14968)

Dan Abramov committed Mar 1, 2019 at 15:04 UTC 02404d793b84c057e0f3f712f8ce565f81d4b7ab
5 files changed +48 -89
packages/react-art/src/ReactARTHostConfig.js
+12 -10
@@ -5,22 +5,24 @@
5 * LICENSE file in the root directory of this source tree.
6 */
7
8 -import {
9 - unstable_scheduleCallback as scheduleDeferredCallback,
10 - unstable_cancelCallback as cancelDeferredCallback,
11 -} from 'scheduler';
12 -export {
13 - unstable_now as now,
14 - unstable_scheduleCallback as scheduleDeferredCallback,
15 - unstable_shouldYield as shouldYield,
16 - unstable_cancelCallback as cancelDeferredCallback,
17 -} from 'scheduler';
8 import Transform from 'art/core/transform';
9 import Mode from 'art/modes/current';
10 +import * as Scheduler from 'scheduler';
11 import invariant from 'shared/invariant';
12
13 import {TYPES, EVENT_TYPES, childrenAsString} from './ReactARTInternals';
14
15 +// Intentionally not named imports because Rollup would
16 +// use dynamic dispatch for CommonJS interop named imports.
17 +const {
18 + unstable_now: now,
19 + unstable_scheduleCallback: scheduleDeferredCallback,
20 + unstable_shouldYield: shouldYield,
21 + unstable_cancelCallback: cancelDeferredCallback,
22 +} = Scheduler;
23 +
24 +export {now, scheduleDeferredCallback, shouldYield, cancelDeferredCallback};
25 +
26 const pooledTransform = new Transform();
27
28 const NO_CONTEXT = {};
packages/react-cache/src/LRU.js
+5 -1
@@ -7,7 +7,11 @@
7 * @flow
8 */
9
10 -import {unstable_scheduleCallback as scheduleCallback} from 'scheduler';
10 +import * as Scheduler from 'scheduler';
11 +
12 +// Intentionally not named imports because Rollup would
13 +// use dynamic dispatch for CommonJS interop named imports.
14 +const {unstable_scheduleCallback: scheduleCallback} = Scheduler;
15
16 type Entry<T> = {|
17 value: T,
packages/react-dom/src/client/ReactDOMHostConfig.js
+13 -10
@@ -7,6 +7,8 @@
7 * @flow
8 */
9
10 +import * as Scheduler from 'scheduler';
11 +
12 import {precacheFiberNode, updateFiberProps} from './ReactDOMComponentTree';
13 import {
14 createElement,
@@ -70,17 +72,18 @@ export type ChildSet = void; // Unused
72 export type TimeoutHandle = TimeoutID;
73 export type NoTimeout = -1;
74
73 -import {
74 - unstable_scheduleCallback as scheduleDeferredCallback,
75 - unstable_cancelCallback as cancelDeferredCallback,
76 -} from 'scheduler';
75 import {enableSuspenseServerRenderer} from 'shared/ReactFeatureFlags';
78 -export {
79 - unstable_now as now,
80 - unstable_scheduleCallback as scheduleDeferredCallback,
81 - unstable_shouldYield as shouldYield,
82 - unstable_cancelCallback as cancelDeferredCallback,
83 -} from 'scheduler';
76 +
77 +// Intentionally not named imports because Rollup would
78 +// use dynamic dispatch for CommonJS interop named imports.
79 +const {
80 + unstable_now: now,
81 + unstable_scheduleCallback: scheduleDeferredCallback,
82 + unstable_shouldYield: shouldYield,
83 + unstable_cancelCallback: cancelDeferredCallback,
84 +} = Scheduler;
85 +
86 +export {now, scheduleDeferredCallback, shouldYield, cancelDeferredCallback};
87
88 let SUPPRESS_HYDRATION_WARNING;
89 if (__DEV__) {
packages/react-reconciler/src/ReactFiberScheduler.js
+14 -10
@@ -17,16 +17,7 @@ import {
17 __subscriberRef,
18 unstable_wrap as Scheduler_tracing_wrap,
19 } from 'scheduler/tracing';
20 -import {
21 - unstable_next as Scheduler_next,
22 - unstable_getCurrentPriorityLevel as getCurrentPriorityLevel,
23 - unstable_runWithPriority as runWithPriority,
24 - unstable_ImmediatePriority as ImmediatePriority,
25 - unstable_UserBlockingPriority as UserBlockingPriority,
26 - unstable_NormalPriority as NormalPriority,
27 - unstable_LowPriority as LowPriority,
28 - unstable_IdlePriority as IdlePriority,
29 -} from 'scheduler';
20 +import * as Scheduler from 'scheduler';
21 import {
22 invokeGuardedCallback,
23 hasCaughtError,
@@ -181,6 +172,19 @@ export type Thenable = {
172 then(resolve: () => mixed, reject?: () => mixed): mixed,
173 };
174
175 +// Intentionally not named imports because Rollup would
176 +// use dynamic dispatch for CommonJS interop named imports.
177 +const {
178 + unstable_next: Scheduler_next,
179 + unstable_getCurrentPriorityLevel: getCurrentPriorityLevel,
180 + unstable_runWithPriority: runWithPriority,
181 + unstable_ImmediatePriority: ImmediatePriority,
182 + unstable_UserBlockingPriority: UserBlockingPriority,
183 + unstable_NormalPriority: NormalPriority,
184 + unstable_LowPriority: LowPriority,
185 + unstable_IdlePriority: IdlePriority,
186 +} = Scheduler;
187 +
188 const {ReactCurrentDispatcher, ReactCurrentOwner} = ReactSharedInternals;
189
190 let didWarnAboutStateTransition;
packages/react/src/ReactSharedInternals.js
+4 -58
@@ -6,35 +6,8 @@
6 */
7
8 import assign from 'object-assign';
9 -import {
10 - unstable_cancelCallback,
11 - unstable_shouldYield,
12 - unstable_now,
13 - unstable_scheduleCallback,
14 - unstable_runWithPriority,
15 - unstable_next,
16 - unstable_getFirstCallbackNode,
17 - unstable_pauseExecution,
18 - unstable_continueExecution,
19 - unstable_wrapCallback,
20 - unstable_getCurrentPriorityLevel,
21 - unstable_IdlePriority,
22 - unstable_ImmediatePriority,
23 - unstable_LowPriority,
24 - unstable_NormalPriority,
25 - unstable_UserBlockingPriority,
26 -} from 'scheduler';
27 -import {
28 - __interactionsRef,
29 - __subscriberRef,
30 - unstable_clear,
31 - unstable_getCurrent,
32 - unstable_getThreadID,
33 - unstable_subscribe,
34 - unstable_trace,
35 - unstable_unsubscribe,
36 - unstable_wrap,
37 -} from 'scheduler/tracing';
9 +import * as Scheduler from 'scheduler';
10 +import * as SchedulerTracing from 'scheduler/tracing';
11 import ReactCurrentDispatcher from './ReactCurrentDispatcher';
12 import ReactCurrentOwner from './ReactCurrentOwner';
13 import ReactDebugCurrentFrame from './ReactDebugCurrentFrame';
@@ -53,35 +26,8 @@ if (__UMD__) {
26 // This re-export is only required for UMD bundles;
27 // CJS bundles use the shared NPM package.
28 Object.assign(ReactSharedInternals, {
56 - Scheduler: {
57 - unstable_cancelCallback,
58 - unstable_shouldYield,
59 - unstable_now,
60 - unstable_scheduleCallback,
61 - unstable_runWithPriority,
62 - unstable_next,
63 - unstable_wrapCallback,
64 - unstable_getFirstCallbackNode,
65 - unstable_pauseExecution,
66 - unstable_continueExecution,
67 - unstable_getCurrentPriorityLevel,
68 - unstable_IdlePriority,
69 - unstable_ImmediatePriority,
70 - unstable_LowPriority,
71 - unstable_NormalPriority,
72 - unstable_UserBlockingPriority,
73 - },
74 - SchedulerTracing: {
75 - __interactionsRef,
76 - __subscriberRef,
77 - unstable_clear,
78 - unstable_getCurrent,
79 - unstable_getThreadID,
80 - unstable_subscribe,
81 - unstable_trace,
82 - unstable_unsubscribe,
83 - unstable_wrap,
84 - },
29 + Scheduler,
30 + SchedulerTracing,
31 });
32 }
33