mirror of
				https://github.com/tc39/test262.git
				synced 2025-11-03 21:24:30 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// Copyright (C) 2016 the V8 project authors. All rights reserved.
 | 
						||
// This code is governed by the BSD license found in the LICENSE file.
 | 
						||
/*---
 | 
						||
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).
 | 
						||
---*/
 | 
						||
 | 
						||
assert.sameValue(
 | 
						||
  eval('1; switch ("a") { case null: }'), undefined, 'empty StatementList'
 | 
						||
);
 | 
						||
assert.sameValue(
 | 
						||
  eval('2; switch ("a") { case null: 3; }'),
 | 
						||
  undefined,
 | 
						||
  'non-empty StatementList'
 | 
						||
);
 |