On 15-03-06 06:46 AM, raul mihaila wrote:
Do sentences like "it's a syntax error if the LexicallyDeclaredNames of
StatementList contains any duplicate entries" (section 15.1.1) refer to the
result of applying the LexicallyDeclaredNames rule for a production
alternative in which StatementList is the left-hand side nonterminal?

Yes, pretty much. Though I would word it:
    ... the result of applying the LexicallyDeclaredNames rule to the
    'StatementList' child of the 'ScriptBody' node [that this early error
    rule is being applied to]

If this is correct, then looking at LexicallyDeclaredNames for
StatementList at some point we get to apply LexicallyDeclaredNames for
Statement: "1. If Statement is Statement : LabelledStatement , return
LexicallyDeclaredNames of Statement." (section 13.1.5). But I couldn't
find a definition for LexicallyDeclaredNames where Statement is the lhs
nonterminal.

The production 'Statement : LabelledStatement' is what the spec calls a
'chain production' (5.1.1), so (according to 5.2), there's an implicit rule:

    Static Semantics: LexicallyDeclaredNames
    Statement : LabelledStatement
        1. Return LexicallyDeclaredNames of LabelledStatement

So in section 13.1.5 shouldn't it say "If Statement is
Statement : LabelledStatement , return LexicallyDeclaredNames of
LabelledStatement"?

Changing 'Statement' to 'LabelledStatement' there is not necessary, given
the implicit rule. However, it seems simpler/clearer to me to avoid going
through the implicit rule, so you could submit this as an 'enhancement' bug.

-Michael
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to