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

