From af612db8c3ab22111d2b63330b9abd7a45f1ae8c Mon Sep 17 00:00:00 2001 From: Ananda Umamil Date: Fri, 25 Sep 2020 20:16:28 +0700 Subject: [PATCH] Fix `@babel/generator` does not print decorators of private properties (#12081) --- packages/babel-generator/src/generators/classes.js | 1 + .../test/fixtures/decorators/private-props/input.js | 7 +++++++ .../test/fixtures/decorators/private-props/options.json | 9 +++++++++ .../test/fixtures/decorators/private-props/output.js | 6 ++++++ 4 files changed, 23 insertions(+) create mode 100644 packages/babel-generator/test/fixtures/decorators/private-props/input.js create mode 100644 packages/babel-generator/test/fixtures/decorators/private-props/options.json create mode 100644 packages/babel-generator/test/fixtures/decorators/private-props/output.js diff --git a/packages/babel-generator/src/generators/classes.js b/packages/babel-generator/src/generators/classes.js index 1713293369..4d00272c4c 100644 --- a/packages/babel-generator/src/generators/classes.js +++ b/packages/babel-generator/src/generators/classes.js @@ -101,6 +101,7 @@ export function ClassProperty(node: Object) { } export function ClassPrivateProperty(node: Object) { + this.printJoin(node.decorators, node); if (node.static) { this.word("static"); this.space(); diff --git a/packages/babel-generator/test/fixtures/decorators/private-props/input.js b/packages/babel-generator/test/fixtures/decorators/private-props/input.js new file mode 100644 index 0000000000..2744b0c3f1 --- /dev/null +++ b/packages/babel-generator/test/fixtures/decorators/private-props/input.js @@ -0,0 +1,7 @@ +class A { + @dec + foo; + + @dec + #bar; +} diff --git a/packages/babel-generator/test/fixtures/decorators/private-props/options.json b/packages/babel-generator/test/fixtures/decorators/private-props/options.json new file mode 100644 index 0000000000..a91f977470 --- /dev/null +++ b/packages/babel-generator/test/fixtures/decorators/private-props/options.json @@ -0,0 +1,9 @@ +{ + "plugins": [ + ["decorators", { "decoratorsBeforeExport": false }], + "classProperties", + "classPrivateProperties", + "classPrivateMethods" + ], + "decoratorsBeforeExport": true +} diff --git a/packages/babel-generator/test/fixtures/decorators/private-props/output.js b/packages/babel-generator/test/fixtures/decorators/private-props/output.js new file mode 100644 index 0000000000..845839ad35 --- /dev/null +++ b/packages/babel-generator/test/fixtures/decorators/private-props/output.js @@ -0,0 +1,6 @@ +class A { + @dec + foo; + @dec + #bar; +}