| // Copyright 2015 the V8 project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // See: http://code.google.com/p/v8/issues/detail?id=4377 |
| |
| // Switch statements should introduce their own lexical scope |
| |
| 'use strict'; |
| |
| switch (1) { case 1: let x = 2; } |
| |
| assertThrows(function() { return x; }, ReferenceError); |
| |
| { |
| let result; |
| let x = 1; |
| switch (x) { |
| case 1: |
| let x = 2; |
| result = x; |
| break; |
| default: |
| result = 0; |
| break; |
| } |
| assertEquals(1, x); |
| assertEquals(2, result); |
| } |
| |
| { |
| let result; |
| let x = 1; |
| switch (eval('x')) { |
| case 1: |
| let x = 2; |
| result = x; |
| break; |
| default: |
| result = 0; |
| break; |
| } |
| assertEquals(1, x); |
| assertEquals(2, result); |
| } |