|
@@ -11,6 +11,7 @@ import {
|
|
|
import { createElement } from '../vdom/create-element'
|
|
import { createElement } from '../vdom/create-element'
|
|
|
import { installRenderHelpers } from './render-helpers/index'
|
|
import { installRenderHelpers } from './render-helpers/index'
|
|
|
import { resolveSlots } from './render-helpers/resolve-slots'
|
|
import { resolveSlots } from './render-helpers/resolve-slots'
|
|
|
|
|
+import { normalizeScopedSlots } from '../vdom/helpers/normalize-scoped-slots'
|
|
|
import VNode, { createEmptyVNode } from '../vdom/vnode'
|
|
import VNode, { createEmptyVNode } from '../vdom/vnode'
|
|
|
|
|
|
|
|
import { isUpdatingChildComponent } from './lifecycle'
|
|
import { isUpdatingChildComponent } from './lifecycle'
|
|
@@ -63,7 +64,7 @@ export function renderMixin (Vue: Class<Component>) {
|
|
|
const { render, _parentVnode } = vm.$options
|
|
const { render, _parentVnode } = vm.$options
|
|
|
|
|
|
|
|
if (_parentVnode) {
|
|
if (_parentVnode) {
|
|
|
- vm.$scopedSlots = _parentVnode.data.scopedSlots || emptyObject
|
|
|
|
|
|
|
+ vm.$scopedSlots = normalizeScopedSlots(_parentVnode.data.scopedSlots)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// set parent vnode. this allows render functions to have access
|
|
// set parent vnode. this allows render functions to have access
|
|
@@ -89,6 +90,10 @@ export function renderMixin (Vue: Class<Component>) {
|
|
|
vnode = vm._vnode
|
|
vnode = vm._vnode
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ // if the returned array contains only a single node, allow it
|
|
|
|
|
+ if (Array.isArray(vnode) && vnode.length === 1) {
|
|
|
|
|
+ vnode = vnode[0]
|
|
|
|
|
+ }
|
|
|
// return empty vnode in case the render function errored out
|
|
// return empty vnode in case the render function errored out
|
|
|
if (!(vnode instanceof VNode)) {
|
|
if (!(vnode instanceof VNode)) {
|
|
|
if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {
|
|
if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {
|