diff --git a/packages/babel-generator/src/generators/methods.js b/packages/babel-generator/src/generators/methods.js index e9d0c67bded7..ea656b8b0c1f 100644 --- a/packages/babel-generator/src/generators/methods.js +++ b/packages/babel-generator/src/generators/methods.js @@ -37,6 +37,8 @@ export function _methodHead(node: Object) { } if (node.async) { + // ensure `async` is in the same line with property name + this._catchUp("start", key.loc); this.word("async"); this.space(); } diff --git a/packages/babel-generator/test/fixtures/regression/11870/input.js b/packages/babel-generator/test/fixtures/regression/11870/input.js new file mode 100644 index 000000000000..810351d6e237 --- /dev/null +++ b/packages/babel-generator/test/fixtures/regression/11870/input.js @@ -0,0 +1,4 @@ +class Test { + @TestDecorator + async decorateMe() {} +} diff --git a/packages/babel-generator/test/fixtures/regression/11870/options.json b/packages/babel-generator/test/fixtures/regression/11870/options.json new file mode 100644 index 000000000000..f60ee7d59843 --- /dev/null +++ b/packages/babel-generator/test/fixtures/regression/11870/options.json @@ -0,0 +1,4 @@ +{ + "retainLines": true, + "plugins": [["decorators", { "decoratorsBeforeExport": true }]] +} diff --git a/packages/babel-generator/test/fixtures/regression/11870/output.js b/packages/babel-generator/test/fixtures/regression/11870/output.js new file mode 100644 index 000000000000..7dee47804925 --- /dev/null +++ b/packages/babel-generator/test/fixtures/regression/11870/output.js @@ -0,0 +1,3 @@ +class Test { + @TestDecorator + async decorateMe() {}} \ No newline at end of file