diff --git a/packages/babel-generator/src/generators/classes.ts b/packages/babel-generator/src/generators/classes.ts index d909d5afb941..5829039e9473 100644 --- a/packages/babel-generator/src/generators/classes.ts +++ b/packages/babel-generator/src/generators/classes.ts @@ -31,6 +31,7 @@ export function ClassDeclaration( } this.word("class"); + this.printInnerComments(node); if (node.id) { this.space(); diff --git a/packages/babel-generator/test/fixtures/comments/class-comments/input.js b/packages/babel-generator/test/fixtures/comments/class-comments/input.js new file mode 100644 index 000000000000..ee21f5bb9e43 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/class-comments/input.js @@ -0,0 +1,7 @@ +const A = class /* before body */ { /* inside body */ }; +const B = class /* before name */ X /* before body */ { /* inside body */ }; +const C = class /* before extends */ extends /* after extends */ X /* before body */ {/* inside body */}; +const D = class /* before name */ X /* before extends */ extends /* after extends */ X /* before body */ {/* inside body */}; + +class /* before name */ E /* before body */ { /* inside body */ } +class /* before name */ F /* before extends */ extends /* after extends */ X /* before body */ {/* inside body */} diff --git a/packages/babel-generator/test/fixtures/comments/class-comments/options.json b/packages/babel-generator/test/fixtures/comments/class-comments/options.json new file mode 100644 index 000000000000..97925bbcb61b --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/class-comments/options.json @@ -0,0 +1,3 @@ +{ + "retainLines": true +} diff --git a/packages/babel-generator/test/fixtures/comments/class-comments/output.js b/packages/babel-generator/test/fixtures/comments/class-comments/output.js new file mode 100644 index 000000000000..6681dd176c18 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/class-comments/output.js @@ -0,0 +1,7 @@ +const A = class /* before body */{/* inside body */}; +const B = class /* before name */X /* before body */ {/* inside body */}; +const C = class /* before extends */ extends /* after extends */X /* before body */ {/* inside body */}; +const D = class /* before name */X /* before extends */ extends /* after extends */X /* before body */ {/* inside body */}; + +class /* before name */E /* before body */ {/* inside body */} +class /* before name */F /* before extends */ extends /* after extends */X /* before body */ {/* inside body */}