} from '@vue/shared'
import { warn } from './warning'
import { Data, ComponentInstance } from './component'
+import { FULL_PROPS } from './patchFlags'
export type ComponentPropsOptions<P = Data> = {
[K in keyof P]: Prop<P[K]> | null
attrs = props
}
+ // in case of dynamic props, check if we need to delete keys from
+ // the props proxy
+ const { patchFlag } = instance.vnode
+ if (propsProxy !== null && (patchFlag === 0 || patchFlag & FULL_PROPS)) {
+ const rawInitialProps = unwrap(propsProxy)
+ for (const key in rawInitialProps) {
+ if (!props.hasOwnProperty(key)) {
+ delete propsProxy[key]
+ }
+ }
+ }
+
// lock immutable
lock()