From 6db15a27cf0040f95b21ccfff86799c021231efc Mon Sep 17 00:00:00 2001 From: Hazlank <401840614@qq.com> Date: Mon, 16 Aug 2021 14:13:04 -0500 Subject: [PATCH] refactor: merge bitwise flag checks (#4324) --- packages/runtime-core/src/componentRenderUtils.ts | 11 +++-------- packages/runtime-core/src/hydration.ts | 3 +-- packages/runtime-core/src/renderer.ts | 7 +++---- packages/runtime-core/src/vnode.ts | 2 +- 4 files changed, 8 insertions(+), 15 deletions(-) diff --git a/packages/runtime-core/src/componentRenderUtils.ts b/packages/runtime-core/src/componentRenderUtils.ts index 0563ba59..79cafc42 100644 --- a/packages/runtime-core/src/componentRenderUtils.ts +++ b/packages/runtime-core/src/componentRenderUtils.ts @@ -128,10 +128,7 @@ export function renderComponentRoot( const keys = Object.keys(fallthroughAttrs) const { shapeFlag } = root if (keys.length) { - if ( - shapeFlag & ShapeFlags.ELEMENT || - shapeFlag & ShapeFlags.COMPONENT - ) { + if (shapeFlag & (ShapeFlags.ELEMENT | ShapeFlags.COMPONENT)) { if (propsOptions && keys.some(isModelListener)) { // If a v-model listener (onUpdate:xxx) has a corresponding declared // prop, it indicates this component expects to handle v-model and @@ -186,8 +183,7 @@ export function renderComponentRoot( __COMPAT__ && isCompatEnabled(DeprecationTypes.INSTANCE_ATTRS_CLASS_STYLE, instance) && vnode.shapeFlag & ShapeFlags.STATEFUL_COMPONENT && - (root.shapeFlag & ShapeFlags.ELEMENT || - root.shapeFlag & ShapeFlags.COMPONENT) + root.shapeFlag & (ShapeFlags.ELEMENT | ShapeFlags.COMPONENT) ) { const { class: cls, style } = vnode.props || {} if (cls || style) { @@ -316,8 +312,7 @@ const filterModelListeners = (attrs: Data, props: NormalizedProps): Data => { const isElementRoot = (vnode: VNode) => { return ( - vnode.shapeFlag & ShapeFlags.COMPONENT || - vnode.shapeFlag & ShapeFlags.ELEMENT || + vnode.shapeFlag & (ShapeFlags.COMPONENT | ShapeFlags.ELEMENT) || vnode.type === Comment // potential v-if branch switch ) } diff --git a/packages/runtime-core/src/hydration.ts b/packages/runtime-core/src/hydration.ts index 9b2a903f..939cf0ca 100644 --- a/packages/runtime-core/src/hydration.ts +++ b/packages/runtime-core/src/hydration.ts @@ -280,8 +280,7 @@ export function createHydrationFunctions( if ( forcePatchValue || !optimized || - patchFlag & PatchFlags.FULL_PROPS || - patchFlag & PatchFlags.HYDRATE_EVENTS + patchFlag & (PatchFlags.FULL_PROPS | PatchFlags.HYDRATE_EVENTS) ) { for (const key in props) { if ( diff --git a/packages/runtime-core/src/renderer.ts b/packages/runtime-core/src/renderer.ts index 62db9cd8..f1f2f952 100644 --- a/packages/runtime-core/src/renderer.ts +++ b/packages/runtime-core/src/renderer.ts @@ -984,8 +984,7 @@ function baseCreateRenderer( // which also requires the correct parent container !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything. - oldVNode.shapeFlag & ShapeFlags.COMPONENT || - oldVNode.shapeFlag & ShapeFlags.TELEPORT) + oldVNode.shapeFlag & (ShapeFlags.COMPONENT | ShapeFlags.TELEPORT)) ? hostParentNode(oldVNode.el)! : // In other cases, the parent container is not actually used so we // just pass the block element here to avoid a DOM parentNode call. @@ -2129,8 +2128,8 @@ function baseCreateRenderer( ) } else if ( (type === Fragment && - (patchFlag & PatchFlags.KEYED_FRAGMENT || - patchFlag & PatchFlags.UNKEYED_FRAGMENT)) || + patchFlag & + (PatchFlags.KEYED_FRAGMENT | PatchFlags.UNKEYED_FRAGMENT)) || (!optimized && shapeFlag & ShapeFlags.ARRAY_CHILDREN) ) { unmountChildren(children as VNode[], parentComponent, parentSuspense) diff --git a/packages/runtime-core/src/vnode.ts b/packages/runtime-core/src/vnode.ts index 26b2ac9e..a03fc411 100644 --- a/packages/runtime-core/src/vnode.ts +++ b/packages/runtime-core/src/vnode.ts @@ -730,7 +730,7 @@ export function normalizeChildren(vnode: VNode, children: unknown) { } else if (isArray(children)) { type = ShapeFlags.ARRAY_CHILDREN } else if (typeof children === 'object') { - if (shapeFlag & ShapeFlags.ELEMENT || shapeFlag & ShapeFlags.TELEPORT) { + if (shapeFlag & (ShapeFlags.ELEMENT | ShapeFlags.TELEPORT)) { // Normalize slot to plain children for plain element and Teleport const slot = (children as any).default if (slot) {