diff --git a/src/compiler/printer.ts b/src/compiler/printer.ts index e26a36233b..451e002d5b 100644 --- a/src/compiler/printer.ts +++ b/src/compiler/printer.ts @@ -1505,8 +1505,11 @@ const _super = (function (geti, seti) { const endingLine = writer.getLine(); emitLexicalEnvironment(endLexicalEnvironment(), /*newLine*/ startingLine !== endingLine); - const range = collapseRangeToEnd(body.statements); - emitLeadingComments(range, getLeadingComments(range)); + // Do not emit leading comments if the body belongs to arrow expression + if (!body.original || isBlock(body.original)) { + const range = collapseRangeToEnd(body.statements); + emitLeadingComments(range, getLeadingComments(range)); + } decreaseIndent(); } diff --git a/src/compiler/transformers/es6.ts b/src/compiler/transformers/es6.ts index 7b769889dc..0d0ab884cc 100644 --- a/src/compiler/transformers/es6.ts +++ b/src/compiler/transformers/es6.ts @@ -1271,6 +1271,7 @@ namespace ts { setNodeEmitFlags(block, NodeEmitFlags.SingleLine); } + setOriginalNode(block, node.body); return block; } diff --git a/tests/baselines/reference/disallowLineTerminatorBeforeArrow.js b/tests/baselines/reference/disallowLineTerminatorBeforeArrow.js index 55fba8115e..1044146ccd 100644 --- a/tests/baselines/reference/disallowLineTerminatorBeforeArrow.js +++ b/tests/baselines/reference/disallowLineTerminatorBeforeArrow.js @@ -110,9 +110,7 @@ var f8 = function (x, y, z) { var f9 = function (a) { return a; }; var f10 = function (a) { return a; }; var f11 = function (a) { return a; }; -var f12 = function (a) { - return a; -}; +var f12 = function (a) { return a; }; // Should be valid. var f11 = function (a) { return a; }; // Should be valid.