diff --git a/src/core/instance/render-helpers/render-slot.js b/src/core/instance/render-helpers/render-slot.js index 0d9e1af3fd8..3eaff882522 100644 --- a/src/core/instance/render-helpers/render-slot.js +++ b/src/core/instance/render-helpers/render-slot.js @@ -15,7 +15,7 @@ export function renderSlot ( if (scopedSlotFn) { // scoped slot props = props || {} if (bindObject) { - extend(props, bindObject) + props = extend(extend({}, bindObject), props) } return scopedSlotFn(props) || fallback } else { diff --git a/test/unit/features/component/component-scoped-slot.spec.js b/test/unit/features/component/component-scoped-slot.spec.js index 9af53cd4992..0a7923d9938 100644 --- a/test/unit/features/component/component-scoped-slot.spec.js +++ b/test/unit/features/component/component-scoped-slot.spec.js @@ -36,7 +36,7 @@ describe('Component scoped slot', () => { template: ` `, @@ -45,23 +45,23 @@ describe('Component scoped slot', () => { data () { return { msg: 'hello', - obj: { msg2: 'world' } + obj: { msg2: 'world', msg3: '.' } } }, template: `
- +
` } } }).$mount() - expect(vm.$el.innerHTML).toBe('hello world') + expect(vm.$el.innerHTML).toBe('hello world !') vm.$refs.test.msg = 'bye' vm.$refs.test.obj.msg2 = 'bye' waitForUpdate(() => { - expect(vm.$el.innerHTML).toBe('bye bye') + expect(vm.$el.innerHTML).toBe('bye bye !') }).then(done) })