From e151d341007b3196fba89a3788b8b7746642f454 Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 26 Feb 2019 21:45:13 -0500 Subject: [PATCH] test: fix mixin case --- packages/runtime-core/src/component.ts | 1 + packages/runtime-core/src/componentProps.ts | 8 +++----- packages/runtime-core/src/componentState.ts | 5 ++--- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/packages/runtime-core/src/component.ts b/packages/runtime-core/src/component.ts index 83d865522f..6e00f3914c 100644 --- a/packages/runtime-core/src/component.ts +++ b/packages/runtime-core/src/component.ts @@ -145,6 +145,7 @@ class InternalComponent implements PublicInstanceMethods { // so that the extended class constructor (and property initializers) can // access $props. this.$props = props + Object.assign(this, props) } if (__COMPAT__) { ;(this as any)._eventEmitter = new EventEmitter(this) diff --git a/packages/runtime-core/src/componentProps.ts b/packages/runtime-core/src/componentProps.ts index 91defca4e3..044bfd754f 100644 --- a/packages/runtime-core/src/componentProps.ts +++ b/packages/runtime-core/src/componentProps.ts @@ -47,11 +47,9 @@ export function initializeProps( // expose initial props on the raw instance so that they can be accessed // in the child class constructor by class field initializers. if (options != null) { - for (const key in props) { - // it's okay to just set it here because props options are normalized - // and reserved keys should have been filtered away - ;(instance as any)[key] = props[key] - } + // it's okay to just set it here because props options are normalized + // and reserved keys should have been filtered away + Object.assign(instance, props) } } diff --git a/packages/runtime-core/src/componentState.ts b/packages/runtime-core/src/componentState.ts index b5ed9d4da9..74beb5fea4 100644 --- a/packages/runtime-core/src/componentState.ts +++ b/packages/runtime-core/src/componentState.ts @@ -20,12 +20,11 @@ export function extractInitializers( data: any = {} ): any { const keys = Object.keys(instance) - const props = instance.$options.props + const props = instance.$props for (let i = 0; i < keys.length; i++) { const key = keys[i] if (!isReservedKey(key)) { - // it's possible for a prop to be present here when it's declared - if (!props || !props.hasOwnProperty(key)) { + if (!props.hasOwnProperty(key)) { data[key] = (instance as any)[key] } } -- 2.47.3