diff --git a/packages/babel-generator/src/node/parentheses.js b/packages/babel-generator/src/node/parentheses.js index e6424aced6..4da106ce99 100644 --- a/packages/babel-generator/src/node/parentheses.js +++ b/packages/babel-generator/src/node/parentheses.js @@ -170,16 +170,14 @@ export function FunctionExpression(node: Object, parent: Object, printStack: Arr } export function ArrowFunctionExpression(node: Object, parent: Object): boolean { - // export default (function () {}); - if (t.isExportDeclaration(parent)) { - return true; - } - - if (t.isBinaryExpression(parent) || t.isLogicalExpression(parent)) { - return true; - } - - if (t.isUnaryExpression(parent)) { + if ( + // export default (function () {}); + t.isExportDeclaration(parent) || + t.isBinaryExpression(parent) || + t.isLogicalExpression(parent) || + t.isUnaryExpression(parent) || + t.isTaggedTemplateExpression(parent) + ) { return true; } @@ -225,6 +223,10 @@ function isFirstInStatement(printStack: Array, { return true; } + if (t.isTaggedTemplateExpression(parent)) { + return true; + } + if (considerDefaultExports && t.isExportDefaultDeclaration(parent, { declaration: node })) { return true; } diff --git a/packages/babel-generator/test/fixtures/parentheses/tagged-template-expression/actual.js b/packages/babel-generator/test/fixtures/parentheses/tagged-template-expression/actual.js new file mode 100644 index 0000000000..8a19f04a89 --- /dev/null +++ b/packages/babel-generator/test/fixtures/parentheses/tagged-template-expression/actual.js @@ -0,0 +1,2 @@ +(() => {})``; +(function(){}``); diff --git a/packages/babel-generator/test/fixtures/parentheses/tagged-template-expression/expected.js b/packages/babel-generator/test/fixtures/parentheses/tagged-template-expression/expected.js new file mode 100644 index 0000000000..f47cd2e9af --- /dev/null +++ b/packages/babel-generator/test/fixtures/parentheses/tagged-template-expression/expected.js @@ -0,0 +1,2 @@ +(() => {})``; +(function () {})``; \ No newline at end of file