On Mon, Jul 29, 2013 at 1:21 PM, Brendan Eich <[email protected]> wrote:
> This seems to neatly separate concerns, but Arv pointed out that for some
> proxy cases it won't work. I forget what he said exactly, though. Cc'ing
> him.

We went through the exercise of only having private symbols but it
lead to some issues. Here is one that we identified.

Lets assume we use a private symbol for the @@iterator. The symbol can
still be checked because anyone that has access to the right module
can get it. It is also important that a proxy for an object, O, is not
invoked when you do O[privateSymbol]. This means that it is not
possible to create an iterable proxy object, since no trap on the
proxy is invoked.

Marks' relationship proposal tries to solve the issue of private
symbols and proxies, by inverting the relationship, so that x[r]
invokes a method on r, therefore allowing you to create a proxy for r.
However, for the built-in meta protocol symbols, you cannot replace
them with a proxy to the symbol, since the symbol is already hard
coded to use the @@iterator symbol.

Therefore, we need something like public symbols for the meta operations.

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

Reply via email to