usable enough private names (was: Re: Using Object Literals as Classes)

Brendan Eich brendan at
Sat Mar 17 00:14:07 PDT 2012

Axel Rauschmayer wrote:
> private x,y; is syntactically tricky inside an object initializer. The previous consensus was to use
>       private { x, y }

I don't like object literal syntax, it takes over like a weed. If 
classes are worth adding with higher-level (but still desugarable) 
semantics per yard of syntax, as I think Kevin's blog post in part 
argues for, then I continue to believe they'll need bespoke body-syntax 
-- neither object literal nor function (code).

Definitely we want sugar for

   const x = Name.create(), y = Name.create();

I don't see why, given the right class body syntax, that sugar could not be

   private x, y;

The old-ES4/JS2 idea of using {} for arbitrary distribution of a keyword 
over a list of declarators, as an alternative to C++ labeled sections, 
is not obviously needed. My fork of jashkenas's gist tried it out but 
I'm cool on it now.

> For example here:
> (Brendan’s class proposal)
> (my class proposal)
> On Mar 16, 2012, at 22:24 , Domenic Denicola wrote:
>> Yes, this looks pretty solid, although I can't remember seeing it anywhere.

More information about the es-discuss mailing list