@@ -8758,7 +8758,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
8758
8758
});
8759
8759
let addingDeclare = !bundled;
8760
8760
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) ) {
8762
8762
symbolTable = createSymbolTable();
8763
8763
// Remove extraneous elements from root symbol table (they'll be mixed back in when the target of the `export=` is looked up)
8764
8764
symbolTable.set(InternalSymbolName.ExportEquals, exportEquals);
@@ -9291,8 +9291,18 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
9291
9291
}
9292
9292
9293
9293
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));
9296
9306
}
9297
9307
9298
9308
function isTypeOnlyNamespace(symbol: Symbol) {
0 commit comments