Index: test/cctest/test-parsing.cc |
diff --git a/test/cctest/test-parsing.cc b/test/cctest/test-parsing.cc |
index 02fc6d47a40025bdfce413f78b47a50af8fca010..17385ed0cb813bebf83dd7e18e491f0160360087 100644 |
--- a/test/cctest/test-parsing.cc |
+++ b/test/cctest/test-parsing.cc |
@@ -5890,6 +5890,11 @@ TEST(ModuleParsingInternals) { |
"import n from 'n.js';" |
"export { a as b } from 'm.js';" |
"export * from 'p.js';" |
+ "export var foo;" |
+ "export function goo() {};" |
+ "export let hoo;" |
+ "export const joo = 42;" |
+ "export default (function koo() {});" |
adamk
2016/07/13 18:38:22
Can you also add an anonymous case? That'll be cov
neis
2016/07/14 10:28:24
Not sure what you mean. This module already has a
|
"import 'q.js'"; |
i::Handle<i::String> source = factory->NewStringFromAsciiChecked(kSource); |
i::Handle<i::Script> script = factory->NewScript(source); |
@@ -5907,34 +5912,42 @@ TEST(ModuleParsingInternals) { |
CHECK(module_scope->is_module_scope()); |
i::ModuleDescriptor* descriptor = module_scope->module(); |
CHECK_NOT_NULL(descriptor); |
- CHECK_EQ(1, descriptor->Length()); |
- const i::AstRawString* export_name = |
- info.ast_value_factory()->GetOneByteString("y"); |
- const i::AstRawString* local_name = |
- descriptor->LookupLocalExport(export_name, &zone); |
- CHECK_NOT_NULL(local_name); |
- CHECK(local_name->IsOneByteEqualTo("x")); |
i::ZoneList<i::Declaration*>* declarations = module_scope->declarations(); |
- CHECK_EQ(3, declarations->length()); |
+ CHECK_EQ(8, declarations->length()); |
CHECK(declarations->at(0)->proxy()->raw_name()->IsOneByteEqualTo("x")); |
- i::ImportDeclaration* import_decl = |
- declarations->at(1)->AsImportDeclaration(); |
- CHECK(import_decl->import_name()->IsOneByteEqualTo("q")); |
- CHECK(import_decl->proxy()->raw_name()->IsOneByteEqualTo("z")); |
- CHECK(import_decl->module_specifier()->IsOneByteEqualTo("m.js")); |
- import_decl = declarations->at(2)->AsImportDeclaration(); |
- CHECK(import_decl->import_name()->IsOneByteEqualTo("default")); |
- CHECK(import_decl->proxy()->raw_name()->IsOneByteEqualTo("n")); |
- CHECK(import_decl->module_specifier()->IsOneByteEqualTo("n.js")); |
+ CHECK(declarations->at(1)->proxy()->raw_name()->IsOneByteEqualTo("z")); |
+ CHECK(declarations->at(2)->proxy()->raw_name()->IsOneByteEqualTo("n")); |
+ CHECK(declarations->at(3)->proxy()->raw_name()->IsOneByteEqualTo("foo")); |
+ CHECK(declarations->at(4)->proxy()->raw_name()->IsOneByteEqualTo("goo")); |
+ CHECK(declarations->at(5)->proxy()->raw_name()->IsOneByteEqualTo("hoo")); |
+ CHECK(declarations->at(6)->proxy()->raw_name()->IsOneByteEqualTo("joo")); |
+ CHECK( |
+ declarations->at(7)->proxy()->raw_name()->IsOneByteEqualTo("*default*")); |
+ // CHECK_EQ(1, descriptor->Length()); |
adamk
2016/07/13 18:38:22
Is this stuff dead now?
neis
2016/07/14 10:28:24
Yes, removed. Will most likely re-add such tests l
|
+ // const i::AstRawString* export_name = |
+ // info.ast_value_factory()->GetOneByteString("y"); |
+ // const i::AstRawString* local_name = |
+ // descriptor->LookupExport(export_name, &zone); |
+ // CHECK_NOT_NULL(local_name); |
+ // CHECK(local_name->IsOneByteEqualTo("x")); |
+ // i::ImportDeclaration* import_decl = |
+ // declarations->at(1)->AsImportDeclaration(); |
+ // CHECK(import_decl->import_name()->IsOneByteEqualTo("q")); |
+ // CHECK(import_decl->proxy()->raw_name()->IsOneByteEqualTo("z")); |
+ // CHECK(import_decl->module_specifier()->IsOneByteEqualTo("m.js")); |
+ // import_decl = declarations->at(2)->AsImportDeclaration(); |
+ // CHECK(import_decl->import_name()->IsOneByteEqualTo("default")); |
+ // CHECK(import_decl->proxy()->raw_name()->IsOneByteEqualTo("n")); |
+ // CHECK(import_decl->module_specifier()->IsOneByteEqualTo("n.js")); |
// TODO(adamk): Add test for indirect exports once they're fully implemented. |
// TODO(adamk): Add test for star exports once they're fully implemented. |
- const i::ZoneList<const i::AstRawString*>& requested_modules = |
- descriptor->requested_modules(); |
- CHECK_EQ(4, requested_modules.length()); |
- CHECK(requested_modules[0]->IsOneByteEqualTo("m.js")); |
- CHECK(requested_modules[1]->IsOneByteEqualTo("n.js")); |
- CHECK(requested_modules[2]->IsOneByteEqualTo("p.js")); |
- CHECK(requested_modules[3]->IsOneByteEqualTo("q.js")); |
+ // const i::ZoneList<const i::AstRawString*>& requested_modules = |
+ // descriptor->requested_modules(); |
+ // CHECK_EQ(4, requested_modules.length()); |
+ // CHECK(requested_modules[0]->IsOneByteEqualTo("m.js")); |
+ // CHECK(requested_modules[1]->IsOneByteEqualTo("n.js")); |
+ // CHECK(requested_modules[2]->IsOneByteEqualTo("p.js")); |
+ // CHECK(requested_modules[3]->IsOneByteEqualTo("q.js")); |
} |