@@ -8758,7 +8758,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
87588758 });
87598759 let addingDeclare = !bundled;
87608760 const exportEquals = symbolTable.get(InternalSymbolName.ExportEquals);
8761- if (exportEquals && symbolTable.size > 1 && exportEquals.flags & SymbolFlags.Alias) {
8761+ if (exportEquals && symbolTable.size > 1 && exportEquals.flags & ( SymbolFlags.Alias | SymbolFlags.Module) ) {
87628762 symbolTable = createSymbolTable();
87638763 // Remove extraneous elements from root symbol table (they'll be mixed back in when the target of the `export=` is looked up)
87648764 symbolTable.set(InternalSymbolName.ExportEquals, exportEquals);
@@ -9291,8 +9291,18 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
92919291 }
92929292
92939293 function getNamespaceMembersForSerialization(symbol: Symbol) {
9294- const exports = getExportsOfSymbol(symbol);
9295- return !exports ? [] : filter(arrayFrom(exports.values()), m => isNamespaceMember(m) && isIdentifierText(m.escapedName as string, ScriptTarget.ESNext));
9294+ let exports = arrayFrom(getExportsOfSymbol(symbol).values());
9295+ const merged = getMergedSymbol(symbol);
9296+ if (merged !== symbol) {
9297+ const membersSet = new Set(exports);
9298+ for (const exported of getExportsOfSymbol(merged).values()) {
9299+ if (!(getSymbolFlags(resolveSymbol(exported)) & SymbolFlags.Value)) {
9300+ membersSet.add(exported);
9301+ }
9302+ }
9303+ exports = arrayFrom(membersSet);
9304+ }
9305+ return filter(exports, m => isNamespaceMember(m) && isIdentifierText(m.escapedName as string, ScriptTarget.ESNext));
92969306 }
92979307
92989308 function isTypeOnlyNamespace(symbol: Symbol) {
0 commit comments