Skip to content

Commit f3074a1

Browse files
committed
fix $add/$delete reserved key warning (no longer needed)
1 parent d0560e3 commit f3074a1

File tree

2 files changed

+7
-18
lines changed

2 files changed

+7
-18
lines changed

src/observer/object.js

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,12 @@ _.define(
1414
objProto,
1515
'$add',
1616
function $add (key, val) {
17+
if (this.hasOwnProperty(key)) return
1718
var ob = this.__ob__
18-
if (!ob) {
19+
if (!ob || _.isReserved(key)) {
1920
this[key] = val
2021
return
2122
}
22-
if (_.isReserved(key)) {
23-
_.warn('Refused to $add reserved key: ' + key)
24-
return
25-
}
26-
if (this.hasOwnProperty(key)) return
2723
ob.convert(key, val)
2824
if (ob.vms) {
2925
var i = ob.vms.length
@@ -50,17 +46,12 @@ _.define(
5046
objProto,
5147
'$delete',
5248
function $delete (key) {
49+
if (!this.hasOwnProperty(key)) return
50+
delete this[key]
5351
var ob = this.__ob__
54-
if (!ob) {
55-
delete this[key]
56-
return
57-
}
58-
if (_.isReserved(key)) {
59-
_.warn('Refused to $add reserved key: ' + key)
52+
if (!ob || _.isReserved(key)) {
6053
return
6154
}
62-
if (!this.hasOwnProperty(key)) return
63-
delete this[key]
6455
if (ob.vms) {
6556
var i = ob.vms.length
6657
while (i--) {

test/unit/specs/api/data_spec.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,9 @@ describe('Data API', function () {
6565
expect(vm.c).toBe(1)
6666
expect(vm._data.c).toBe(1)
6767
expect(vm._digest).toHaveBeenCalled()
68-
// reserved key should warn
68+
// reserved key should not be proxied
6969
vm.$add('_c', 1)
7070
expect(vm._c).toBeUndefined()
71-
expect(_.warn).toHaveBeenCalled()
7271
})
7372

7473
it('$delete', function () {
@@ -77,10 +76,9 @@ describe('Data API', function () {
7776
expect(vm.hasOwnProperty('a')).toBe(false)
7877
expect(vm._data.hasOwnProperty('a')).toBe(false)
7978
expect(vm._digest).toHaveBeenCalled()
80-
// reserved key should warn
79+
// reserved key should not be deleted
8180
vm.$delete('_data')
8281
expect(vm._data).toBeTruthy()
83-
expect(_.warn).toHaveBeenCalled()
8482
})
8583

8684
it('$watch', function (done) {

0 commit comments

Comments
 (0)