@@ -27274,6 +27274,35 @@ TEST(ImportMeta) {
2727427274 CHECK(result->StrictEquals(Local<v8::Value>::Cast(v8::Utils::ToLocal(meta))));
2727527275}
2727627276
27277+ TEST(GetModuleNamespace) {
27278+ LocalContext context;
27279+ v8::Isolate* isolate = context->GetIsolate();
27280+ v8::HandleScope scope(isolate);
27281+
27282+ Local<String> url = v8_str("www.google.com");
27283+ Local<String> source_text = v8_str("export default 5; export const a = 10;");
27284+ v8::ScriptOrigin origin(url, Local<v8::Integer>(), Local<v8::Integer>(),
27285+ Local<v8::Boolean>(), Local<v8::Integer>(),
27286+ Local<v8::Value>(), Local<v8::Boolean>(),
27287+ Local<v8::Boolean>(), True(isolate));
27288+ v8::ScriptCompiler::Source source(source_text, origin);
27289+ Local<Module> module =
27290+ v8::ScriptCompiler::CompileModule(isolate, &source).ToLocalChecked();
27291+ module->InstantiateModule(context.local(), UnexpectedModuleResolveCallback)
27292+ .ToChecked();
27293+ module->Evaluate(context.local()).ToLocalChecked();
27294+
27295+ Local<Value> ns_val = module->GetModuleNamespace();
27296+ CHECK(ns_val->IsModuleNamespaceObject());
27297+ Local<Object> ns = ns_val.As<Object>();
27298+ CHECK(ns->Get(context.local(), v8_str("default"))
27299+ .ToLocalChecked()
27300+ ->StrictEquals(v8::Number::New(isolate, 5)));
27301+ CHECK(ns->Get(context.local(), v8_str("a"))
27302+ .ToLocalChecked()
27303+ ->StrictEquals(v8::Number::New(isolate, 10)));
27304+ }
27305+
2727727306TEST(GlobalTemplateWithDoubleProperty) {
2727827307 v8::Isolate* isolate = CcTest::isolate();
2727927308 v8::HandleScope handle_scope(isolate);
0 commit comments