If this PR gets merged -> #87, the reactivity will not wrap Map, Set, WeakMap, WeakSet (which means they'll be returned without any interception)
Without it being merged I don't think they work properly inside of reactive(), the following throws:
const data = reactive({
map: new Map()
})
data.map.size
Error in the browser (Firefox): Uncaught TypeError: get size method called on incompatible Proxy
Output in a test with the above code:
TypeError: Method get Map.prototype.size called on incompatible receiver #<Map>
❯ Object.get src/reactive.ts:208:29
206| if (Reflect.has(depProps, p)) return Reflect.get(depProps, p)
207|
208| const value = Reflect.get(...args)
| ^
209| // For any existing dependency collectors that are active, add this
210| // property to their observed properties.
If this PR gets merged -> #87, the reactivity will not wrap Map, Set, WeakMap, WeakSet (which means they'll be returned without any interception)
Without it being merged I don't think they work properly inside of
reactive(), the following throws:Error in the browser (Firefox):
Uncaught TypeError: get size method called on incompatible ProxyOutput in a test with the above code: