1 // Copyright 2015 the V8 project authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // See: http://code.google.com/p/v8/issues/detail?id=4377 6 7 // Switch statements should introduce their own lexical scope 8 9 'use strict'; 10 11 switch (1) { case 1: let x = 2; } 12 13 assertThrows(function() { return x; }, ReferenceError); 14 15 { 16 let result; 17 let x = 1; 18 switch (x) { 19 case 1: 20 let x = 2; 21 result = x; 22 break; 23 default: 24 result = 0; 25 break; 26 } 27 assertEquals(1, x); 28 assertEquals(2, result); 29 } 30 31 { 32 let result; 33 let x = 1; 34 switch (eval('x')) { 35 case 1: 36 let x = 2; 37 result = x; 38 break; 39 default: 40 result = 0; 41 break; 42 } 43 assertEquals(1, x); 44 assertEquals(2, result); 45 } 46