Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(31)

Unified Diff: test/mjsunit/harmony/block-let-declaration.js

Issue 7616009: Parse harmony let declarations. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);

Powered by Google App Engine
This is Rietveld 408576698