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) {