2011/6/2 Waldemar Horwat <[email protected]>: > On 06/02/11 13:43, Mike Samuel wrote: >> >> Yes. That grammar is a subset of the grammar that results from >> replacing the 11.1.6 ' PrimaryExpression : "(" Expression ")" ' >> production with >> >> "(" GroupElement GroupElements ")" >> >> where GroupElement is defined as any Statement except for Block and >> EmptyStatement without a terminal semicolon, and GroupElements is >> defined thus >> >> GroupElements : empty >> | ";" GroupElement GroupElements >> >> but I thought it was easier to reason about ambiguity and locality of >> spec changes for that subset. >> >> >> 2011/6/2 Waldemar Horwat<[email protected]>: >>> >>> Did you mean to disallow an expression as the first statement in your >>> "block"? > > There's no reason to disallow expression statements from the beginning, and > it's really odd that you can write > > (if (a) b; x = 2; c) > > but not: > > (x = 2; if (a) b; c) > > There are other issues, though, with expression statements that begin with > the word "function", but those happen regardless of whether the expression > statement is first. For those, are you declaring a named function (in what > scope?) or returning a function value?
Quite right. I knew I had left out all declarations in my first pass. _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

