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..8e852a5dc63233d8d1b283722ccd79f321eb5dfa |
| --- /dev/null |
| +++ b/test/mjsunit/regress/regress-2506.js |
| @@ -0,0 +1,77 @@ |
| +// 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'; |
|
rossberg
2014/10/23 09:44:54
Nit: empty line before.
Dmitry Lomov (no reviews)
2014/10/23 10:33:34
Done.
|
| + |
| +// Top-level code |
| +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); |
| +}()); |