On Tue, Sep 10, 2013 at 11:11 AM, Allen Wirfs-Brock
<[email protected]> wrote:
> Having to create a new bound function on every method call seems too 
> expensive.

Only for proxy method calls, and it's easily optimized away in the
default case (i.e. there is no .getMethod handler method).

(As an aside, exchanges like the above have gotten so frequent they
are beginning to feel a bit pro forma. I don't mean to sweep all
performance concerns into one pile here.)

>  But what about:
>
>  6. Let method = O.[[Get]](P).
>  7. ReturnIfAbrupt(method).
>  8. If IsCallable(method) is false, throw a TypeError.
>  9. Return O.[[InvokeFunction]](method,O, args).
>
> Using [[InvokeFunction]] the Proxy still mediates the [[Call]] to method but 
> it is assume the [[Get]] step has already been performed and has produced 
> method.

This is appealing. There are a few things [[GetMethod]] can do that
this can't: [[InvokeFunction]] can't be used to make a proxy that
mimics the behavior of __noSuchMethod__, for example. I don't think it
can mimic ActionScript 3 Proxy.callMethod either.

If [[InvokeFunction]] is deemed powerful enough, I'm all for it.

-j
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to