diff --git a/src/core/instance/render-helpers/bind-object-props.js b/src/core/instance/render-helpers/bind-object-props.js
index 9a7b46df..f1b34ae2 100644
--- a/src/core/instance/render-helpers/bind-object-props.js
+++ b/src/core/instance/render-helpers/bind-object-props.js
@@ -7,7 +7,8 @@ import {
isObject,
toObject,
isReservedAttribute,
- camelize
+ camelize,
+ hyphenate
} from 'core/util/index'
/**
@@ -45,12 +46,13 @@ export function bindObjectProps (
: data.attrs || (data.attrs = {})
}
const camelizedKey = camelize(key)
- if (!(key in hash) && !(camelizedKey in hash)) {
+ const hyphenatedKey = hyphenate(key)
+ if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {
hash[key] = value[key]
if (isSync) {
const on = data.on || (data.on = {})
- on[`update:${camelizedKey}`] = function ($event) {
+ on[`update:${key}`] = function ($event) {
value[key] = $event
}
}
diff --git a/test/unit/features/directives/bind.spec.js b/test/unit/features/directives/bind.spec.js
index 3d29c984..7e4827dc 100644
--- a/test/unit/features/directives/bind.spec.js
+++ b/test/unit/features/directives/bind.spec.js
@@ -234,7 +234,7 @@ describe('Directive v-bind', () => {
template: `