From 66181dbe3705ac0430a549191ddd1b18dd2d8cbf Mon Sep 17 00:00:00 2001 From: Jason Date: Wed, 21 Apr 2021 21:57:57 +0800 Subject: [PATCH] fix: don't deduplicate comments with same start index (#13169) --- packages/babel-generator/src/printer.ts | 6 ------ packages/babel-generator/test/index.js | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/packages/babel-generator/src/printer.ts b/packages/babel-generator/src/printer.ts index 176870cc2a..4c4201ac69 100644 --- a/packages/babel-generator/src/printer.ts +++ b/packages/babel-generator/src/printer.ts @@ -44,7 +44,6 @@ class Printer { _printStack: Array = []; _indent: number = 0; _insideAux: boolean = false; - _printedCommentStarts: any = {}; _parenPushNewlineState: any = null; _noLineTerminator: boolean = false; _printAuxAfterOnNextUserNode: boolean = false; @@ -598,11 +597,6 @@ class Printer { if (this._printedComments.has(comment)) return; this._printedComments.add(comment); - if (comment.start != null) { - if (this._printedCommentStarts[comment.start]) return; - this._printedCommentStarts[comment.start] = true; - } - const isBlockComment = comment.type === "CommentBlock"; // Add a newline before and after a block comment, unless explicitly diff --git a/packages/babel-generator/test/index.js b/packages/babel-generator/test/index.js index e56cd9754e..f46d4dd4a3 100644 --- a/packages/babel-generator/test/index.js +++ b/packages/babel-generator/test/index.js @@ -348,6 +348,20 @@ describe("generation", function () { const output = generate(type).code; expect(output).toBe("(infer T)[]"); }); + + it("should not deduplicate comments with same start index", () => { + const code1 = "/*#__PURE__*/ a();"; + const code2 = "/*#__PURE__*/ b();"; + + const ast1 = parse(code1).program; + const ast2 = parse(code2).program; + + const ast = t.program([...ast1.body, ...ast2.body]); + + expect(generate(ast).code).toBe( + "/*#__PURE__*/\na();\n\n/*#__PURE__*/\nb();", + ); + }); }); describe("programmatic generation", function () {