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