| Index: test/mjsunit/harmony/block-let-declaration.js
|
| diff --git a/test/mjsunit/harmony/block-scoping.js b/test/mjsunit/harmony/block-let-declaration.js
|
| similarity index 69%
|
| copy from test/mjsunit/harmony/block-scoping.js
|
| copy to test/mjsunit/harmony/block-let-declaration.js
|
| index 1181bd12329a101d4a8331f617de0c50b304bafc..08e82d4e9b9360cff8147003c5b9433bb4136156 100644
|
| --- a/test/mjsunit/harmony/block-scoping.js
|
| +++ b/test/mjsunit/harmony/block-let-declaration.js
|
| @@ -1,4 +1,4 @@
|
| -// Copyright 2008 the V8 project authors. All rights reserved.
|
| +// Copyright 2011 the V8 project authors. All rights reserved.
|
| // Redistribution and use in source and binary forms, with or without
|
| // modification, are permitted provided that the following conditions are
|
| // met:
|
| @@ -25,34 +25,29 @@
|
| // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
| -// Flags: --allow-natives-syntax --harmony-block-scoping
|
| -// Test functionality of block scopes.
|
| +// Flags: --harmony-block-scoping
|
|
|
| -// Hoisting of var declarations.
|
| -function f1() {
|
| - {
|
| - var x = 1;
|
| - var y;
|
| - }
|
| - assertEquals(1, x)
|
| - assertEquals(undefined, y)
|
| +// Test let declarations in various settings.
|
| +
|
| +// Global
|
| +let x;
|
| +let y = 2;
|
| +
|
| +{
|
| + let y;
|
| + let x = 3;
|
| }
|
| -f1();
|
|
|
| -// Dynamic lookup through block scopes.
|
| -function f2(one) {
|
| - var x = one + 1;
|
| - // TODO(keuchel): introduce let
|
| - // let y = one + 2;
|
| - if (one == 1) {
|
| - // Parameter
|
| - assertEquals(1, eval('one'));
|
| - // Function local var variable
|
| - assertEquals(2, eval('x'));
|
| - // Function local let variable
|
| - // TODO(keuchel): introduce let
|
| - // assertEquals(3, eval('y'));
|
| - }
|
| +if (true) {
|
| + let x;
|
| }
|
| -f2(1);
|
|
|
| +assertDoesNotThrow("if (true) var x;");
|
| +assertDoesNotThrow("with ({}) var x;");
|
| +assertDoesNotThrow("do var x; while (false)");
|
| +assertDoesNotThrow("while (false) var x;");
|
| +
|
| +assertThrows("if (true) let x;", SyntaxError);
|
| +assertThrows("with ({}) let x;", SyntaxError);
|
| +assertThrows("do let x; while (false)", SyntaxError);
|
| +assertThrows("while (false) let x;", SyntaxError);
|
|
|