(Vue)
| 3573 | } |
| 3574 | |
| 3575 | function renderMixin (Vue) { |
| 3576 | Vue.prototype.$nextTick = function (fn) { |
| 3577 | return nextTick(fn, this) |
| 3578 | }; |
| 3579 | |
| 3580 | Vue.prototype._render = function () { |
| 3581 | var vm = this; |
| 3582 | var ref = vm.$options; |
| 3583 | var render = ref.render; |
| 3584 | var staticRenderFns = ref.staticRenderFns; |
| 3585 | var _parentVnode = ref._parentVnode; |
| 3586 | |
| 3587 | if (vm._isMounted) { |
| 3588 | // clone slot nodes on re-renders |
| 3589 | for (var key in vm.$slots) { |
| 3590 | vm.$slots[key] = cloneVNodes(vm.$slots[key]); |
| 3591 | } |
| 3592 | } |
| 3593 | |
| 3594 | vm.$scopedSlots = (_parentVnode && _parentVnode.data.scopedSlots) || emptyObject; |
| 3595 | |
| 3596 | if (staticRenderFns && !vm._staticTrees) { |
| 3597 | vm._staticTrees = []; |
| 3598 | } |
| 3599 | // set parent vnode. this allows render functions to have access |
| 3600 | // to the data on the placeholder node. |
| 3601 | vm.$vnode = _parentVnode; |
| 3602 | // render self |
| 3603 | var vnode; |
| 3604 | try { |
| 3605 | vnode = render.call(vm._renderProxy, vm.$createElement); |
| 3606 | } catch (e) { |
| 3607 | handleError(e, vm, "render function"); |
| 3608 | // return error render result, |
| 3609 | // or previous vnode to prevent render error causing blank component |
| 3610 | /* istanbul ignore else */ |
| 3611 | if (process.env.NODE_ENV !== 'production') { |
| 3612 | vnode = vm.$options.renderError |
| 3613 | ? vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e) |
| 3614 | : vm._vnode; |
| 3615 | } else { |
| 3616 | vnode = vm._vnode; |
| 3617 | } |
| 3618 | } |
| 3619 | // return empty vnode in case the render function errored out |
| 3620 | if (!(vnode instanceof VNode)) { |
| 3621 | if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) { |
| 3622 | warn( |
| 3623 | 'Multiple root nodes returned from render function. Render function ' + |
| 3624 | 'should return a single root node.', |
| 3625 | vm |
| 3626 | ); |
| 3627 | } |
| 3628 | vnode = createEmptyVNode(); |
| 3629 | } |
| 3630 | // set parent |
| 3631 | vnode.parent = _parentVnode; |
| 3632 | return vnode |
no test coverage detected