From d1f9ffefce52eef7179b9f9354ecafff849c344e Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Tue, 19 Apr 2016 11:53:29 -0700 Subject: [PATCH] Assign the node to expression statement of variable so that it emits comments Fixes #8156 Tests fixed: - decoratorInstantiateModulesInFunctionBodies.ts - downlevelLetConst13.ts - es6ImportNamedImportDts.ts - es6ImportNamedImportWithExport.ts - exportedBlockScopedDeclarations.ts - exportNonInitializedVariablesAMD.ts - exportNonInitializedVariablesCommonJS.ts - exportNonInitializedVariablesSystem.ts - exportNonInitializedVariablesUMD.ts - privacyCannotNameVarTypeDeclFile.ts - privacyCheckAnonymousFunctionParameter.ts - privacyCheckAnonymousFunctionParameter2.ts - privacyImport.ts - privacyTopLevelInternalReferenceImportWithExport.ts - privacyVar.ts --- src/compiler/transformers/es6.ts | 2 +- src/compiler/transformers/module/module.ts | 3 ++- src/compiler/transformers/module/system.ts | 2 +- tests/baselines/reference/es6ImportNamedImportDts.js | 2 +- tests/baselines/reference/es6ImportNamedImportWithExport.js | 2 +- .../reference/privacyCheckAnonymousFunctionParameter2.js | 2 +- 6 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/compiler/transformers/es6.ts b/src/compiler/transformers/es6.ts index 8a001450c69..2b7b2648ac7 100644 --- a/src/compiler/transformers/es6.ts +++ b/src/compiler/transformers/es6.ts @@ -1418,7 +1418,7 @@ namespace ts { } } if (assignments) { - return createStatement(reduceLeft(assignments, (acc, v) => createBinary(v, SyntaxKind.CommaToken, acc))); + return createStatement(reduceLeft(assignments, (acc, v) => createBinary(v, SyntaxKind.CommaToken, acc)), node); } else { // none of declarations has initializer - the entire variable statement can be deleted diff --git a/src/compiler/transformers/module/module.ts b/src/compiler/transformers/module/module.ts index 83604946102..39aacceb2c8 100644 --- a/src/compiler/transformers/module/module.ts +++ b/src/compiler/transformers/module/module.ts @@ -586,7 +586,8 @@ namespace ts { return createStatement( inlineExpressions( map(variables, transformInitializedVariable) - ) + ), + node ); } return node; diff --git a/src/compiler/transformers/module/system.ts b/src/compiler/transformers/module/system.ts index eee50781f32..e68b10ffc51 100644 --- a/src/compiler/transformers/module/system.ts +++ b/src/compiler/transformers/module/system.ts @@ -607,7 +607,7 @@ namespace ts { } if (expressions.length) { - return createStatement(inlineExpressions(expressions)); + return createStatement(inlineExpressions(expressions), node); } return undefined; diff --git a/tests/baselines/reference/es6ImportNamedImportDts.js b/tests/baselines/reference/es6ImportNamedImportDts.js index 9070080df08..7fdf620164b 100644 --- a/tests/baselines/reference/es6ImportNamedImportDts.js +++ b/tests/baselines/reference/es6ImportNamedImportDts.js @@ -154,7 +154,7 @@ exports.xxxx9 = new server_7.x111(); var server_8 = require("./server"); exports.z111 = new server_8.z1(); var server_9 = require("./server"); -exports.z2 = new server_9.z2(); +exports.z2 = new server_9.z2(); // z2 shouldn't give redeclare error //// [server.d.ts] diff --git a/tests/baselines/reference/es6ImportNamedImportWithExport.js b/tests/baselines/reference/es6ImportNamedImportWithExport.js index 464be99817a..21ccb29a57b 100644 --- a/tests/baselines/reference/es6ImportNamedImportWithExport.js +++ b/tests/baselines/reference/es6ImportNamedImportWithExport.js @@ -72,7 +72,7 @@ exports.xxxx = server_7.x1; var server_8 = require("./server"); exports.z111 = server_8.z1; var server_9 = require("./server"); -exports.z2 = server_9.z2; +exports.z2 = server_9.z2; // z2 shouldn't give redeclare error //// [server.d.ts] diff --git a/tests/baselines/reference/privacyCheckAnonymousFunctionParameter2.js b/tests/baselines/reference/privacyCheckAnonymousFunctionParameter2.js index 1c4fa771199..9965f472d75 100644 --- a/tests/baselines/reference/privacyCheckAnonymousFunctionParameter2.js +++ b/tests/baselines/reference/privacyCheckAnonymousFunctionParameter2.js @@ -17,7 +17,7 @@ module Q { //// [privacyCheckAnonymousFunctionParameter2.js] define(["require", "exports"], function (require, exports) { "use strict"; - exports.x = 1; + exports.x = 1; // Makes this an external module var Q; (function (Q) { function foo(x) {