From 58a6c782f969587e0b0e1f84adf6b03f378d3dcb Mon Sep 17 00:00:00 2001 From: overlookmotel Date: Thu, 7 Oct 2021 00:22:38 +0100 Subject: [PATCH 1/2] Fix missing inner comments in function expressions --- packages/babel-generator/src/generators/methods.ts | 1 + .../test/fixtures/comments/function-inner-comment/input.js | 4 ++++ .../fixtures/comments/function-inner-comment/options.json | 3 +++ .../test/fixtures/comments/function-inner-comment/output.js | 4 ++++ 4 files changed, 12 insertions(+) create mode 100644 packages/babel-generator/test/fixtures/comments/function-inner-comment/input.js create mode 100644 packages/babel-generator/test/fixtures/comments/function-inner-comment/options.json create mode 100644 packages/babel-generator/test/fixtures/comments/function-inner-comment/output.js diff --git a/packages/babel-generator/src/generators/methods.ts b/packages/babel-generator/src/generators/methods.ts index ad3c6287fa9f..8a5d7ad9aa98 100644 --- a/packages/babel-generator/src/generators/methods.ts +++ b/packages/babel-generator/src/generators/methods.ts @@ -84,6 +84,7 @@ export function _functionHead(this: Printer, node: any) { } this.word("function"); if (node.generator) this.token("*"); + this.printInnerComments(node); this.space(); if (node.id) { diff --git a/packages/babel-generator/test/fixtures/comments/function-inner-comment/input.js b/packages/babel-generator/test/fixtures/comments/function-inner-comment/input.js new file mode 100644 index 000000000000..09aad720d7f4 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/function-inner-comment/input.js @@ -0,0 +1,4 @@ +const f = function /*foo*/ () {}; +const g = async function /*foo*/ () {}; +const h = function* /*foo*/ () {}; +const i = async function* /*foo*/ () {}; diff --git a/packages/babel-generator/test/fixtures/comments/function-inner-comment/options.json b/packages/babel-generator/test/fixtures/comments/function-inner-comment/options.json new file mode 100644 index 000000000000..97925bbcb61b --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/function-inner-comment/options.json @@ -0,0 +1,3 @@ +{ + "retainLines": true +} diff --git a/packages/babel-generator/test/fixtures/comments/function-inner-comment/output.js b/packages/babel-generator/test/fixtures/comments/function-inner-comment/output.js new file mode 100644 index 000000000000..09aad720d7f4 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/function-inner-comment/output.js @@ -0,0 +1,4 @@ +const f = function /*foo*/ () {}; +const g = async function /*foo*/ () {}; +const h = function* /*foo*/ () {}; +const i = async function* /*foo*/ () {}; From d86b098d29663a8d31db4b27c7c1b0e0475f58cf Mon Sep 17 00:00:00 2001 From: overlookmotel Date: Thu, 7 Oct 2021 17:32:09 +0100 Subject: [PATCH 2/2] Additional test cases --- .../test/fixtures/comments/function-inner-comment/input.js | 7 +++++-- .../fixtures/comments/function-inner-comment/output.js | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/babel-generator/test/fixtures/comments/function-inner-comment/input.js b/packages/babel-generator/test/fixtures/comments/function-inner-comment/input.js index 09aad720d7f4..f738be63259d 100644 --- a/packages/babel-generator/test/fixtures/comments/function-inner-comment/input.js +++ b/packages/babel-generator/test/fixtures/comments/function-inner-comment/input.js @@ -1,4 +1,7 @@ const f = function /*foo*/ () {}; const g = async function /*foo*/ () {}; -const h = function* /*foo*/ () {}; -const i = async function* /*foo*/ () {}; +const h = async /*foo*/ function () {}; +const i = function* /*foo*/ () {}; +const j = function/*foo*/* () {}; +const k = async function* /*foo*/ () {}; +const l = function (/*foo*/) {}; diff --git a/packages/babel-generator/test/fixtures/comments/function-inner-comment/output.js b/packages/babel-generator/test/fixtures/comments/function-inner-comment/output.js index 09aad720d7f4..ac7dc075eb10 100644 --- a/packages/babel-generator/test/fixtures/comments/function-inner-comment/output.js +++ b/packages/babel-generator/test/fixtures/comments/function-inner-comment/output.js @@ -1,4 +1,7 @@ const f = function /*foo*/ () {}; const g = async function /*foo*/ () {}; -const h = function* /*foo*/ () {}; -const i = async function* /*foo*/ () {}; +const h = async function /*foo*/ () {}; +const i = function* /*foo*/ () {}; +const j = function* /*foo*/ () {}; +const k = async function* /*foo*/ () {}; +const l = function /*foo*/ () {};