96105a90fc
R=rossberg@chromium.org BUG=v8:2506 LOG=N Committed: https://code.google.com/p/v8/source/detail?r=24834 Review URL: https://codereview.chromium.org/671913002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
79 lines
1.2 KiB
JavaScript
79 lines
1.2 KiB
JavaScript
// 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
|
|
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);
|
|
}());
|