@@ -121,8 +121,6 @@ export function observe (value: any, asRootData: ?boolean, key: any): Observer |
121121 ! value . _isVue
122122 ) {
123123 ob = new Observer ( value , key )
124- ob . __keyPath = ob . __keyPath ? ob . __keyPath : { }
125- ob . __keyPath [ key ] = true
126124 }
127125 if ( asRootData && ob ) {
128126 ob . vmCount ++
@@ -186,8 +184,12 @@ export function defineReactive (
186184 }
187185 childOb = ! shallow && observe ( newVal , undefined , key )
188186 dep . notify ( )
189- obj . __keyPath = obj . __keyPath ? obj . __keyPath : { }
190- obj . __keyPath [ key ] = true
187+
188+ const ob = obj . __ob__
189+ if ( ! ob . __keyPath ) {
190+ def ( ob , '__keyPath' , { } , false )
191+ }
192+ ob . __keyPath [ key ] = true
191193 }
192194 } )
193195}
@@ -222,7 +224,7 @@ export function set (target: Array<any> | Object, key: any, val: any): any {
222224 defineReactive ( ob . value , key , val )
223225 // Vue.set 添加对象属性,渲染时候把 val 传给小程序渲染
224226 if ( ! target . __keyPath ) {
225- target . __keyPath = { }
227+ def ( target , ' __keyPath' , { } , false )
226228 }
227229 target . __keyPath [ key ] = true
228230 ob . dep . notify ( )
@@ -253,7 +255,7 @@ export function del (target: Array<any> | Object, key: any) {
253255 return
254256 }
255257 if ( ! target . __keyPath ) {
256- target . __keyPath = { }
258+ def ( target , ' __keyPath' , { } , false )
257259 }
258260 // Vue.del 删除对象属性,渲染时候把这个属性设置为 undefined
259261 target . __keyPath [ key ] = 'del'
0 commit comments