From e793c9d476c3e49df781decbeaa686821f7b00dc Mon Sep 17 00:00:00 2001 From: Andrew Clark Date: Fri, 16 Oct 2020 11:39:54 -0500 Subject: [PATCH] Gate behind createEventHandle feature flag Only need to visit deleted and hidden trees during the snapshot phase if the experimental `createEventHandle` flag is enabled. Currently, it's only used internally at Facebook, not open source. --- packages/react-reconciler/src/ReactFiberFlags.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/react-reconciler/src/ReactFiberFlags.js b/packages/react-reconciler/src/ReactFiberFlags.js index 64cb5e82d280b..4340131c0004b 100644 --- a/packages/react-reconciler/src/ReactFiberFlags.js +++ b/packages/react-reconciler/src/ReactFiberFlags.js @@ -7,6 +7,8 @@ * @flow */ +import {enableCreateEventHandleAPI} from 'shared/ReactFeatureFlags'; + export type Flags = number; // Don't change these two values. They're used by React Dev Tools. @@ -49,9 +51,17 @@ export const ForceUpdateForLegacySuspense = /* */ 0b0001000000000000000; export const PassiveStatic = /* */ 0b0010000000000000000; // Union of side effect groupings as pertains to subtreeFlags -// TODO: Only need to visit Deletions during BeforeMutation phase if an element -// is focused. -export const BeforeMutationMask = /* */ 0b0000000100100001000; + +export const BeforeMutationMask = + Snapshot | + (enableCreateEventHandleAPI + ? // createEventHandle needs to visit deleted and hidden trees to + // fire beforeblur + // TODO: Only need to visit Deletions during BeforeMutation phase if an + // element is focused. + Deletion | Visibility + : 0); + export const MutationMask = /* */ 0b0000000110010011110; export const LayoutMask = /* */ 0b0000000000010100100; export const PassiveMask = /* */ 0b0000000001000001000;