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