On Jun 3, 2011, at 3:11 PM, Waldemar Horwat wrote:

> On 06/02/11 20:12, Brendan Eich wrote:
>>> - Conflict between blocks and statements:
>>> 
>>> a = {x: while (x) { ... break x;}}
>>> 
>>> is either an object initializer or a block containing a labeled while 
>>> statement.
>> 
>> http://wiki.ecmascript.org/doku.php?id=strawman:arrow_function_syntax based 
>> on feedback from Jorge here on the list mentions a block that cannot start 
>> with a label. Two-token lookahead restriction, why not?
> 
> Don't you also want to allow (either now or in the future) for the shorthand 
> {x, y} to mean {x:x, y:y}?  There are also getters, setters, and various 
> other stuff that can be put into object initializers now or in the future, so 
> there are more possibilities than just an identifier followed by a colon.

True, and {x, y} is noted somewhere (or was in a past version) as a problem. 
http://wiki.ecmascript.org/doku.php?id=strawman:object_initialiser_shorthand 
did not get promoted yet, and I forgot to keep this pot boiling.

The accessors are not ambiguous, but the proposed !, ~, and # property prefixes 
for writable, enumerable, and configurable false-setting do make trouble.

Perhaps Breton's more radical idea of unifying objects and block (lambdas) 
deserves a look, instead of trying to separate syntaxes that start with { at 
this late date.

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

Reply via email to