@@ -27239,6 +27239,35 @@ TEST(ImportMeta) {
2723927239 CHECK(result->StrictEquals(Local<v8::Value>::Cast(v8::Utils::ToLocal(meta))));
2724027240}
2724127241
27242+ TEST(GetModuleNamespace) {
27243+ LocalContext context;
27244+ v8::Isolate* isolate = context->GetIsolate();
27245+ v8::HandleScope scope(isolate);
27246+
27247+ Local<String> url = v8_str("www.google.com");
27248+ Local<String> source_text = v8_str("export default 5; export const a = 10;");
27249+ v8::ScriptOrigin origin(url, Local<v8::Integer>(), Local<v8::Integer>(),
27250+ Local<v8::Boolean>(), Local<v8::Integer>(),
27251+ Local<v8::Value>(), Local<v8::Boolean>(),
27252+ Local<v8::Boolean>(), True(isolate));
27253+ v8::ScriptCompiler::Source source(source_text, origin);
27254+ Local<Module> module =
27255+ v8::ScriptCompiler::CompileModule(isolate, &source).ToLocalChecked();
27256+ module->InstantiateModule(context.local(), UnexpectedModuleResolveCallback)
27257+ .ToChecked();
27258+ module->Evaluate(context.local()).ToLocalChecked();
27259+
27260+ Local<Value> ns_val = module->GetModuleNamespace();
27261+ CHECK(ns_val->IsModuleNamespaceObject());
27262+ Local<Object> ns = ns_val.As<Object>();
27263+ CHECK(ns->Get(context.local(), v8_str("default"))
27264+ .ToLocalChecked()
27265+ ->StrictEquals(v8::Number::New(isolate, 5)));
27266+ CHECK(ns->Get(context.local(), v8_str("a"))
27267+ .ToLocalChecked()
27268+ ->StrictEquals(v8::Number::New(isolate, 10)));
27269+ }
27270+
2724227271TEST(GlobalTemplateWithDoubleProperty) {
2724327272 v8::Isolate* isolate = CcTest::isolate();
2724427273 v8::HandleScope handle_scope(isolate);
0 commit comments