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 es6id: B.3.3.1 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). --- 1538 -
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 es6id: B.3.3.1 flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 699 -
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 es6id: B.3.3.1 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). --- 1330 -
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 es6id: B.3.3.1 flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 739 -
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 es6id: B.3.3.1 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). --- 1325 -
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 es6id: B.3.3.1 flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 660 -
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 es6id: B.3.3.1 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). --- 1295 -
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 es6id: B.3.3.1 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. [...] --- 1037 -
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 es6id: B.3.3.1 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. --- 1504 -
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 [...] --- 1753 -
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 es6id: B.3.3.1 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 [...] --- 988 -
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 es6id: B.3.3.1 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 [...] --- 1332 -
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 es6id: B.3.3.1 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-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 es6id: B.3.3.1 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 [...] --- 1338 -
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 es6id: B.3.3.1 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 [...] --- 1338 -
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 es6id: B.3.3.1 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 [...] --- 1356 -
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 es6id: B.3.3.1 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. --- 1756 -
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 es6id: B.3.3.1 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 [...] --- 1006 -
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 es6id: B.3.3.1 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 [...] --- 980 -
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 es6id: B.3.3.1 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). --- 1246 -
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 es6id: B.3.4 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). --- 2050 -
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 es6id: B.3.4 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 [...] --- 1211 -
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 es6id: B.3.4 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). --- 1842 -
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 es6id: B.3.4 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 [...] --- 1251 -
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 es6id: B.3.4 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). --- 1837 -
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 es6id: B.3.4 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 [...] --- 1172 -
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 es6id: B.3.4 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). --- 1807 -
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 es6id: B.3.4 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. [...] --- 1549 -
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 es6id: B.3.4 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. --- 2016 -
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 es6id: B.3.4 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 [...] --- 1500 -
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 es6id: B.3.4 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 [...] --- 1844 -
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 es6id: B.3.4 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 [...] --- 1857 -
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 es6id: B.3.4 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 [...] --- 1850 -
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 es6id: B.3.4 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 [...] --- 1850 -
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 es6id: B.3.4 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 [...] --- 1868 -
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 es6id: B.3.4 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. --- 2268 -
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 es6id: B.3.4 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 [...] --- 1518 -
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 es6id: B.3.4 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 [...] --- 1492 -
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 es6id: B.3.4 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). --- 1758 -
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 es6id: B.3.4 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). --- 2051 -
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 es6id: B.3.4 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 [...] --- 1212 -
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 es6id: B.3.4 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). --- 1843 -
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 es6id: B.3.4 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 [...] --- 1252 -
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 es6id: B.3.4 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-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 es6id: B.3.4 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 [...] --- 1173 -
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 es6id: B.3.4 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). --- 1808 -
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 es6id: B.3.4 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. [...] --- 1550 -
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 es6id: B.3.4 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. --- 2017 -
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 es6id: B.3.4 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-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 es6id: B.3.4 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 [...] --- 1845 -
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 es6id: B.3.4 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 [...] --- 1858 -
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 es6id: B.3.4 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 [...] --- 1851 -
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 es6id: B.3.4 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 [...] --- 1851 -
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 es6id: B.3.4 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 [...] --- 1869 -
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 es6id: B.3.4 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. --- 2269 -
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 es6id: B.3.4 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 [...] --- 1519 -
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 es6id: B.3.4 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 [...] --- 1493 -
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 es6id: B.3.4 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). --- 1759 -
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 es6id: B.3.4 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). --- 2037 -
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 es6id: B.3.4 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 [...] --- 1198 -
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 es6id: B.3.4 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). --- 1829 -
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 es6id: B.3.4 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 [...] --- 1238 -
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 es6id: B.3.4 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). --- 1824 -
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 es6id: B.3.4 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 [...] --- 1159 -
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 es6id: B.3.4 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). --- 1794 -
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 es6id: B.3.4 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. [...] --- 1536 -
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 es6id: B.3.4 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. --- 2003 -
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 es6id: B.3.4 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 [...] --- 1487 -
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 es6id: B.3.4 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 [...] --- 1831 -
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 es6id: B.3.4 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 [...] --- 1844 -
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 es6id: B.3.4 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 [...] --- 1837 -
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 es6id: B.3.4 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 [...] --- 1837 -
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 es6id: B.3.4 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-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 es6id: B.3.4 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. --- 2255 -
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 es6id: B.3.4 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 [...] --- 1505 -
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 es6id: B.3.4 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 [...] --- 1479 -
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 es6id: B.3.4 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). --- 1745 -
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 es6id: B.3.4 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). --- 2000 -
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 es6id: B.3.4 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 [...] --- 1161 -
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 es6id: B.3.4 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). --- 1792 -
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 es6id: B.3.4 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 [...] --- 1201 -
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 es6id: B.3.4 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). --- 1787 -
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 es6id: B.3.4 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 [...] --- 1122 -
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 es6id: B.3.4 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). --- 1757 -
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 es6id: B.3.4 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. [...] --- 1499 -
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 es6id: B.3.4 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. --- 1966 -
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 es6id: B.3.4 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 [...] --- 1450 -
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 es6id: B.3.4 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 [...] --- 1794 -
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 es6id: B.3.4 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 [...] --- 1807 -
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 es6id: B.3.4 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 [...] --- 1800 -
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 es6id: B.3.4 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 [...] --- 1800 -
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 es6id: B.3.4 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 [...] --- 1818 -
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 es6id: B.3.4 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. --- 2218 -
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 es6id: B.3.4 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 [...] --- 1468 -
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 es6id: B.3.4 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 [...] --- 1442 -
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 es6id: B.3.4 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). --- 1708 -
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 es6id: B.3.4 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). --- 2039 -
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 es6id: B.3.4 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 [...] --- 1200 -
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 es6id: B.3.4 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). --- 1831 -
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 es6id: B.3.4 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 [...] --- 1240 -
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 es6id: B.3.4 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). --- 1826 -
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 es6id: B.3.4 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 [...] --- 1161 -
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 es6id: B.3.4 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-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 es6id: B.3.4 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. [...] --- 1538 -
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 es6id: B.3.4 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. --- 2005 -
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 es6id: B.3.4 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 [...] --- 1489 -
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 es6id: B.3.4 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 [...] --- 1833 -
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 es6id: B.3.4 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-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 es6id: B.3.4 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 [...] --- 1839 -
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 es6id: B.3.4 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 [...] --- 1839 -
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 es6id: B.3.4 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 [...] --- 1857 -
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 es6id: B.3.4 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. --- 2257 -
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 es6id: B.3.4 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 [...] --- 1507 -
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 es6id: B.3.4 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 [...] --- 1481 -
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 es6id: B.3.4 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). --- 1747 -
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 es6id: B.3.3.1 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). --- 1585 -
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 es6id: B.3.3.1 flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 746 -
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 es6id: B.3.3.1 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). --- 1377 -
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 es6id: B.3.3.1 flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 786 -
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 es6id: B.3.3.1 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). --- 1372 -
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 es6id: B.3.3.1 flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 707 -
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 es6id: B.3.3.1 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). --- 1342 -
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 es6id: B.3.3.1 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. [...] --- 1084 -
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 es6id: B.3.3.1 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. --- 1551 -
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 es6id: B.3.3.1 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 [...] --- 1035 -
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 es6id: B.3.3.1 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 [...] --- 1379 -
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 es6id: B.3.3.1 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-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 es6id: B.3.3.1 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 [...] --- 1385 -
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 es6id: B.3.3.1 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 [...] --- 1385 -
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 es6id: B.3.3.1 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 [...] --- 1403 -
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 es6id: B.3.3.1 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. --- 1803 -
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 es6id: B.3.3.1 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 [...] --- 1053 -
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 es6id: B.3.3.1 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 [...] --- 1027 -
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 es6id: B.3.3.1 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). --- 1293 -
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 es6id: B.3.3.1 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). --- 1588 -
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 es6id: B.3.3.1 flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 749 -
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 es6id: B.3.3.1 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). --- 1380 -
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 es6id: B.3.3.1 flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 789 -
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 es6id: B.3.3.1 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). --- 1375 -
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 es6id: B.3.3.1 flags: [generated, noStrict] info: | B.3.3.1 Changes to FunctionDeclarationInstantiation [...] 2. If instantiatedVarNames does not contain F, then [...] --- 710 -
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 es6id: B.3.3.1 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). --- 1345 -
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 es6id: B.3.3.1 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. [...] --- 1087 -
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 es6id: B.3.3.1 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. --- 1554 -
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 es6id: B.3.3.1 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 [...] --- 1038 -
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 es6id: B.3.3.1 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 [...] --- 1382 -
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 es6id: B.3.3.1 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-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 es6id: B.3.3.1 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 [...] --- 1388 -
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 es6id: B.3.3.1 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 [...] --- 1388 -
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 es6id: B.3.3.1 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 [...] --- 1406 -
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 es6id: B.3.3.1 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. --- 1806 -
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 es6id: B.3.3.1 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 [...] --- 1056 -
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 es6id: B.3.3.1 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 [...] --- 1030 -
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 es6id: B.3.3.1 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). --- 1296 -