|
|
@@ -188,6 +188,14 @@ export function createComponent(
|
|
|
appContext,
|
|
|
)
|
|
|
|
|
|
+ // HMR
|
|
|
+ if (__DEV__ && component.__hmrId) {
|
|
|
+ registerHMR(instance)
|
|
|
+ instance.isSingleRoot = isSingleRoot
|
|
|
+ instance.hmrRerender = hmrRerender.bind(null, instance)
|
|
|
+ instance.hmrReload = hmrReload.bind(null, instance)
|
|
|
+ }
|
|
|
+
|
|
|
if (__DEV__) {
|
|
|
pushWarningContext(instance)
|
|
|
startMeasure(instance, `init`)
|
|
|
@@ -227,14 +235,6 @@ export function createComponent(
|
|
|
// TODO make the proxy warn non-existent property access during dev
|
|
|
instance.setupState = proxyRefs(setupResult)
|
|
|
devRender(instance)
|
|
|
-
|
|
|
- // HMR
|
|
|
- if (component.__hmrId) {
|
|
|
- registerHMR(instance)
|
|
|
- instance.isSingleRoot = isSingleRoot
|
|
|
- instance.hmrRerender = hmrRerender.bind(null, instance)
|
|
|
- instance.hmrReload = hmrReload.bind(null, instance)
|
|
|
- }
|
|
|
}
|
|
|
} else {
|
|
|
// component has a render function but no setup function
|
|
|
@@ -291,18 +291,33 @@ export let isApplyingFallthroughProps = false
|
|
|
*/
|
|
|
export function devRender(instance: VaporComponentInstance): void {
|
|
|
instance.block =
|
|
|
- callWithErrorHandling(
|
|
|
- instance.type.render!,
|
|
|
- instance,
|
|
|
- ErrorCodes.RENDER_FUNCTION,
|
|
|
- [
|
|
|
- instance.setupState,
|
|
|
- instance.props,
|
|
|
- instance.emit,
|
|
|
- instance.attrs,
|
|
|
- instance.slots,
|
|
|
- ],
|
|
|
- ) || []
|
|
|
+ (instance.type.render
|
|
|
+ ? callWithErrorHandling(
|
|
|
+ instance.type.render,
|
|
|
+ instance,
|
|
|
+ ErrorCodes.RENDER_FUNCTION,
|
|
|
+ [
|
|
|
+ instance.setupState,
|
|
|
+ instance.props,
|
|
|
+ instance.emit,
|
|
|
+ instance.attrs,
|
|
|
+ instance.slots,
|
|
|
+ ],
|
|
|
+ )
|
|
|
+ : callWithErrorHandling(
|
|
|
+ isFunction(instance.type) ? instance.type : instance.type.setup!,
|
|
|
+ instance,
|
|
|
+ ErrorCodes.SETUP_FUNCTION,
|
|
|
+ [
|
|
|
+ instance.props,
|
|
|
+ {
|
|
|
+ slots: instance.slots,
|
|
|
+ attrs: instance.attrs,
|
|
|
+ emit: instance.emit,
|
|
|
+ expose: instance.expose,
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ )) || []
|
|
|
}
|
|
|
|
|
|
const emptyContext: GenericAppContext = {
|