I'm trying to wrap a JS Set
in a Proxy
, and have the following interchange with node REPL
> const s = new Set()
undefined
> s.add(1)
Set(1) { 1 }
> const p = new Proxy(s, {})
undefined
> p
Proxy [ Set(1) { 1 }, {} ]
> p.add(1)
Uncaught:
TypeError: Method Set.prototype.add called on incompatible receiver [object Object]
at Proxy.add (<anonymous>)
Is there any way to use Set
wrapped in a Proxy
?
PS. I'm assuming this will also be true for other built-ins like Map, WeakMap, etc?
EDIT:
playing around further, bind
ing a method and setting it on s
does allow for it to be called without throwing an error.