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