File tree 1 file changed +9
-8
lines changed
1 file changed +9
-8
lines changed Original file line number Diff line number Diff line change 1
- import { isObject , toRawType , def } from '@vue/shared'
1
+ import { isObject , toRawType , def , hasOwn } from '@vue/shared'
2
2
import {
3
3
mutableHandlers ,
4
4
readonlyHandlers ,
@@ -116,18 +116,19 @@ function createReactiveObject(
116
116
return target
117
117
}
118
118
// target already has corresponding Proxy
119
- let observed = isReadonly ? target . __v_readonly : target . __v_reactive
120
- if ( observed !== void 0 ) {
121
- return observed
119
+ if (
120
+ hasOwn ( target , isReadonly ? ReactiveFlags . readonly : ReactiveFlags . reactive )
121
+ ) {
122
+ return isReadonly ? target . __v_readonly : target . __v_reactive
122
123
}
123
124
// only a whitelist of value types can be observed.
124
125
if ( ! canObserve ( target ) ) {
125
126
return target
126
127
}
127
- const handlers = collectionTypes . has ( target . constructor )
128
- ? collectionHandlers
129
- : baseHandlers
130
- observed = new Proxy ( target , handlers )
128
+ const observed = new Proxy (
129
+ target ,
130
+ collectionTypes . has ( target . constructor ) ? collectionHandlers : baseHandlers
131
+ )
131
132
def (
132
133
target ,
133
134
isReadonly ? ReactiveFlags . readonly : ReactiveFlags . reactive ,
You can’t perform that action at this time.
0 commit comments