On May 1, 2010, at 2:49 PM, Dmitry A. Soshnikov wrote:

Hello Mark,

Sunday, May 2, 2010, 1:02:36 AM, you wrote:

On Sat, May 1, 2010 at 1:27 PM, Brendan Eich <[email protected]> wrote:
On May 1, 2010, at 12:34 PM, Faisal Vali wrote:

As I read the proposal, I do wish an invoke-like trap had been
accepted - but I understand that there were some technicalities that
proved unresolvable.

Everyone wants __noSuchMethod__

I don't. I want proxies instead. ;)

I meant "Everyone" to mean "many people" -- for the convenience.


By the way, why exactly proxies? And not special meta hooks such as
__noSuchMethod__, __construct__, __call__, __get__, __set__ and other?

Mark and Tom's write-up is on the wiki, have you read it?

Stratifying means native objects need no magic meta methods which can be hijacked by user code. This is important for the spec's soundness, as well as for security and ease of implementation/optimization.

Nothing reserved __names__, that is just a Python convention, and C, or really the C pre-processor I suppose. The ship has sailed. Even if we could reserve __names__, mixing traps and base methods is a recipe for spec unsoundness, insecurity, and implementation bugs and slowness.

Proxies avoid all these problems. They are truly winning, we have an implementation nearly done for SpiderMonkey so I can write this as an implementor.

The only issue that nags at us is the loss of a convenient invoke trap that preserves evaluation order. One could be added, but it is tantamount to creating (or hitting a cached) Proxy, in order to preserve order of evaluation.

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

Reply via email to