From a721a223da3b8d6610010ec15fb0cd8f451ed539 Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders Date: Wed, 13 Apr 2016 11:31:09 -0700 Subject: [PATCH] Set LocalName flag for exported local then skip it The module transformer now skips substitution of LocalName, just like ts transformer already does. --- src/compiler/transformers/module/module.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/compiler/transformers/module/module.ts b/src/compiler/transformers/module/module.ts index 1de4de782cb..31f68a4cb5e 100644 --- a/src/compiler/transformers/module/module.ts +++ b/src/compiler/transformers/module/module.ts @@ -552,7 +552,7 @@ namespace ts { } else { statements.push( - createExportStatement(node.name, node.name, /*location*/ node) + createExportStatement(node.name, setNodeEmitFlags(getSynthesizedClone(node.name), NodeEmitFlags.LocalName), /*location*/ node) ); } } @@ -712,6 +712,10 @@ namespace ts { } function substituteExpressionIdentifier(node: Identifier): Expression { + if (getNodeEmitFlags(node) & NodeEmitFlags.LocalName) { + return node; + } + const container = resolver.getReferencedExportContainer(node, (getNodeEmitFlags(node) & NodeEmitFlags.ExportName) !== 0); if (container) { if (container.kind === SyntaxKind.SourceFile) {