@samitouri / QOS-React-2 / commits / d857f9e4d0

Land enableSetImmediate feature flag (#20906)

Dan Abramov committed Mar 1, 2021 at 18:34 UTC d857f9e4d057a3e039c0804c6ae087d348f97a06
5 files changed +1 -19
packages/scheduler/src/SchedulerFeatureFlags.js
-3
@@ -9,6 +9,3 @@
9 export const enableSchedulerDebugging = false;
10 export const enableIsInputPending = false;
11 export const enableProfiling = __VARIANT__;
12 -
13 -// TODO: enable to fix https://github.com/facebook/react/issues/20756.
14 -export const enableSetImmediate = __VARIANT__;
packages/scheduler/src/__tests__/SchedulerDOMSetImmediate-test.js
-8
@@ -143,7 +143,6 @@ describe('SchedulerDOMSetImmediate', () => {
143 };
144 }
145
146 - // @gate enableSchedulerSetImmediate
146 it('task that finishes before deadline', () => {
147 scheduleCallback(NormalPriority, () => {
148 runtime.log('Task');
@@ -153,7 +152,6 @@ describe('SchedulerDOMSetImmediate', () => {
152 runtime.assertLog(['setImmediate Callback', 'Task']);
153 });
154
156 - // @gate enableSchedulerSetImmediate
155 it('task with continuation', () => {
156 scheduleCallback(NormalPriority, () => {
157 runtime.log('Task');
@@ -179,7 +177,6 @@ describe('SchedulerDOMSetImmediate', () => {
177 runtime.assertLog(['setImmediate Callback', 'Continuation']);
178 });
179
182 - // @gate enableSchedulerSetImmediate
180 it('multiple tasks', () => {
181 scheduleCallback(NormalPriority, () => {
182 runtime.log('A');
@@ -192,7 +189,6 @@ describe('SchedulerDOMSetImmediate', () => {
189 runtime.assertLog(['setImmediate Callback', 'A', 'B']);
190 });
191
195 - // @gate enableSchedulerSetImmediate
192 it('multiple tasks with a yield in between', () => {
193 scheduleCallback(NormalPriority, () => {
194 runtime.log('A');
@@ -213,7 +209,6 @@ describe('SchedulerDOMSetImmediate', () => {
209 runtime.assertLog(['setImmediate Callback', 'B']);
210 });
211
216 - // @gate enableSchedulerSetImmediate
212 it('cancels tasks', () => {
213 const task = scheduleCallback(NormalPriority, () => {
214 runtime.log('Task');
@@ -223,7 +218,6 @@ describe('SchedulerDOMSetImmediate', () => {
218 runtime.assertLog([]);
219 });
220
226 - // @gate enableSchedulerSetImmediate
221 it('throws when a task errors then continues in a new event', () => {
222 scheduleCallback(NormalPriority, () => {
223 runtime.log('Oops!');
@@ -241,7 +235,6 @@ describe('SchedulerDOMSetImmediate', () => {
235 runtime.assertLog(['setImmediate Callback', 'Yay']);
236 });
237
244 - // @gate enableSchedulerSetImmediate
238 it('schedule new task after queue has emptied', () => {
239 scheduleCallback(NormalPriority, () => {
240 runtime.log('A');
@@ -259,7 +252,6 @@ describe('SchedulerDOMSetImmediate', () => {
252 runtime.assertLog(['setImmediate Callback', 'B']);
253 });
254
262 - // @gate enableSchedulerSetImmediate
255 it('schedule new task after a cancellation', () => {
256 const handle = scheduleCallback(NormalPriority, () => {
257 runtime.log('A');
packages/scheduler/src/forks/SchedulerDOM.js
+1 -2
@@ -11,7 +11,6 @@
11 import {
12 enableSchedulerDebugging,
13 enableProfiling,
14 - enableSetImmediate,
14 } from '../SchedulerFeatureFlags';
15
16 import {push, pop, peek} from '../SchedulerMinHeap';
@@ -553,7 +552,7 @@ const performWorkUntilDeadline = () => {
552 };
553
554 let schedulePerformWorkUntilDeadline;
556 -if (enableSetImmediate && typeof setImmediate === 'function') {
555 +if (typeof setImmediate === 'function') {
556 // Node.js and old IE.
557 // There's a few reasons for why we prefer setImmediate.
558 //
packages/scheduler/src/forks/SchedulerFeatureFlags.www.js
-1
@@ -10,7 +10,6 @@ export const {
10 enableIsInputPending,
11 enableSchedulerDebugging,
12 enableProfiling: enableProfilingFeatureFlag,
13 - enableSetImmediate,
13 } = require('SchedulerFeatureFlags');
14
15 export const enableProfiling = __PROFILE__ && enableProfilingFeatureFlag;
scripts/jest/TestFlags.js
-5
@@ -55,7 +55,6 @@ function getTestFlags() {
55 // These are required on demand because some of our tests mutate them. We try
56 // not to but there are exceptions.
57 const featureFlags = require('shared/ReactFeatureFlags');
58 - const schedulerFeatureFlags = require('scheduler/src/SchedulerFeatureFlags');
58
59 // TODO: This is a heuristic to detect the release channel by checking a flag
60 // that is known to only be enabled in www. What we should do instead is set
@@ -90,10 +89,6 @@ function getTestFlags() {
89 // tests, Jest doesn't expose the API correctly. Fix then remove
90 // this override.
91 enableCache: __EXPERIMENTAL__,
93 -
94 - // This is from SchedulerFeatureFlags. Needed because there's no equivalent
95 - // of ReactFeatureFlags-www.dynamic for it. Remove when enableSetImmediate is gone.
96 - enableSchedulerSetImmediate: schedulerFeatureFlags.enableSetImmediate,
92 },
93 {
94 get(flags, flagName) {