/// <summary> /// https://tc39.es/ecma262/#sec-getmodulenamespace /// </summary> public static ObjectInstance GetModuleNamespace(ModuleRecord module) { var ns = module._namespace; if (ns is null) { var exportedNames = module.GetExportedNames(); var unambiguousNames = new List <string>(); for (var i = 0; i < exportedNames.Count; i++) { var name = exportedNames[i]; var resolution = module.ResolveExport(name); if (resolution is not null && resolution != ResolvedBinding.Ambiguous) { unambiguousNames.Add(name); } } ns = CreateModuleNamespace(module, unambiguousNames); } return(ns); }