import {
PatchFlags,
ShapeFlags,
+ def,
includeBooleanAttr,
isBooleanAttr,
isKnownHtmlAttr,
vnode.el = node
if (__DEV__ || __FEATURE_PROD_DEVTOOLS__) {
- if (!('__vnode' in node)) {
- Object.defineProperty(node, '__vnode', {
- value: vnode,
- enumerable: false,
- })
- }
- if (!('__vueParentComponent' in node)) {
- Object.defineProperty(node, '__vueParentComponent', {
- value: parentComponent,
- enumerable: false,
- })
- }
+ def(node, '__vnode', vnode, true)
+ def(node, '__vueParentComponent', parentComponent, true)
}
if (patchFlag === PatchFlags.BAIL) {
NOOP,
PatchFlags,
ShapeFlags,
+ def,
getGlobalThis,
invokeArrayFns,
isArray,
}
if (__DEV__ || __FEATURE_PROD_DEVTOOLS__) {
- Object.defineProperty(el, '__vnode', {
- value: vnode,
- enumerable: false,
- })
- Object.defineProperty(el, '__vueParentComponent', {
- value: parentComponent,
- enumerable: false,
- })
+ def(el, '__vnode', vnode, true)
+ def(el, '__vueParentComponent', parentComponent, true)
}
+
if (dirs) {
invokeDirectiveHook(vnode, null, parentComponent, 'beforeMount')
}
optimized: boolean,
) => {
const el = (n2.el = n1.el!)
+ if (__DEV__ || __FEATURE_PROD_DEVTOOLS__) {
+ el.__vnode = n2
+ }
let { patchFlag, dynamicChildren, dirs } = n2
// #1426 take the old vnode's patch flag into account since user may clone a
// compiler-generated vnode, which de-opts to FULL_PROPS