(vnode, isRemoval)
| 4464 | }; |
| 4465 | |
| 4466 | function registerRef (vnode, isRemoval) { |
| 4467 | var key = vnode.data.ref; |
| 4468 | if (!key) { return } |
| 4469 | |
| 4470 | var vm = vnode.context; |
| 4471 | var ref = vnode.componentInstance || vnode.elm; |
| 4472 | var refs = vm.$refs; |
| 4473 | if (isRemoval) { |
| 4474 | if (Array.isArray(refs[key])) { |
| 4475 | remove(refs[key], ref); |
| 4476 | } else if (refs[key] === ref) { |
| 4477 | refs[key] = undefined; |
| 4478 | } |
| 4479 | } else { |
| 4480 | if (vnode.data.refInFor) { |
| 4481 | if (Array.isArray(refs[key]) && refs[key].indexOf(ref) < 0) { |
| 4482 | refs[key].push(ref); |
| 4483 | } else { |
| 4484 | refs[key] = [ref]; |
| 4485 | } |
| 4486 | } else { |
| 4487 | refs[key] = ref; |
| 4488 | } |
| 4489 | } |
| 4490 | } |
| 4491 | |
| 4492 | /** |
| 4493 | * Virtual DOM patching algorithm based on Snabbdom by |
no test coverage detected