On Oct 15, 2010, at 11:08 AM, Mike Shaver wrote:

> On Fri, Oct 15, 2010 at 8:34 AM, Brendan Eich <[email protected]> wrote:
>> On Oct 14, 2010, at 11:47 PM, Dominic Cooney wrote:
>> 
>>> On the harmony:destructuring page
>>> <http://wiki.ecmascript.org/doku.php?id=harmony:destructuring> it
>>> specifies this syntax for patterns:
>>> 
>>> Pattern ::= "{" (Field ("," Field)*)* "}"
>>>          | "[" ((Pattern | LValue)? ",")* "]"
>>> Field   ::= Identifier (":" (Pattern | LValue))?
>>> LValue  ::= <any lvalue expression allowed in a normal assignment 
>>> expression>
>>> 
>>> Is it intentional that commas aren't required between fields of an
>>> object pattern, for example, {x y}? That seems concise, but odd.
>>> SpiderMonkey doesn't support this syntax.
>> 
>> There is a comma (",") in the first EBNF production you cite from the wiki, 
>> just after the meta-left-parenthesis:
>> 
>>> Pattern ::= "{" (Field ("," Field)*)* "}"
> 
> Maybe I'm misreading it too, but I would expect that since the inner
> ("," Field)* can match the empty string
> 
> "{" (Field )* "}"
> 
> and therefore as Dominic says just have "{" Field Field Field "}"

Right, I noticed that after posting and fixed it already (see latest version 
and history of http://wiki.ecmascript.org/doku.php?id=harmony:destructuring -- 
let me know if there are still bugs).

This EBNF was copied over from an old ES4 spec, which was not reviewed 
carefully enough. Thanks, and thanks again to Dominic.

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

Reply via email to