Name Description Size Coverage
global-block-decl-eval-global-block-scoping.js --- description: A block-scoped binding is created (Block statement in eval code containing a function declaration) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 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). --- 1495 -
global-block-decl-eval-global-existing-block-fn-no-init.js --- description: Does not re-initialize binding created by similar forms (Block statement in eval code containing a function declaration) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] a. If declaredFunctionOrVarNames does not contain F, then [...] --- 678 -
global-block-decl-eval-global-existing-block-fn-update.js --- description: Variable-scoped binding is updated (Block statement in eval code containing a function declaration) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1284 -
global-block-decl-eval-global-existing-fn-no-init.js --- description: Existing variable binding is not modified (Block statement in eval code containing a function declaration) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] a. If declaredFunctionOrVarNames does not contain F, then [...] --- 714 -
global-block-decl-eval-global-existing-fn-update.js --- description: Variable-scoped binding is updated following evaluation (Block statement in eval code containing a function declaration) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1301 -
global-block-decl-eval-global-existing-global-init.js --- description: Variable binding is set to `undefined` (Block statement in eval code containing a function declaration) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] includes: [fnGlobalObject.js, propertyHelper.js] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] i. If varEnvRec is a global Environment Record, then i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true). [...] 8.1.1.4.18 CreateGlobalFunctionBinding [...] 5. If existingProp is undefined or existingProp.[[Configurable]] is true, then [...] 6. Else, a. Let desc be the PropertyDescriptor{[[Value]]: V }. [...] --- 1300 -
global-block-decl-eval-global-existing-global-update.js --- description: Variable-scoped binding is updated following evaluation (Block statement in eval code containing a function declaration) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] includes: [fnGlobalObject.js] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1444 -
global-block-decl-eval-global-existing-var-no-init.js --- description: Existing variable binding is not modified (Block statement in eval code containing a function declaration) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] a. If declaredFunctionOrVarNames does not contain F, then [...] --- 634 -
global-block-decl-eval-global-existing-var-update.js --- description: Variable-scoped binding is updated following evaluation (Block statement in eval code containing a function declaration) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1261 -
global-block-decl-eval-global-init.js --- description: Variable binding is initialized to `undefined` in outer scope (Block statement in eval code containing a function declaration) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] includes: [fnGlobalObject.js, propertyHelper.js] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] i. If varEnvRec is a global Environment Record, then i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true). [...] --- 939 -
global-block-decl-eval-global-no-skip-try.js --- description: Extension is observed when creation of variable binding would not produce an early error (try statement) (Block statement in eval code containing a function declaration) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] 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. --- 1461 -
global-block-decl-eval-global-skip-early-err-block.js --- description: Extension not observed when creation of variable binding would produce an early error (Block statement) (Block statement in eval code containing a function declaration) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1236 -
global-block-decl-eval-global-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 eval code containing a function declaration) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1248 -
global-block-decl-eval-global-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 eval code containing a function declaration) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1241 -
global-block-decl-eval-global-skip-early-err-for.js --- description: Extension not observed when creation of variable binding would produce an early error (for statement) (Block statement in eval code containing a function declaration) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1242 -
global-block-decl-eval-global-skip-early-err-switch.js --- description: Extension not observed when creation of variable binding would produce an early error (switch statement) (Block statement in eval code containing a function declaration) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1261 -
global-block-decl-eval-global-skip-early-err-try.js --- description: Extension is not observed when creation of variable binding would produce an early error (try statement) (Block statement in eval code containing a function declaration) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] 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. --- 1720 -
global-block-decl-eval-global-skip-early-err.js --- description: Extension not observed when creation of variable binding would produce an early error (Block statement in eval code containing a function declaration) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 897 -
global-block-decl-eval-global-update.js --- description: Variable binding value is updated following evaluation (Block statement in eval code containing a function declaration) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1216 -
global-if-decl-else-decl-a-eval-global-block-scoping.js --- description: A block-scoped binding is created (IfStatement with a declaration in both statement positions in eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.3 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). --- 2017 -
global-if-decl-else-decl-a-eval-global-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 eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.3 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.3 Changes to EvalDeclarationInstantiation [...] a. If declaredFunctionOrVarNames does not contain F, then [...] --- 1200 -
global-if-decl-else-decl-a-eval-global-existing-block-fn-update.js --- description: Variable-scoped binding is updated (IfStatement with a declaration in both statement positions in eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.3 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.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1806 -
global-if-decl-else-decl-a-eval-global-existing-fn-no-init.js --- description: Existing variable binding is not modified (IfStatement with a declaration in both statement positions in eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.3 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.3 Changes to EvalDeclarationInstantiation [...] a. If declaredFunctionOrVarNames does not contain F, then [...] --- 1236 -
global-if-decl-else-decl-a-eval-global-existing-fn-update.js --- description: Variable-scoped binding is updated following evaluation (IfStatement with a declaration in both statement positions in eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.3 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.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1823 -
global-if-decl-else-decl-a-eval-global-existing-global-init.js --- description: Variable binding is set to `undefined` (IfStatement with a declaration in both statement positions in eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.3 flags: [generated, noStrict] includes: [fnGlobalObject.js, propertyHelper.js] 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.3 Changes to EvalDeclarationInstantiation [...] i. If varEnvRec is a global Environment Record, then i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true). [...] 8.1.1.4.18 CreateGlobalFunctionBinding [...] 5. If existingProp is undefined or existingProp.[[Configurable]] is true, then [...] 6. Else, a. Let desc be the PropertyDescriptor{[[Value]]: V }. [...] --- 1822 -
global-if-decl-else-decl-a-eval-global-existing-global-update.js --- description: Variable-scoped binding is updated following evaluation (IfStatement with a declaration in both statement positions in eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.3 flags: [generated, noStrict] includes: [fnGlobalObject.js] 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.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1966 -
global-if-decl-else-decl-a-eval-global-existing-var-no-init.js --- description: Existing variable binding is not modified (IfStatement with a declaration in both statement positions in eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.3 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.3 Changes to EvalDeclarationInstantiation [...] a. If declaredFunctionOrVarNames does not contain F, then [...] --- 1156 -
global-if-decl-else-decl-a-eval-global-existing-var-update.js --- description: Variable-scoped binding is updated following evaluation (IfStatement with a declaration in both statement positions in eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.3 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.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1783 -
global-if-decl-else-decl-a-eval-global-init.js --- description: Variable binding is initialized to `undefined` in outer scope (IfStatement with a declaration in both statement positions in eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.3 flags: [generated, noStrict] includes: [fnGlobalObject.js, propertyHelper.js] 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.3 Changes to EvalDeclarationInstantiation [...] i. If varEnvRec is a global Environment Record, then i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true). [...] --- 1461 -
global-if-decl-else-decl-a-eval-global-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 eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.3 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] 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. --- 1983 -
global-if-decl-else-decl-a-eval-global-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 eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.3 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1758 -
global-if-decl-else-decl-a-eval-global-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 eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.3 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1770 -
global-if-decl-else-decl-a-eval-global-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 eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.3 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1763 -
global-if-decl-else-decl-a-eval-global-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 eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.3 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1764 -
global-if-decl-else-decl-a-eval-global-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 eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.3 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1783 -
global-if-decl-else-decl-a-eval-global-skip-early-err-try.js --- description: Extension is not observed when creation of variable binding would produce an early error (try statement) (IfStatement with a declaration in both statement positions in eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.3 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] 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. --- 2242 -
global-if-decl-else-decl-a-eval-global-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 eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.3 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1419 -
global-if-decl-else-decl-a-eval-global-update.js --- description: Variable binding value is updated following evaluation (IfStatement with a declaration in both statement positions in eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.3 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.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1738 -
global-if-decl-else-decl-b-eval-global-block-scoping.js --- description: A block-scoped binding is created (IfStatement with a declaration in both statement positions in eval code) 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). --- 2018 -
global-if-decl-else-decl-b-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] a. If declaredFunctionOrVarNames does not contain F, then [...] --- 1201 -
global-if-decl-else-decl-b-eval-global-existing-block-fn-update.js --- description: Variable-scoped binding is updated (IfStatement with a declaration in both statement positions in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1807 -
global-if-decl-else-decl-b-eval-global-existing-fn-no-init.js --- description: Existing variable binding is not modified (IfStatement with a declaration in both statement positions in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] a. If declaredFunctionOrVarNames does not contain F, then [...] --- 1237 -
global-if-decl-else-decl-b-eval-global-existing-fn-update.js --- description: Variable-scoped binding is updated following evaluation (IfStatement with a declaration in both statement positions in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1824 -
global-if-decl-else-decl-b-eval-global-existing-global-init.js --- description: Variable binding is set to `undefined` (IfStatement with a declaration in both statement positions in eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.4 flags: [generated, noStrict] includes: [fnGlobalObject.js, propertyHelper.js] 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.3 Changes to EvalDeclarationInstantiation [...] i. If varEnvRec is a global Environment Record, then i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true). [...] 8.1.1.4.18 CreateGlobalFunctionBinding [...] 5. If existingProp is undefined or existingProp.[[Configurable]] is true, then [...] 6. Else, a. Let desc be the PropertyDescriptor{[[Value]]: V }. [...] --- 1823 -
global-if-decl-else-decl-b-eval-global-existing-global-update.js --- description: Variable-scoped binding is updated following evaluation (IfStatement with a declaration in both statement positions in eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.4 flags: [generated, noStrict] includes: [fnGlobalObject.js] 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.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1967 -
global-if-decl-else-decl-b-eval-global-existing-var-no-init.js --- description: Existing variable binding is not modified (IfStatement with a declaration in both statement positions in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] a. If declaredFunctionOrVarNames does not contain F, then [...] --- 1157 -
global-if-decl-else-decl-b-eval-global-existing-var-update.js --- description: Variable-scoped binding is updated following evaluation (IfStatement with a declaration in both statement positions in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1784 -
global-if-decl-else-decl-b-eval-global-init.js --- description: Variable binding is initialized to `undefined` in outer scope (IfStatement with a declaration in both statement positions in eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.4 flags: [generated, noStrict] includes: [fnGlobalObject.js, propertyHelper.js] 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.3 Changes to EvalDeclarationInstantiation [...] i. If varEnvRec is a global Environment Record, then i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true). [...] --- 1462 -
global-if-decl-else-decl-b-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] 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. --- 1984 -
global-if-decl-else-decl-b-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1759 -
global-if-decl-else-decl-b-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1771 -
global-if-decl-else-decl-b-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1764 -
global-if-decl-else-decl-b-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1765 -
global-if-decl-else-decl-b-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1784 -
global-if-decl-else-decl-b-eval-global-skip-early-err-try.js --- description: Extension is not observed when creation of variable binding would produce an early error (try statement) (IfStatement with a declaration in both statement positions in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] 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. --- 2243 -
global-if-decl-else-decl-b-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1420 -
global-if-decl-else-decl-b-eval-global-update.js --- description: Variable binding value is updated following evaluation (IfStatement with a declaration in both statement positions in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1739 -
global-if-decl-else-stmt-eval-global-block-scoping.js --- description: A block-scoped binding is created (IfStatement with a declaration in the first statement position in eval code) 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). --- 2004 -
global-if-decl-else-stmt-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] a. If declaredFunctionOrVarNames does not contain F, then [...] --- 1187 -
global-if-decl-else-stmt-eval-global-existing-block-fn-update.js --- description: Variable-scoped binding is updated (IfStatement with a declaration in the first statement position in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1793 -
global-if-decl-else-stmt-eval-global-existing-fn-no-init.js --- description: Existing variable binding is not modified (IfStatement with a declaration in the first statement position in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] a. If declaredFunctionOrVarNames does not contain F, then [...] --- 1223 -
global-if-decl-else-stmt-eval-global-existing-fn-update.js --- description: Variable-scoped binding is updated following evaluation (IfStatement with a declaration in the first statement position in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1810 -
global-if-decl-else-stmt-eval-global-existing-global-init.js --- description: Variable binding is set to `undefined` (IfStatement with a declaration in the first statement position in eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.4 flags: [generated, noStrict] includes: [fnGlobalObject.js, propertyHelper.js] 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.3 Changes to EvalDeclarationInstantiation [...] i. If varEnvRec is a global Environment Record, then i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true). [...] 8.1.1.4.18 CreateGlobalFunctionBinding [...] 5. If existingProp is undefined or existingProp.[[Configurable]] is true, then [...] 6. Else, a. Let desc be the PropertyDescriptor{[[Value]]: V }. [...] --- 1809 -
global-if-decl-else-stmt-eval-global-existing-global-update.js --- description: Variable-scoped binding is updated following evaluation (IfStatement with a declaration in the first statement position in eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.4 flags: [generated, noStrict] includes: [fnGlobalObject.js] 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.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1953 -
global-if-decl-else-stmt-eval-global-existing-var-no-init.js --- description: Existing variable binding is not modified (IfStatement with a declaration in the first statement position in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] a. If declaredFunctionOrVarNames does not contain F, then [...] --- 1143 -
global-if-decl-else-stmt-eval-global-existing-var-update.js --- description: Variable-scoped binding is updated following evaluation (IfStatement with a declaration in the first statement position in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1770 -
global-if-decl-else-stmt-eval-global-init.js --- description: Variable binding is initialized to `undefined` in outer scope (IfStatement with a declaration in the first statement position in eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.4 flags: [generated, noStrict] includes: [fnGlobalObject.js, propertyHelper.js] 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.3 Changes to EvalDeclarationInstantiation [...] i. If varEnvRec is a global Environment Record, then i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true). [...] --- 1448 -
global-if-decl-else-stmt-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] 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. --- 1970 -
global-if-decl-else-stmt-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1745 -
global-if-decl-else-stmt-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1757 -
global-if-decl-else-stmt-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1750 -
global-if-decl-else-stmt-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1751 -
global-if-decl-else-stmt-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1770 -
global-if-decl-else-stmt-eval-global-skip-early-err-try.js --- description: Extension is not observed when creation of variable binding would produce an early error (try statement) (IfStatement with a declaration in the first statement position in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] 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. --- 2229 -
global-if-decl-else-stmt-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1406 -
global-if-decl-else-stmt-eval-global-update.js --- description: Variable binding value is updated following evaluation (IfStatement with a declaration in the first statement position in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1725 -
global-if-decl-no-else-eval-global-block-scoping.js --- description: A block-scoped binding is created (IfStatement without an else clause in eval code) 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). --- 1967 -
global-if-decl-no-else-eval-global-existing-block-fn-no-init.js --- description: Does not re-initialize binding created by similar forms (IfStatement without an else clause in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] a. If declaredFunctionOrVarNames does not contain F, then [...] --- 1150 -
global-if-decl-no-else-eval-global-existing-block-fn-update.js --- description: Variable-scoped binding is updated (IfStatement without an else clause in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1756 -
global-if-decl-no-else-eval-global-existing-fn-no-init.js --- description: Existing variable binding is not modified (IfStatement without an else clause in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] a. If declaredFunctionOrVarNames does not contain F, then [...] --- 1186 -
global-if-decl-no-else-eval-global-existing-fn-update.js --- description: Variable-scoped binding is updated following evaluation (IfStatement without an else clause in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1773 -
global-if-decl-no-else-eval-global-existing-global-init.js --- description: Variable binding is set to `undefined` (IfStatement without an else clause in eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.4 flags: [generated, noStrict] includes: [fnGlobalObject.js, propertyHelper.js] 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.3 Changes to EvalDeclarationInstantiation [...] i. If varEnvRec is a global Environment Record, then i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true). [...] 8.1.1.4.18 CreateGlobalFunctionBinding [...] 5. If existingProp is undefined or existingProp.[[Configurable]] is true, then [...] 6. Else, a. Let desc be the PropertyDescriptor{[[Value]]: V }. [...] --- 1772 -
global-if-decl-no-else-eval-global-existing-global-update.js --- description: Variable-scoped binding is updated following evaluation (IfStatement without an else clause in eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.4 flags: [generated, noStrict] includes: [fnGlobalObject.js] 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.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1916 -
global-if-decl-no-else-eval-global-existing-var-no-init.js --- description: Existing variable binding is not modified (IfStatement without an else clause in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] a. If declaredFunctionOrVarNames does not contain F, then [...] --- 1106 -
global-if-decl-no-else-eval-global-existing-var-update.js --- description: Variable-scoped binding is updated following evaluation (IfStatement without an else clause in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1733 -
global-if-decl-no-else-eval-global-init.js --- description: Variable binding is initialized to `undefined` in outer scope (IfStatement without an else clause in eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.4 flags: [generated, noStrict] includes: [fnGlobalObject.js, propertyHelper.js] 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.3 Changes to EvalDeclarationInstantiation [...] i. If varEnvRec is a global Environment Record, then i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true). [...] --- 1411 -
global-if-decl-no-else-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] 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. --- 1933 -
global-if-decl-no-else-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1708 -
global-if-decl-no-else-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1720 -
global-if-decl-no-else-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1713 -
global-if-decl-no-else-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1714 -
global-if-decl-no-else-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1733 -
global-if-decl-no-else-eval-global-skip-early-err-try.js --- description: Extension is not observed when creation of variable binding would produce an early error (try statement) (IfStatement without an else clause in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] 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. --- 2192 -
global-if-decl-no-else-eval-global-skip-early-err.js --- description: Extension not observed when creation of variable binding would produce an early error (IfStatement without an else clause in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1369 -
global-if-decl-no-else-eval-global-update.js --- description: Variable binding value is updated following evaluation (IfStatement without an else clause in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1688 -
global-if-stmt-else-decl-eval-global-block-scoping.js --- description: A block-scoped binding is created (IfStatement with a declaration in the second statement position in eval code) 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). --- 2006 -
global-if-stmt-else-decl-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] a. If declaredFunctionOrVarNames does not contain F, then [...] --- 1189 -
global-if-stmt-else-decl-eval-global-existing-block-fn-update.js --- description: Variable-scoped binding is updated (IfStatement with a declaration in the second statement position in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1795 -
global-if-stmt-else-decl-eval-global-existing-fn-no-init.js --- description: Existing variable binding is not modified (IfStatement with a declaration in the second statement position in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] a. If declaredFunctionOrVarNames does not contain F, then [...] --- 1225 -
global-if-stmt-else-decl-eval-global-existing-fn-update.js --- description: Variable-scoped binding is updated following evaluation (IfStatement with a declaration in the second statement position in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1812 -
global-if-stmt-else-decl-eval-global-existing-global-init.js --- description: Variable binding is set to `undefined` (IfStatement with a declaration in the second statement position in eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.4 flags: [generated, noStrict] includes: [fnGlobalObject.js, propertyHelper.js] 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.3 Changes to EvalDeclarationInstantiation [...] i. If varEnvRec is a global Environment Record, then i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true). [...] 8.1.1.4.18 CreateGlobalFunctionBinding [...] 5. If existingProp is undefined or existingProp.[[Configurable]] is true, then [...] 6. Else, a. Let desc be the PropertyDescriptor{[[Value]]: V }. [...] --- 1811 -
global-if-stmt-else-decl-eval-global-existing-global-update.js --- description: Variable-scoped binding is updated following evaluation (IfStatement with a declaration in the second statement position in eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.4 flags: [generated, noStrict] includes: [fnGlobalObject.js] 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.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1955 -
global-if-stmt-else-decl-eval-global-existing-var-no-init.js --- description: Existing variable binding is not modified (IfStatement with a declaration in the second statement position in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] a. If declaredFunctionOrVarNames does not contain F, then [...] --- 1145 -
global-if-stmt-else-decl-eval-global-existing-var-update.js --- description: Variable-scoped binding is updated following evaluation (IfStatement with a declaration in the second statement position in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1772 -
global-if-stmt-else-decl-eval-global-init.js --- description: Variable binding is initialized to `undefined` in outer scope (IfStatement with a declaration in the second statement position in eval code) esid: sec-functiondeclarations-in-ifstatement-statement-clauses es6id: B.3.4 flags: [generated, noStrict] includes: [fnGlobalObject.js, propertyHelper.js] 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.3 Changes to EvalDeclarationInstantiation [...] i. If varEnvRec is a global Environment Record, then i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true). [...] --- 1450 -
global-if-stmt-else-decl-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] 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. --- 1972 -
global-if-stmt-else-decl-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1747 -
global-if-stmt-else-decl-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1759 -
global-if-stmt-else-decl-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1752 -
global-if-stmt-else-decl-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1753 -
global-if-stmt-else-decl-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1772 -
global-if-stmt-else-decl-eval-global-skip-early-err-try.js --- description: Extension is not observed when creation of variable binding would produce an early error (try statement) (IfStatement with a declaration in the second statement position in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] 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. --- 2231 -
global-if-stmt-else-decl-eval-global-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 eval code) 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.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1408 -
global-if-stmt-else-decl-eval-global-update.js --- description: Variable binding value is updated following evaluation (IfStatement with a declaration in the second statement position in eval code) 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.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1727 -
global-switch-case-eval-global-block-scoping.js --- description: A block-scoped binding is created (Function declaration in the `case` clause of a `switch` statement in eval code) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 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). --- 1564 -
global-switch-case-eval-global-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 eval code) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] a. If declaredFunctionOrVarNames does not contain F, then [...] --- 747 -
global-switch-case-eval-global-existing-block-fn-update.js --- description: Variable-scoped binding is updated (Function declaration in the `case` clause of a `switch` statement in eval code) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1353 -
global-switch-case-eval-global-existing-fn-no-init.js --- description: Existing variable binding is not modified (Function declaration in the `case` clause of a `switch` statement in eval code) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] a. If declaredFunctionOrVarNames does not contain F, then [...] --- 783 -
global-switch-case-eval-global-existing-fn-update.js --- description: Variable-scoped binding is updated following evaluation (Function declaration in the `case` clause of a `switch` statement in eval code) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1370 -
global-switch-case-eval-global-existing-global-init.js --- description: Variable binding is set to `undefined` (Function declaration in the `case` clause of a `switch` statement in eval code) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] includes: [fnGlobalObject.js, propertyHelper.js] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] i. If varEnvRec is a global Environment Record, then i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true). [...] 8.1.1.4.18 CreateGlobalFunctionBinding [...] 5. If existingProp is undefined or existingProp.[[Configurable]] is true, then [...] 6. Else, a. Let desc be the PropertyDescriptor{[[Value]]: V }. [...] --- 1369 -
global-switch-case-eval-global-existing-global-update.js --- description: Variable-scoped binding is updated following evaluation (Function declaration in the `case` clause of a `switch` statement in eval code) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] includes: [fnGlobalObject.js] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1513 -
global-switch-case-eval-global-existing-var-no-init.js --- description: Existing variable binding is not modified (Function declaration in the `case` clause of a `switch` statement in eval code) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] a. If declaredFunctionOrVarNames does not contain F, then [...] --- 703 -
global-switch-case-eval-global-existing-var-update.js --- description: Variable-scoped binding is updated following evaluation (Function declaration in the `case` clause of a `switch` statement in eval code) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1330 -
global-switch-case-eval-global-init.js --- description: Variable binding is initialized to `undefined` in outer scope (Function declaration in the `case` clause of a `switch` statement in eval code) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] includes: [fnGlobalObject.js, propertyHelper.js] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] i. If varEnvRec is a global Environment Record, then i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true). [...] --- 1008 -
global-switch-case-eval-global-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 eval code) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] 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. --- 1530 -
global-switch-case-eval-global-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 eval code) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1305 -
global-switch-case-eval-global-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 eval code) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1317 -
global-switch-case-eval-global-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 eval code) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1310 -
global-switch-case-eval-global-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 eval code) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1311 -
global-switch-case-eval-global-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 eval code) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1330 -
global-switch-case-eval-global-skip-early-err-try.js --- description: Extension is not observed when creation of variable binding would produce an early error (try statement) (Function declaration in the `case` clause of a `switch` statement in eval code) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] 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. --- 1789 -
global-switch-case-eval-global-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 eval code) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 966 -
global-switch-case-eval-global-update.js --- description: Variable binding value is updated following evaluation (Function declaration in the `case` clause of a `switch` statement in eval code) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1285 -
global-switch-dflt-eval-global-block-scoping.js --- description: A block-scoped binding is created (Funtion declaration in the `default` clause of a `switch` statement in eval code in the global scope) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 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). --- 1587 -
global-switch-dflt-eval-global-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 eval code in the global scope) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] a. If declaredFunctionOrVarNames does not contain F, then [...] --- 770 -
global-switch-dflt-eval-global-existing-block-fn-update.js --- description: Variable-scoped binding is updated (Funtion declaration in the `default` clause of a `switch` statement in eval code in the global scope) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1376 -
global-switch-dflt-eval-global-existing-fn-no-init.js --- description: Existing variable binding is not modified (Funtion declaration in the `default` clause of a `switch` statement in eval code in the global scope) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] a. If declaredFunctionOrVarNames does not contain F, then [...] --- 806 -
global-switch-dflt-eval-global-existing-fn-update.js --- description: Variable-scoped binding is updated following evaluation (Funtion declaration in the `default` clause of a `switch` statement in eval code in the global scope) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1393 -
global-switch-dflt-eval-global-existing-global-init.js --- description: Variable binding is set to `undefined` (Funtion declaration in the `default` clause of a `switch` statement in eval code in the global scope) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] includes: [fnGlobalObject.js, propertyHelper.js] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] i. If varEnvRec is a global Environment Record, then i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true). [...] 8.1.1.4.18 CreateGlobalFunctionBinding [...] 5. If existingProp is undefined or existingProp.[[Configurable]] is true, then [...] 6. Else, a. Let desc be the PropertyDescriptor{[[Value]]: V }. [...] --- 1392 -
global-switch-dflt-eval-global-existing-global-update.js --- description: Variable-scoped binding is updated following evaluation (Funtion declaration in the `default` clause of a `switch` statement in eval code in the global scope) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] includes: [fnGlobalObject.js] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1536 -
global-switch-dflt-eval-global-existing-var-no-init.js --- description: Existing variable binding is not modified (Funtion declaration in the `default` clause of a `switch` statement in eval code in the global scope) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] a. If declaredFunctionOrVarNames does not contain F, then [...] --- 726 -
global-switch-dflt-eval-global-existing-var-update.js --- description: Variable-scoped binding is updated following evaluation (Funtion declaration in the `default` clause of a `switch` statement in eval code in the global scope) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1353 -
global-switch-dflt-eval-global-init.js --- description: Variable binding is initialized to `undefined` in outer scope (Funtion declaration in the `default` clause of a `switch` statement in eval code in the global scope) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] includes: [fnGlobalObject.js, propertyHelper.js] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] i. If varEnvRec is a global Environment Record, then i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true). [...] --- 1031 -
global-switch-dflt-eval-global-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 eval code in the global scope) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] 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. --- 1553 -
global-switch-dflt-eval-global-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 eval code in the global scope) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1328 -
global-switch-dflt-eval-global-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 eval code in the global scope) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1340 -
global-switch-dflt-eval-global-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 eval code in the global scope) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1333 -
global-switch-dflt-eval-global-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 eval code in the global scope) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1334 -
global-switch-dflt-eval-global-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 eval code in the global scope) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 1353 -
global-switch-dflt-eval-global-skip-early-err-try.js --- description: Extension is not observed when creation of variable binding would produce an early error (try statement) (Funtion declaration in the `default` clause of a `switch` statement in eval code in the global scope) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] 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. --- 1812 -
global-switch-dflt-eval-global-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 eval code in the global scope) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] ii. If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then [...] --- 989 -
global-switch-dflt-eval-global-update.js --- description: Variable binding value is updated following evaluation (Funtion declaration in the `default` clause of a `switch` statement in eval code in the global scope) esid: sec-web-compat-evaldeclarationinstantiation es6id: B.3.3.3 flags: [generated, noStrict] info: | B.3.3.3 Changes to EvalDeclarationInstantiation [...] b. When the FunctionDeclaration f is evaluated, perform the following steps in place of the FunctionDeclaration Evaluation algorithm provided in 14.1.21: i. Let genv be the running execution context's VariableEnvironment. ii. Let genvRec be genv's EnvironmentRecord. iii. Let benv be the running execution context's LexicalEnvironment. iv. Let benvRec be benv's EnvironmentRecord. v. Let fobj be ! benvRec.GetBindingValue(F, false). vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). vii. Return NormalCompletion(empty). --- 1308 -