From 2bdee50a598456392541a8a4b451501e5df2d363 Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 20 Jul 2021 13:58:43 -0400 Subject: [PATCH] fix(runtime-core): fix v-bind class/style merging regression fix #4155 --- packages/runtime-core/__tests__/vnode.spec.ts | 12 +++++++----- packages/runtime-core/src/vnode.ts | 4 ++-- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/runtime-core/__tests__/vnode.spec.ts b/packages/runtime-core/__tests__/vnode.spec.ts index 3aae17ca0d8..a38c93140aa 100644 --- a/packages/runtime-core/__tests__/vnode.spec.ts +++ b/packages/runtime-core/__tests__/vnode.spec.ts @@ -342,7 +342,7 @@ describe('vnode', () => { describe('mergeProps', () => { test('class', () => { - let props1: Data = { class: 'c' } + let props1: Data = { class: { c: true } } let props2: Data = { class: ['cc'] } let props3: Data = { class: [{ ccc: true }] } let props4: Data = { class: { cccc: true } } @@ -353,10 +353,12 @@ describe('vnode', () => { test('style', () => { let props1: Data = { - style: { - color: 'red', - fontSize: 10 - } + style: [ + { + color: 'red', + fontSize: 10 + } + ] } let props2: Data = { style: [ diff --git a/packages/runtime-core/src/vnode.ts b/packages/runtime-core/src/vnode.ts index d65cdbe05db..18db9cf5e25 100644 --- a/packages/runtime-core/src/vnode.ts +++ b/packages/runtime-core/src/vnode.ts @@ -778,8 +778,8 @@ export function normalizeChildren(vnode: VNode, children: unknown) { } export function mergeProps(...args: (Data & VNodeProps)[]) { - const ret = extend({}, args[0]) - for (let i = 1; i < args.length; i++) { + const ret: Data = {} + for (let i = 0; i < args.length; i++) { const toMerge = args[i] for (const key in toMerge) { if (key === 'class') {