A Proposal For Formalizing __noSuchMethod__ in ECMAScript 3.1.
Mark S. Miller
erights at google.com
Tue Aug 19 07:48:37 PDT 2008
On Tue, Aug 19, 2008 at 2:09 AM, Igor Bukanov <igor at mir2.org> wrote:
> [...] So a generic mechanism, like the catchAll proposal,
> to proxy arbitrary property access would be more appropriate.
I agree with need for some kind of generic catchAll, and with the
objections to __noSuchMethod__. I also agree that it's too late for
any such thing to make it into ES3.1.
As we discussed in Oslo, I expect there will need to be a significant
version between ES3.1 and ES-Harmony. For purposes of discussion here,
I will call it ES3.2. The most important difference between ES3.1 and
ES3.2 is in the form of the spec, rather than its content. As Brendan
says in his Harmony note, we wish to transition the spec formalism to
SML+self hosting (along with corresponding changes to the RI).
For additions like catchAlls, whose semantics are likely to be tricky,
a major benefit of postponing them to ES3.2 is that the more
principled spec formalism is also more likely to reveal subtle
semantic difficulties. That said, we should continue to speculate
informally of course on what catchAlls should look like.
The java.lang.reflect.Proxy mechanism, the E proxy
<http://wiki.erights.org/wiki/Proxy>, and the AmbientTalk/2 Mirage
all similar, and have all been used to build semi-transparent
distributed object systems within the language. I think these ideas
can be adapted well to EcmaScript, and would also enable transparent
intermediation (such as membranes) between untrusted code and host
objects. I hope to post some ideas along these lines soon.
More information about the Es-discuss