Index: test/cctest/test-parsing.cc |
diff --git a/test/cctest/test-parsing.cc b/test/cctest/test-parsing.cc |
index 767393e04bc7843a24c5c572755c4a93ddab77da..4bfa0b8ec6f71d78e959cd72049770b14db12089 100644 |
--- a/test/cctest/test-parsing.cc |
+++ b/test/cctest/test-parsing.cc |
@@ -7837,3 +7837,45 @@ TEST(TypedModeBindingPatterns) { |
RunParserSyncTest(typed_context_data, error_data, kError, NULL, 0, |
always_flags, arraysize(always_flags)); |
} |
+ |
+TEST(TypedModeTypeAliases) { |
+ const char* untyped_context_data[][2] = {{"", ""}, {NULL, NULL}}; |
+ const char* typed_context_data[][2] = {{"'use types'; ", ""}, {NULL, NULL}}; |
+ |
+ const char* correct_data[] = { |
+ "type NumArray = number[]", |
+ "type Fun = (x: number) => number", |
+ "type Tree<A> = A | Tree<A>[]", |
+ NULL |
+ }; |
+ |
+ const char* error_data[] = { |
+ "type Err<> = number", |
+ "type Err", |
+ "type Err =", |
+ "type Err = ()", |
+ NULL |
+ }; |
+ |
+ const char* type_as_identifier_data[] = { |
+ "type", |
+ "type = number+1", |
+ "type(1, 2, 3)", |
+ "type\n42", |
+ NULL |
+ }; |
+ |
+ static const ParserFlag always_flags[] = {kAllowTypes}; |
+ RunParserSyncTest(untyped_context_data, correct_data, kError, NULL, 0, |
+ always_flags, arraysize(always_flags)); |
+ RunParserSyncTest(typed_context_data, correct_data, kSuccess, NULL, 0, |
+ always_flags, arraysize(always_flags)); |
+ RunParserSyncTest(untyped_context_data, error_data, kError, NULL, 0, |
+ always_flags, arraysize(always_flags)); |
+ RunParserSyncTest(typed_context_data, error_data, kError, NULL, 0, |
+ always_flags, arraysize(always_flags)); |
+ RunParserSyncTest(untyped_context_data, type_as_identifier_data, kSuccess, |
+ NULL, 0, always_flags, arraysize(always_flags)); |
+ RunParserSyncTest(typed_context_data, type_as_identifier_data, kSuccess, |
+ NULL, 0, always_flags, arraysize(always_flags)); |
+} |