Skip to content

Commit b5bd1bf

Browse files
committed
Emit detached comments for constructor body
1 parent ebd00bd commit b5bd1bf

File tree

6 files changed

+72
-1
lines changed

6 files changed

+72
-1
lines changed

src/compiler/emitter.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1616,6 +1616,9 @@ module ts {
16161616
write(" {");
16171617
scopeEmitStart(node, "constructor");
16181618
increaseIndent();
1619+
if (ctor) {
1620+
emitDetachedComments((<Block>ctor.body).statements);
1621+
}
16191622
emitCaptureThisForNodeIfNecessary(node);
16201623
if (ctor) {
16211624
emitDefaultValueAssignments(ctor);
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
//// [detachedCommentAtStartOfConstructor1.ts]
2+
class TestFile {
3+
public message: string;
4+
public name;
5+
constructor(message: string) {
6+
/// <summary>Test summary</summary>
7+
/// <param name="message" type="String" />
8+
var getMessage = () => message + this.name;
9+
this.message = getMessage();
10+
}
11+
}
12+
13+
//// [detachedCommentAtStartOfConstructor1.js]
14+
var TestFile = (function () {
15+
function TestFile(message) {
16+
var _this = this;
17+
/// <summary>Test summary</summary>
18+
/// <param name="message" type="String" />
19+
var getMessage = function () { return message + _this.name; };
20+
this.message = getMessage();
21+
}
22+
return TestFile;
23+
})();
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
//// [detachedCommentAtStartOfConstructor2.ts]
2+
class TestFile {
3+
public message: string;
4+
public name: string;
5+
constructor(message: string) {
6+
/// <summary>Test summary</summary>
7+
/// <param name="message" type="String" />
8+
9+
var getMessage = () => message + this.name;
10+
this.message = getMessage();
11+
}
12+
}
13+
14+
//// [detachedCommentAtStartOfConstructor2.js]
15+
var TestFile = (function () {
16+
function TestFile(message) {
17+
/// <summary>Test summary</summary>
18+
/// <param name="message" type="String" />
19+
var _this = this;
20+
var getMessage = function () { return message + _this.name; };
21+
this.message = getMessage();
22+
}
23+
return TestFile;
24+
})();

tests/baselines/reference/lambdaArgCrash.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ var __extends = this.__extends || function (d, b) {
4343
};
4444
var Event = (function () {
4545
function Event() {
46-
this._listeners = [];
4746
// TODO: remove
4847
this._listeners = [];
48+
this._listeners = [];
4949
}
5050
Event.prototype.add = function (listener) {
5151
/// <summary>Registers a new listener for the event.</summary>
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
class TestFile {
2+
public message: string;
3+
public name;
4+
constructor(message: string) {
5+
/// <summary>Test summary</summary>
6+
/// <param name="message" type="String" />
7+
var getMessage = () => message + this.name;
8+
this.message = getMessage();
9+
}
10+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
class TestFile {
2+
public message: string;
3+
public name: string;
4+
constructor(message: string) {
5+
/// <summary>Test summary</summary>
6+
/// <param name="message" type="String" />
7+
8+
var getMessage = () => message + this.name;
9+
this.message = getMessage();
10+
}
11+
}

0 commit comments

Comments
 (0)