From 03149f8bfcad3c661fff3b057f182d69248062d6 Mon Sep 17 00:00:00 2001 From: Kanchalai Tanglertsampan Date: Tue, 26 Apr 2016 16:46:41 -0700 Subject: [PATCH 1/4] Fix emit comment in wrong location when transform export declaration to require statement --- src/compiler/transformers/module/module.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/compiler/transformers/module/module.ts b/src/compiler/transformers/module/module.ts index 9b3385f3b6dea..b2e0a1e97ceaa 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 ) ); } From b6fdd36984e3c8374788d2780990284625768a86 Mon Sep 17 00:00:00 2001 From: Kanchalai Tanglertsampan Date: Tue, 26 Apr 2016 16:58:50 -0700 Subject: [PATCH 2/4] Add tests and baselines --- .../reference/commentsOnRequireStatement.js | 36 +++++++++++++++++++ .../commentsOnRequireStatement.symbols | 21 +++++++++++ .../commentsOnRequireStatement.types | 23 ++++++++++++ .../compiler/commentsOnRequireStatement.ts | 17 +++++++++ 4 files changed, 97 insertions(+) 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/tests/baselines/reference/commentsOnRequireStatement.js b/tests/baselines/reference/commentsOnRequireStatement.js new file mode 100644 index 0000000000000..7735ef72adeec --- /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] +/* tslint:disable:no-unused-variable */ +// Subject imported before Observable to bypass circular dependency issue since +// Subject extends Observable and Observable references Subject in it's +// definition +export {subject} from './0'; +/* tslint:enable:no-unused-variable */ +export {subject1} from './1'; + + +//// [0.js] +"use strict"; +exports.subject = 10; +//// [1.js] +"use strict"; +exports.subject1 = 10; +//// [2.js] +"use strict"; +/* tslint:disable:no-unused-variable */ +// Subject imported before Observable to bypass circular dependency issue since +// Subject extends Observable and Observable references Subject in it's +// definition +var _0_1 = require("./0"); +exports.subject = _0_1.subject; +/* tslint:enable:no-unused-variable */ +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 0000000000000..cf35d39b6b232 --- /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 === +/* tslint:disable:no-unused-variable */ +// Subject imported before Observable to bypass circular dependency issue since +// Subject extends Observable and Observable references Subject in it's +// definition +export {subject} from './0'; +>subject : Symbol(subject, Decl(2.ts, 4, 8)) + +/* tslint:enable:no-unused-variable */ +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 0000000000000..dfce5f9a0ef07 --- /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 === +/* tslint:disable:no-unused-variable */ +// Subject imported before Observable to bypass circular dependency issue since +// Subject extends Observable and Observable references Subject in it's +// definition +export {subject} from './0'; +>subject : number + +/* tslint:enable:no-unused-variable */ +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 0000000000000..ddcf3b24da1cb --- /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 +/* tslint:disable:no-unused-variable */ +// Subject imported before Observable to bypass circular dependency issue since +// Subject extends Observable and Observable references Subject in it's +// definition +export {subject} from './0'; +/* tslint:enable:no-unused-variable */ +export {subject1} from './1'; From 00954320ec0824ba59f21b47146d778c595fa457 Mon Sep 17 00:00:00 2001 From: Kanchalai Tanglertsampan Date: Tue, 26 Apr 2016 17:00:18 -0700 Subject: [PATCH 3/4] Add tests and baselines --- .../reference/commentsOnRequireStatement.js | 36 +++++++++++++++++++ .../commentsOnRequireStatement.symbols | 21 +++++++++++ .../commentsOnRequireStatement.types | 23 ++++++++++++ .../compiler/commentsOnRequireStatement.ts | 17 +++++++++ 4 files changed, 97 insertions(+) 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/tests/baselines/reference/commentsOnRequireStatement.js b/tests/baselines/reference/commentsOnRequireStatement.js new file mode 100644 index 0000000000000..7735ef72adeec --- /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] +/* tslint:disable:no-unused-variable */ +// Subject imported before Observable to bypass circular dependency issue since +// Subject extends Observable and Observable references Subject in it's +// definition +export {subject} from './0'; +/* tslint:enable:no-unused-variable */ +export {subject1} from './1'; + + +//// [0.js] +"use strict"; +exports.subject = 10; +//// [1.js] +"use strict"; +exports.subject1 = 10; +//// [2.js] +"use strict"; +/* tslint:disable:no-unused-variable */ +// Subject imported before Observable to bypass circular dependency issue since +// Subject extends Observable and Observable references Subject in it's +// definition +var _0_1 = require("./0"); +exports.subject = _0_1.subject; +/* tslint:enable:no-unused-variable */ +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 0000000000000..cf35d39b6b232 --- /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 === +/* tslint:disable:no-unused-variable */ +// Subject imported before Observable to bypass circular dependency issue since +// Subject extends Observable and Observable references Subject in it's +// definition +export {subject} from './0'; +>subject : Symbol(subject, Decl(2.ts, 4, 8)) + +/* tslint:enable:no-unused-variable */ +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 0000000000000..dfce5f9a0ef07 --- /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 === +/* tslint:disable:no-unused-variable */ +// Subject imported before Observable to bypass circular dependency issue since +// Subject extends Observable and Observable references Subject in it's +// definition +export {subject} from './0'; +>subject : number + +/* tslint:enable:no-unused-variable */ +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 0000000000000..c6b319d6ddf05 --- /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'; From 252f18f9d77788f003c69784b03e7669297cf002 Mon Sep 17 00:00:00 2001 From: Kanchalai Tanglertsampan Date: Tue, 26 Apr 2016 17:01:40 -0700 Subject: [PATCH 4/4] Update baselines --- .../reference/commentsOnRequireStatement.js | 20 +++++++++---------- .../commentsOnRequireStatement.symbols | 10 +++++----- .../commentsOnRequireStatement.types | 10 +++++----- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/tests/baselines/reference/commentsOnRequireStatement.js b/tests/baselines/reference/commentsOnRequireStatement.js index 7735ef72adeec..9cfd75c021111 100644 --- a/tests/baselines/reference/commentsOnRequireStatement.js +++ b/tests/baselines/reference/commentsOnRequireStatement.js @@ -8,12 +8,12 @@ export var subject = 10; export var subject1 = 10; //// [2.ts] -/* tslint:disable:no-unused-variable */ -// Subject imported before Observable to bypass circular dependency issue since -// Subject extends Observable and Observable references Subject in it's -// definition +/* blah0 */ +// blah +// blah +// blah export {subject} from './0'; -/* tslint:enable:no-unused-variable */ +/* blah1 */ export {subject1} from './1'; @@ -25,12 +25,12 @@ exports.subject = 10; exports.subject1 = 10; //// [2.js] "use strict"; -/* tslint:disable:no-unused-variable */ -// Subject imported before Observable to bypass circular dependency issue since -// Subject extends Observable and Observable references Subject in it's -// definition +/* blah0 */ +// blah +// blah +// blah var _0_1 = require("./0"); exports.subject = _0_1.subject; -/* tslint:enable:no-unused-variable */ +/* 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 index cf35d39b6b232..2e491b33234df 100644 --- a/tests/baselines/reference/commentsOnRequireStatement.symbols +++ b/tests/baselines/reference/commentsOnRequireStatement.symbols @@ -8,14 +8,14 @@ export var subject1 = 10; >subject1 : Symbol(subject1, Decl(1.ts, 0, 10)) === tests/cases/compiler/2.ts === -/* tslint:disable:no-unused-variable */ -// Subject imported before Observable to bypass circular dependency issue since -// Subject extends Observable and Observable references Subject in it's -// definition +/* blah0 */ +// blah +// blah +// blah export {subject} from './0'; >subject : Symbol(subject, Decl(2.ts, 4, 8)) -/* tslint:enable:no-unused-variable */ +/* 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 index dfce5f9a0ef07..2cc6154ed6065 100644 --- a/tests/baselines/reference/commentsOnRequireStatement.types +++ b/tests/baselines/reference/commentsOnRequireStatement.types @@ -10,14 +10,14 @@ export var subject1 = 10; >10 : number === tests/cases/compiler/2.ts === -/* tslint:disable:no-unused-variable */ -// Subject imported before Observable to bypass circular dependency issue since -// Subject extends Observable and Observable references Subject in it's -// definition +/* blah0 */ +// blah +// blah +// blah export {subject} from './0'; >subject : number -/* tslint:enable:no-unused-variable */ +/* blah1 */ export {subject1} from './1'; >subject1 : number