instanceof trap - Useful to implement promises through proxies

Tom Van Cutsem tomvc.be at gmail.com
Fri Nov 19 07:38:53 PST 2010


Hi Sebastian,

Could you clarify why trapping instanceof is required for promises? It seems
your use case can be addressed already using the current Proxy API: if `FP`
is a function proxy, then `obj instanceof FP` will query `FP` for its
`prototype` property (as per the default algorithm) by calling the function
proxy's `get` trap. Inside that `get` trap, you could check whether the
prototype is unresolved or "far" and if so, throw an exception.

Cheers,
Tom

2010/11/18 Sebastian Markbåge <sebastian at calyptus.eu>

> I thought I'd make the case for the "instanceof trap"
> in strawman:proxy_extensions - beyond multiple inheritance. I'm sure this
> point has been made before at some point.
>
> This is useful to implement various forms of promises using proxies. The
> prototype can be resolved at a later time perhaps after some IO or lazy
> operation. This should be able to fail if the promise is currently
> unresolved or "far".
>
> It's the final piece missing to preserve "the invariants that keep the JS
> lucid dream".
>
> I'm also curious to hear any objections to this proposal. I don't see the
> same issues as with mutable prototypes being applicable to proxies.
>
> Sebastian Markbåge
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20101119/a8dc1f94/attachment.html>


More information about the es-discuss mailing list