diff --git a/packages/babel-generator/src/generators/expressions.js b/packages/babel-generator/src/generators/expressions.js index ca0f251d34..0534844d13 100644 --- a/packages/babel-generator/src/generators/expressions.js +++ b/packages/babel-generator/src/generators/expressions.js @@ -59,10 +59,10 @@ export function ConditionalExpression(node: Object) { this.print(node.alternate, node); } -export function NewExpression(node: Object) { +export function NewExpression(node: Object, parent: Object) { this.push("new "); this.print(node.callee, node); - if (node.arguments.length === 0 && this.format.compact) return; + if (node.arguments.length === 0 && this.format.compact && !t.isCallExpression(parent)) return; this.push("("); this.printList(node.arguments, node); diff --git a/packages/babel-generator/test/fixtures/compact/new-expression/actual.js b/packages/babel-generator/test/fixtures/compact/new-expression/actual.js index e81ff8d9bf..1957ac85ec 100644 --- a/packages/babel-generator/test/fixtures/compact/new-expression/actual.js +++ b/packages/babel-generator/test/fixtures/compact/new-expression/actual.js @@ -1 +1,2 @@ new X(); +new Y()(); diff --git a/packages/babel-generator/test/fixtures/compact/new-expression/expected.js b/packages/babel-generator/test/fixtures/compact/new-expression/expected.js index e1ffdf2a25..d50100ac49 100644 --- a/packages/babel-generator/test/fixtures/compact/new-expression/expected.js +++ b/packages/babel-generator/test/fixtures/compact/new-expression/expected.js @@ -1 +1 @@ -new X; +new X;new Y()();