@@ -12,48 +12,49 @@ import {enableCreateEventHandleAPI} from 'shared/ReactFeatureFlags';
12
12
export type Flags = number ;
13
13
14
14
// Don't change these two values. They're used by React Dev Tools.
15
- export const NoFlags = /* */ 0b0000000000000000000 ;
16
- export const PerformedWork = /* */ 0b0000000000000000001 ;
15
+ export const NoFlags = /* */ 0b00000000000000000000 ;
16
+ export const PerformedWork = /* */ 0b00000000000000000001 ;
17
17
18
18
// You can change the rest (and add more).
19
- export const Placement = /* */ 0b0000000000000000010 ;
20
- export const Update = /* */ 0b0000000000000000100 ;
21
- export const PlacementAndUpdate = /* */ 0b0000000000000000110 ;
22
- export const Deletion = /* */ 0b0000000000000001000 ;
23
- export const ContentReset = /* */ 0b0000000000000010000 ;
24
- export const Callback = /* */ 0b0000000000000100000 ;
25
- export const DidCapture = /* */ 0b0000000000001000000 ;
26
- export const Ref = /* */ 0b0000000000010000000 ;
27
- export const Snapshot = /* */ 0b0000000000100000000 ;
28
- export const Passive = /* */ 0b0000000001000000000 ;
29
- export const Hydrating = /* */ 0b0000000010000000000 ;
30
- export const HydratingAndUpdate = /* */ 0b0000000010000000100 ;
31
- export const Visibility = /* */ 0b0000000100000000000 ;
19
+ export const Placement = /* */ 0b00000000000000000010 ;
20
+ export const Update = /* */ 0b00000000000000000100 ;
21
+ export const PlacementAndUpdate = /* */ Placement | Update ;
22
+ export const Deletion = /* */ 0b00000000000000001000 ;
23
+ export const ChildDeletion = /* */ 0b00000000000000010000 ;
24
+ export const ContentReset = /* */ 0b00000000000000100000 ;
25
+ export const Callback = /* */ 0b00000000000001000000 ;
26
+ export const DidCapture = /* */ 0b00000000000010000000 ;
27
+ export const Ref = /* */ 0b00000000000100000000 ;
28
+ export const Snapshot = /* */ 0b00000000001000000000 ;
29
+ export const Passive = /* */ 0b00000000010000000000 ;
30
+ export const Hydrating = /* */ 0b00000000100000000000 ;
31
+ export const HydratingAndUpdate = /* */ Hydrating | Update ;
32
+ export const Visibility = /* */ 0b00000001000000000000 ;
32
33
33
34
export const LifecycleEffectMask = Passive | Update | Callback | Ref | Snapshot ;
34
35
35
36
// Union of all commit flags (flags with the lifetime of a particular commit)
36
- export const HostEffectMask = /* */ 0b0000000111111111111 ;
37
+ export const HostEffectMask = /* */ 0b00000001111111111111 ;
37
38
38
39
// These are not really side effects, but we still reuse this field.
39
- export const Incomplete = /* */ 0b0000001000000000000 ;
40
- export const ShouldCapture = /* */ 0b0000010000000000000 ;
40
+ export const Incomplete = /* */ 0b00000010000000000000 ;
41
+ export const ShouldCapture = /* */ 0b00000100000000000000 ;
41
42
// TODO (effects) Remove this bit once the new reconciler is synced to the old.
42
- export const PassiveUnmountPendingDev = /* */ 0b0000100000000000000 ;
43
- export const ForceUpdateForLegacySuspense = /* */ 0b0001000000000000000 ;
43
+ export const PassiveUnmountPendingDev = /* */ 0b00001000000000000000 ;
44
+ export const ForceUpdateForLegacySuspense = /* */ 0b00010000000000000000 ;
44
45
45
46
// Static tags describe aspects of a fiber that are not specific to a render,
46
47
// e.g. a fiber uses a passive effect (even if there are no updates on this particular render).
47
48
// This enables us to defer more work in the unmount case,
48
49
// since we can defer traversing the tree during layout to look for Passive effects,
49
50
// and instead rely on the static flag as a signal that there may be cleanup work.
50
- export const PassiveStatic = /* */ 0b0010000000000000000 ;
51
+ export const PassiveStatic = /* */ 0b00100000000000000000 ;
51
52
52
53
// These flags allow us to traverse to fibers that have effects on mount
53
54
// without traversing the entire tree after every commit for
54
55
// double invoking
55
- export const MountLayoutDev = /* */ 0b0100000000000000000 ;
56
- export const MountPassiveDev = /* */ 0b1000000000000000000 ;
56
+ export const MountLayoutDev = /* */ 0b01000000000000000000 ;
57
+ export const MountPassiveDev = /* */ 0b10000000000000000000 ;
57
58
58
59
// Groups of flags that are used in the commit phase to skip over trees that
59
60
// don't contain effects, by checking subtreeFlags.
@@ -65,13 +66,19 @@ export const BeforeMutationMask =
65
66
// fire beforeblur
66
67
// TODO: Only need to visit Deletions during BeforeMutation phase if an
67
68
// element is focused.
68
- Deletion | Visibility
69
+ ChildDeletion | Visibility
69
70
: 0 ) ;
70
71
71
72
export const MutationMask =
72
- Placement | Update | Deletion | ContentReset | Ref | Hydrating | Visibility ;
73
+ Placement |
74
+ Update |
75
+ ChildDeletion |
76
+ ContentReset |
77
+ Ref |
78
+ Hydrating |
79
+ Visibility ;
73
80
export const LayoutMask = Update | Callback | Ref ;
74
- export const PassiveMask = Passive | Deletion ;
81
+ export const PassiveMask = Passive | ChildDeletion ;
75
82
76
83
// Union of tags that don't get reset on clones.
77
84
// This allows certain concepts to persist without recalculting them,
0 commit comments