archives

« Bugzilla Issues Index

#3918 — B.3.3: describing where the extensions apply


In B.3.3 "Block-Level Function Declarations Web Legacy Compatibility Semantics",
the preamble to the algorithm says:
These extensions are applied to each non-strict mode function g for each
FunctionDeclaration f that is directly contained in the StatementList of a
Block, CaseClause, or DefaultClause that is part of the function code of g

Every time I return to this sentence, it trips me up, and I have to work out what it means again. It would be clearer if you incorporated it into the algorithm, e.g.:

1. For each non-strict mode function g, do:
a. For each FunctionDeclaration f that is directly contained in the
StatementList of a Block, CaseClause, or DefaultClause that is
part of the function code of g, do:
i. [current algorithm]

If you don't want to do that, then I think you could at least make the sentence clearer, e.g.

These extensions are applied to every FunctionDeclaration f that is directly
contained in the StatementList of a Block, CaseClause, or DefaultClause
that is part of the function code of some non-strict mode function g.

or
These extensions are applied for each non-strict mode function g, and
more specifically, to each FunctionDeclaration f that is directly
contained in the StatementList of a Block, CaseClause, or DefaultClause
that is part of the function code of g.


fixed in rev34 editor's draft

incorporated the precondition test into the algorithm


fixed in rev34