Skip to content

Commit 9e10325

Browse files
committed
observer: fix check error
1 parent 6ce6e0c commit 9e10325

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

src/observer/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ Observer.create = function (value, vm) {
4747
}
4848
var ob
4949
if (
50-
value.hasOwnProperty('__ob__') &&
50+
'__ob__' in value &&
5151
value.__ob__ instanceof Observer
5252
) {
5353
ob = value.__ob__

test/unit/specs/observer/observer_spec.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,23 @@ describe('Observer', function () {
3838
expect(ob2).toBe(ob)
3939
})
4040

41+
it('create on null', function () {
42+
// on null
43+
var obj = Object.create(null)
44+
obj.a = {}
45+
obj.b = {}
46+
var ob = Observer.create(obj)
47+
expect(ob instanceof Observer).toBe(true)
48+
expect(ob.value).toBe(obj)
49+
expect(obj.__ob__).toBe(ob)
50+
// should've walked children
51+
expect(obj.a.__ob__ instanceof Observer).toBe(true)
52+
expect(obj.b.__ob__ instanceof Observer).toBe(true)
53+
// should return existing ob on already observed objects
54+
var ob2 = Observer.create(obj)
55+
expect(ob2).toBe(ob)
56+
})
57+
4158
it('create on array', function () {
4259
// on object
4360
var arr = [{}, {}]

0 commit comments

Comments
 (0)