fix(runtime-core): avoid accidental access of Object.prototype properties
This commit is contained in:
parent
b0fb1e06b4
commit
f3e9c1b59d
@ -723,9 +723,8 @@ export function resolveMergedOptions(
|
||||
function mergeOptions(to: any, from: any, instance: ComponentInternalInstance) {
|
||||
const strats = instance.appContext.config.optionMergeStrategies
|
||||
for (const key in from) {
|
||||
const strat = strats && strats[key]
|
||||
if (strat) {
|
||||
to[key] = strat(to[key], from[key], instance.proxy, key)
|
||||
if (strats && hasOwn(strats, key)) {
|
||||
to[key] = strats[key](to[key], from[key], instance.proxy, key)
|
||||
} else if (!hasOwn(to, key)) {
|
||||
to[key] = from[key]
|
||||
}
|
||||
|
@ -166,10 +166,9 @@ export type ComponentPublicInstanceConstructor<
|
||||
new (): T
|
||||
}
|
||||
|
||||
const publicPropertiesMap: Record<
|
||||
string,
|
||||
(i: ComponentInternalInstance) => any
|
||||
> = {
|
||||
type PublicPropertiesMap = Record<string, (i: ComponentInternalInstance) => any>
|
||||
|
||||
const publicPropertiesMap: PublicPropertiesMap = extend(Object.create(null), {
|
||||
$: i => i,
|
||||
$el: i => i.vnode.el,
|
||||
$data: i => i.data,
|
||||
@ -184,7 +183,7 @@ const publicPropertiesMap: Record<
|
||||
$forceUpdate: i => () => queueJob(i.update),
|
||||
$nextTick: () => nextTick,
|
||||
$watch: __FEATURE_OPTIONS__ ? i => instanceWatch.bind(i) : NOOP
|
||||
}
|
||||
} as PublicPropertiesMap)
|
||||
|
||||
const enum AccessTypes {
|
||||
SETUP,
|
||||
|
Loading…
Reference in New Issue
Block a user