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)); } }