// if value is observable, create a clone of original
// so that we can normalize its class/style
+ // since this guard is only placed here, this means any direct createXXXVnode
+ // functions only accept fresh data objects.
if (isObservable(data)) {
data = Object.assign({}, data)
}
if (isFunction(children)) {
// function as children
slots = { default: children }
- } else if (isArray(children) || (children as any)._isVNode) {
- // direct vnode children
- slots = { default: () => children }
- } else if (isObject(children)) {
+ } else if (isObject(children) && !(children as any)._isVNode) {
// slot object as children
slots = children
+ } else {
+ slots = { default: () => children }
}
slots = normalizeSlots(slots)
}