Merge pull request #2123 from Microsoft/fixExportStarMerging
Fix export * merging to not overwrite original members
This commit is contained in:
commit
a0eff6033e
1 changed files with 10 additions and 10 deletions
|
@ -727,24 +727,24 @@ module ts {
|
||||||
return symbol.flags & SymbolFlags.Module ? getExportsOfModule(symbol) : symbol.exports;
|
return symbol.flags & SymbolFlags.Module ? getExportsOfModule(symbol) : symbol.exports;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getExportsOfModule(symbol: Symbol): SymbolTable {
|
function getExportsOfModule(moduleSymbol: Symbol): SymbolTable {
|
||||||
var links = getSymbolLinks(symbol);
|
var links = getSymbolLinks(moduleSymbol);
|
||||||
return links.resolvedExports || (links.resolvedExports = getExportsForModule(symbol));
|
return links.resolvedExports || (links.resolvedExports = getExportsForModule(moduleSymbol));
|
||||||
}
|
}
|
||||||
|
|
||||||
function getExportsForModule(symbol: Symbol): SymbolTable {
|
function getExportsForModule(moduleSymbol: Symbol): SymbolTable {
|
||||||
var result: SymbolTable;
|
var result: SymbolTable;
|
||||||
var visitedSymbols: Symbol[] = [];
|
var visitedSymbols: Symbol[] = [];
|
||||||
visit(symbol);
|
visit(moduleSymbol);
|
||||||
return result;
|
return result || moduleSymbol.exports;
|
||||||
|
|
||||||
function visit(symbol: Symbol) {
|
function visit(symbol: Symbol) {
|
||||||
if (!contains(visitedSymbols, symbol)) {
|
if (!contains(visitedSymbols, symbol)) {
|
||||||
visitedSymbols.push(symbol);
|
visitedSymbols.push(symbol);
|
||||||
if (!result) {
|
if (symbol !== moduleSymbol) {
|
||||||
result = symbol.exports;
|
if (!result) {
|
||||||
}
|
result = cloneSymbolTable(moduleSymbol.exports);
|
||||||
else {
|
}
|
||||||
extendSymbolTable(result, symbol.exports);
|
extendSymbolTable(result, symbol.exports);
|
||||||
}
|
}
|
||||||
forEach(symbol.declarations, node => {
|
forEach(symbol.declarations, node => {
|
||||||
|
|
Loading…
Reference in a new issue