expect(() => markRaw(obj)).not.toThrowError()
})
+ test('should not markRaw object as reactive', () => {
+ const a = reactive({ a: 1 })
+ const b = reactive({ b: 2 }) as any
+ b.a = markRaw(toRaw(a))
+ expect(b.a === a).toBe(false)
+ })
+
test('should not observe non-extensible objects', () => {
const obj = reactive({
foo: Object.preventExtensions({ a: 1 }),
) {
return target
}
- // target already has corresponding Proxy
- const existingProxy = proxyMap.get(target)
- if (existingProxy) {
- return existingProxy
- }
// only specific value types can be observed.
const targetType = getTargetType(target)
if (targetType === TargetType.INVALID) {
return target
}
+ // target already has corresponding Proxy
+ const existingProxy = proxyMap.get(target)
+ if (existingProxy) {
+ return existingProxy
+ }
const proxy = new Proxy(
target,
targetType === TargetType.COLLECTION ? collectionHandlers : baseHandlers,