From fef3e97c34d4f9ef376d073aeaaaa84c7dc4fb22 Mon Sep 17 00:00:00 2001 From: Yui Date: Tue, 26 Apr 2016 20:09:26 -0700 Subject: [PATCH] [Transforms] Fix emit comment in wrong position when transforms export declaration to require statement (#8321) * Fix emit comment in wrong location when transform export declaration to require statement * Add tests and baselines * Add tests and baselines * Update baselines --- src/compiler/transformers/module/module.ts | 6 ++-- .../reference/commentsOnRequireStatement.js | 36 +++++++++++++++++++ .../commentsOnRequireStatement.symbols | 21 +++++++++++ .../commentsOnRequireStatement.types | 23 ++++++++++++ .../compiler/commentsOnRequireStatement.ts | 17 +++++++++ 5 files changed, 100 insertions(+), 3 deletions(-) create mode 100644 tests/baselines/reference/commentsOnRequireStatement.js create mode 100644 tests/baselines/reference/commentsOnRequireStatement.symbols create mode 100644 tests/baselines/reference/commentsOnRequireStatement.types create mode 100644 tests/cases/compiler/commentsOnRequireStatement.ts diff --git a/src/compiler/transformers/module/module.ts b/src/compiler/transformers/module/module.ts index c60cc69523a..3399babc9d5 100644 --- a/src/compiler/transformers/module/module.ts +++ b/src/compiler/transformers/module/module.ts @@ -423,10 +423,10 @@ namespace ts { createVariableDeclarationList([ createVariableDeclaration( generatedName, - createRequireCall(node), - /*location*/ node + createRequireCall(node) ) - ]) + ]), + /*location*/ node ) ); } diff --git a/tests/baselines/reference/commentsOnRequireStatement.js b/tests/baselines/reference/commentsOnRequireStatement.js new file mode 100644 index 00000000000..9cfd75c0211 --- /dev/null +++ b/tests/baselines/reference/commentsOnRequireStatement.js @@ -0,0 +1,36 @@ +//// [tests/cases/compiler/commentsOnRequireStatement.ts] //// + +//// [0.ts] + +export var subject = 10; + +//// [1.ts] +export var subject1 = 10; + +//// [2.ts] +/* blah0 */ +// blah +// blah +// blah +export {subject} from './0'; +/* blah1 */ +export {subject1} from './1'; + + +//// [0.js] +"use strict"; +exports.subject = 10; +//// [1.js] +"use strict"; +exports.subject1 = 10; +//// [2.js] +"use strict"; +/* blah0 */ +// blah +// blah +// blah +var _0_1 = require("./0"); +exports.subject = _0_1.subject; +/* blah1 */ +var _1_1 = require("./1"); +exports.subject1 = _1_1.subject1; diff --git a/tests/baselines/reference/commentsOnRequireStatement.symbols b/tests/baselines/reference/commentsOnRequireStatement.symbols new file mode 100644 index 00000000000..2e491b33234 --- /dev/null +++ b/tests/baselines/reference/commentsOnRequireStatement.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/0.ts === + +export var subject = 10; +>subject : Symbol(subject, Decl(0.ts, 1, 10)) + +=== tests/cases/compiler/1.ts === +export var subject1 = 10; +>subject1 : Symbol(subject1, Decl(1.ts, 0, 10)) + +=== tests/cases/compiler/2.ts === +/* blah0 */ +// blah +// blah +// blah +export {subject} from './0'; +>subject : Symbol(subject, Decl(2.ts, 4, 8)) + +/* blah1 */ +export {subject1} from './1'; +>subject1 : Symbol(subject1, Decl(2.ts, 6, 8)) + diff --git a/tests/baselines/reference/commentsOnRequireStatement.types b/tests/baselines/reference/commentsOnRequireStatement.types new file mode 100644 index 00000000000..2cc6154ed60 --- /dev/null +++ b/tests/baselines/reference/commentsOnRequireStatement.types @@ -0,0 +1,23 @@ +=== tests/cases/compiler/0.ts === + +export var subject = 10; +>subject : number +>10 : number + +=== tests/cases/compiler/1.ts === +export var subject1 = 10; +>subject1 : number +>10 : number + +=== tests/cases/compiler/2.ts === +/* blah0 */ +// blah +// blah +// blah +export {subject} from './0'; +>subject : number + +/* blah1 */ +export {subject1} from './1'; +>subject1 : number + diff --git a/tests/cases/compiler/commentsOnRequireStatement.ts b/tests/cases/compiler/commentsOnRequireStatement.ts new file mode 100644 index 00000000000..c6b319d6ddf --- /dev/null +++ b/tests/cases/compiler/commentsOnRequireStatement.ts @@ -0,0 +1,17 @@ +// @target: es5 +// @module: commonjs + +// @Filename: 0.ts +export var subject = 10; + +// @Filename: 1.ts +export var subject1 = 10; + +// @Filename: 2.ts +/* blah0 */ +// blah +// blah +// blah +export {subject} from './0'; +/* blah1 */ +export {subject1} from './1';