Proxies: Additional item for January Agenda

Mark S. Miller erights at google.com
Sat Jan 9 23:13:49 PST 2010


On Sat, Jan 9, 2010 at 10:43 PM, Brendan Eich <brendan at mozilla.com> wrote:

> On Jan 9, 2010, at 9:24 PM, Mark S. Miller wrote:
>
> Tom Van Cutsem & I are quite satisfied with the alternate catchall strawman
> we have posted as "proxies" at <
> http://wiki.ecmascript.org/doku.php?id=strawman:proxies>. The current
> state of this strawman reflects all the input we have received from
> discussions on es-discuss. It seems to hold up very well to all the use-case
> experiments we have subjected it to (as gedanken experiments we cannot run
> yet).
>
>
> I raised a point about [[Invoke]] not being equivalent to [[Get]] and then
> [[Call]] due to order of evaluation:
>
> https://mail.mozilla.org/pipermail/es-discuss/2009-December/010332.html
>
> Did you or Tom have more thoughts on this issue? I couldn't find them in
> the wiki page.
>
>
I see the issue. No more thoughts at the present time. To recap, in your
example

    array[index++].method(--j, ++k)

were proxies reflecting this with a get() trap that was then invoked (as
they used it in our original proposal), the get() trap would be called after
the index++ side effect and before --j or ++k. The gotten function (or
gotten function proxy) would still be called after --j and ++k, but that's
besides the point.

In the present proposal, an invoke() trap is only called after all three
side effects. The default invoke() trap,

  invoke: function(receiver, name, args) {
    return this.get(receiver, name).apply(receiver, args);
  },

is defined in terms of the get() trap, emulating this aspect of the earlier
proposal imperfectly, since it thus calls the get() trap after all three
side effects. The only solution I can think of to this problem is to
withdraw the invoke() handler from the proposal, reverting to this aspect of
the previous design. If we can convince ourselves we can optimize away the
implied extra allocation, this may indeed be best. It certainly makes the
proposal simpler. What are your thoughts from the implementation side?


>
> I do not mean to monopolize the January meeting. But if no one has more
> pressing topics, I suggest all of these would also be good discussion topics
> for es-discuss between now and the January meeting. Especially if anyone has
> any remaining unaddressed objections to the weak-pointer or proxies
> strawmen.
>
>
> We should definitely spend time on proxies and weak references, but we'll
> have modules to cover too, with dherman and samth attending.
>
>
Modules would be great! But I believe Ihab, due to travel conflicts, has
been preparing to present a module proposal for the March meeting, not the
January one. Ihab?



> /be
>
>


-- 
   Cheers,
   --MarkM
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20100109/9e111f81/attachment.html>


More information about the es-discuss mailing list