diff --git a/src/compiler/transformers/module/es6.ts b/src/compiler/transformers/module/es6.ts index 944e8cd6b5d..9355b476247 100644 --- a/src/compiler/transformers/module/es6.ts +++ b/src/compiler/transformers/module/es6.ts @@ -23,6 +23,8 @@ namespace ts { switch (node.kind) { case SyntaxKind.ImportDeclaration: return visitImportDeclaration(node); + case SyntaxKind.ImportEqualsDeclaration: + return visitImportEqualsDeclaration(node); case SyntaxKind.ImportClause: return visitImportClause(node); case SyntaxKind.NamedImports: @@ -30,11 +32,25 @@ namespace ts { return visitNamedBindings(node); case SyntaxKind.ImportSpecifier: return visitImportSpecifier(node); + case SyntaxKind.ExportAssignment: + return visitExportAssignment(node); } return node; } + function visitExportAssignment(node: ExportAssignment): ExportDeclaration { + if (node.isExportEquals) { + return undefined; // do not emit export equals for ES6 + } + const original = getOriginalNode(node); + return nodeIsSynthesized(original) || resolver.isValueAliasDeclaration(original) ? node: undefined; + } + + function visitImportEqualsDeclaration(node: ImportEqualsDeclaration): ImportEqualsDeclaration { + return !isExternalModuleImportEqualsDeclaration(node) || resolver.isReferencedAliasDeclaration(node) ? node : undefined; + } + function visitImportDeclaration(node: ImportDeclaration) { if (node.importClause) { const newImportClause = visitNode(node.importClause, visitor, isImportClause); diff --git a/tests/baselines/reference/es6ExportEquals.js b/tests/baselines/reference/es6ExportEquals.js index 5b9944a5a12..e4cf13758ff 100644 --- a/tests/baselines/reference/es6ExportEquals.js +++ b/tests/baselines/reference/es6ExportEquals.js @@ -7,7 +7,6 @@ export = f; //// [es6ExportEquals.js] export function f() { } -export = f; //// [es6ExportEquals.d.ts]