From c0a89aad1c7ea1185f9dae52b6b051102b763a35 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Fri, 8 Apr 2016 17:25:40 -0700 Subject: [PATCH] handle export default --- src/compiler/transformers/module/es6.ts | 16 ++++++++++++++++ tests/baselines/reference/es6ExportEquals.js | 1 - 2 files changed, 16 insertions(+), 1 deletion(-) 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]