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