Name Description Size Coverage
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 -