Index: test/cctest/test-parsing.cc |
diff --git a/test/cctest/test-parsing.cc b/test/cctest/test-parsing.cc |
index c73341c77f584732ccec16ac76d65d3df8a1118c..627d4cb4f0ebe3d4d90acb4ba590db1018cb568f 100644 |
--- a/test/cctest/test-parsing.cc |
+++ b/test/cctest/test-parsing.cc |
@@ -5852,22 +5852,22 @@ static void CheckModuleEntry(const i::ModuleDescriptor::ModuleEntry* entry, |
if (export_name == nullptr) { |
CHECK_NULL(entry->export_name); |
} else { |
- entry->export_name->IsOneByteEqualTo(export_name); |
+ CHECK(entry->export_name->IsOneByteEqualTo(export_name)); |
} |
if (local_name == nullptr) { |
CHECK_NULL(entry->local_name); |
} else { |
- entry->local_name->IsOneByteEqualTo(local_name); |
+ CHECK(entry->local_name->IsOneByteEqualTo(local_name)); |
} |
if (import_name == nullptr) { |
CHECK_NULL(entry->import_name); |
} else { |
- entry->import_name->IsOneByteEqualTo(import_name); |
+ CHECK(entry->import_name->IsOneByteEqualTo(import_name)); |
} |
if (module_request == nullptr) { |
CHECK_NULL(entry->module_request); |
} else { |
- entry->module_request->IsOneByteEqualTo(module_request); |
+ CHECK(entry->module_request->IsOneByteEqualTo(module_request)); |
} |
} |
@@ -5914,6 +5914,7 @@ TEST(ModuleParsingInternals) { |
CHECK(outer_scope->is_script_scope()); |
CHECK_NULL(outer_scope->outer_scope()); |
CHECK(module_scope->is_module_scope()); |
+ const i::ModuleDescriptor::ModuleEntry* entry; |
i::ZoneList<i::Declaration*>* declarations = module_scope->declarations(); |
CHECK_EQ(13, declarations->length()); |
@@ -5999,29 +6000,53 @@ TEST(ModuleParsingInternals) { |
i::ModuleDescriptor* descriptor = module_scope->module(); |
CHECK_NOT_NULL(descriptor); |
- CHECK_EQ(11, descriptor->exports().length()); |
- CheckModuleEntry( |
- descriptor->exports().at(0), "y", "x", nullptr, nullptr); |
- CheckModuleEntry( |
- descriptor->exports().at(1), "b", nullptr, "a", "m.js"); |
- CheckModuleEntry( |
- descriptor->exports().at(2), nullptr, nullptr, nullptr, "p.js"); |
- CheckModuleEntry( |
- descriptor->exports().at(3), "foo", "foo", nullptr, nullptr); |
- CheckModuleEntry( |
- descriptor->exports().at(4), "goo", "goo", nullptr, nullptr); |
- CheckModuleEntry( |
- descriptor->exports().at(5), "hoo", "hoo", nullptr, nullptr); |
- CheckModuleEntry( |
- descriptor->exports().at(6), "joo", "joo", nullptr, nullptr); |
- CheckModuleEntry( |
- descriptor->exports().at(7), "default", "*default*", nullptr, nullptr); |
- CheckModuleEntry( |
- descriptor->exports().at(8), "bb", nullptr, "aa", "m.js"); // !!! |
- CheckModuleEntry( |
- descriptor->exports().at(9), "x", "x", nullptr, nullptr); |
- CheckModuleEntry( |
- descriptor->exports().at(10), "foob", "foob", nullptr, nullptr); |
+ CHECK_EQ(3, descriptor->special_exports().length()); |
+ CheckModuleEntry(descriptor->special_exports().at(0), "b", nullptr, "a", |
+ "m.js"); |
+ CheckModuleEntry(descriptor->special_exports().at(1), nullptr, nullptr, |
+ nullptr, "p.js"); |
+ CheckModuleEntry(descriptor->special_exports().at(2), "bb", nullptr, "aa", |
+ "m.js"); // !!! |
+ |
+ CHECK_EQ(8, descriptor->regular_exports().size()); |
+ entry = descriptor->regular_exports() |
+ .find(declarations->at(3)->proxy()->raw_name()) |
+ ->second; |
+ CheckModuleEntry(entry, "foo", "foo", nullptr, nullptr); |
+ entry = descriptor->regular_exports() |
+ .find(declarations->at(4)->proxy()->raw_name()) |
+ ->second; |
+ CheckModuleEntry(entry, "goo", "goo", nullptr, nullptr); |
+ entry = descriptor->regular_exports() |
+ .find(declarations->at(5)->proxy()->raw_name()) |
+ ->second; |
+ CheckModuleEntry(entry, "hoo", "hoo", nullptr, nullptr); |
+ entry = descriptor->regular_exports() |
+ .find(declarations->at(6)->proxy()->raw_name()) |
+ ->second; |
+ CheckModuleEntry(entry, "joo", "joo", nullptr, nullptr); |
+ entry = descriptor->regular_exports() |
+ .find(declarations->at(7)->proxy()->raw_name()) |
+ ->second; |
+ CheckModuleEntry(entry, "default", "*default*", nullptr, nullptr); |
+ entry = descriptor->regular_exports() |
+ .find(declarations->at(12)->proxy()->raw_name()) |
+ ->second; |
+ CheckModuleEntry(entry, "foob", "foob", nullptr, nullptr); |
+ // TODO(neis): The next lines are terrible. Find a better way. |
+ auto name_x = declarations->at(0)->proxy()->raw_name(); |
+ CHECK_EQ(2, descriptor->regular_exports().count(name_x)); |
+ auto it = descriptor->regular_exports().equal_range(name_x).first; |
+ entry = it->second; |
+ if (entry->export_name->IsOneByteEqualTo("y")) { |
+ CheckModuleEntry(entry, "y", "x", nullptr, nullptr); |
+ entry = (++it)->second; |
+ CheckModuleEntry(entry, "x", "x", nullptr, nullptr); |
+ } else { |
+ CheckModuleEntry(entry, "x", "x", nullptr, nullptr); |
+ entry = (++it)->second; |
+ CheckModuleEntry(entry, "y", "x", nullptr, nullptr); |
+ } |
CHECK_EQ(3, descriptor->special_imports().length()); |
CheckModuleEntry( |
@@ -6032,7 +6057,6 @@ TEST(ModuleParsingInternals) { |
descriptor->special_imports().at(2), nullptr, "foob", nullptr, "bar.js"); |
CHECK_EQ(4, descriptor->regular_imports().size()); |
- const i::ModuleDescriptor::ModuleEntry* entry; |
entry = descriptor->regular_imports().find( |
declarations->at(1)->proxy()->raw_name())->second; |
CheckModuleEntry(entry, nullptr, "z", "q", "m.js"); |