(oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds)
| 4992 | } |
| 4993 | }; |
| 4994 | const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => { |
| 4995 | for (let i = 0; i < newChildren.length; i++) { |
| 4996 | const oldVNode = oldChildren[i]; |
| 4997 | const newVNode = newChildren[i]; |
| 4998 | const container = ( |
| 4999 | // oldVNode may be an errored async setup() component inside Suspense |
| 5000 | // which will not have a mounted element |
| 5001 | oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent |
| 5002 | // of the Fragment itself so it can move its children. |
| 5003 | (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement |
| 5004 | // which also requires the correct parent container |
| 5005 | !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything. |
| 5006 | oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : ( |
| 5007 | // In other cases, the parent container is not actually used so we |
| 5008 | // just pass the block element here to avoid a DOM parentNode call. |
| 5009 | fallbackContainer |
| 5010 | ) |
| 5011 | ); |
| 5012 | patch( |
| 5013 | oldVNode, |
| 5014 | newVNode, |
| 5015 | container, |
| 5016 | null, |
| 5017 | parentComponent, |
| 5018 | parentSuspense, |
| 5019 | namespace, |
| 5020 | slotScopeIds, |
| 5021 | true |
| 5022 | ); |
| 5023 | } |
| 5024 | }; |
| 5025 | const patchProps = (el, oldProps, newProps, parentComponent, namespace) => { |
| 5026 | if (oldProps !== newProps) { |
| 5027 | if (oldProps !== EMPTY_OBJ) { |
no test coverage detected