Skip to content

Commit e16c929

Browse files
committed
Editorial: Fix old bug in Annex B's changes to FunctionDeclarationInstantiation
This PR completes a small bugfix from 9 years ago. Fixes #2663. ---- History: 2015-07-17: @bakkot identifies a problem in Annex B's "Changes to FunctionDeclarationInstantiation": https://esdiscuss.org/topic/block-level-function-declarations-web-legacy-compatibility-bug To remedy this, @allenwb submits bug 4427: https://tc39.es/archives/bugzilla/4427/ in which he recommends changing > For each FunctionDeclaration _f_ **in _varDeclarations_** that is directly contained in the |StatementList| of a |Block|, |CaseClause|, or |DefaultClause|, to > For each FunctionDeclaration _f_ that is directly contained in the |StatementList| of a |Block|, |CaseClause|, or |DefaultClause| **Contained within _code_**, (emphasis mine). 2015-10-29: @anba submits PR #141, claiming to fix bug 4427. It deletes "in _varDeclarations_", but doesn't add "Contained within _code_". My guess is, this was just an oversight. 2015-11-02: PR #141 is merged to master as commit efbfc88. 2022-02-13: @nicolo-ribaudo raises issue #2663 about this, and says he'd open a PR to fix it, but I don't think that happened. 2024-06-26: @gibson042 raises the problem again, in a commment on PR #2952: #2952 (comment)
1 parent b509787 commit e16c929

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

spec.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -50961,7 +50961,7 @@ <h1>Changes to FunctionDeclarationInstantiation</h1>
5096150961
<p>During FunctionDeclarationInstantiation the following steps are performed in place of step <emu-xref href="#step-functiondeclarationinstantiation-web-compat-insertion-point"></emu-xref>:</p>
5096250962
<emu-alg replaces-step="step-functiondeclarationinstantiation-web-compat-insertion-point">
5096350963
1. If _strict_ is *false*, then
50964-
1. For each |FunctionDeclaration| _f_ that is directly contained in the |StatementList| of a |Block|, |CaseClause|, or |DefaultClause|, do
50964+
1. For each |FunctionDeclaration| _f_ that is directly contained in the |StatementList| of a |Block|, |CaseClause|, or |DefaultClause| Contained within _code_, do
5096550965
1. Let _F_ be the StringValue of the |BindingIdentifier| of _f_.
5096650966
1. If replacing the |FunctionDeclaration| _f_ with a |VariableStatement| that has _F_ as a |BindingIdentifier| would not produce any Early Errors for _func_ and _parameterNames_ does not contain _F_, then
5096750967
1. NOTE: A var binding for _F_ is only instantiated here if it is neither a VarDeclaredName, the name of a formal parameter, or another |FunctionDeclaration|.

0 commit comments

Comments
 (0)