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
[email protected]
https://mail.mozilla.org/listinfo/es-discuss