@@ -768,23 +768,24 @@ export function resolveMergedOptions(
768
768
const globalMixins = instance . appContext . mixins
769
769
if ( ! globalMixins . length && ! mixins && ! extendsOptions ) return raw
770
770
const options = { }
771
- mergeOptions ( options , raw , instance )
772
771
globalMixins . forEach ( m => mergeOptions ( options , m , instance ) )
772
+ mergeOptions ( options , raw , instance )
773
773
return ( raw . __merged = options )
774
774
}
775
775
776
776
function mergeOptions ( to : any , from : any , instance : ComponentInternalInstance ) {
777
777
const strats = instance . appContext . config . optionMergeStrategies
778
+ const { mixins, extends : extendsOptions } = from
779
+
780
+ extendsOptions && mergeOptions ( to , extendsOptions , instance )
781
+ mixins &&
782
+ mixins . forEach ( ( m : ComponentOptionsMixin ) => mergeOptions ( to , m , instance ) )
783
+
778
784
for ( const key in from ) {
779
785
if ( strats && hasOwn ( strats , key ) ) {
780
786
to [ key ] = strats [ key ] ( to [ key ] , from [ key ] , instance . proxy , key )
781
- } else if ( ! hasOwn ( to , key ) ) {
787
+ } else {
782
788
to [ key ] = from [ key ]
783
789
}
784
790
}
785
- const { mixins, extends : extendsOptions } = from
786
-
787
- extendsOptions && mergeOptions ( to , extendsOptions , instance )
788
- mixins &&
789
- mixins . forEach ( ( m : ComponentOptionsMixin ) => mergeOptions ( to , m , instance ) )
790
791
}
0 commit comments