New private names proposal

Chuck Jazdzewski chuckj at microsoft.com
Thu Dec 16 14:40:28 PST 2010


Ø  Currently is JS, x['foo'] and x.foo are precisely identical in all contexts.

This is true when the string contains a is a legal identifier and false otherwise. The [] syntax is a superset of the '.' syntax. The proposal preserves this through the use of "#" expression, e.g.,

                private x;
                this.x = 1;

is equivalent to

                private x;
                this[#.x] = 1;

which means it is still regular. What it doesn't preserve is the property name is always representable as a string. The property name becomes a plus type of String+Name. With proxies it becomes a String+Name+ProxiedName type where the ProxiedName is used to hide the Name value.

Chuck.

From: es-discuss-bounces at mozilla.org [mailto:es-discuss-bounces at mozilla.org] On Behalf Of Mark S. Miller
Sent: Thursday, December 16, 2010 2:19 PM
To: Kris Kowal
Cc: es-discuss at mozilla.org
Subject: Re: New private names proposal


On Thu, Dec 16, 2010 at 1:58 PM, Kris Kowal <kris.kowal at cixar.com<mailto:kris.kowal at cixar.com>> wrote:
On Thu, Dec 16, 2010 at 1:53 PM, David Herman <dherman at mozilla.com<mailto:dherman at mozilla.com>> wrote:
>
>    function Point(x, y) {
>        private x, y;
>        this.x = x;
>        this.y = y;
>        ...
>    }
>
> than
>
>    function Point(x, y) {
>        var _x = gensym(), _y = gensym();
>        this[_x] = x;
>        this[_y] = y;
>    }
I tend to disagree with most developers, so take it with a grain of
salt that I find the latter form, with all the implied abilities,
easier to understand.

I do too. While terseness clearly contributes to understandability, regularity and simplicity do too. When these conflict, we should be very careful about sacrificing regularity.

Currently is JS, x['foo'] and x.foo are precisely identical in all contexts. This regularity helps understandability. The terseness difference above is not an adequate reason to sacrifice it.




Kris Kowal
_______________________________________________
es-discuss mailing list
es-discuss at mozilla.org<mailto:es-discuss at mozilla.org>
https://mail.mozilla.org/listinfo/es-discuss



--
    Cheers,
    --MarkM
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20101216/12ae669d/attachment-0001.html>


More information about the es-discuss mailing list