// 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. // Flags: --harmony-sloppy --harmony-sloppy-let --harmony-destructuring { assertThrows(function() { return let; }, ReferenceError); let let; let = 5; assertEquals(5, let); { let let = 1; assertEquals(1, let); } assertEquals(5, let); } assertThrows(function() { return let; }, ReferenceError); (function() { var let, sum = 0; for (let in [1, 2, 3, 4]) sum += Number(let); assertEquals(6, sum); for (let let of [4, 5]) sum += let; assertEquals(15, sum); for (let let in [6]) sum += Number([6][let]); assertEquals(21, sum); for (let = 7; let < 8; let++) sum += let; assertEquals(28, sum); assertEquals(8, let); for (let let = 8; let < 9; let++) sum += let; assertEquals(36, sum); assertEquals(8, let); })() assertThrows(function() { return let; }, ReferenceError); { let obj = {}; let {let} = {let() { return obj; }}; let().x = 1; assertEquals(1, obj.x); } { let obj = {}; let [let] = [function() { return obj; }]; let().x = 1; assertEquals(1, obj.x); } (function() { function let() { return 1; } assertEquals(1, let()); })() assertThrows('for (let of []) {}', SyntaxError);