ShapeFlags,
def,
getEscapedCssVarName,
+ hasOwn,
includeBooleanAttr,
isBooleanAttr,
isKnownHtmlAttr,
): Node | null => {
if (
!isMismatchAllowed(node.parentElement!, MismatchTypes.CHILDREN) &&
- !isCommentNodeMismatch(node, vnode)
+ !isMismatchAllowedForCommentNode(node, vnode)
) {
;(__DEV__ || __FEATURE_PROD_HYDRATION_MISMATCH_DETAILS__) &&
warn(
}
// data-allow-mismatch + v-if
-function isCommentNodeMismatch(node: Node, vnode: VNode): boolean {
- if (node.nodeType !== DOMNodeTypes.COMMENT || !vnode.props) {
- return false
- }
-
- return allowMismatchAttr in vnode.props
+function isMismatchAllowedForCommentNode(
+ node: Node,
+ { props }: VNode,
+): boolean {
+ return (
+ node.nodeType === DOMNodeTypes.COMMENT &&
+ props != null &&
+ hasOwn(props, allowMismatchAttr)
+ )
}