From f1f6c820feeb90165d7b3f3c95c49a3b00e542d3 Mon Sep 17 00:00:00 2001 From: Amjad Masad Date: Tue, 24 Nov 2015 19:12:24 -0800 Subject: [PATCH] Handle new X()() --- packages/babel-generator/src/generators/expressions.js | 4 ++-- .../test/fixtures/compact/new-expression/actual.js | 1 + .../test/fixtures/compact/new-expression/expected.js | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) 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()();