From bcdbfd76af0bc9cc0c7d9a9a2fd8acf3a2a4cb67 Mon Sep 17 00:00:00 2001 From: Yui Date: Tue, 19 Apr 2016 18:51:36 -0700 Subject: [PATCH] [Transforms] fix8155 : Hoist exported enum in system output (#8177) * Hoist exported enum in system output * Update baselines --- src/compiler/transformers/module/system.ts | 6 ++++++ tests/baselines/reference/systemModuleDeclarationMerging.js | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/compiler/transformers/module/system.ts b/src/compiler/transformers/module/system.ts index e68b10ffc51..3077eec4661 100644 --- a/src/compiler/transformers/module/system.ts +++ b/src/compiler/transformers/module/system.ts @@ -675,6 +675,12 @@ namespace ts { const originalNode = getOriginalNode(node); if ((originalNode.kind === SyntaxKind.ModuleDeclaration || originalNode.kind === SyntaxKind.EnumDeclaration) && hasModifier(originalNode, ModifierFlags.Export)) { const name = getDeclarationName(originalNode); + // We only need to hoistVariableDeclaration for EnumDeclaration + // as ModuleDeclaration is already hoisted when the transformer call visitVariableStatement + // which then call transformsVariable for each declaration in declarationList + if (originalNode.kind === SyntaxKind.EnumDeclaration) { + hoistVariableDeclaration(name); + } return [ node, createExportStatement(name, name) diff --git a/tests/baselines/reference/systemModuleDeclarationMerging.js b/tests/baselines/reference/systemModuleDeclarationMerging.js index aff4891da52..d5994bc9f22 100644 --- a/tests/baselines/reference/systemModuleDeclarationMerging.js +++ b/tests/baselines/reference/systemModuleDeclarationMerging.js @@ -14,7 +14,7 @@ System.register([], function (exports_1, context_1) { "use strict"; var __moduleName = context_1 && context_1.id; function F() { } - var F, C, C, E; + var F, C, C, E, E; exports_1("F", F); return { setters: [],