import { ComponentPropsOptions } from '@vue/runtime-core' import { isArray, isPromise, isFunction } from '@vue/shared' import { getCurrentInstance, setCurrentInstance, SetupContext, createSetupContext, unsetCurrentInstance } from './component' import { EmitFn, EmitsOptions } from './componentEmits' import { ComponentObjectPropsOptions, ExtractPropTypes } from './componentProps' import { warn } from './warning' // dev only const warnRuntimeUsage = (method: string) => warn( `${method}() is a compiler-hint helper that is only usable inside ` + `