From a8db366f6b6afa0ac452c50e061882de555fdb95 Mon Sep 17 00:00:00 2001 From: Kanchalai Tanglertsampan Date: Thu, 2 Feb 2017 17:47:06 -0800 Subject: [PATCH] Check original variable statement node to check if it contains es6 export --- src/compiler/transformers/module/module.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/compiler/transformers/module/module.ts b/src/compiler/transformers/module/module.ts index 7318e03b352..68f49dba42c 100644 --- a/src/compiler/transformers/module/module.ts +++ b/src/compiler/transformers/module/module.ts @@ -831,6 +831,13 @@ namespace ts { let statements: Statement[]; let variables: VariableDeclaration[]; let expressions: Expression[]; + + const parseTreeNode = getParseTreeNode(node); + if (!shouldAppendUnderscoreUnderscoreEsModule) { + // class declaration get down-level transformed to be variable statement + shouldAppendUnderscoreUnderscoreEsModule = (parseTreeNode.kind === SyntaxKind.VariableStatement || parseTreeNode.kind === SyntaxKind.ClassDeclaration) && hasModifier(parseTreeNode, ModifierFlags.Export); + } + if (hasModifier(node, ModifierFlags.Export)) { let modifiers: NodeArray; @@ -845,7 +852,6 @@ namespace ts { variables = append(variables, variable); } else if (variable.initializer) { - shouldAppendUnderscoreUnderscoreEsModule = true; expressions = append(expressions, transformInitializedVariable(variable)); } }