Enable eager listeners in open source (#19716)

* Enable eager listeners in open source

* Fix tests

* Enable in all places
This commit is contained in:
Dan Abramov 2020-08-28 12:23:28 +01:00 committed by GitHub
parent c1ac052158
commit b754caaaf2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 22 additions and 14 deletions

View File

@ -1097,6 +1097,8 @@ describe('ReactDOMFiber', () => {
});
it('should not update event handlers until commit', () => {
spyOnDev(console, 'error');
let ops = [];
const handlerA = () => ops.push('A');
const handlerB = () => ops.push('B');
@ -1129,11 +1131,7 @@ describe('ReactDOMFiber', () => {
class Click extends React.Component {
constructor() {
super();
expect(() => {
node.click();
}).toErrorDev(
'Warning: unstable_flushDiscreteUpdates: Cannot flush updates when React is already rendering.',
);
node.click();
}
render() {
return null;
@ -1183,6 +1181,16 @@ describe('ReactDOMFiber', () => {
// Any click that happens after commit, should invoke A.
click();
expect(ops).toEqual(['A']);
if (__DEV__) {
// TODO: this warning shouldn't be firing in the first place if user didn't call it.
const errorCalls = console.error.calls.count();
for (let i = 0; i < errorCalls; i++) {
expect(console.error.calls.argsFor(i)[0]).toMatch(
'unstable_flushDiscreteUpdates: Cannot flush updates when React is already rendering.',
);
}
}
});
it('should not crash encountering low-priority tree', () => {

View File

@ -137,4 +137,4 @@ export const enableDiscreteEventFlushingChange = false;
export const enablePassiveEventIntervention = true;
export const disableOnScrollBubbling = true;
export const enableEagerRootListeners = false;
export const enableEagerRootListeners = true;

View File

@ -51,7 +51,7 @@ export const deferRenderPhaseUpdateToNextBatch = true;
export const decoupleUpdatePriorityFromScheduler = false;
export const enableDiscreteEventFlushingChange = false;
export const enablePassiveEventIntervention = true;
export const enableEagerRootListeners = false;
export const enableEagerRootListeners = true;
// Flow magic to verify the exports of this file match the original version.
// eslint-disable-next-line no-unused-vars

View File

@ -50,7 +50,7 @@ export const deferRenderPhaseUpdateToNextBatch = true;
export const decoupleUpdatePriorityFromScheduler = false;
export const enableDiscreteEventFlushingChange = false;
export const enablePassiveEventIntervention = true;
export const enableEagerRootListeners = false;
export const enableEagerRootListeners = true;
// Flow magic to verify the exports of this file match the original version.
// eslint-disable-next-line no-unused-vars

View File

@ -50,7 +50,7 @@ export const deferRenderPhaseUpdateToNextBatch = true;
export const decoupleUpdatePriorityFromScheduler = false;
export const enableDiscreteEventFlushingChange = false;
export const enablePassiveEventIntervention = true;
export const enableEagerRootListeners = false;
export const enableEagerRootListeners = true;
// Flow magic to verify the exports of this file match the original version.
// eslint-disable-next-line no-unused-vars

View File

@ -49,7 +49,7 @@ export const deferRenderPhaseUpdateToNextBatch = true;
export const decoupleUpdatePriorityFromScheduler = false;
export const enableDiscreteEventFlushingChange = false;
export const enablePassiveEventIntervention = true;
export const enableEagerRootListeners = false;
export const enableEagerRootListeners = true;
// Flow magic to verify the exports of this file match the original version.
// eslint-disable-next-line no-unused-vars

View File

@ -50,7 +50,7 @@ export const deferRenderPhaseUpdateToNextBatch = true;
export const decoupleUpdatePriorityFromScheduler = false;
export const enableDiscreteEventFlushingChange = false;
export const enablePassiveEventIntervention = true;
export const enableEagerRootListeners = false;
export const enableEagerRootListeners = true;
// Flow magic to verify the exports of this file match the original version.
// eslint-disable-next-line no-unused-vars

View File

@ -50,7 +50,7 @@ export const deferRenderPhaseUpdateToNextBatch = true;
export const decoupleUpdatePriorityFromScheduler = false;
export const enableDiscreteEventFlushingChange = false;
export const enablePassiveEventIntervention = true;
export const enableEagerRootListeners = false;
export const enableEagerRootListeners = true;
// Flow magic to verify the exports of this file match the original version.
// eslint-disable-next-line no-unused-vars

View File

@ -50,7 +50,7 @@ export const deferRenderPhaseUpdateToNextBatch = true;
export const decoupleUpdatePriorityFromScheduler = false;
export const enableDiscreteEventFlushingChange = true;
export const enablePassiveEventIntervention = true;
export const enableEagerRootListeners = false;
export const enableEagerRootListeners = true;
// Flow magic to verify the exports of this file match the original version.
// eslint-disable-next-line no-unused-vars

View File

@ -21,7 +21,7 @@ export const decoupleUpdatePriorityFromScheduler = __VARIANT__;
export const skipUnmountedBoundaries = __VARIANT__;
export const enablePassiveEventIntervention = __VARIANT__;
export const disableOnScrollBubbling = __VARIANT__;
export const enableEagerRootListeners = __VARIANT__;
export const enableEagerRootListeners = !__VARIANT__;
// Enable this flag to help with concurrent mode debugging.
// It logs information to the console about React scheduling, rendering, and commit phases.