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)*)* "}"


> Likewise, why aren't trailing commas permitted in object destructuring
> as they are in object literals? SpiderMonkey accepts trailing commas.

That is a good point, probably just an oversight. ECMA-262 doesn't use EBNF and 
we'd need to translate it into the spec's grammar. Thanks for noticing this.


> Finally, surely trailing commas aren't *required* in array
> destructuring? The second alternative seems to indicate that they are.

Fixed -- thanks again.

/be

_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to