| cptn-else-false-abrupt-empty.js |
---
esid: sec-if-statement-runtime-semantics-evaluation
description: >
Completion value when expression is false with an `else` clause and body
returns an empty abrupt completion
info: |
IfStatement : if ( Expression ) Statement else Statement
3. If exprValue is true, then
[...]
4. Else,
a. Let stmtCompletion be the result of evaluating the second Statement.
5. Return Completion(UpdateEmpty(stmtCompletion, undefined)).
--- |
1437 |
- |
| cptn-else-false-nrml.js |
---
es6id: 13.6.7
description: >
Completion value when expression is false with an `else` clause and body
returns a normal completion
info: |
IfStatement : if ( Expression ) Statement else Statement
4. If exprValue is true, then
[...]
5. Else,
a. Let stmtCompletion be the result of evaluating the second Statement.
6. ReturnIfAbrupt(stmtCompletion).
7. If stmtCompletion.[[value]] is not empty, return stmtCompletion.
8. Return NormalCompletion(undefined).
--- |
908 |
- |
| cptn-else-true-abrupt-empty.js |
---
esid: sec-if-statement-runtime-semantics-evaluation
description: >
Completion value when expression is true with an `else` clause and body
returns an abrupt completion
info: |
IfStatement : if ( Expression ) Statement else Statement
3. If exprValue is true, then
a. Let stmtCompletion be the result of evaluating the first Statement.
4. Else,
[...]
5. Return Completion(UpdateEmpty(stmtCompletion, undefined)).
--- |
1410 |
- |
| cptn-else-true-nrml.js |
---
es6id: 13.6.7
description: >
Completion value when expression is true with an `else` clause and body
returns a normal completion
info: |
IfStatement : if ( Expression ) Statement else Statement
4. If exprValue is true, then
a. Let stmtCompletion be the result of evaluating the first Statement.
5. Else,
[...]
6. ReturnIfAbrupt(stmtCompletion).
7. If stmtCompletion.[[value]] is not empty, return stmtCompletion.
8. Return NormalCompletion(undefined).
--- |
902 |
- |
| cptn-empty-statement.js |
---
info: |
In the "if" statement empty statement is allowed and is evaluated to
"undefined"
es5id: 12.5_A7
description: Checking by using eval "eval("if(1);"))"
--- |
461 |
- |
| cptn-no-else-false.js |
---
es6id: 13.6.7
description: Completion value when expression is false without an `else` clause
info: |
IfStatement : if ( Expression ) Statement
[...]
4. If exprValue is false, then
a. Return NormalCompletion(undefined).
--- |
506 |
- |
| cptn-no-else-true-abrupt-empty.js |
---
esid: sec-if-statement-runtime-semantics-evaluation
description: >
Completion value when expression is true without an `else` clause and body
returns an empty abrupt completion
info: |
IfStatement : if ( Expression ) Statement
3. If exprValue is false, then
[...]
4. Else,
a. Let stmtCompletion be the result of evaluating Statement.
b. Return Completion(UpdateEmpty(stmtCompletion, undefined)).
--- |
964 |
- |
| cptn-no-else-true-nrml.js |
---
es6id: 13.6.7
description: >
Completion value when expression is true without an `else` clause and body
returns a normal completion.
info: |
IfStatement : if ( Expression ) Statement
[...]
4. If exprValue is false, then
[...]
5. Else,
a. Let stmtCompletion be the result of evaluating Statement.
b. ReturnIfAbrupt(stmtCompletion).
c. If stmtCompletion.[[value]] is not empty, return stmtCompletion.
d. Return NormalCompletion(undefined).
--- |
754 |
- |
| empty-statement.js |
---
description: In the "if" statement empty statement is allowed.
es5id: 12.5_A7
--- |
224 |
- |
| if-async-fun-else-async-fun.js |
---
esid: sec-if-statement
description: >
AsyncFunctionDeclaration is not allowed in statement position
info: |
ExpressionStatement[Yield, Await] :
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await] ;
negative:
phase: parse
type: SyntaxError
features: [async-functions]
--- |
575 |
- |
| if-async-fun-else-stmt.js |
---
esid: sec-if-statement
description: >
AsyncFunctionDeclaration is not allowed in statement position
info: |
ExpressionStatement[Yield, Await] :
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await] ;
negative:
phase: parse
type: SyntaxError
features: [async-functions]
--- |
554 |
- |
| if-async-fun-no-else.js |
---
esid: sec-if-statement
description: >
AsyncFunctionDeclaration is not allowed in statement position
info: |
ExpressionStatement[Yield, Await] :
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await] ;
negative:
phase: parse
type: SyntaxError
features: [async-functions]
--- |
547 |
- |
| if-async-gen-else-async-gen.js |
---
esid: sec-if-statement
description: >
AsyncGeneratorDeclaration is not allowed in statement position
info: |
ExpressionStatement[Yield, Await] :
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await] ;
negative:
phase: parse
type: SyntaxError
features: [async-iteration]
--- |
578 |
- |
| if-async-gen-else-stmt.js |
---
esid: sec-if-statement
description: >
AsyncGeneratorDeclaration is not allowed in statement position
info: |
ExpressionStatement[Yield, Await] :
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await] ;
negative:
phase: parse
type: SyntaxError
features: [async-iteration]
--- |
556 |
- |
| if-async-gen-no-else.js |
---
esid: sec-if-statement
description: >
AsyncGeneratorDeclaration is not allowed in statement position
info: |
ExpressionStatement[Yield, Await] :
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await] ;
negative:
phase: parse
type: SyntaxError
features: [async-iteration]
--- |
549 |
- |
| if-cls-else-cls.js |
---
description: Class declaration not allowed in statement position
esid: sec-if-statement
es6id: 13.6
negative:
phase: parse
type: SyntaxError
--- |
352 |
- |
| if-cls-else-stmt.js |
---
description: Class declaration not allowed in statement position
esid: sec-if-statement
es6id: 13.6
negative:
phase: parse
type: SyntaxError
--- |
343 |
- |
| if-cls-no-else.js |
---
description: Class declaration not allowed in statement position
esid: sec-if-statement
es6id: 13.6
negative:
phase: parse
type: SyntaxError
--- |
336 |
- |
| if-const-else-const.js |
---
description: Lexical declaration (const) not allowed in statement position
esid: sec-if-statement
es6id: 13.6
negative:
phase: parse
type: SyntaxError
--- |
372 |
- |
| if-const-else-stmt.js |
---
description: Lexical declaration (const) not allowed in statement position
esid: sec-if-statement
es6id: 13.6
negative:
phase: parse
type: SyntaxError
--- |
358 |
- |
| if-const-no-else.js |
---
description: Lexical declaration (const) not allowed in statement position
esid: sec-if-statement
es6id: 13.6
negative:
phase: parse
type: SyntaxError
--- |
351 |
- |
| if-decl-else-decl-strict.js |
---
description: AnnexB extension not honored in strict mode (IfStatement with a declaration in both statement positions in the global scope)
es6id: B.3.4
flags: [onlyStrict]
negative:
phase: parse
type: SyntaxError
info: |
The following rules for IfStatement augment those in 13.6:
IfStatement[Yield, Return]:
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
The above rules are only applied when parsing code that is not strict mode code.
--- |
987 |
- |
| if-decl-else-stmt-strict.js |
---
description: AnnexB extension not honored in strict mode (IfStatement with a declaration in the first statement position in the global scope)
es6id: B.3.4
flags: [onlyStrict]
negative:
phase: parse
type: SyntaxError
info: |
The following rules for IfStatement augment those in 13.6:
IfStatement[Yield, Return]:
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
The above rules are only applied when parsing code that is not strict mode code.
--- |
976 |
- |
| if-decl-no-else-strict.js |
---
description: AnnexB extension not honored in strict mode (IfStatement without an else clause in the global scope)
es6id: B.3.4
flags: [onlyStrict]
negative:
phase: parse
type: SyntaxError
info: |
The following rules for IfStatement augment those in 13.6:
IfStatement[Yield, Return]:
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
The above rules are only applied when parsing code that is not strict mode code.
--- |
941 |
- |
| if-fun-else-fun-strict.js |
---
description: AnnexB extension not honored in strict mode (IfStatement with a declaration in both statement positions in the global scope)
esid: sec-if-statement
es6id: 13.6
flags: [onlyStrict]
negative:
phase: parse
type: SyntaxError
info: |
The following rules for IfStatement augment those in 13.6:
IfStatement[Yield, Return]:
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
The above rules are only applied when parsing code that is not strict mode code.
--- |
1007 |
- |
| if-fun-else-stmt-strict.js |
---
description: AnnexB extension not honored in strict mode (IfStatement with a declaration in the first statement position in the global scope)
esid: sec-if-statement
es6id: 13.6
flags: [onlyStrict]
negative:
phase: parse
type: SyntaxError
info: |
The following rules for IfStatement augment those in 13.6:
IfStatement[Yield, Return]:
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
The above rules are only applied when parsing code that is not strict mode code.
--- |
996 |
- |
| if-fun-no-else-strict.js |
---
description: AnnexB extension not honored in strict mode (IfStatement without an else clause in the global scope)
esid: sec-if-statement
es6id: 13.6
flags: [onlyStrict]
negative:
phase: parse
type: SyntaxError
info: |
The following rules for IfStatement augment those in 13.6:
IfStatement[Yield, Return]:
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
The above rules are only applied when parsing code that is not strict mode code.
--- |
961 |
- |
| if-gen-else-gen.js |
---
description: Generator declaration not allowed in statement position
esid: sec-if-statement
es6id: 13.6
negative:
phase: parse
type: SyntaxError
features: [generators]
--- |
394 |
- |
| if-gen-else-stmt.js |
---
description: Generator declaration not allowed in statement position
esid: sec-if-statement
es6id: 13.6
negative:
phase: parse
type: SyntaxError
features: [generators]
--- |
378 |
- |
| if-gen-no-else.js |
---
description: Generator declaration not allowed in statement position
esid: sec-if-statement
es6id: 13.6
negative:
phase: parse
type: SyntaxError
features: [generators]
--- |
371 |
- |
| if-let-else-let.js |
---
description: Lexical declaration (let) not allowed in statement position
esid: sec-if-statement
es6id: 13.6
negative:
phase: parse
type: SyntaxError
--- |
352 |
- |
| if-let-else-stmt.js |
---
description: Lexical declaration (let) not allowed in statement position
esid: sec-if-statement
es6id: 13.6
negative:
phase: parse
type: SyntaxError
--- |
347 |
- |
| if-let-no-else.js |
---
description: Lexical declaration (let) not allowed in statement position
esid: sec-if-statement
es6id: 13.6
negative:
phase: parse
type: SyntaxError
--- |
340 |
- |
| if-stmt-else-async-fun.js |
---
esid: sec-if-statement
description: >
AsyncFunctionDeclaration is not allowed in statement position
info: |
ExpressionStatement[Yield, Await] :
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await] ;
negative:
phase: parse
type: SyntaxError
features: [async-functions]
--- |
555 |
- |
| if-stmt-else-async-gen.js |
---
esid: sec-if-statement
description: >
AsyncGeneratorDeclaration is not allowed in statement position
info: |
ExpressionStatement[Yield, Await] :
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await] ;
negative:
phase: parse
type: SyntaxError
features: [async-iteration]
--- |
557 |
- |
| if-stmt-else-cls.js |
---
description: Class declaration not allowed in statement position
esid: sec-if-statement
es6id: 13.6
negative:
phase: parse
type: SyntaxError
--- |
344 |
- |
| if-stmt-else-const.js |
---
description: Lexical declaration (const) not allowed in statement position
esid: sec-if-statement
es6id: 13.6
negative:
phase: parse
type: SyntaxError
--- |
359 |
- |
| if-stmt-else-decl-strict.js |
---
description: AnnexB extension not honored in strict mode (IfStatement with a declaration in the second statement position in the global scope)
es6id: B.3.4
flags: [onlyStrict]
negative:
phase: parse
type: SyntaxError
info: |
The following rules for IfStatement augment those in 13.6:
IfStatement[Yield, Return]:
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
B.3.3.2 Changes to GlobalDeclarationInstantiation
1. 1. Let strict be IsStrict of script
2. If strict is *false*, then
[...]
--- |
1038 |
- |
| if-stmt-else-fun-strict.js |
---
description: AnnexB extension not honored in strict mode (IfStatement with a declaration in the second statement position in the global scope)
esid: sec-if-statement
es6id: 13.6
flags: [onlyStrict]
negative:
phase: parse
type: SyntaxError
info: |
The following rules for IfStatement augment those in 13.6:
IfStatement[Yield, Return]:
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
B.3.3.2 Changes to GlobalDeclarationInstantiation
1. 1. Let strict be IsStrict of script
2. If strict is *false*, then
[...]
--- |
1058 |
- |
| if-stmt-else-gen.js |
---
description: Generator declaration not allowed in statement position
esid: sec-if-statement
es6id: 13.6
negative:
phase: parse
type: SyntaxError
features: [generators]
--- |
379 |
- |
| if-stmt-else-let.js |
---
description: Lexical declaration (let) not allowed in statement position
esid: sec-if-statement
es6id: 13.6
negative:
phase: parse
type: SyntaxError
--- |
348 |
- |
| labelled-fn-stmt-first.js |
---
esid: sec-if-statement-static-semantics-early-errors
es6id: 13.6.1
description: >
A labelled function declaration is never permitted in the first of two
Statement positions
info: |
IfStatement :
if ( Expression ) Statement else Statement
if ( Expression ) Statement
- It is a Syntax Error if IsLabelledFunction(Statement) is true.
NOTE It is only necessary to apply this rule if the extension specified in
B.3.2 is implemented.
In the absence of Annex B.3.2, a SyntaxError should be produced due to the
labelled function declaration itself.
negative:
phase: parse
type: SyntaxError
--- |
845 |
- |
| labelled-fn-stmt-lone.js |
---
esid: sec-if-statement-static-semantics-early-errors
es6id: 13.6.1
description: >
A labelled function declaration is never permitted in the sole Statement
position
info: |
IfStatement :
if ( Expression ) Statement else Statement
if ( Expression ) Statement
- It is a Syntax Error if IsLabelledFunction(Statement) is true.
NOTE It is only necessary to apply this rule if the extension specified in
B.3.2 is implemented.
In the absence of Annex B.3.2, a SyntaxError should be produced due to the
labelled function declaration itself.
negative:
phase: parse
type: SyntaxError
--- |
829 |
- |
| labelled-fn-stmt-second.js |
---
esid: sec-if-statement-static-semantics-early-errors
es6id: 13.6.1
description: >
A labelled function declaration is never permitted in the second of two
Statement positions
info: |
IfStatement :
if ( Expression ) Statement else Statement
if ( Expression ) Statement
- It is a Syntax Error if IsLabelledFunction(Statement) is true.
NOTE It is only necessary to apply this rule if the extension specified in
B.3.2 is implemented.
In the absence of Annex B.3.2, a SyntaxError should be produced due to the
labelled function declaration itself.
negative:
phase: parse
type: SyntaxError
--- |
845 |
- |
| let-array-with-newline.js |
---
esid: sec-if-statement
description: >
ExpressionStatement has a lookahead restriction for `let [`.
info: |
ExpressionStatement[Yield, Await] :
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await] ;
negative:
phase: parse
type: SyntaxError
flags: [noStrict]
--- |
526 |
- |
| let-block-with-newline.js |
---
esid: sec-if-statement
description: >
ExpressionStatement doesn't have a lookahead restriction for `let {`.
info: |
ExpressionStatement[Yield, Await] :
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await] ;
flags: [noStrict]
--- |
472 |
- |
| let-identifier-with-newline.js |
---
esid: sec-if-statement
description: >
ExpressionStatement doesn't have a lookahead restriction for `let <binding-identifier>`.
info: |
ExpressionStatement[Yield, Await] :
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await] ;
flags: [noStrict]
--- |
495 |
- |
| S12.5_A1.1_T1.js |
---
info: |
0, null, undefined, false, empty string, NaN in expression is evaluated
to false
es5id: 12.5_A1.1_T1
description: Using "if" without "else" construction
--- |
1864 |
- |
| S12.5_A1.1_T2.js |
---
info: |
0, null, undefined, false, empty string, NaN in expression is evaluated
to false
es5id: 12.5_A1.1_T2
description: Using "if/else" construction
--- |
2360 |
- |
| S12.5_A1.2_T1.js |
---
info: |
1, true, non-empty string and others in expression is evaluated to true
when using operator "new"
es5id: 12.5_A1.2_T1
description: Using "if" without "else" construction
--- |
2803 |
- |
| S12.5_A1.2_T2.js |
---
info: |
1, true, non-empty string and others in expression is evaluated to true
when using operator "new"
es5id: 12.5_A1.2_T2
description: Using "if/else" construction
--- |
3549 |
- |
| S12.5_A1_T1.js |
---
info: 1, true, non-empty string in expression is evaluated to true
es5id: 12.5_A1_T1
description: Using "if" without "else" construction
--- |
1296 |
- |
| S12.5_A1_T2.js |
---
info: 1, true, non-empty string in expression is evaluated to true
es5id: 12.5_A1_T2
description: Using "if/else" construction
--- |
1627 |
- |
| S12.5_A2.js |
---
info: In the "if" Statement eval in Expression is admitted
es5id: 12.5_A2
description: Checking by using eval "eval("true")"
--- |
391 |
- |
| S12.5_A3.js |
---
info: |
When the production "IfStatement: if ( Expression ) Statement else
Statement" is evaluated, Expression is evaluated first
es5id: 12.5_A3
description: The Expression is "(function(){throw 1})()"
--- |
1035 |
- |
| S12.5_A4.js |
---
info: |
When the production "IfStatement: if ( Expression ) Statement else
Statement" is evaluated, Statement(s) is(are) evaluated second
es5id: 12.5_A4
description: The first statement is "(function(){throw "instatement"})()"
--- |
1210 |
- |
| S12.5_A5.js |
---
info: |
FunctionDeclaration inside the "if" Expression is evaluated as true and
function will not be declarated
es5id: 12.5_A5
description: >
The "if" Expression is "function __func(){throw
"FunctionExpression";}"
--- |
1385 |
- |
| S12.5_A6_T1.js |
---
info: In the If statement expression must be enclosed in braces
es5id: 12.5_A6_T1
description: Checking if execution of "if true" fails
negative:
phase: parse
type: SyntaxError
--- |
526 |
- |
| S12.5_A6_T2.js |
---
info: In the If statement expression must be enclosed in braces
es5id: 12.5_A6_T2
description: Checking if execution of "if false" fails
negative:
phase: parse
type: SyntaxError
--- |
528 |
- |
| S12.5_A8.js |
---
info: In the "if" Statement empty expression is not allowed
es5id: 12.5_A8
description: Checking if execution of "if()" fails
negative:
phase: parse
type: SyntaxError
--- |
513 |
- |
| S12.5_A10_T1.js |
---
info: Function expession inside the "if" expression is allowed
es5id: 12.5_A10_T1
description: >
Using function expession(function __func(){return 0;}) inside the
"if" expression
--- |
645 |
- |
| S12.5_A10_T2.js |
---
info: Function expession inside the "if" expression is allowed
es5id: 12.5_A10_T2
description: >
Using function expession "function __func(){return 0;}()" within
"if" expression
--- |
644 |
- |
| S12.5_A11.js |
---
info: "{} within the \"if\" expression is not allowed"
es5id: 12.5_A11
description: Checking if execution of "if({1})" fails
negative:
phase: parse
type: SyntaxError
--- |
545 |
- |
| S12.5_A12_T1.js |
---
info: Embedded "if/else" constructions are allowed
es5id: 12.5_A12_T1
description: Using embedded "if/else" into "if/else" constructions
--- |
1854 |
- |
| S12.5_A12_T2.js |
---
info: Embedded "if/else" constructions are allowed
es5id: 12.5_A12_T2
description: Using embedded "if" into "if/else" constructions
--- |
1163 |
- |
| S12.5_A12_T3.js |
---
info: Embedded "if/else" constructions are allowed
es5id: 12.5_A12_T3
description: Using embedded "if/else" into "if" without "else" constructions
--- |
1109 |
- |
| S12.5_A12_T4.js |
---
info: Embedded "if/else" constructions are allowed
es5id: 12.5_A12_T4
description: Using embedded "if" into "if" constructions
--- |
862 |
- |
| tco-else-body.js |
---
description: Statement within statement is a candidate for tail-call optimization.
esid: sec-static-semantics-hascallintailposition
flags: [onlyStrict]
features: [tail-call-optimization]
includes: [tcoHelper.js]
--- |
547 |
- |
| tco-if-body.js |
---
description: Statement within statement is a candidate for tail-call optimization.
esid: sec-static-semantics-hascallintailposition
flags: [onlyStrict]
features: [tail-call-optimization]
includes: [tcoHelper.js]
--- |
537 |
- |