Name Description Size
browser.js 0
cptn-a-abrupt-empty.js --- es6id: 13.12.11 description: > Completion value when the matching case is exited via an empty abrupt completion info: | SwitchStatement : switch ( Expression ) CaseBlock [...] 8. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. 9. Set the running execution context’s LexicalEnvironment to oldEnv. 10. Return R. 13.12.9 Runtime Semantics: CaseBlockEvaluation CaseBlock : { CaseClausesopt DefaultClause CaseClausesopt } 1. Let V = undefined. 2. Let A be the list of CaseClause items in the first CaseClauses, in source text order. If the first CaseClauses is not present A is « ». 3. Let found be false. 4. Repeat for each CaseClause C in A a. If found is false, then i. Let clauseSelector be the result of CaseSelectorEvaluation of C. ii. If clauseSelector is an abrupt completion, then 1. If clauseSelector.[[value]] is empty, return Completion{[[type]]: clauseSelector.[[type]], [[value]]: undefined, [[target]]: clauseSelector.[[target]]}. 2. Else, return Completion(clauseSelector). iii. Let found be the result of performing Strict Equality Comparison input === clauseSelector.[[value]]. b. If found is true, then i. Let R be the result of evaluating C. ii. If R.[[value]] is not empty, let V = R.[[value]]. iii. If R is an abrupt completion, return Completion(UpdateEmpty(R, V)). --- 2146
cptn-a-fall-thru-abrupt-empty.js --- es6id: 13.12.11 description: > Completion value when execution continues through multiple cases and ends with an empty abrupt completion info: | SwitchStatement : switch ( Expression ) CaseBlock [...] 8. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. 9. Set the running execution context’s LexicalEnvironment to oldEnv. 10. Return R. 13.12.9 Runtime Semantics: CaseBlockEvaluation CaseBlock : { CaseClausesopt DefaultClause CaseClausesopt } 1. Let V = undefined. 2. Let A be the list of CaseClause items in the first CaseClauses, in source text order. If the first CaseClauses is not present A is « ». 3. Let found be false. 4. Repeat for each CaseClause C in A a. If found is false, then [...] b. If found is true, then i. Let R be the result of evaluating C. ii. If R.[[value]] is not empty, let V = R.[[value]]. iii. If R is an abrupt completion, return Completion(UpdateEmpty(R, V)). --- 2220
cptn-a-fall-thru-nrml.js --- es6id: 13.12.11 description: > Completion value when execution continues through multiple cases and ends with a normal completion info: | SwitchStatement : switch ( Expression ) CaseBlock [...] 8. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. 9. Set the running execution context’s LexicalEnvironment to oldEnv. 10. Return R. 13.12.9 Runtime Semantics: CaseBlockEvaluation CaseBlock : { CaseClausesopt DefaultClause CaseClausesopt } 1. Let V = undefined. 2. Let A be the list of CaseClause items in the first CaseClauses, in source text order. If the first CaseClauses is not present A is « ». 3. Let found be false. 4. Repeat for each CaseClause C in A a. If found is false, then i. Let clauseSelector be the result of CaseSelectorEvaluation of C. ii. If clauseSelector is an abrupt completion, then [...] iii. Let found be the result of performing Strict Equality Comparison input === clauseSelector.[[value]]. b. If found is true, then i. Let R be the result of evaluating C. ii. If R.[[value]] is not empty, let V = R.[[value]]. [...] 5. Let foundInB be false. 6. Let B be the List containing the CaseClause items in the second CaseClauses, in source text order. If the second CaseClauses is not present B is « ». 7. If found is false, then [...] [...] 9. Let R be the result of evaluating DefaultClause. 10. If R.[[value]] is not empty, let V = R.[[value]]. 11. If R is an abrupt completion, return Completion(UpdateEmpty(R, V)). 12. Repeat for each CaseClause C in B (NOTE this is another complete iteration of the second CaseClauses) [...] 13. Return NormalCompletion(V). --- 2445
cptn-abrupt-empty.js --- es6id: 13.12.11 description: > Completion value when case block is empty info: | SwitchStatement : switch ( Expression ) CaseBlock [...] 8. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. 9. Set the running execution context’s LexicalEnvironment to oldEnv. 10. Return R. 13.12.9 Runtime Semantics: CaseBlockEvaluation CaseBlock : { } 1. Return NormalCompletion(undefined). --- 699
cptn-b-abrupt-empty.js --- es6id: 13.12.11 description: > Completion value when the matching case is exited via an empty abrupt completion info: | SwitchStatement : switch ( Expression ) CaseBlock [...] 8. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. 9. Set the running execution context’s LexicalEnvironment to oldEnv. 10. Return R. 13.12.9 Runtime Semantics: CaseBlockEvaluation CaseBlock : { CaseClausesopt DefaultClause CaseClausesopt } 1. Let V = undefined. 2. Let A be the list of CaseClause items in the first CaseClauses, in source text order. If the first CaseClauses is not present A is « ». 3. Let found be false. 4. Repeat for each CaseClause C in A [...] 5. Let foundInB be false. 6. Let B be the List containing the CaseClause items in the second CaseClauses, in source text order. If the second CaseClauses is not present B is « ». 7. If found is false, then a. Repeat for each CaseClause C in B i. If foundInB is false, then 1. Let clauseSelector be the result of CaseSelectorEvaluation of C. 2. If clauseSelector is an abrupt completion, then a. If clauseSelector.[[value]] is empty, return Completion{[[type]]: clauseSelector.[[type]], [[value]]: undefined, [[target]]: clauseSelector.[[target]]}. b. Else, return Completion(clauseSelector). 3. Let foundInB be the result of performing Strict Equality Comparison input === clauseSelector.[[value]]. ii. If foundInB is true, then 1. Let R be the result of evaluating CaseClause C. 2. If R.[[value]] is not empty, let V = R.[[value]]. 3. If R is an abrupt completion, return Completion(UpdateEmpty(R, V)). --- 2511
cptn-b-fall-thru-abrupt-empty.js --- es6id: 13.12.11 description: > Completion value when execution continues through multiple cases and ends with an empty abrupt completion info: | SwitchStatement : switch ( Expression ) CaseBlock [...] 8. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. 9. Set the running execution context’s LexicalEnvironment to oldEnv. 10. Return R. 13.12.9 Runtime Semantics: CaseBlockEvaluation CaseBlock : { CaseClausesopt DefaultClause CaseClausesopt } 1. Let V = undefined. 2. Let A be the list of CaseClause items in the first CaseClauses, in source text order. If the first CaseClauses is not present A is « ». 3. Let found be false. 4. Repeat for each CaseClause C in A [...] 5. Let foundInB be false. 6. Let B be the List containing the CaseClause items in the second CaseClauses, in source text order. If the second CaseClauses is not present B is « ». 7. If found is false, then a. Repeat for each CaseClause C in B i. If foundInB is false, then 1. Let clauseSelector be the result of CaseSelectorEvaluation of C. 2. If clauseSelector is an abrupt completion, then a. If clauseSelector.[[value]] is empty, return Completion{[[type]]: clauseSelector.[[type]], [[value]]: undefined, [[target]]: clauseSelector.[[target]]}. b. Else, return Completion(clauseSelector). 3. Let foundInB be the result of performing Strict Equality Comparison input === clauseSelector.[[value]]. ii. If foundInB is true, then 1. Let R be the result of evaluating CaseClause C. 2. If R.[[value]] is not empty, let V = R.[[value]]. 3. If R is an abrupt completion, return Completion(UpdateEmpty(R, V)). --- 3102
cptn-b-fall-thru-nrml.js --- es6id: 13.12.11 description: > Completion value when execution continues through multiple cases and ends with a normal completion info: | SwitchStatement : switch ( Expression ) CaseBlock [...] 8. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. 9. Set the running execution context’s LexicalEnvironment to oldEnv. 10. Return R. 13.12.9 Runtime Semantics: CaseBlockEvaluation CaseBlock : { CaseClausesopt DefaultClause CaseClausesopt } 1. Let V = undefined. 2. Let A be the list of CaseClause items in the first CaseClauses, in source text order. If the first CaseClauses is not present A is « ». 3. Let found be false. 4. Repeat for each CaseClause C in A [...] 5. Let foundInB be false. 6. Let B be the List containing the CaseClause items in the second CaseClauses, in source text order. If the second CaseClauses is not present B is « ». 7. If found is false, then a. Repeat for each CaseClause C in B i. If foundInB is false, then 1. Let clauseSelector be the result of CaseSelectorEvaluation of C. 2. If clauseSelector is an abrupt completion, then a. If clauseSelector.[[value]] is empty, return Completion{[[type]]: clauseSelector.[[type]], [[value]]: undefined, [[target]]: clauseSelector.[[target]]}. b. Else, return Completion(clauseSelector). 3. Let foundInB be the result of performing Strict Equality Comparison input === clauseSelector.[[value]]. ii. If foundInB is true, then 1. Let R be the result of evaluating CaseClause C. 2. If R.[[value]] is not empty, let V = R.[[value]]. 3. If R is an abrupt completion, return Completion(UpdateEmpty(R, V)). 8. If foundInB is true, return NormalCompletion(V). --- 2605
cptn-b-final.js --- es6id: 13.12.11 description: Completion value when the final case matches info: | SwitchStatement : switch ( Expression ) CaseBlock [...] 8. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. 9. Set the running execution context’s LexicalEnvironment to oldEnv. 10. Return R. 13.12.9 Runtime Semantics: CaseBlockEvaluation CaseBlock : { CaseClauses } 1. Let V = undefined. 2. Let A be the list of CaseClause items in the first CaseClauses, in source text order. If the first CaseClauses is not present A is « ». 3. Let found be false. 4. Repeat for each CaseClause C in A [...] 5. Let foundInB be false. 6. Let B be the List containing the CaseClause items in the second CaseClauses, in source text order. If the second CaseClauses is not present B is « ». 7. If found is false, then a. Repeat for each CaseClause C in B i. If foundInB is false, then 1. Let clauseSelector be the result of CaseSelectorEvaluation of C. 2. If clauseSelector is an abrupt completion, then a. If clauseSelector.[[value]] is empty, return Completion{[[type]]: clauseSelector.[[type]], [[value]]: undefined, [[target]]: clauseSelector.[[target]]}. b. Else, return Completion(clauseSelector). 3. Let foundInB be the result of performing Strict Equality Comparison input === clauseSelector.[[value]]. ii. If foundInB is true, then 1. Let R be the result of evaluating CaseClause C. 2. If R.[[value]] is not empty, let V = R.[[value]]. 3. If R is an abrupt completion, return Completion(UpdateEmpty(R, V)). 8. If foundInB is true, return NormalCompletion(V). --- 2913
cptn-dflt-abrupt-empty.js --- es6id: 13.12.11 description: > Completion value when the default case is exited via an empty abrupt completion info: | SwitchStatement : switch ( Expression ) CaseBlock [...] 8. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. 9. Set the running execution context’s LexicalEnvironment to oldEnv. 10. Return R. 13.12.9 Runtime Semantics: CaseBlockEvaluation CaseBlock : { CaseClausesopt DefaultClause CaseClausesopt } 1. Let V = undefined. 2. Let A be the list of CaseClause items in the first CaseClauses, in source text order. If the first CaseClauses is not present A is « ». 3. Let found be false. 4. Repeat for each CaseClause C in A [...] 5. Let foundInB be false. 6. Let B be the List containing the CaseClause items in the second CaseClauses, in source text order. If the second CaseClauses is not present B is « ». 7. If found is false, then [...] 8. If foundInB is true, return NormalCompletion(V). 9. Let R be the result of evaluating DefaultClause. 10. If R.[[value]] is not empty, let V = R.[[value]]. 11. If R is an abrupt completion, return Completion(UpdateEmpty(R, V)). --- 1795
cptn-dflt-b-abrupt-empty.js --- es6id: 13.12.11 description: > Completion value when the matching case is exited via an empty abrupt completion info: | SwitchStatement : switch ( Expression ) CaseBlock [...] 8. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. 9. Set the running execution context’s LexicalEnvironment to oldEnv. 10. Return R. 13.12.9 Runtime Semantics: CaseBlockEvaluation CaseBlock : { CaseClausesopt DefaultClause CaseClausesopt } 1. Let V = undefined. 2. Let A be the list of CaseClause items in the first CaseClauses, in source text order. If the first CaseClauses is not present A is « ». 3. Let found be false. 4. Repeat for each CaseClause C in A [...] 5. Let foundInB be false. 6. Let B be the List containing the CaseClause items in the second CaseClauses, in source text order. If the second CaseClauses is not present B is « ». 7. If found is false, then a. Repeat for each CaseClause C in B i. If foundInB is false, then 1. Let clauseSelector be the result of CaseSelectorEvaluation of C. [...] 3. Let foundInB be the result of performing Strict Equality Comparison input === clauseSelector.[[value]]. ii. If foundInB is true, then [...] 8. If foundInB is true, return NormalCompletion(V). 9. Let R be the result of evaluating DefaultClause. 10. If R.[[value]] is not empty, let V = R.[[value]]. 11. If R is an abrupt completion, return Completion(UpdateEmpty(R, V)). 12. Repeat for each CaseClause C in B (NOTE this is another complete iteration of the second CaseClauses) a. Let R be the result of evaluating CaseClause C. b. If R.[[value]] is not empty, let V = R.[[value]]. c. If R is an abrupt completion, return Completion(UpdateEmpty(R, V)). --- 2542
cptn-dflt-b-fall-thru-abrupt-empty.js --- es6id: 13.12.11 description: > Completion value when execution continues through multiple cases and ends with an empty abrupt completion info: | SwitchStatement : switch ( Expression ) CaseBlock [...] 8. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. 9. Set the running execution context’s LexicalEnvironment to oldEnv. 10. Return R. 13.12.9 Runtime Semantics: CaseBlockEvaluation CaseBlock : { CaseClausesopt DefaultClause CaseClausesopt } 1. Let V = undefined. 2. Let A be the list of CaseClause items in the first CaseClauses, in source text order. If the first CaseClauses is not present A is « ». 3. Let found be false. 4. Repeat for each CaseClause C in A [...] 5. Let foundInB be false. 6. Let B be the List containing the CaseClause items in the second CaseClauses, in source text order. If the second CaseClauses is not present B is « ». 7. If found is false, then a. Repeat for each CaseClause C in B i. If foundInB is false, then 1. Let clauseSelector be the result of CaseSelectorEvaluation of C. [...] 3. Let foundInB be the result of performing Strict Equality Comparison input === clauseSelector.[[value]]. ii. If foundInB is true, then [...] 8. If foundInB is true, return NormalCompletion(V). 9. Let R be the result of evaluating DefaultClause. 10. If R.[[value]] is not empty, let V = R.[[value]]. 11. If R is an abrupt completion, return Completion(UpdateEmpty(R, V)). 12. Repeat for each CaseClause C in B (NOTE this is another complete iteration of the second CaseClauses) a. Let R be the result of evaluating CaseClause C. b. If R.[[value]] is not empty, let V = R.[[value]]. c. If R is an abrupt completion, return Completion(UpdateEmpty(R, V)). --- 3133
cptn-dflt-b-fall-thru-nrml.js --- es6id: 13.12.11 description: > Completion value when execution continues through multiple cases and ends with a normal completion info: | SwitchStatement : switch ( Expression ) CaseBlock [...] 8. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. 9. Set the running execution context’s LexicalEnvironment to oldEnv. 10. Return R. 13.12.9 Runtime Semantics: CaseBlockEvaluation CaseBlock : { CaseClausesopt DefaultClause CaseClausesopt } 1. Let V = undefined. 2. Let A be the list of CaseClause items in the first CaseClauses, in source text order. If the first CaseClauses is not present A is « ». 3. Let found be false. 4. Repeat for each CaseClause C in A [...] 5. Let foundInB be false. 6. Let B be the List containing the CaseClause items in the second CaseClauses, in source text order. If the second CaseClauses is not present B is « ». 7. If found is false, then a. Repeat for each CaseClause C in B i. If foundInB is false, then 1. Let clauseSelector be the result of CaseSelectorEvaluation of C. [...] 3. Let foundInB be the result of performing Strict Equality Comparison input === clauseSelector.[[value]]. ii. If foundInB is true, then [...] 8. If foundInB is true, return NormalCompletion(V). 9. Let R be the result of evaluating DefaultClause. 10. If R.[[value]] is not empty, let V = R.[[value]]. 11. If R is an abrupt completion, return Completion(UpdateEmpty(R, V)). 12. Repeat for each CaseClause C in B (NOTE this is another complete iteration of the second CaseClauses) a. Let R be the result of evaluating CaseClause C. b. If R.[[value]] is not empty, let V = R.[[value]]. c. If R is an abrupt completion, return Completion(UpdateEmpty(R, V)). 13. Return NormalCompletion(V). --- 2616
cptn-dflt-b-final.js --- es6id: 13.12.11 description: Completion value when the final case matches info: | SwitchStatement : switch ( Expression ) CaseBlock [...] 8. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. 9. Set the running execution context’s LexicalEnvironment to oldEnv. 10. Return R. 13.12.9 Runtime Semantics: CaseBlockEvaluation CaseBlock : { CaseClauses } 1. Let V = undefined. 2. Let A be the list of CaseClause items in the first CaseClauses, in source text order. If the first CaseClauses is not present A is « ». 3. Let found be false. 4. Repeat for each CaseClause C in A [...] 5. Let foundInB be false. 6. Let B be the List containing the CaseClause items in the second CaseClauses, in source text order. If the second CaseClauses is not present B is « ». 7. If found is false, then a. Repeat for each CaseClause C in B i. If foundInB is false, then 1. Let clauseSelector be the result of CaseSelectorEvaluation of C. [...] 3. Let foundInB be the result of performing Strict Equality Comparison input === clauseSelector.[[value]]. ii. If foundInB is true, then [...] 8. If foundInB is true, return NormalCompletion(V). 9. Let R be the result of evaluating DefaultClause. 10. If R.[[value]] is not empty, let V = R.[[value]]. 11. If R is an abrupt completion, return Completion(UpdateEmpty(R, V)). 12. Repeat for each CaseClause C in B (NOTE this is another complete iteration of the second CaseClauses) a. Let R be the result of evaluating CaseClause C. b. If R.[[value]] is not empty, let V = R.[[value]]. c. If R is an abrupt completion, return Completion(UpdateEmpty(R, V)). 13. Return NormalCompletion(V). --- 2916
cptn-dflt-fall-thru-abrupt-empty.js --- es6id: 13.12.11 description: > Completion value when execution continues through multiple cases and ends with an empty abrupt completion in the default case info: | SwitchStatement : switch ( Expression ) CaseBlock [...] 8. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. 9. Set the running execution context’s LexicalEnvironment to oldEnv. 10. Return R. 13.12.9 Runtime Semantics: CaseBlockEvaluation CaseBlock : { CaseClausesopt DefaultClause CaseClausesopt } 1. Let V = undefined. 2. Let A be the list of CaseClause items in the first CaseClauses, in source text order. If the first CaseClauses is not present A is « ». 3. Let found be false. 4. Repeat for each CaseClause C in A [...] 5. Let foundInB be false. 6. Let B be the List containing the CaseClause items in the second CaseClauses, in source text order. If the second CaseClauses is not present B is « ». 7. If found is false, then [...] 8. If foundInB is true, return NormalCompletion(V). 9. Let R be the result of evaluating DefaultClause. 10. If R.[[value]] is not empty, let V = R.[[value]]. 11. If R is an abrupt completion, return Completion(UpdateEmpty(R, V)). --- 2391
cptn-dflt-fall-thru-nrml.js --- es6id: 13.12.11 description: > Completion value when execution continues through multiple cases and ends with a normal completion in the default case info: | SwitchStatement : switch ( Expression ) CaseBlock [...] 8. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. 9. Set the running execution context’s LexicalEnvironment to oldEnv. 10. Return R. 13.12.9 Runtime Semantics: CaseBlockEvaluation CaseBlock : { CaseClausesopt DefaultClause CaseClausesopt } 1. Let V = undefined. 2. Let A be the list of CaseClause items in the first CaseClauses, in source text order. If the first CaseClauses is not present A is « ». 3. Let found be false. 4. Repeat for each CaseClause C in A [...] 5. Let foundInB be false. 6. Let B be the List containing the CaseClause items in the second CaseClauses, in source text order. If the second CaseClauses is not present B is « ». 7. If found is false, then [...] 8. If foundInB is true, return NormalCompletion(V). 9. Let R be the result of evaluating DefaultClause. 10. If R.[[value]] is not empty, let V = R.[[value]]. 11. If R is an abrupt completion, return Completion(UpdateEmpty(R, V)). 12. Repeat for each CaseClause C in B (NOTE this is another complete iteration of the second CaseClauses) [...] 13. Return NormalCompletion(V). --- 2036
cptn-dflt-final.js --- es6id: 13.12.11 description: Completion value when the default case matches and is final info: | SwitchStatement : switch ( Expression ) CaseBlock [...] 8. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. 9. Set the running execution context’s LexicalEnvironment to oldEnv. 10. Return R. 13.12.9 Runtime Semantics: CaseBlockEvaluation CaseBlock : { CaseClauses } 1. Let V = undefined. 2. Let A be the list of CaseClause items in the first CaseClauses, in source text order. If the first CaseClauses is not present A is « ». 3. Let found be false. 4. Repeat for each CaseClause C in A [...] 5. Let foundInB be false. 6. Let B be the List containing the CaseClause items in the second CaseClauses, in source text order. If the second CaseClauses is not present B is « ». 7. If found is false, then a. Repeat for each CaseClause C in B [...] 8. If foundInB is true, return NormalCompletion(V). 9. Let R be the result of evaluating DefaultClause. 10. If R.[[value]] is not empty, let V = R.[[value]]. [...] 13. Return NormalCompletion(V). --- 2155
cptn-no-dflt-match-abrupt-empty.js --- es6id: 13.12.11 description: > Completion value when the matching case is exited via an empty abrupt completion info: | SwitchStatement : switch ( Expression ) CaseBlock [...] 8. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. 9. Set the running execution context’s LexicalEnvironment to oldEnv. 10. Return R. 13.12.9 Runtime Semantics: CaseBlockEvaluation CaseBlock : { CaseClauses } 1. Let V = undefined. 2. Let A be the List of CaseClause items in CaseClauses, in source text order. 3. Let found be false. 4. Repeat for each CaseClause C in A, a. If found is false, then i. Let clauseSelector be the result of CaseSelectorEvaluation of C. ii. If clauseSelector is an abrupt completion, then 1. If clauseSelector.[[value]] is empty, return Completion{[[type]]: clauseSelector.[[type]], [[value]]: undefined, [[target]]: clauseSelector.[[target]]}. 2. Else, return Completion(clauseSelector). iii. Let found be the result of performing Strict Equality Comparison input === clauseSelector.[[value]]. b. If found is true, then i. Let R be the result of evaluating C. ii. If R.[[value]] is not empty, let V = R.[[value]]. iii. If R is an abrupt completion, return Completion(UpdateEmpty(R, V)). --- 2015
cptn-no-dflt-match-fall-thru-abrupt-empty.js --- es6id: 13.12.11 description: > Completion value when execution continues through multiple cases and ends with an empty abrupt completion info: | SwitchStatement : switch ( Expression ) CaseBlock [...] 8. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. 9. Set the running execution context’s LexicalEnvironment to oldEnv. 10. Return R. 13.12.9 Runtime Semantics: CaseBlockEvaluation CaseBlock : { CaseClauses } 1. Let V = undefined. 2. Let A be the List of CaseClause items in CaseClauses, in source text order. 3. Let found be false. 4. Repeat for each CaseClause C in A, a. If found is false, then [...] b. If found is true, then i. Let R be the result of evaluating C. ii. If R.[[value]] is not empty, let V = R.[[value]]. iii. If R is an abrupt completion, return Completion(UpdateEmpty(R, V)). --- 2073
cptn-no-dflt-match-fall-thru-nrml.js --- es6id: 13.12.11 description: > Completion value when execution continues through multiple cases and ends with a normal completion info: | SwitchStatement : switch ( Expression ) CaseBlock [...] 8. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. 9. Set the running execution context’s LexicalEnvironment to oldEnv. 10. Return R. 13.12.9 Runtime Semantics: CaseBlockEvaluation CaseBlock : { CaseClauses } 1. Let V = undefined. 2. Let A be the List of CaseClause items in CaseClauses, in source text order. 3. Let found be false. 4. Repeat for each CaseClause C in A, a. If found is false, then [...] b. If found is true, then i. Let R be the result of evaluating C. ii. If R.[[value]] is not empty, let V = R.[[value]]. [...] 5. Return NormalCompletion(V). --- 1500
cptn-no-dflt-match-final.js --- es6id: 13.12.11 description: Completion value when only the final case matches info: | SwitchStatement : switch ( Expression ) CaseBlock [...] 8. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. 9. Set the running execution context’s LexicalEnvironment to oldEnv. 10. Return R. 13.12.9 Runtime Semantics: CaseBlockEvaluation CaseBlock : { CaseClauses } 1. Let V = undefined. 2. Let A be the List of CaseClause items in CaseClauses, in source text order. 3. Let found be false. 4. Repeat for each CaseClause C in A, a. If found is false, then i. Let clauseSelector be the result of CaseSelectorEvaluation of C. ii. If clauseSelector is an abrupt completion, then 1. If clauseSelector.[[value]] is empty, return Completion{[[type]]: clauseSelector.[[type]], [[value]]: undefined, [[target]]: clauseSelector.[[target]]}. 2. Else, return Completion(clauseSelector). iii. Let found be the result of performing Strict Equality Comparison input === clauseSelector.[[value]]. b. If found is true, then i. Let R be the result of evaluating C. ii. If R.[[value]] is not empty, let V = R.[[value]]. iii. If R is an abrupt completion, return Completion(UpdateEmpty(R, V)). 5. Return NormalCompletion(V). --- 2417
cptn-no-dflt-no-match.js --- es6id: 13.12.11 description: Completion value when no cases match info: | SwitchStatement : switch ( Expression ) CaseBlock [...] 8. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. 9. Set the running execution context’s LexicalEnvironment to oldEnv. 10. Return R. 13.12.9 Runtime Semantics: CaseBlockEvaluation CaseBlock : { CaseClauses } 1. Let V = undefined. 2. Let A be the List of CaseClause items in CaseClauses, in source text order. 3. Let found be false. 4. Repeat for each CaseClause C in A, a. If found is false, then i. Let clauseSelector be the result of CaseSelectorEvaluation of C. ii. If clauseSelector is an abrupt completion, then [...] iii. Let found be the result of performing Strict Equality Comparison input === clauseSelector.[[value]]. b. If found is true, then [...] 5. Return NormalCompletion(V). --- 1396
S12.11_A1_T1.js --- info: | If Result.type is break and Result.target is in the current label set, return (normal, Result.value, empty) es5id: 12.11_A1_T1 description: Simple test using switch statement --- 2051
S12.11_A1_T2.js --- info: | If Result.type is break and Result.target is in the current label set, return (normal, Result.value, empty) es5id: 12.11_A1_T2 description: Switch with different types of variables --- 2358
S12.11_A1_T3.js --- info: | If Result.type is break and Result.target is in the current label set, return (normal, Result.value, empty) es5id: 12.11_A1_T3 description: Using case with null, NaN, Infinity --- 2519
S12.11_A1_T4.js --- info: | If Result.type is break and Result.target is in the current label set, return (normal, Result.value, empty) es5id: 12.11_A1_T4 description: Using case with isNaN and isNaN(value) --- 2228
S12.11_A2_T1.js --- info: There can be only one DefaultClause es5id: 12.11_A2_T1 description: Duplicate DefaultClause negative: phase: parse type: SyntaxError --- 575
S12.11_A3_T1.js --- info: Syntax constructions of switch statement es5id: 12.11_A3_T1 description: Checking if execution of "switch() {}" fails negative: phase: parse type: SyntaxError --- 550
S12.11_A3_T2.js --- info: Syntax constructions of switch statement es5id: 12.11_A3_T2 description: Checking if execution of "switch {}" fails negative: phase: parse type: SyntaxError --- 546
S12.11_A3_T3.js --- info: Syntax constructions of switch statement es5id: 12.11_A3_T3 description: Checking if execution of "switch(value)" fails negative: phase: parse type: SyntaxError --- 382
S12.11_A3_T4.js --- info: Syntax constructions of switch statement es5id: 12.11_A3_T4 description: > Using "case" that has no Expresson after it. "CaseClause: case Expression : [StatementList]" negative: phase: parse type: SyntaxError --- 611
S12.11_A3_T5.js --- info: Syntax constructions of switch statement es5id: 12.11_A3_T5 description: Introducing statement not followed by "case" keyword negative: phase: parse type: SyntaxError --- 577
S12.11_A4_T1.js --- info: Embedded syntax constructions of switch statement es5id: 12.11_A4_T1 description: Nesting one "switch" statement into StatementList of the other's --- 790
scope-lex-async-function.js --- esid: sec-switch-statement-runtime-semantics-evaluation description: Creation of new lexical environment (into `default` clause) info: | 1. Let exprRef be the result of evaluating Expression. 2. Let switchValue be ? GetValue(exprRef). 3. Let oldEnv be the running execution context's LexicalEnvironment. 4. Let blockEnv be NewDeclarativeEnvironment(oldEnv). 5. Perform BlockDeclarationInstantiation(CaseBlock, blockEnv). 6. Set the running execution context's LexicalEnvironment to blockEnv. 7. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. [...] negative: phase: runtime type: ReferenceError --- 907
scope-lex-async-generator.js --- esid: sec-switch-statement-runtime-semantics-evaluation description: Creation of new lexical environment (into `default` clause) info: | 1. Let exprRef be the result of evaluating Expression. 2. Let switchValue be ? GetValue(exprRef). 3. Let oldEnv be the running execution context's LexicalEnvironment. 4. Let blockEnv be NewDeclarativeEnvironment(oldEnv). 5. Perform BlockDeclarationInstantiation(CaseBlock, blockEnv). 6. Set the running execution context's LexicalEnvironment to blockEnv. 7. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. [...] negative: phase: runtime type: ReferenceError --- 909
scope-lex-class.js --- esid: sec-switch-statement-runtime-semantics-evaluation description: Creation of new lexical environment (into `default` clause) info: | 1. Let exprRef be the result of evaluating Expression. 2. Let switchValue be ? GetValue(exprRef). 3. Let oldEnv be the running execution context's LexicalEnvironment. 4. Let blockEnv be NewDeclarativeEnvironment(oldEnv). 5. Perform BlockDeclarationInstantiation(CaseBlock, blockEnv). 6. Set the running execution context's LexicalEnvironment to blockEnv. 7. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. [...] negative: phase: runtime type: ReferenceError --- 896
scope-lex-close-case.js --- esid: sec-switch-statement-runtime-semantics-evaluation description: Removal of lexical environment (from `case` clause) info: | 1. Let exprRef be the result of evaluating Expression. 2. Let switchValue be ? GetValue(exprRef). 3. Let oldEnv be the running execution context's LexicalEnvironment. 4. Let blockEnv be NewDeclarativeEnvironment(oldEnv). 5. Perform BlockDeclarationInstantiation(CaseBlock, blockEnv). 6. Set the running execution context's LexicalEnvironment to blockEnv. 7. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. [...] features: [let] --- 1164
scope-lex-close-dflt.js --- esid: sec-switch-statement-runtime-semantics-evaluation description: Removal of lexical environment (from `default` clause) info: | 1. Let exprRef be the result of evaluating Expression. 2. Let switchValue be ? GetValue(exprRef). 3. Let oldEnv be the running execution context's LexicalEnvironment. 4. Let blockEnv be NewDeclarativeEnvironment(oldEnv). 5. Perform BlockDeclarationInstantiation(CaseBlock, blockEnv). 6. Set the running execution context's LexicalEnvironment to blockEnv. 7. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. [...] features: [let] --- 1459
scope-lex-const.js --- esid: sec-switch-statement-runtime-semantics-evaluation description: Creation of new lexical environment (into `default` clause) info: | 1. Let exprRef be the result of evaluating Expression. 2. Let switchValue be ? GetValue(exprRef). 3. Let oldEnv be the running execution context's LexicalEnvironment. 4. Let blockEnv be NewDeclarativeEnvironment(oldEnv). 5. Perform BlockDeclarationInstantiation(CaseBlock, blockEnv). 6. Set the running execution context's LexicalEnvironment to blockEnv. 7. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. [...] negative: phase: runtime type: ReferenceError --- 898
scope-lex-generator.js --- esid: sec-switch-statement-runtime-semantics-evaluation description: Creation of new lexical environment (into `default` clause) info: | 1. Let exprRef be the result of evaluating Expression. 2. Let switchValue be ? GetValue(exprRef). 3. Let oldEnv be the running execution context's LexicalEnvironment. 4. Let blockEnv be NewDeclarativeEnvironment(oldEnv). 5. Perform BlockDeclarationInstantiation(CaseBlock, blockEnv). 6. Set the running execution context's LexicalEnvironment to blockEnv. 7. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. [...] negative: phase: runtime type: ReferenceError --- 903
scope-lex-let.js --- esid: sec-switch-statement-runtime-semantics-evaluation description: Creation of new lexical environment (into `default` clause) info: | 1. Let exprRef be the result of evaluating Expression. 2. Let switchValue be ? GetValue(exprRef). 3. Let oldEnv be the running execution context's LexicalEnvironment. 4. Let blockEnv be NewDeclarativeEnvironment(oldEnv). 5. Perform BlockDeclarationInstantiation(CaseBlock, blockEnv). 6. Set the running execution context's LexicalEnvironment to blockEnv. 7. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. [...] negative: phase: runtime type: ReferenceError --- 898
scope-lex-open-case.js --- esid: sec-switch-statement-runtime-semantics-evaluation description: Creation of new lexical environment (into `case` clause) info: | 1. Let exprRef be the result of evaluating Expression. 2. Let switchValue be ? GetValue(exprRef). 3. Let oldEnv be the running execution context's LexicalEnvironment. 4. Let blockEnv be NewDeclarativeEnvironment(oldEnv). 5. Perform BlockDeclarationInstantiation(CaseBlock, blockEnv). 6. Set the running execution context's LexicalEnvironment to blockEnv. 7. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. [...] features: [let] --- 1265
scope-lex-open-dflt.js --- esid: sec-switch-statement-runtime-semantics-evaluation description: Creation of new lexical environment (into `default` clause) info: | 1. Let exprRef be the result of evaluating Expression. 2. Let switchValue be ? GetValue(exprRef). 3. Let oldEnv be the running execution context's LexicalEnvironment. 4. Let blockEnv be NewDeclarativeEnvironment(oldEnv). 5. Perform BlockDeclarationInstantiation(CaseBlock, blockEnv). 6. Set the running execution context's LexicalEnvironment to blockEnv. 7. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. [...] features: [let] --- 1077
scope-var-none-case.js --- esid: sec-switch-statement-runtime-semantics-evaluation description: Retainment of existing variable environment (`case` clause) info: | 1. Let exprRef be the result of evaluating Expression. 2. Let switchValue be ? GetValue(exprRef). 3. Let oldEnv be the running execution context's LexicalEnvironment. 4. Let blockEnv be NewDeclarativeEnvironment(oldEnv). 5. Perform BlockDeclarationInstantiation(CaseBlock, blockEnv). 6. Set the running execution context's LexicalEnvironment to blockEnv. 7. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. [...] flags: [noStrict] --- 1463
scope-var-none-dflt.js --- esid: sec-switch-statement-runtime-semantics-evaluation description: Retainment of existing variable environment (`default` clause) info: | 1. Let exprRef be the result of evaluating Expression. 2. Let switchValue be ? GetValue(exprRef). 3. Let oldEnv be the running execution context's LexicalEnvironment. 4. Let blockEnv be NewDeclarativeEnvironment(oldEnv). 5. Perform BlockDeclarationInstantiation(CaseBlock, blockEnv). 6. Set the running execution context's LexicalEnvironment to blockEnv. 7. Let R be the result of performing CaseBlockEvaluation of CaseBlock with argument switchValue. [...] flags: [noStrict] --- 1305
shell.js --- description: | This defines the number of consecutive recursive function calls that must be made in order to prove that stack frames are properly destroyed according to ES2015 tail call optimization semantics. defines: [$MAX_ITERATIONS] --- 481
syntax
tco-case-body-dflt-strict.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] --- 651
tco-case-body-strict.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] --- 642
tco-dftl-body-strict.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] --- 643