Name Description Size Coverage
block-decl-func-block-scoping.js --- description: A block-scoped binding is created (Block statement in function scope containing a function declaration) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | 13.2.14 Runtime Semantics: BlockDeclarationInstantiation [...] 4. For each element d in declarations do a. For each element dn of the BoundNames of d do i. If IsConstantDeclaration of d is true, then [...] ii. Else, 2. Perform ! envRec.CreateMutableBinding(dn, false). b. If d is a GeneratorDeclaration production or a FunctionDeclaration production, then i. Let fn be the sole element of the BoundNames of d. ii. Let fo be the result of performing InstantiateFunctionObject for d with argument env. iii. Perform envRec.InitializeBinding(fn, fo). --- 1545 -
block-decl-func-existing-block-fn-no-init.js --- description: Does not re-initialize binding created by similar forms (Block statement in function scope containing a function declaration) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 706 -
block-decl-func-existing-block-fn-update.js --- description: Variable-scoped binding is updated (Block statement in function scope containing a function declaration) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1337 -
block-decl-func-existing-fn-no-init.js --- description: Existing variable binding is not modified (Block statement in function scope containing a function declaration) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 746 -
block-decl-func-existing-fn-update.js --- description: Variable-scoped binding is updated following evaluation (Block statement in function scope containing a function declaration) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1332 -
block-decl-func-existing-var-no-init.js --- description: Existing variable binding is not modified (Block statement in function scope containing a function declaration) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 667 -
block-decl-func-existing-var-update.js --- description: Variable-scoped binding is updated following evaluation (Block statement in function scope containing a function declaration) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1302 -
block-decl-func-init.js --- description: Variable binding is initialized to `undefined` in outer scope (Block statement in function scope containing a function declaration) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then a. Perform ! varEnvRec.CreateMutableBinding(F, false). b. Perform varEnvRec.InitializeBinding(F, undefined). c. Append F to instantiatedVarNames. [...] --- 1044 -
block-decl-func-no-skip-try.js --- description: Extension is observed when creation of variable binding would not produce an early error (try statement) (Block statement in function scope containing a function declaration) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then a. Perform ! varEnvRec.CreateMutableBinding(F, false). b. Perform varEnvRec.InitializeBinding(F, undefined). c. Append F to instantiatedVarNames. [...] B.3.5 VariableStatements in Catch Blocks [...] - It is a Syntax Error if any element of the BoundNames of CatchParameter also occurs in the VarDeclaredNames of Block unless CatchParameter is CatchParameter:BindingIdentifier and that element is only bound by a VariableStatement, the VariableDeclarationList of a for statement, or the ForBinding of a for-in statement. --- 1511 -
block-decl-func-skip-arguments.js --- description: Functions named 'arguments' have legacy hoisting semantics esid: sec-web-compat-functiondeclarationinstantiation flags: [noStrict] info: | FunctionDeclarationInstantiation ( _func_, _argumentsList_ ) [...] 7. Let _parameterNames_ be the BoundNames of _formals_. [...] 22. If argumentsObjectNeeded is true, then f. Append "arguments" to parameterNames. Changes to FunctionDeclarationInstantiation [...] ii. If replacing the |FunctionDeclaration| _f_ with a |VariableStatement| that has _F_ as a |BindingIdentifier| would not produce any Early Errors for _func_ and _F_ is not an element of _parameterNames_, then [...] --- 1775 -
block-decl-func-skip-dft-param.js --- description: Extension not observed when there is a default parameter with the same name (Block statement in function scope containing a function declaration) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 995 -
block-decl-func-skip-early-err-block.js --- description: Extension not observed when creation of variable binding would produce an early error (Block statement) (Block statement in function scope containing a function declaration) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1339 -
block-decl-func-skip-early-err-for-in.js --- description: Extension not observed when creation of variable binding would produce an early error (for-of statement) (Block statement in function scope containing a function declaration) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1352 -
block-decl-func-skip-early-err-for-of.js --- description: Extension not observed when creation of variable binding would produce an early error (for-of statement) (Block statement in function scope containing a function declaration) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1345 -
block-decl-func-skip-early-err-for.js --- description: Extension not observed when creation of variable binding would produce an early error (for statement) (Block statement in function scope containing a function declaration) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1345 -
block-decl-func-skip-early-err-switch.js --- description: Extension not observed when creation of variable binding would produce an early error (switch statement) (Block statement in function scope containing a function declaration) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1363 -
block-decl-func-skip-early-err-try.js --- description: Extension is observed when creation of variable binding would not produce an early error (try statement) (Block statement in function scope containing a function declaration) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then a. Perform ! varEnvRec.CreateMutableBinding(F, false). b. Perform varEnvRec.InitializeBinding(F, undefined). c. Append F to instantiatedVarNames. [...] B.3.5 VariableStatements in Catch Blocks [...] - It is a Syntax Error if any element of the BoundNames of CatchParameter also occurs in the VarDeclaredNames of Block unless CatchParameter is CatchParameter:BindingIdentifier and that element is only bound by a VariableStatement, the VariableDeclarationList of a for statement, or the ForBinding of a for-in statement. --- 1763 -
block-decl-func-skip-early-err.js --- description: Extension not observed when creation of variable binding would produce an early error (Block statement in function scope containing a function declaration) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1013 -
block-decl-func-skip-param.js --- description: Extension not observed when there is a formal parameter with the same name (Block statement in function scope containing a function declaration) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 987 -
block-decl-func-update.js --- description: Variable binding value is updated following evaluation (Block statement in function scope containing a function declaration) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1253 -
block-decl-nested-blocks-with-fun-decl.js --- esid: sec-web-compat-functiondeclarationinstantiation description: > Nested function declarations, the second declaration is not Annex-B applicable. info: | B.3.3.1 Changes to FunctionDeclarationInstantiation 1. If strict is false, then a. For each FunctionDeclaration f that is directly contained in the StatementList of a Block, CaseClause, or DefaultClause, do i. Let F be StringValue of the BindingIdentifier of FunctionDeclaration f. ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of parameterNames, then ... flags: [noStrict] --- 1408 -
block-decl-nostrict.js --- esid: sec-web-compat-functiondeclarationinstantiation description: > AnnexB extension not honored in strict mode, Block statement in function code containing a function declaration info: | B.3.3.1 Changes to FunctionDeclarationInstantiation 1. If strict is false, then ... flags: [noStrict] --- 758 -
browser.js 0 -
function-redeclaration-block.js --- description: In non-strict mode, duplicate LexicallyDeclaredNames in a block are allowed if they are bound by FunctionDeclarations esid: sec-block-duplicates-allowed-static-semantics es6id: B.3.3.4 flags: [noStrict] info: | B.3.3.4 Changes to Block Static Semantics: Early Errors For web browser compatibility, that rule is modified with the addition of the **highlighted** text: Block: {StatementList} It is a Syntax Error if the LexicallyDeclaredNames of StatementList contains any duplicate entries, **unless the source code matching this production is not strict mode code and the duplicate entries are only bound by FunctionDeclarations**. --- 863 -
function-redeclaration-switch.js --- description: In non-strict mode, duplicate LexicallyDeclaredNames in a switch statement's CaseBlock are allowed if they are bound by FunctionDeclarations esid: sec-switch-duplicates-allowed-static-semantics es6id: B.3.3.5 flags: [noStrict] info: | B.3.3.4 Changes to Block Static Semantics: Early Errors For web browser compatibility, that rule is modified with the addition of the **highlighted** text: Block: {StatementList} It is a Syntax Error if the LexicallyDeclaredNames of StatementList contains any duplicate entries, **unless the source code matching this production is not strict mode code and the duplicate entries are only bound by FunctionDeclarations**. B.3.3.5 Changes to switch Statement Static Semantics: Early Errors For web browser compatibility, that rule is modified with the addition of the **highlighted** text: SwitchStatement: switch ( Expression ) CaseBlock It is a Syntax Error if the LexicallyDeclaredNames of CaseBlock contains any duplicate entries, **unless the source code matching this production is not strict mode code and the duplicate entries are only bound by FunctionDeclarations**. --- 1399 -
if-decl-else-decl-a-func-block-scoping.js --- description: A block-scoped binding is created (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] 13.2.14 Runtime Semantics: BlockDeclarationInstantiation [...] 4. For each element d in declarations do a. For each element dn of the BoundNames of d do i. If IsConstantDeclaration of d is true, then [...] ii. Else, 2. Perform ! envRec.CreateMutableBinding(dn, false). b. If d is a GeneratorDeclaration production or a FunctionDeclaration production, then i. Let fn be the sole element of the BoundNames of d. ii. Let fo be the result of performing InstantiateFunctionObject for d with argument env. iii. Perform envRec.InitializeBinding(fn, fo). --- 2059 -
if-decl-else-decl-a-func-existing-block-fn-no-init.js --- description: Does not re-initialize binding created by similar forms (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 1220 -
if-decl-else-decl-a-func-existing-block-fn-update.js --- description: Variable-scoped binding is updated (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1851 -
if-decl-else-decl-a-func-existing-fn-no-init.js --- description: Existing variable binding is not modified (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 1260 -
if-decl-else-decl-a-func-existing-fn-update.js --- description: Variable-scoped binding is updated following evaluation (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1846 -
if-decl-else-decl-a-func-existing-var-no-init.js --- description: Existing variable binding is not modified (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 1181 -
if-decl-else-decl-a-func-existing-var-update.js --- description: Variable-scoped binding is updated following evaluation (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1816 -
if-decl-else-decl-a-func-init.js --- description: Variable binding is initialized to `undefined` in outer scope (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then a. Perform ! varEnvRec.CreateMutableBinding(F, false). b. Perform varEnvRec.InitializeBinding(F, undefined). c. Append F to instantiatedVarNames. [...] --- 1558 -
if-decl-else-decl-a-func-no-skip-try.js --- description: Extension is observed when creation of variable binding would not produce an early error (try statement) (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then a. Perform ! varEnvRec.CreateMutableBinding(F, false). b. Perform varEnvRec.InitializeBinding(F, undefined). c. Append F to instantiatedVarNames. [...] B.3.5 VariableStatements in Catch Blocks [...] - It is a Syntax Error if any element of the BoundNames of CatchParameter also occurs in the VarDeclaredNames of Block unless CatchParameter is CatchParameter:BindingIdentifier and that element is only bound by a VariableStatement, the VariableDeclarationList of a for statement, or the ForBinding of a for-in statement. --- 2025 -
if-decl-else-decl-a-func-skip-dft-param.js --- description: Extension not observed when there is a default parameter with the same name (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1509 -
if-decl-else-decl-a-func-skip-early-err-block.js --- description: Extension not observed when creation of variable binding would produce an early error (Block statement) (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1853 -
if-decl-else-decl-a-func-skip-early-err-for-in.js --- description: Extension not observed when creation of variable binding would produce an early error (for-of statement) (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1866 -
if-decl-else-decl-a-func-skip-early-err-for-of.js --- description: Extension not observed when creation of variable binding would produce an early error (for-of statement) (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1859 -
if-decl-else-decl-a-func-skip-early-err-for.js --- description: Extension not observed when creation of variable binding would produce an early error (for statement) (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1859 -
if-decl-else-decl-a-func-skip-early-err-switch.js --- description: Extension not observed when creation of variable binding would produce an early error (switch statement) (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1877 -
if-decl-else-decl-a-func-skip-early-err-try.js --- description: Extension is observed when creation of variable binding would not produce an early error (try statement) (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then a. Perform ! varEnvRec.CreateMutableBinding(F, false). b. Perform varEnvRec.InitializeBinding(F, undefined). c. Append F to instantiatedVarNames. [...] B.3.5 VariableStatements in Catch Blocks [...] - It is a Syntax Error if any element of the BoundNames of CatchParameter also occurs in the VarDeclaredNames of Block unless CatchParameter is CatchParameter:BindingIdentifier and that element is only bound by a VariableStatement, the VariableDeclarationList of a for statement, or the ForBinding of a for-in statement. --- 2277 -
if-decl-else-decl-a-func-skip-early-err.js --- description: Extension not observed when creation of variable binding would produce an early error (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1527 -
if-decl-else-decl-a-func-skip-param.js --- description: Extension not observed when there is a formal parameter with the same name (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1501 -
if-decl-else-decl-a-func-update.js --- description: Variable binding value is updated following evaluation (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1767 -
if-decl-else-decl-b-func-block-scoping.js --- description: A block-scoped binding is created (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] 13.2.14 Runtime Semantics: BlockDeclarationInstantiation [...] 4. For each element d in declarations do a. For each element dn of the BoundNames of d do i. If IsConstantDeclaration of d is true, then [...] ii. Else, 2. Perform ! envRec.CreateMutableBinding(dn, false). b. If d is a GeneratorDeclaration production or a FunctionDeclaration production, then i. Let fn be the sole element of the BoundNames of d. ii. Let fo be the result of performing InstantiateFunctionObject for d with argument env. iii. Perform envRec.InitializeBinding(fn, fo). --- 2060 -
if-decl-else-decl-b-func-existing-block-fn-no-init.js --- description: Does not re-initialize binding created by similar forms (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 1221 -
if-decl-else-decl-b-func-existing-block-fn-update.js --- description: Variable-scoped binding is updated (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1852 -
if-decl-else-decl-b-func-existing-fn-no-init.js --- description: Existing variable binding is not modified (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 1261 -
if-decl-else-decl-b-func-existing-fn-update.js --- description: Variable-scoped binding is updated following evaluation (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1847 -
if-decl-else-decl-b-func-existing-var-no-init.js --- description: Existing variable binding is not modified (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 1182 -
if-decl-else-decl-b-func-existing-var-update.js --- description: Variable-scoped binding is updated following evaluation (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1817 -
if-decl-else-decl-b-func-init.js --- description: Variable binding is initialized to `undefined` in outer scope (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then a. Perform ! varEnvRec.CreateMutableBinding(F, false). b. Perform varEnvRec.InitializeBinding(F, undefined). c. Append F to instantiatedVarNames. [...] --- 1559 -
if-decl-else-decl-b-func-no-skip-try.js --- description: Extension is observed when creation of variable binding would not produce an early error (try statement) (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then a. Perform ! varEnvRec.CreateMutableBinding(F, false). b. Perform varEnvRec.InitializeBinding(F, undefined). c. Append F to instantiatedVarNames. [...] B.3.5 VariableStatements in Catch Blocks [...] - It is a Syntax Error if any element of the BoundNames of CatchParameter also occurs in the VarDeclaredNames of Block unless CatchParameter is CatchParameter:BindingIdentifier and that element is only bound by a VariableStatement, the VariableDeclarationList of a for statement, or the ForBinding of a for-in statement. --- 2026 -
if-decl-else-decl-b-func-skip-dft-param.js --- description: Extension not observed when there is a default parameter with the same name (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1510 -
if-decl-else-decl-b-func-skip-early-err-block.js --- description: Extension not observed when creation of variable binding would produce an early error (Block statement) (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1854 -
if-decl-else-decl-b-func-skip-early-err-for-in.js --- description: Extension not observed when creation of variable binding would produce an early error (for-of statement) (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1867 -
if-decl-else-decl-b-func-skip-early-err-for-of.js --- description: Extension not observed when creation of variable binding would produce an early error (for-of statement) (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1860 -
if-decl-else-decl-b-func-skip-early-err-for.js --- description: Extension not observed when creation of variable binding would produce an early error (for statement) (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1860 -
if-decl-else-decl-b-func-skip-early-err-switch.js --- description: Extension not observed when creation of variable binding would produce an early error (switch statement) (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1878 -
if-decl-else-decl-b-func-skip-early-err-try.js --- description: Extension is observed when creation of variable binding would not produce an early error (try statement) (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then a. Perform ! varEnvRec.CreateMutableBinding(F, false). b. Perform varEnvRec.InitializeBinding(F, undefined). c. Append F to instantiatedVarNames. [...] B.3.5 VariableStatements in Catch Blocks [...] - It is a Syntax Error if any element of the BoundNames of CatchParameter also occurs in the VarDeclaredNames of Block unless CatchParameter is CatchParameter:BindingIdentifier and that element is only bound by a VariableStatement, the VariableDeclarationList of a for statement, or the ForBinding of a for-in statement. --- 2278 -
if-decl-else-decl-b-func-skip-early-err.js --- description: Extension not observed when creation of variable binding would produce an early error (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1528 -
if-decl-else-decl-b-func-skip-param.js --- description: Extension not observed when there is a formal parameter with the same name (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1502 -
if-decl-else-decl-b-func-update.js --- description: Variable binding value is updated following evaluation (IfStatement with a declaration in both statement positions in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1768 -
if-decl-else-stmt-func-block-scoping.js --- description: A block-scoped binding is created (IfStatement with a declaration in the first statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] 13.2.14 Runtime Semantics: BlockDeclarationInstantiation [...] 4. For each element d in declarations do a. For each element dn of the BoundNames of d do i. If IsConstantDeclaration of d is true, then [...] ii. Else, 2. Perform ! envRec.CreateMutableBinding(dn, false). b. If d is a GeneratorDeclaration production or a FunctionDeclaration production, then i. Let fn be the sole element of the BoundNames of d. ii. Let fo be the result of performing InstantiateFunctionObject for d with argument env. iii. Perform envRec.InitializeBinding(fn, fo). --- 2046 -
if-decl-else-stmt-func-existing-block-fn-no-init.js --- description: Does not re-initialize binding created by similar forms (IfStatement with a declaration in the first statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 1207 -
if-decl-else-stmt-func-existing-block-fn-update.js --- description: Variable-scoped binding is updated (IfStatement with a declaration in the first statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1838 -
if-decl-else-stmt-func-existing-fn-no-init.js --- description: Existing variable binding is not modified (IfStatement with a declaration in the first statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 1247 -
if-decl-else-stmt-func-existing-fn-update.js --- description: Variable-scoped binding is updated following evaluation (IfStatement with a declaration in the first statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1833 -
if-decl-else-stmt-func-existing-var-no-init.js --- description: Existing variable binding is not modified (IfStatement with a declaration in the first statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 1168 -
if-decl-else-stmt-func-existing-var-update.js --- description: Variable-scoped binding is updated following evaluation (IfStatement with a declaration in the first statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1803 -
if-decl-else-stmt-func-init.js --- description: Variable binding is initialized to `undefined` in outer scope (IfStatement with a declaration in the first statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then a. Perform ! varEnvRec.CreateMutableBinding(F, false). b. Perform varEnvRec.InitializeBinding(F, undefined). c. Append F to instantiatedVarNames. [...] --- 1545 -
if-decl-else-stmt-func-no-skip-try.js --- description: Extension is observed when creation of variable binding would not produce an early error (try statement) (IfStatement with a declaration in the first statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then a. Perform ! varEnvRec.CreateMutableBinding(F, false). b. Perform varEnvRec.InitializeBinding(F, undefined). c. Append F to instantiatedVarNames. [...] B.3.5 VariableStatements in Catch Blocks [...] - It is a Syntax Error if any element of the BoundNames of CatchParameter also occurs in the VarDeclaredNames of Block unless CatchParameter is CatchParameter:BindingIdentifier and that element is only bound by a VariableStatement, the VariableDeclarationList of a for statement, or the ForBinding of a for-in statement. --- 2012 -
if-decl-else-stmt-func-skip-dft-param.js --- description: Extension not observed when there is a default parameter with the same name (IfStatement with a declaration in the first statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1496 -
if-decl-else-stmt-func-skip-early-err-block.js --- description: Extension not observed when creation of variable binding would produce an early error (Block statement) (IfStatement with a declaration in the first statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1840 -
if-decl-else-stmt-func-skip-early-err-for-in.js --- description: Extension not observed when creation of variable binding would produce an early error (for-of statement) (IfStatement with a declaration in the first statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1853 -
if-decl-else-stmt-func-skip-early-err-for-of.js --- description: Extension not observed when creation of variable binding would produce an early error (for-of statement) (IfStatement with a declaration in the first statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1846 -
if-decl-else-stmt-func-skip-early-err-for.js --- description: Extension not observed when creation of variable binding would produce an early error (for statement) (IfStatement with a declaration in the first statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1846 -
if-decl-else-stmt-func-skip-early-err-switch.js --- description: Extension not observed when creation of variable binding would produce an early error (switch statement) (IfStatement with a declaration in the first statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1864 -
if-decl-else-stmt-func-skip-early-err-try.js --- description: Extension is observed when creation of variable binding would not produce an early error (try statement) (IfStatement with a declaration in the first statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then a. Perform ! varEnvRec.CreateMutableBinding(F, false). b. Perform varEnvRec.InitializeBinding(F, undefined). c. Append F to instantiatedVarNames. [...] B.3.5 VariableStatements in Catch Blocks [...] - It is a Syntax Error if any element of the BoundNames of CatchParameter also occurs in the VarDeclaredNames of Block unless CatchParameter is CatchParameter:BindingIdentifier and that element is only bound by a VariableStatement, the VariableDeclarationList of a for statement, or the ForBinding of a for-in statement. --- 2264 -
if-decl-else-stmt-func-skip-early-err.js --- description: Extension not observed when creation of variable binding would produce an early error (IfStatement with a declaration in the first statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1514 -
if-decl-else-stmt-func-skip-param.js --- description: Extension not observed when there is a formal parameter with the same name (IfStatement with a declaration in the first statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1488 -
if-decl-else-stmt-func-update.js --- description: Variable binding value is updated following evaluation (IfStatement with a declaration in the first statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1754 -
if-decl-no-else-func-block-scoping.js --- description: A block-scoped binding is created (IfStatement without an else clause in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] 13.2.14 Runtime Semantics: BlockDeclarationInstantiation [...] 4. For each element d in declarations do a. For each element dn of the BoundNames of d do i. If IsConstantDeclaration of d is true, then [...] ii. Else, 2. Perform ! envRec.CreateMutableBinding(dn, false). b. If d is a GeneratorDeclaration production or a FunctionDeclaration production, then i. Let fn be the sole element of the BoundNames of d. ii. Let fo be the result of performing InstantiateFunctionObject for d with argument env. iii. Perform envRec.InitializeBinding(fn, fo). --- 2009 -
if-decl-no-else-func-existing-block-fn-no-init.js --- description: Does not re-initialize binding created by similar forms (IfStatement without an else clause in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 1170 -
if-decl-no-else-func-existing-block-fn-update.js --- description: Variable-scoped binding is updated (IfStatement without an else clause in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1801 -
if-decl-no-else-func-existing-fn-no-init.js --- description: Existing variable binding is not modified (IfStatement without an else clause in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 1210 -
if-decl-no-else-func-existing-fn-update.js --- description: Variable-scoped binding is updated following evaluation (IfStatement without an else clause in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1796 -
if-decl-no-else-func-existing-var-no-init.js --- description: Existing variable binding is not modified (IfStatement without an else clause in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 1131 -
if-decl-no-else-func-existing-var-update.js --- description: Variable-scoped binding is updated following evaluation (IfStatement without an else clause in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1766 -
if-decl-no-else-func-init.js --- description: Variable binding is initialized to `undefined` in outer scope (IfStatement without an else clause in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then a. Perform ! varEnvRec.CreateMutableBinding(F, false). b. Perform varEnvRec.InitializeBinding(F, undefined). c. Append F to instantiatedVarNames. [...] --- 1508 -
if-decl-no-else-func-no-skip-try.js --- description: Extension is observed when creation of variable binding would not produce an early error (try statement) (IfStatement without an else clause in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then a. Perform ! varEnvRec.CreateMutableBinding(F, false). b. Perform varEnvRec.InitializeBinding(F, undefined). c. Append F to instantiatedVarNames. [...] B.3.5 VariableStatements in Catch Blocks [...] - It is a Syntax Error if any element of the BoundNames of CatchParameter also occurs in the VarDeclaredNames of Block unless CatchParameter is CatchParameter:BindingIdentifier and that element is only bound by a VariableStatement, the VariableDeclarationList of a for statement, or the ForBinding of a for-in statement. --- 1975 -
if-decl-no-else-func-skip-dft-param.js --- description: Extension not observed when there is a default parameter with the same name (IfStatement without an else clause in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1459 -
if-decl-no-else-func-skip-early-err-block.js --- description: Extension not observed when creation of variable binding would produce an early error (Block statement) (IfStatement without an else clause in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1803 -
if-decl-no-else-func-skip-early-err-for-in.js --- description: Extension not observed when creation of variable binding would produce an early error (for-of statement) (IfStatement without an else clause in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1816 -
if-decl-no-else-func-skip-early-err-for-of.js --- description: Extension not observed when creation of variable binding would produce an early error (for-of statement) (IfStatement without an else clause in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1809 -
if-decl-no-else-func-skip-early-err-for.js --- description: Extension not observed when creation of variable binding would produce an early error (for statement) (IfStatement without an else clause in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1809 -
if-decl-no-else-func-skip-early-err-switch.js --- description: Extension not observed when creation of variable binding would produce an early error (switch statement) (IfStatement without an else clause in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1827 -
if-decl-no-else-func-skip-early-err-try.js --- description: Extension is observed when creation of variable binding would not produce an early error (try statement) (IfStatement without an else clause in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then a. Perform ! varEnvRec.CreateMutableBinding(F, false). b. Perform varEnvRec.InitializeBinding(F, undefined). c. Append F to instantiatedVarNames. [...] B.3.5 VariableStatements in Catch Blocks [...] - It is a Syntax Error if any element of the BoundNames of CatchParameter also occurs in the VarDeclaredNames of Block unless CatchParameter is CatchParameter:BindingIdentifier and that element is only bound by a VariableStatement, the VariableDeclarationList of a for statement, or the ForBinding of a for-in statement. --- 2227 -
if-decl-no-else-func-skip-early-err.js --- description: Extension not observed when creation of variable binding would produce an early error (IfStatement without an else clause in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1477 -
if-decl-no-else-func-skip-param.js --- description: Extension not observed when there is a formal parameter with the same name (IfStatement without an else clause in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1451 -
if-decl-no-else-func-update.js --- description: Variable binding value is updated following evaluation (IfStatement without an else clause in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1717 -
if-stmt-else-decl-func-block-scoping.js --- description: A block-scoped binding is created (IfStatement with a declaration in the second statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] 13.2.14 Runtime Semantics: BlockDeclarationInstantiation [...] 4. For each element d in declarations do a. For each element dn of the BoundNames of d do i. If IsConstantDeclaration of d is true, then [...] ii. Else, 2. Perform ! envRec.CreateMutableBinding(dn, false). b. If d is a GeneratorDeclaration production or a FunctionDeclaration production, then i. Let fn be the sole element of the BoundNames of d. ii. Let fo be the result of performing InstantiateFunctionObject for d with argument env. iii. Perform envRec.InitializeBinding(fn, fo). --- 2048 -
if-stmt-else-decl-func-existing-block-fn-no-init.js --- description: Does not re-initialize binding created by similar forms (IfStatement with a declaration in the second statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 1209 -
if-stmt-else-decl-func-existing-block-fn-update.js --- description: Variable-scoped binding is updated (IfStatement with a declaration in the second statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1840 -
if-stmt-else-decl-func-existing-fn-no-init.js --- description: Existing variable binding is not modified (IfStatement with a declaration in the second statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 1249 -
if-stmt-else-decl-func-existing-fn-update.js --- description: Variable-scoped binding is updated following evaluation (IfStatement with a declaration in the second statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1835 -
if-stmt-else-decl-func-existing-var-no-init.js --- description: Existing variable binding is not modified (IfStatement with a declaration in the second statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 1170 -
if-stmt-else-decl-func-existing-var-update.js --- description: Variable-scoped binding is updated following evaluation (IfStatement with a declaration in the second statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1805 -
if-stmt-else-decl-func-init.js --- description: Variable binding is initialized to `undefined` in outer scope (IfStatement with a declaration in the second statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then a. Perform ! varEnvRec.CreateMutableBinding(F, false). b. Perform varEnvRec.InitializeBinding(F, undefined). c. Append F to instantiatedVarNames. [...] --- 1547 -
if-stmt-else-decl-func-no-skip-try.js --- description: Extension is observed when creation of variable binding would not produce an early error (try statement) (IfStatement with a declaration in the second statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then a. Perform ! varEnvRec.CreateMutableBinding(F, false). b. Perform varEnvRec.InitializeBinding(F, undefined). c. Append F to instantiatedVarNames. [...] B.3.5 VariableStatements in Catch Blocks [...] - It is a Syntax Error if any element of the BoundNames of CatchParameter also occurs in the VarDeclaredNames of Block unless CatchParameter is CatchParameter:BindingIdentifier and that element is only bound by a VariableStatement, the VariableDeclarationList of a for statement, or the ForBinding of a for-in statement. --- 2014 -
if-stmt-else-decl-func-skip-dft-param.js --- description: Extension not observed when there is a default parameter with the same name (IfStatement with a declaration in the second statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1498 -
if-stmt-else-decl-func-skip-early-err-block.js --- description: Extension not observed when creation of variable binding would produce an early error (Block statement) (IfStatement with a declaration in the second statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1842 -
if-stmt-else-decl-func-skip-early-err-for-in.js --- description: Extension not observed when creation of variable binding would produce an early error (for-of statement) (IfStatement with a declaration in the second statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1855 -
if-stmt-else-decl-func-skip-early-err-for-of.js --- description: Extension not observed when creation of variable binding would produce an early error (for-of statement) (IfStatement with a declaration in the second statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1848 -
if-stmt-else-decl-func-skip-early-err-for.js --- description: Extension not observed when creation of variable binding would produce an early error (for statement) (IfStatement with a declaration in the second statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1848 -
if-stmt-else-decl-func-skip-early-err-switch.js --- description: Extension not observed when creation of variable binding would produce an early error (switch statement) (IfStatement with a declaration in the second statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1866 -
if-stmt-else-decl-func-skip-early-err-try.js --- description: Extension is observed when creation of variable binding would not produce an early error (try statement) (IfStatement with a declaration in the second statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then a. Perform ! varEnvRec.CreateMutableBinding(F, false). b. Perform varEnvRec.InitializeBinding(F, undefined). c. Append F to instantiatedVarNames. [...] B.3.5 VariableStatements in Catch Blocks [...] - It is a Syntax Error if any element of the BoundNames of CatchParameter also occurs in the VarDeclaredNames of Block unless CatchParameter is CatchParameter:BindingIdentifier and that element is only bound by a VariableStatement, the VariableDeclarationList of a for statement, or the ForBinding of a for-in statement. --- 2266 -
if-stmt-else-decl-func-skip-early-err.js --- description: Extension not observed when creation of variable binding would produce an early error (IfStatement with a declaration in the second statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1516 -
if-stmt-else-decl-func-skip-param.js --- description: Extension not observed when there is a formal parameter with the same name (IfStatement with a declaration in the second statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1490 -
if-stmt-else-decl-func-update.js --- description: Variable binding value is updated following evaluation (IfStatement with a declaration in the second statement position in function scope) esid: sec-functiondeclarations-in-ifstatement-statement-clauses flags: [generated, noStrict] info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return] if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield] if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1756 -
shell.js 0 -
switch-case-decl-nostrict.js --- esid: sec-web-compat-functiondeclarationinstantiation description: > AnnexB extension not honored in strict mode, Function declaration in the `case` clause of a `switch` statement in function code info: | B.3.3.1 Changes to FunctionDeclarationInstantiation 1. If strict is false, then ... flags: [noStrict] --- 799 -
switch-case-func-block-scoping.js --- description: A block-scoped binding is created (Function declaration in the `case` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | 13.2.14 Runtime Semantics: BlockDeclarationInstantiation [...] 4. For each element d in declarations do a. For each element dn of the BoundNames of d do i. If IsConstantDeclaration of d is true, then [...] ii. Else, 2. Perform ! envRec.CreateMutableBinding(dn, false). b. If d is a GeneratorDeclaration production or a FunctionDeclaration production, then i. Let fn be the sole element of the BoundNames of d. ii. Let fo be the result of performing InstantiateFunctionObject for d with argument env. iii. Perform envRec.InitializeBinding(fn, fo). --- 1592 -
switch-case-func-existing-block-fn-no-init.js --- description: Does not re-initialize binding created by similar forms (Function declaration in the `case` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 753 -
switch-case-func-existing-block-fn-update.js --- description: Variable-scoped binding is updated (Function declaration in the `case` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1384 -
switch-case-func-existing-fn-no-init.js --- description: Existing variable binding is not modified (Function declaration in the `case` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 793 -
switch-case-func-existing-fn-update.js --- description: Variable-scoped binding is updated following evaluation (Function declaration in the `case` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1379 -
switch-case-func-existing-var-no-init.js --- description: Existing variable binding is not modified (Function declaration in the `case` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 714 -
switch-case-func-existing-var-update.js --- description: Variable-scoped binding is updated following evaluation (Function declaration in the `case` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1349 -
switch-case-func-init.js --- description: Variable binding is initialized to `undefined` in outer scope (Function declaration in the `case` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then a. Perform ! varEnvRec.CreateMutableBinding(F, false). b. Perform varEnvRec.InitializeBinding(F, undefined). c. Append F to instantiatedVarNames. [...] --- 1091 -
switch-case-func-no-skip-try.js --- description: Extension is observed when creation of variable binding would not produce an early error (try statement) (Function declaration in the `case` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then a. Perform ! varEnvRec.CreateMutableBinding(F, false). b. Perform varEnvRec.InitializeBinding(F, undefined). c. Append F to instantiatedVarNames. [...] B.3.5 VariableStatements in Catch Blocks [...] - It is a Syntax Error if any element of the BoundNames of CatchParameter also occurs in the VarDeclaredNames of Block unless CatchParameter is CatchParameter:BindingIdentifier and that element is only bound by a VariableStatement, the VariableDeclarationList of a for statement, or the ForBinding of a for-in statement. --- 1558 -
switch-case-func-skip-dft-param.js --- description: Extension not observed when there is a default parameter with the same name (Function declaration in the `case` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1042 -
switch-case-func-skip-early-err-block.js --- description: Extension not observed when creation of variable binding would produce an early error (Block statement) (Function declaration in the `case` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1386 -
switch-case-func-skip-early-err-for-in.js --- description: Extension not observed when creation of variable binding would produce an early error (for-of statement) (Function declaration in the `case` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1399 -
switch-case-func-skip-early-err-for-of.js --- description: Extension not observed when creation of variable binding would produce an early error (for-of statement) (Function declaration in the `case` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1392 -
switch-case-func-skip-early-err-for.js --- description: Extension not observed when creation of variable binding would produce an early error (for statement) (Function declaration in the `case` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1392 -
switch-case-func-skip-early-err-switch.js --- description: Extension not observed when creation of variable binding would produce an early error (switch statement) (Function declaration in the `case` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1410 -
switch-case-func-skip-early-err-try.js --- description: Extension is observed when creation of variable binding would not produce an early error (try statement) (Function declaration in the `case` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then a. Perform ! varEnvRec.CreateMutableBinding(F, false). b. Perform varEnvRec.InitializeBinding(F, undefined). c. Append F to instantiatedVarNames. [...] B.3.5 VariableStatements in Catch Blocks [...] - It is a Syntax Error if any element of the BoundNames of CatchParameter also occurs in the VarDeclaredNames of Block unless CatchParameter is CatchParameter:BindingIdentifier and that element is only bound by a VariableStatement, the VariableDeclarationList of a for statement, or the ForBinding of a for-in statement. --- 1810 -
switch-case-func-skip-early-err.js --- description: Extension not observed when creation of variable binding would produce an early error (Function declaration in the `case` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1060 -
switch-case-func-skip-param.js --- description: Extension not observed when there is a formal parameter with the same name (Function declaration in the `case` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1034 -
switch-case-func-update.js --- description: Variable binding value is updated following evaluation (Function declaration in the `case` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1300 -
switch-dflt-decl-nostrict.js --- esid: sec-web-compat-functiondeclarationinstantiation description: > AnnexB extension not honored in strict mode, Function declaration in the `default` clause of a `switch` statement in function code info: | B.3.3.1 Changes to FunctionDeclarationInstantiation 1. If strict is false, then ... flags: [noStrict] --- 803 -
switch-dflt-func-block-scoping.js --- description: A block-scoped binding is created (Funtion declaration in the `default` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | 13.2.14 Runtime Semantics: BlockDeclarationInstantiation [...] 4. For each element d in declarations do a. For each element dn of the BoundNames of d do i. If IsConstantDeclaration of d is true, then [...] ii. Else, 2. Perform ! envRec.CreateMutableBinding(dn, false). b. If d is a GeneratorDeclaration production or a FunctionDeclaration production, then i. Let fn be the sole element of the BoundNames of d. ii. Let fo be the result of performing InstantiateFunctionObject for d with argument env. iii. Perform envRec.InitializeBinding(fn, fo). --- 1595 -
switch-dflt-func-existing-block-fn-no-init.js --- description: Does not re-initialize binding created by similar forms (Funtion declaration in the `default` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 756 -
switch-dflt-func-existing-block-fn-update.js --- description: Variable-scoped binding is updated (Funtion declaration in the `default` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1387 -
switch-dflt-func-existing-fn-no-init.js --- description: Existing variable binding is not modified (Funtion declaration in the `default` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 796 -
switch-dflt-func-existing-fn-update.js --- description: Variable-scoped binding is updated following evaluation (Funtion declaration in the `default` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1382 -
switch-dflt-func-existing-var-no-init.js --- description: Existing variable binding is not modified (Funtion declaration in the `default` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 717 -
switch-dflt-func-existing-var-update.js --- description: Variable-scoped binding is updated following evaluation (Funtion declaration in the `default` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1352 -
switch-dflt-func-init.js --- description: Variable binding is initialized to `undefined` in outer scope (Funtion declaration in the `default` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then a. Perform ! varEnvRec.CreateMutableBinding(F, false). b. Perform varEnvRec.InitializeBinding(F, undefined). c. Append F to instantiatedVarNames. [...] --- 1094 -
switch-dflt-func-no-skip-try.js --- description: Extension is observed when creation of variable binding would not produce an early error (try statement) (Funtion declaration in the `default` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then a. Perform ! varEnvRec.CreateMutableBinding(F, false). b. Perform varEnvRec.InitializeBinding(F, undefined). c. Append F to instantiatedVarNames. [...] B.3.5 VariableStatements in Catch Blocks [...] - It is a Syntax Error if any element of the BoundNames of CatchParameter also occurs in the VarDeclaredNames of Block unless CatchParameter is CatchParameter:BindingIdentifier and that element is only bound by a VariableStatement, the VariableDeclarationList of a for statement, or the ForBinding of a for-in statement. --- 1561 -
switch-dflt-func-skip-dft-param.js --- description: Extension not observed when there is a default parameter with the same name (Funtion declaration in the `default` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1045 -
switch-dflt-func-skip-early-err-block.js --- description: Extension not observed when creation of variable binding would produce an early error (Block statement) (Funtion declaration in the `default` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1389 -
switch-dflt-func-skip-early-err-for-in.js --- description: Extension not observed when creation of variable binding would produce an early error (for-of statement) (Funtion declaration in the `default` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1402 -
switch-dflt-func-skip-early-err-for-of.js --- description: Extension not observed when creation of variable binding would produce an early error (for-of statement) (Funtion declaration in the `default` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1395 -
switch-dflt-func-skip-early-err-for.js --- description: Extension not observed when creation of variable binding would produce an early error (for statement) (Funtion declaration in the `default` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1395 -
switch-dflt-func-skip-early-err-switch.js --- description: Extension not observed when creation of variable binding would produce an early error (switch statement) (Funtion declaration in the `default` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1413 -
switch-dflt-func-skip-early-err-try.js --- description: Extension is observed when creation of variable binding would not produce an early error (try statement) (Funtion declaration in the `default` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then a. Perform ! varEnvRec.CreateMutableBinding(F, false). b. Perform varEnvRec.InitializeBinding(F, undefined). c. Append F to instantiatedVarNames. [...] B.3.5 VariableStatements in Catch Blocks [...] - It is a Syntax Error if any element of the BoundNames of CatchParameter also occurs in the VarDeclaredNames of Block unless CatchParameter is CatchParameter:BindingIdentifier and that element is only bound by a VariableStatement, the VariableDeclarationList of a for statement, or the ForBinding of a for-in statement. --- 1813 -
switch-dflt-func-skip-early-err.js --- description: Extension not observed when creation of variable binding would produce an early error (Funtion declaration in the `default` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1063 -
switch-dflt-func-skip-param.js --- description: Extension not observed when there is a formal parameter with the same name (Funtion declaration in the `default` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList, then [...] --- 1037 -
switch-dflt-func-update.js --- description: Variable binding value is updated following evaluation (Funtion declaration in the `default` clause of a `switch` statement in function scope) esid: sec-web-compat-functiondeclarationinstantiation flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 3. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: a. Let fenv be the running execution context's VariableEnvironment. b. Let fenvRec be fenv's EnvironmentRecord. c. Let benv be the running execution context's LexicalEnvironment. d. Let benvRec be benv's EnvironmentRecord. e. Let fobj be ! benvRec.GetBindingValue(F, false). f. Perform ! fenvRec.SetMutableBinding(F, fobj, false). g. Return NormalCompletion(empty). --- 1303 -