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

