fix(reactivity): use isExtensible instead of isFrozen (#1753)
close #1784
This commit is contained in:
parent
3692f2738f
commit
2787c34cd4
@ -183,11 +183,16 @@ describe('reactivity/reactive', () => {
|
||||
expect(isReactive(obj.bar)).toBe(false)
|
||||
})
|
||||
|
||||
test('should not observe frozen objects', () => {
|
||||
test('should not observe non-extensible objects', () => {
|
||||
const obj = reactive({
|
||||
foo: Object.freeze({ a: 1 })
|
||||
foo: Object.preventExtensions({ a: 1 }),
|
||||
// sealed or frozen objects are considered non-extensible as well
|
||||
bar: Object.freeze({ a: 1 }),
|
||||
baz: Object.seal({ a: 1 })
|
||||
})
|
||||
expect(isReactive(obj.foo)).toBe(false)
|
||||
expect(isReactive(obj.bar)).toBe(false)
|
||||
expect(isReactive(obj.baz)).toBe(false)
|
||||
})
|
||||
|
||||
test('should not observe objects with __v_skip', () => {
|
||||
|
@ -39,7 +39,7 @@ const canObserve = (value: Target): boolean => {
|
||||
return (
|
||||
!value[ReactiveFlags.SKIP] &&
|
||||
isObservableType(toRawType(value)) &&
|
||||
!Object.isFrozen(value)
|
||||
Object.isExtensible(value)
|
||||
)
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user