Chromium Code Reviews| Index: test/mjsunit/regress/regress-3926.js |
| diff --git a/test/mjsunit/regress/regress-3926.js b/test/mjsunit/regress/regress-3926.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..99023651374af66c880fb45ca14421cfdae7d6a1 |
| --- /dev/null |
| +++ b/test/mjsunit/regress/regress-3926.js |
| @@ -0,0 +1,37 @@ |
| +// 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=3926 |
| + |
| +// Switch statements should disable let hole checking |
|
adamk
2015/08/25 19:13:33
I think you mean should disable "hole check elimin
Dan Ehrenberg
2015/08/25 20:54:45
Done
|
| + |
| +'use strict'; |
| + |
| +function f(x) { |
| + var z; |
| + switch (x) { |
| + case 1: |
| + let y = 1; |
| + case 2: |
| + y = 2; |
| + case 3: |
| + z = y; |
| + } |
| + return z; |
| +} |
| +assertEquals(2, f(1)); |
| +assertThrows(function() {f(2)}, ReferenceError); |
| +assertThrows(function() {f(3)}, ReferenceError); |
| + |
| +assertThrows(function() { |
| + switch (1) { |
| + case 0: |
| + let x = 2; |
| + case 1: |
| + { // this block, plus the let below, adds another lexical scope, this one linear |
|
adamk
2015/08/25 19:13:33
Nit: 80 chars
Dan Ehrenberg
2015/08/25 20:54:45
Done
|
| + let y = 3; |
| + x; |
| + } |
| + } |
| +}, ReferenceError); |