| // Copyright (C) 2016 the V8 project authors. All rights reserved. |
| // This code is governed by the BSD license found in the LICENSE file. |
| description: Completion value when no cases match |
| SwitchStatement : switch ( Expression ) CaseBlock |
| 8. Let R be the result of performing CaseBlockEvaluation of CaseBlock with |
| 9. Set the running execution context’s LexicalEnvironment to oldEnv. |
| 13.12.9 Runtime Semantics: CaseBlockEvaluation |
| CaseBlock : { CaseClauses } |
| 2. Let A be the List of CaseClause items in CaseClauses, in source text |
| 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). |
| eval('1; switch ("a") { case null: }'), undefined, 'empty StatementList' |
| eval('2; switch ("a") { case null: 3; }'), |
| 'non-empty StatementList' |