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