archives

« Bugzilla Issues Index

#3940 — 14.1.20 + 14.2.16 + 15.1.7: puzzling step re strictness


In 14.1.20 "Runtime Semantics: EvaluateBody",
group 1 / step 1 says:
The code of this FunctionBody is strict mode code if it is contained in
strict mode code or if the Directive Prologue (14.1.1) of its
FunctionStatementList contains a Use Strict Directive or if any of the
conditions in 10.2.1 apply.

If the code of this FunctionBody is strict mode code, FunctionStatementList
is evaluated in the following steps as strict mode code. Otherwise,
StatementList is evaluated in the following steps as non-strict mode code.

The first sentence is just a restatement of some of the rules in 10.2.1, but it's phrased as if it augments 10.2.1, which is puzzling.

With the second and third sentences, it's unclear what normative impact they have. Is the implementation supposed to *do* something based on the presence of those sentences? My guess is, they're more like a Note, just informing the implementer of something that other points in the spec will specify in detail.

Overall, I'd say delete the whole step, it's just a distraction.

Similarly for:
14.2.16 "Runtime Semantics: EvaluateBody"
and
15.1.7 "Runtime Semantics: ScriptEvaluation"


fixed in rev34 editor's draft

I( agree, it's just left over text from ES5.


fixed in rev34