Merge pull request #13916 from Microsoft/master-fix13602
[Master] Fix 13602 preserve comment following element in node list
This commit is contained in:
commit
f7b20624cf
|
@ -9,6 +9,7 @@ namespace ts {
|
|||
emitNodeWithComments(hint: EmitHint, node: Node, emitCallback: (hint: EmitHint, node: Node) => void): void;
|
||||
emitBodyWithDetachedComments(node: Node, detachedRange: TextRange, emitCallback: (node: Node) => void): void;
|
||||
emitTrailingCommentsOfPosition(pos: number): void;
|
||||
emitLeadingCommentsOfPosition(pos: number): void;
|
||||
}
|
||||
|
||||
export function createCommentWriter(printerOptions: PrinterOptions, emitPos: ((pos: number) => void) | undefined): CommentWriter {
|
||||
|
@ -32,6 +33,7 @@ namespace ts {
|
|||
emitNodeWithComments,
|
||||
emitBodyWithDetachedComments,
|
||||
emitTrailingCommentsOfPosition,
|
||||
emitLeadingCommentsOfPosition,
|
||||
};
|
||||
|
||||
function emitNodeWithComments(hint: EmitHint, node: Node, emitCallback: (hint: EmitHint, node: Node) => void) {
|
||||
|
@ -210,6 +212,14 @@ namespace ts {
|
|||
}
|
||||
}
|
||||
|
||||
function emitLeadingCommentsOfPosition(pos: number) {
|
||||
if (disabled || pos === -1) {
|
||||
return;
|
||||
}
|
||||
|
||||
emitLeadingComments(pos, /*isEmittedNode*/ true);
|
||||
}
|
||||
|
||||
function emitTrailingComments(pos: number) {
|
||||
forEachTrailingCommentToEmit(pos, emitTrailingComment);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/// <reference path="checker.ts" />
|
||||
/// <reference path="checker.ts" />
|
||||
/// <reference path="transformer.ts" />
|
||||
/// <reference path="declarationEmitter.ts" />
|
||||
/// <reference path="sourcemap.ts" />
|
||||
|
@ -211,6 +211,7 @@ namespace ts {
|
|||
emitNodeWithComments,
|
||||
emitBodyWithDetachedComments,
|
||||
emitTrailingCommentsOfPosition,
|
||||
emitLeadingCommentsOfPosition,
|
||||
} = comments;
|
||||
|
||||
let currentSourceFile: SourceFile;
|
||||
|
@ -1346,6 +1347,10 @@ namespace ts {
|
|||
else {
|
||||
writeToken(SyntaxKind.OpenBraceToken, node.pos, /*contextNode*/ node);
|
||||
emitBlockStatements(node);
|
||||
// We have to call emitLeadingComments explicitly here because otherwise leading comments of the close brace token will not be emitted
|
||||
increaseIndent();
|
||||
emitLeadingCommentsOfPosition(node.statements.end);
|
||||
decreaseIndent();
|
||||
writeToken(SyntaxKind.CloseBraceToken, node.statements.end, /*contextNode*/ node);
|
||||
}
|
||||
}
|
||||
|
@ -2228,6 +2233,15 @@ namespace ts {
|
|||
|
||||
// Write the delimiter if this is not the first node.
|
||||
if (previousSibling) {
|
||||
// i.e
|
||||
// function commentedParameters(
|
||||
// /* Parameter a */
|
||||
// a
|
||||
// /* End of parameter a */ -> this comment isn't considered to be trailing comment of parameter "a" due to newline
|
||||
// ,
|
||||
if (delimiter && previousSibling.end !== parentNode.end) {
|
||||
emitLeadingCommentsOfPosition(previousSibling.end);
|
||||
}
|
||||
write(delimiter);
|
||||
|
||||
// Write either a line terminator or whitespace to separate the elements.
|
||||
|
@ -2274,6 +2288,17 @@ namespace ts {
|
|||
write(",");
|
||||
}
|
||||
|
||||
|
||||
// Emit any trailing comment of the last element in the list
|
||||
// i.e
|
||||
// var array = [...
|
||||
// 2
|
||||
// /* end of element 2 */
|
||||
// ];
|
||||
if (previousSibling && delimiter && previousSibling.end !== parentNode.end) {
|
||||
emitLeadingCommentsOfPosition(previousSibling.end);
|
||||
}
|
||||
|
||||
// Decrease the indent, if requested.
|
||||
if (format & ListFormat.Indented) {
|
||||
decreaseIndent();
|
||||
|
|
|
@ -26,5 +26,6 @@ define(["require", "exports"], function (require, exports) {
|
|||
define(["require", "exports", "./foo_0"], function (require, exports, foo) {
|
||||
"use strict";
|
||||
if (foo.E1.A === 0) {
|
||||
// Should cause runtime import - interesting optimization possibility, as gets inlined to 0.
|
||||
}
|
||||
});
|
||||
|
|
|
@ -17,6 +17,7 @@ var C = (function () {
|
|||
}
|
||||
C.prototype.P = function (ii, j, k) {
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
// WScript.Echo("param: " + arguments[i]);
|
||||
}
|
||||
};
|
||||
return C;
|
||||
|
|
|
@ -83,7 +83,9 @@ f(// comment 1
|
|||
// comment 2
|
||||
function () {
|
||||
// comment 4
|
||||
});
|
||||
}
|
||||
// comment 5
|
||||
);
|
||||
// body is not a block
|
||||
f(function (_) { return 1 +
|
||||
2; });
|
||||
|
|
24
tests/baselines/reference/commentLeadingCloseBrace.js
Normal file
24
tests/baselines/reference/commentLeadingCloseBrace.js
Normal file
|
@ -0,0 +1,24 @@
|
|||
//// [commentLeadingCloseBrace.ts]
|
||||
declare function commentedParameters(...args): any;
|
||||
|
||||
function ifelse() {
|
||||
if (commentedParameters(1, 2)) {
|
||||
/*comment1*/
|
||||
commentedParameters(3, 4);
|
||||
/*comment2*/
|
||||
} else {
|
||||
commentedParameters(5, 6);
|
||||
}
|
||||
}
|
||||
|
||||
//// [commentLeadingCloseBrace.js]
|
||||
function ifelse() {
|
||||
if (commentedParameters(1, 2)) {
|
||||
/*comment1*/
|
||||
commentedParameters(3, 4);
|
||||
/*comment2*/
|
||||
}
|
||||
else {
|
||||
commentedParameters(5, 6);
|
||||
}
|
||||
}
|
21
tests/baselines/reference/commentLeadingCloseBrace.symbols
Normal file
21
tests/baselines/reference/commentLeadingCloseBrace.symbols
Normal file
|
@ -0,0 +1,21 @@
|
|||
=== tests/cases/compiler/commentLeadingCloseBrace.ts ===
|
||||
declare function commentedParameters(...args): any;
|
||||
>commentedParameters : Symbol(commentedParameters, Decl(commentLeadingCloseBrace.ts, 0, 0))
|
||||
>args : Symbol(args, Decl(commentLeadingCloseBrace.ts, 0, 37))
|
||||
|
||||
function ifelse() {
|
||||
>ifelse : Symbol(ifelse, Decl(commentLeadingCloseBrace.ts, 0, 51))
|
||||
|
||||
if (commentedParameters(1, 2)) {
|
||||
>commentedParameters : Symbol(commentedParameters, Decl(commentLeadingCloseBrace.ts, 0, 0))
|
||||
|
||||
/*comment1*/
|
||||
commentedParameters(3, 4);
|
||||
>commentedParameters : Symbol(commentedParameters, Decl(commentLeadingCloseBrace.ts, 0, 0))
|
||||
|
||||
/*comment2*/
|
||||
} else {
|
||||
commentedParameters(5, 6);
|
||||
>commentedParameters : Symbol(commentedParameters, Decl(commentLeadingCloseBrace.ts, 0, 0))
|
||||
}
|
||||
}
|
30
tests/baselines/reference/commentLeadingCloseBrace.types
Normal file
30
tests/baselines/reference/commentLeadingCloseBrace.types
Normal file
|
@ -0,0 +1,30 @@
|
|||
=== tests/cases/compiler/commentLeadingCloseBrace.ts ===
|
||||
declare function commentedParameters(...args): any;
|
||||
>commentedParameters : (...args: any[]) => any
|
||||
>args : any[]
|
||||
|
||||
function ifelse() {
|
||||
>ifelse : () => void
|
||||
|
||||
if (commentedParameters(1, 2)) {
|
||||
>commentedParameters(1, 2) : any
|
||||
>commentedParameters : (...args: any[]) => any
|
||||
>1 : 1
|
||||
>2 : 2
|
||||
|
||||
/*comment1*/
|
||||
commentedParameters(3, 4);
|
||||
>commentedParameters(3, 4) : any
|
||||
>commentedParameters : (...args: any[]) => any
|
||||
>3 : 3
|
||||
>4 : 4
|
||||
|
||||
/*comment2*/
|
||||
} else {
|
||||
commentedParameters(5, 6);
|
||||
>commentedParameters(5, 6) : any
|
||||
>commentedParameters : (...args: any[]) => any
|
||||
>5 : 5
|
||||
>6 : 6
|
||||
}
|
||||
}
|
17
tests/baselines/reference/commentOnArrayElement1.js
Normal file
17
tests/baselines/reference/commentOnArrayElement1.js
Normal file
|
@ -0,0 +1,17 @@
|
|||
//// [commentOnArrayElement1.ts]
|
||||
var array = [
|
||||
/* element 1*/
|
||||
1
|
||||
/* end of element 1 */,
|
||||
2
|
||||
/* end of element 2 */
|
||||
];
|
||||
|
||||
//// [commentOnArrayElement1.js]
|
||||
var array = [
|
||||
/* element 1*/
|
||||
1
|
||||
/* end of element 1 */ ,
|
||||
2
|
||||
/* end of element 2 */
|
||||
];
|
10
tests/baselines/reference/commentOnArrayElement1.symbols
Normal file
10
tests/baselines/reference/commentOnArrayElement1.symbols
Normal file
|
@ -0,0 +1,10 @@
|
|||
=== tests/cases/compiler/commentOnArrayElement1.ts ===
|
||||
var array = [
|
||||
>array : Symbol(array, Decl(commentOnArrayElement1.ts, 0, 3))
|
||||
|
||||
/* element 1*/
|
||||
1
|
||||
/* end of element 1 */,
|
||||
2
|
||||
/* end of element 2 */
|
||||
];
|
15
tests/baselines/reference/commentOnArrayElement1.types
Normal file
15
tests/baselines/reference/commentOnArrayElement1.types
Normal file
|
@ -0,0 +1,15 @@
|
|||
=== tests/cases/compiler/commentOnArrayElement1.ts ===
|
||||
var array = [
|
||||
>array : number[]
|
||||
>[ /* element 1*/ 1 /* end of element 1 */, 2 /* end of element 2 */] : number[]
|
||||
|
||||
/* element 1*/
|
||||
1
|
||||
>1 : 1
|
||||
|
||||
/* end of element 1 */,
|
||||
2
|
||||
>2 : 2
|
||||
|
||||
/* end of element 2 */
|
||||
];
|
15
tests/baselines/reference/commentOnArrayElement2.js
Normal file
15
tests/baselines/reference/commentOnArrayElement2.js
Normal file
|
@ -0,0 +1,15 @@
|
|||
//// [commentOnArrayElement2.ts]
|
||||
var array = [
|
||||
/* element 1*/
|
||||
1 /* end of element 1 */,
|
||||
2
|
||||
/* end of element 2 */
|
||||
];
|
||||
|
||||
//// [commentOnArrayElement2.js]
|
||||
var array = [
|
||||
/* element 1*/
|
||||
1 /* end of element 1 */,
|
||||
2
|
||||
/* end of element 2 */
|
||||
];
|
9
tests/baselines/reference/commentOnArrayElement2.symbols
Normal file
9
tests/baselines/reference/commentOnArrayElement2.symbols
Normal file
|
@ -0,0 +1,9 @@
|
|||
=== tests/cases/compiler/commentOnArrayElement2.ts ===
|
||||
var array = [
|
||||
>array : Symbol(array, Decl(commentOnArrayElement2.ts, 0, 3))
|
||||
|
||||
/* element 1*/
|
||||
1 /* end of element 1 */,
|
||||
2
|
||||
/* end of element 2 */
|
||||
];
|
14
tests/baselines/reference/commentOnArrayElement2.types
Normal file
14
tests/baselines/reference/commentOnArrayElement2.types
Normal file
|
@ -0,0 +1,14 @@
|
|||
=== tests/cases/compiler/commentOnArrayElement2.ts ===
|
||||
var array = [
|
||||
>array : number[]
|
||||
>[ /* element 1*/ 1 /* end of element 1 */, 2 /* end of element 2 */] : number[]
|
||||
|
||||
/* element 1*/
|
||||
1 /* end of element 1 */,
|
||||
>1 : 1
|
||||
|
||||
2
|
||||
>2 : 2
|
||||
|
||||
/* end of element 2 */
|
||||
];
|
19
tests/baselines/reference/commentOnArrayElement3.js
Normal file
19
tests/baselines/reference/commentOnArrayElement3.js
Normal file
|
@ -0,0 +1,19 @@
|
|||
//// [commentOnArrayElement3.ts]
|
||||
var array = [
|
||||
/* element 1*/
|
||||
1
|
||||
/* end of element 1 */,
|
||||
2
|
||||
/* end of element 2 */, ,
|
||||
/* extra comment */
|
||||
];
|
||||
|
||||
//// [commentOnArrayElement3.js]
|
||||
var array = [
|
||||
/* element 1*/
|
||||
1
|
||||
/* end of element 1 */ ,
|
||||
2
|
||||
/* end of element 2 */ ,
|
||||
,
|
||||
];
|
11
tests/baselines/reference/commentOnArrayElement3.symbols
Normal file
11
tests/baselines/reference/commentOnArrayElement3.symbols
Normal file
|
@ -0,0 +1,11 @@
|
|||
=== tests/cases/compiler/commentOnArrayElement3.ts ===
|
||||
var array = [
|
||||
>array : Symbol(array, Decl(commentOnArrayElement3.ts, 0, 3))
|
||||
|
||||
/* element 1*/
|
||||
1
|
||||
/* end of element 1 */,
|
||||
2
|
||||
/* end of element 2 */, ,
|
||||
/* extra comment */
|
||||
];
|
18
tests/baselines/reference/commentOnArrayElement3.types
Normal file
18
tests/baselines/reference/commentOnArrayElement3.types
Normal file
|
@ -0,0 +1,18 @@
|
|||
=== tests/cases/compiler/commentOnArrayElement3.ts ===
|
||||
var array = [
|
||||
>array : number[]
|
||||
>[ /* element 1*/ 1 /* end of element 1 */, 2 /* end of element 2 */, , /* extra comment */] : number[]
|
||||
|
||||
/* element 1*/
|
||||
1
|
||||
>1 : 1
|
||||
|
||||
/* end of element 1 */,
|
||||
2
|
||||
>2 : 2
|
||||
|
||||
/* end of element 2 */, ,
|
||||
> : undefined
|
||||
|
||||
/* extra comment */
|
||||
];
|
20
tests/baselines/reference/commentOnParameter1.js
Normal file
20
tests/baselines/reference/commentOnParameter1.js
Normal file
|
@ -0,0 +1,20 @@
|
|||
//// [commentOnParameter1.ts]
|
||||
function commentedParameters(
|
||||
/* Parameter a */
|
||||
a
|
||||
/* End of parameter a */
|
||||
/* Parameter b */
|
||||
,
|
||||
b
|
||||
/* End of parameter b */
|
||||
){}
|
||||
|
||||
//// [commentOnParameter1.js]
|
||||
function commentedParameters(
|
||||
/* Parameter a */
|
||||
a
|
||||
/* End of parameter a */
|
||||
/* Parameter b */
|
||||
, b
|
||||
/* End of parameter b */
|
||||
) { }
|
16
tests/baselines/reference/commentOnParameter1.symbols
Normal file
16
tests/baselines/reference/commentOnParameter1.symbols
Normal file
|
@ -0,0 +1,16 @@
|
|||
=== tests/cases/compiler/commentOnParameter1.ts ===
|
||||
function commentedParameters(
|
||||
>commentedParameters : Symbol(commentedParameters, Decl(commentOnParameter1.ts, 0, 0))
|
||||
|
||||
/* Parameter a */
|
||||
a
|
||||
>a : Symbol(a, Decl(commentOnParameter1.ts, 0, 29))
|
||||
|
||||
/* End of parameter a */
|
||||
/* Parameter b */
|
||||
,
|
||||
b
|
||||
>b : Symbol(b, Decl(commentOnParameter1.ts, 5, 1))
|
||||
|
||||
/* End of parameter b */
|
||||
){}
|
16
tests/baselines/reference/commentOnParameter1.types
Normal file
16
tests/baselines/reference/commentOnParameter1.types
Normal file
|
@ -0,0 +1,16 @@
|
|||
=== tests/cases/compiler/commentOnParameter1.ts ===
|
||||
function commentedParameters(
|
||||
>commentedParameters : (a: any, b: any) => void
|
||||
|
||||
/* Parameter a */
|
||||
a
|
||||
>a : any
|
||||
|
||||
/* End of parameter a */
|
||||
/* Parameter b */
|
||||
,
|
||||
b
|
||||
>b : any
|
||||
|
||||
/* End of parameter b */
|
||||
){}
|
18
tests/baselines/reference/commentOnParameter2.js
Normal file
18
tests/baselines/reference/commentOnParameter2.js
Normal file
|
@ -0,0 +1,18 @@
|
|||
//// [commentOnParameter2.ts]
|
||||
function commentedParameters(
|
||||
/* Parameter a */
|
||||
a /* End of parameter a */
|
||||
/* Parameter b */
|
||||
,
|
||||
b
|
||||
/* End of parameter b */
|
||||
){}
|
||||
|
||||
//// [commentOnParameter2.js]
|
||||
function commentedParameters(
|
||||
/* Parameter a */
|
||||
a /* End of parameter a */
|
||||
/* Parameter b */
|
||||
, b
|
||||
/* End of parameter b */
|
||||
) { }
|
15
tests/baselines/reference/commentOnParameter2.symbols
Normal file
15
tests/baselines/reference/commentOnParameter2.symbols
Normal file
|
@ -0,0 +1,15 @@
|
|||
=== tests/cases/compiler/commentOnParameter2.ts ===
|
||||
function commentedParameters(
|
||||
>commentedParameters : Symbol(commentedParameters, Decl(commentOnParameter2.ts, 0, 0))
|
||||
|
||||
/* Parameter a */
|
||||
a /* End of parameter a */
|
||||
>a : Symbol(a, Decl(commentOnParameter2.ts, 0, 29))
|
||||
|
||||
/* Parameter b */
|
||||
,
|
||||
b
|
||||
>b : Symbol(b, Decl(commentOnParameter2.ts, 4, 1))
|
||||
|
||||
/* End of parameter b */
|
||||
){}
|
15
tests/baselines/reference/commentOnParameter2.types
Normal file
15
tests/baselines/reference/commentOnParameter2.types
Normal file
|
@ -0,0 +1,15 @@
|
|||
=== tests/cases/compiler/commentOnParameter2.ts ===
|
||||
function commentedParameters(
|
||||
>commentedParameters : (a: any, b: any) => void
|
||||
|
||||
/* Parameter a */
|
||||
a /* End of parameter a */
|
||||
>a : any
|
||||
|
||||
/* Parameter b */
|
||||
,
|
||||
b
|
||||
>b : any
|
||||
|
||||
/* End of parameter b */
|
||||
){}
|
9
tests/baselines/reference/commentOnParameter3.js
Normal file
9
tests/baselines/reference/commentOnParameter3.js
Normal file
|
@ -0,0 +1,9 @@
|
|||
//// [commentOnParameter3.ts]
|
||||
function commentedParameters(
|
||||
a /* parameter a */,
|
||||
b /* parameter b */,
|
||||
/* extra comment */
|
||||
) { }
|
||||
|
||||
//// [commentOnParameter3.js]
|
||||
function commentedParameters(a /* parameter a */, b /* parameter b */) { }
|
12
tests/baselines/reference/commentOnParameter3.symbols
Normal file
12
tests/baselines/reference/commentOnParameter3.symbols
Normal file
|
@ -0,0 +1,12 @@
|
|||
=== tests/cases/compiler/commentOnParameter3.ts ===
|
||||
function commentedParameters(
|
||||
>commentedParameters : Symbol(commentedParameters, Decl(commentOnParameter3.ts, 0, 0))
|
||||
|
||||
a /* parameter a */,
|
||||
>a : Symbol(a, Decl(commentOnParameter3.ts, 0, 29))
|
||||
|
||||
b /* parameter b */,
|
||||
>b : Symbol(b, Decl(commentOnParameter3.ts, 1, 20))
|
||||
|
||||
/* extra comment */
|
||||
) { }
|
12
tests/baselines/reference/commentOnParameter3.types
Normal file
12
tests/baselines/reference/commentOnParameter3.types
Normal file
|
@ -0,0 +1,12 @@
|
|||
=== tests/cases/compiler/commentOnParameter3.ts ===
|
||||
function commentedParameters(
|
||||
>commentedParameters : (a: any, b: any) => void
|
||||
|
||||
a /* parameter a */,
|
||||
>a : any
|
||||
|
||||
b /* parameter b */,
|
||||
>b : any
|
||||
|
||||
/* extra comment */
|
||||
) { }
|
|
@ -27,4 +27,5 @@ exports.C1 = C1;
|
|||
"use strict";
|
||||
var foo = require("./foo_0");
|
||||
if (foo.C1.s1) {
|
||||
// Should cause runtime import
|
||||
}
|
||||
|
|
|
@ -391,6 +391,7 @@ var TestRunner = (function () {
|
|||
}
|
||||
}
|
||||
if (testResult === false) {
|
||||
//console.log(e.message);
|
||||
}
|
||||
}
|
||||
if ((testcase.errorMessageRegEx !== undefined) && !exception) {
|
||||
|
|
|
@ -9,5 +9,6 @@ function foo(a) {
|
|||
//// [out.js]
|
||||
function foo(a) {
|
||||
for (var a_1 = 0; a_1 < 10; a_1++) {
|
||||
// do something
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,6 +27,7 @@ function tryCatch() {
|
|||
//// [narrowExceptionVariableInCatchClause.js]
|
||||
function tryCatch() {
|
||||
try {
|
||||
// do stuff...
|
||||
}
|
||||
catch (err) {
|
||||
if (isFooError(err)) {
|
||||
|
|
|
@ -8,7 +8,9 @@ try {
|
|||
|
||||
//// [noCatchBlock.js]
|
||||
try {
|
||||
// ...
|
||||
}
|
||||
finally {
|
||||
// N.B. No 'catch' block
|
||||
}
|
||||
//# sourceMappingURL=noCatchBlock.js.map
|
|
@ -1,2 +1,2 @@
|
|||
//// [noCatchBlock.js.map]
|
||||
{"version":3,"file":"noCatchBlock.js","sourceRoot":"","sources":["noCatchBlock.ts"],"names":[],"mappings":"AACA,IAAI,CAAC;AAEL,CAAC;QAAS,CAAC;AAEX,CAAC"}
|
||||
{"version":3,"file":"noCatchBlock.js","sourceRoot":"","sources":["noCatchBlock.ts"],"names":[],"mappings":"AACA,IAAI,CAAC;IACJ,MAAM;AACP,CAAC;QAAS,CAAC;IACV,wBAAwB;AACzB,CAAC"}
|
|
@ -12,6 +12,7 @@ sourceFile:noCatchBlock.ts
|
|||
1 >
|
||||
2 >^^^^
|
||||
3 > ^
|
||||
4 > ^^^^^^->
|
||||
1 >
|
||||
>
|
||||
2 >try
|
||||
|
@ -20,34 +21,51 @@ sourceFile:noCatchBlock.ts
|
|||
2 >Emitted(1, 5) Source(2, 5) + SourceIndex(0)
|
||||
3 >Emitted(1, 6) Source(2, 6) + SourceIndex(0)
|
||||
---
|
||||
>>> // ...
|
||||
1->^^^^
|
||||
2 > ^^^^^^
|
||||
1->
|
||||
>
|
||||
2 > // ...
|
||||
1->Emitted(2, 5) Source(3, 2) + SourceIndex(0)
|
||||
2 >Emitted(2, 11) Source(3, 8) + SourceIndex(0)
|
||||
---
|
||||
>>>}
|
||||
1 >
|
||||
2 >^
|
||||
3 > ^^^^^^^^^->
|
||||
1 >
|
||||
> // ...
|
||||
>
|
||||
2 >}
|
||||
1 >Emitted(2, 1) Source(4, 1) + SourceIndex(0)
|
||||
2 >Emitted(2, 2) Source(4, 2) + SourceIndex(0)
|
||||
1 >Emitted(3, 1) Source(4, 1) + SourceIndex(0)
|
||||
2 >Emitted(3, 2) Source(4, 2) + SourceIndex(0)
|
||||
---
|
||||
>>>finally {
|
||||
1->^^^^^^^^
|
||||
2 > ^
|
||||
3 > ^^^^^^^^^^^^^^^^^^^^->
|
||||
1-> finally
|
||||
2 > {
|
||||
1->Emitted(3, 9) Source(4, 11) + SourceIndex(0)
|
||||
2 >Emitted(3, 10) Source(4, 12) + SourceIndex(0)
|
||||
1->Emitted(4, 9) Source(4, 11) + SourceIndex(0)
|
||||
2 >Emitted(4, 10) Source(4, 12) + SourceIndex(0)
|
||||
---
|
||||
>>> // N.B. No 'catch' block
|
||||
1->^^^^
|
||||
2 > ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
1->
|
||||
>
|
||||
2 > // N.B. No 'catch' block
|
||||
1->Emitted(5, 5) Source(5, 2) + SourceIndex(0)
|
||||
2 >Emitted(5, 29) Source(5, 26) + SourceIndex(0)
|
||||
---
|
||||
>>>}
|
||||
1 >
|
||||
2 >^
|
||||
3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
|
||||
1 >
|
||||
> // N.B. No 'catch' block
|
||||
>
|
||||
2 >}
|
||||
1 >Emitted(4, 1) Source(6, 1) + SourceIndex(0)
|
||||
2 >Emitted(4, 2) Source(6, 2) + SourceIndex(0)
|
||||
1 >Emitted(6, 1) Source(6, 1) + SourceIndex(0)
|
||||
2 >Emitted(6, 2) Source(6, 2) + SourceIndex(0)
|
||||
---
|
||||
>>>//# sourceMappingURL=noCatchBlock.js.map
|
|
@ -37,4 +37,5 @@ for (let _b of array) {
|
|||
}
|
||||
for (const norest of array.map(a => (Object.assign({}, a, { x: 'a string' })))) {
|
||||
[norest.x, norest.y];
|
||||
// x is now a string. who knows why.
|
||||
}
|
||||
|
|
|
@ -1011,6 +1011,7 @@ var TypeScript;
|
|||
ctx.path.push(cur);
|
||||
}
|
||||
else {
|
||||
//logger.log("TODO: Ignoring node because minChar, limChar not better than previous node in stack");
|
||||
}
|
||||
}
|
||||
// The AST walker skips comments, but we might be in one, so check the pre/post comments for this node manually
|
||||
|
|
|
@ -23,6 +23,7 @@ function R1() {
|
|||
function R2() { R2(); }
|
||||
function R3(n) {
|
||||
if (n == 0) {
|
||||
//return;
|
||||
}
|
||||
else {
|
||||
R3(n--);
|
||||
|
|
|
@ -7,7 +7,9 @@ try {
|
|||
|
||||
//// [sourceMap-SkippedNode.js]
|
||||
try {
|
||||
// ...
|
||||
}
|
||||
finally {
|
||||
// N.B. No 'catch' block
|
||||
}
|
||||
//# sourceMappingURL=sourceMap-SkippedNode.js.map
|
|
@ -1,2 +1,2 @@
|
|||
//// [sourceMap-SkippedNode.js.map]
|
||||
{"version":3,"file":"sourceMap-SkippedNode.js","sourceRoot":"","sources":["sourceMap-SkippedNode.ts"],"names":[],"mappings":"AAAA,IAAI,CAAC;AAEL,CAAC;QAAS,CAAC;AAEX,CAAC"}
|
||||
{"version":3,"file":"sourceMap-SkippedNode.js","sourceRoot":"","sources":["sourceMap-SkippedNode.ts"],"names":[],"mappings":"AAAA,IAAI,CAAC;IACL,MAAM;AACN,CAAC;QAAS,CAAC;IACX,wBAAwB;AACxB,CAAC"}
|
|
@ -12,6 +12,7 @@ sourceFile:sourceMap-SkippedNode.ts
|
|||
1 >
|
||||
2 >^^^^
|
||||
3 > ^
|
||||
4 > ^^^^^^->
|
||||
1 >
|
||||
2 >try
|
||||
3 > {
|
||||
|
@ -19,34 +20,51 @@ sourceFile:sourceMap-SkippedNode.ts
|
|||
2 >Emitted(1, 5) Source(1, 5) + SourceIndex(0)
|
||||
3 >Emitted(1, 6) Source(1, 6) + SourceIndex(0)
|
||||
---
|
||||
>>> // ...
|
||||
1->^^^^
|
||||
2 > ^^^^^^
|
||||
1->
|
||||
>
|
||||
2 > // ...
|
||||
1->Emitted(2, 5) Source(2, 1) + SourceIndex(0)
|
||||
2 >Emitted(2, 11) Source(2, 7) + SourceIndex(0)
|
||||
---
|
||||
>>>}
|
||||
1 >
|
||||
2 >^
|
||||
3 > ^^^^^^^^^->
|
||||
1 >
|
||||
>// ...
|
||||
>
|
||||
2 >}
|
||||
1 >Emitted(2, 1) Source(3, 1) + SourceIndex(0)
|
||||
2 >Emitted(2, 2) Source(3, 2) + SourceIndex(0)
|
||||
1 >Emitted(3, 1) Source(3, 1) + SourceIndex(0)
|
||||
2 >Emitted(3, 2) Source(3, 2) + SourceIndex(0)
|
||||
---
|
||||
>>>finally {
|
||||
1->^^^^^^^^
|
||||
2 > ^
|
||||
3 > ^^^^^^^^^^^^^^^^^^^^->
|
||||
1-> finally
|
||||
2 > {
|
||||
1->Emitted(3, 9) Source(3, 11) + SourceIndex(0)
|
||||
2 >Emitted(3, 10) Source(3, 12) + SourceIndex(0)
|
||||
1->Emitted(4, 9) Source(3, 11) + SourceIndex(0)
|
||||
2 >Emitted(4, 10) Source(3, 12) + SourceIndex(0)
|
||||
---
|
||||
>>> // N.B. No 'catch' block
|
||||
1->^^^^
|
||||
2 > ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
1->
|
||||
>
|
||||
2 > // N.B. No 'catch' block
|
||||
1->Emitted(5, 5) Source(4, 1) + SourceIndex(0)
|
||||
2 >Emitted(5, 29) Source(4, 25) + SourceIndex(0)
|
||||
---
|
||||
>>>}
|
||||
1 >
|
||||
2 >^
|
||||
3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
|
||||
1 >
|
||||
>// N.B. No 'catch' block
|
||||
>
|
||||
2 >}
|
||||
1 >Emitted(4, 1) Source(5, 1) + SourceIndex(0)
|
||||
2 >Emitted(4, 2) Source(5, 2) + SourceIndex(0)
|
||||
1 >Emitted(6, 1) Source(5, 1) + SourceIndex(0)
|
||||
2 >Emitted(6, 2) Source(5, 2) + SourceIndex(0)
|
||||
---
|
||||
>>>//# sourceMappingURL=sourceMap-SkippedNode.js.map
|
11
tests/cases/compiler/commentLeadingCloseBrace.ts
Normal file
11
tests/cases/compiler/commentLeadingCloseBrace.ts
Normal file
|
@ -0,0 +1,11 @@
|
|||
declare function commentedParameters(...args): any;
|
||||
|
||||
function ifelse() {
|
||||
if (commentedParameters(1, 2)) {
|
||||
/*comment1*/
|
||||
commentedParameters(3, 4);
|
||||
/*comment2*/
|
||||
} else {
|
||||
commentedParameters(5, 6);
|
||||
}
|
||||
}
|
7
tests/cases/compiler/commentOnArrayElement1.ts
Normal file
7
tests/cases/compiler/commentOnArrayElement1.ts
Normal file
|
@ -0,0 +1,7 @@
|
|||
var array = [
|
||||
/* element 1*/
|
||||
1
|
||||
/* end of element 1 */,
|
||||
2
|
||||
/* end of element 2 */
|
||||
];
|
6
tests/cases/compiler/commentOnArrayElement2.ts
Normal file
6
tests/cases/compiler/commentOnArrayElement2.ts
Normal file
|
@ -0,0 +1,6 @@
|
|||
var array = [
|
||||
/* element 1*/
|
||||
1 /* end of element 1 */,
|
||||
2
|
||||
/* end of element 2 */
|
||||
];
|
8
tests/cases/compiler/commentOnArrayElement3.ts
Normal file
8
tests/cases/compiler/commentOnArrayElement3.ts
Normal file
|
@ -0,0 +1,8 @@
|
|||
var array = [
|
||||
/* element 1*/
|
||||
1
|
||||
/* end of element 1 */,
|
||||
2
|
||||
/* end of element 2 */, ,
|
||||
/* extra comment */
|
||||
];
|
9
tests/cases/compiler/commentOnParameter1.ts
Normal file
9
tests/cases/compiler/commentOnParameter1.ts
Normal file
|
@ -0,0 +1,9 @@
|
|||
function commentedParameters(
|
||||
/* Parameter a */
|
||||
a
|
||||
/* End of parameter a */
|
||||
/* Parameter b */
|
||||
,
|
||||
b
|
||||
/* End of parameter b */
|
||||
){}
|
8
tests/cases/compiler/commentOnParameter2.ts
Normal file
8
tests/cases/compiler/commentOnParameter2.ts
Normal file
|
@ -0,0 +1,8 @@
|
|||
function commentedParameters(
|
||||
/* Parameter a */
|
||||
a /* End of parameter a */
|
||||
/* Parameter b */
|
||||
,
|
||||
b
|
||||
/* End of parameter b */
|
||||
){}
|
5
tests/cases/compiler/commentOnParameter3.ts
Normal file
5
tests/cases/compiler/commentOnParameter3.ts
Normal file
|
@ -0,0 +1,5 @@
|
|||
function commentedParameters(
|
||||
a /* parameter a */,
|
||||
b /* parameter b */,
|
||||
/* extra comment */
|
||||
) { }
|
Loading…
Reference in a new issue