Chromium Code Reviews| Index: test/mjsunit/regress/regress-2506.js |
| diff --git a/test/mjsunit/regress/regress-2506.js b/test/mjsunit/regress/regress-2506.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..e6b37d3fdbb1305d81aa6e06c1970322f8745a54 |
| --- /dev/null |
| +++ b/test/mjsunit/regress/regress-2506.js |
| @@ -0,0 +1,78 @@ |
| +// Copyright 2014 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. |
| +// |
| +// Flags: --harmony-scoping |
| + |
| +'use strict'; |
| + |
| +// Top-level code |
|
rossberg
2014/10/23 10:41:28
Actually, on second though, we should have more te
rossberg
2014/10/23 10:47:11
Ah sorry, please ignore.
|
| +let s = 0; |
| +let f = [undefined, undefined, undefined] |
| +for (const x of [1,2,3]) { |
| + s += x; |
| + f[x-1] = function() { return x; } |
| +} |
| +assertEquals(6, s); |
| +assertEquals(1, f[0]()); |
| +assertEquals(2, f[1]()); |
| +assertEquals(3, f[2]()); |
| + |
| +let x = 1; |
| +s = 0; |
| +for (const x of [x, x+1, x+2]) { |
| + s += x; |
| +} |
| +assertEquals(6, s); |
| + |
| +s = 0; |
| +var q = 1; |
| +for (const q of [q, q+1, q+2]) { |
| + s += q; |
| +} |
| +assertEquals(6, s); |
| + |
| +let z = 1; |
| +s = 0; |
| +for (const x = 1; z < 2; z++) { |
| + s += x + z; |
| +} |
| +assertEquals(2, s); |
| + |
| + |
| +s = ""; |
| +for (const x in [1,2,3]) { |
| + s += x; |
| +} |
| +assertEquals("012", s); |
| + |
| +assertThrows(function() { for(const x in [1,2,3]) { x++ } }, SyntaxError); |
| + |
| +// Function scope |
| +(function() { |
| + let s = 0; |
| + for (const x of [1,2,3]) { |
| + s += x; |
| + } |
| + assertEquals(6, s); |
| + |
| + let x = 1; |
| + s = 0; |
| + for (const x of [x, x+1, x+2]) { |
| + s += x; |
| + } |
| + assertEquals(6, s); |
| + |
| + s = 0; |
| + var q = 1; |
| + for (const q of [q, q+1, q+2]) { |
| + s += q; |
| + } |
| + assertEquals(6, s); |
| + |
| + s = ""; |
| + for (const x in [1,2,3]) { |
| + s += x; |
| + } |
| + assertEquals("012", s); |
| +}()); |