From 01a59eeee35b882017758b548df7f51fb7f80f1d Mon Sep 17 00:00:00 2001 From: Lucas Duailibe Date: Tue, 9 Jan 2018 01:45:51 -0200 Subject: [PATCH] Wrap conditionals and await in parens in spread property (#3681) --- src/common/fast-path.js | 2 ++ tests/spread/__snapshots__/jsfmt.spec.js.snap | 6 ++++++ tests/spread/spread.js | 3 +++ 3 files changed, 11 insertions(+) diff --git a/src/common/fast-path.js b/src/common/fast-path.js index 4c149001f..6e047acd4 100644 --- a/src/common/fast-path.js +++ b/src/common/fast-path.js @@ -435,6 +435,7 @@ FastPath.prototype.needsParens = function(options) { case "LogicalExpression": case "SpreadElement": case "SpreadProperty": + case "ExperimentalSpreadProperty": case "TSAsExpression": case "TSNonNullExpression": return true; @@ -546,6 +547,7 @@ FastPath.prototype.needsParens = function(options) { case "UnaryExpression": case "SpreadElement": case "SpreadProperty": + case "ExperimentalSpreadProperty": case "BinaryExpression": case "LogicalExpression": case "ExportDefaultDeclaration": diff --git a/tests/spread/__snapshots__/jsfmt.spec.js.snap b/tests/spread/__snapshots__/jsfmt.spec.js.snap index e4351cc58..bf3cdf37c 100644 --- a/tests/spread/__snapshots__/jsfmt.spec.js.snap +++ b/tests/spread/__snapshots__/jsfmt.spec.js.snap @@ -3,8 +3,14 @@ exports[`spread.js 1`] = ` const foo = { ...(a || b) }; const foo2 = { ...a || b }; +const foo3 = { ...(a ? b : c) }; + +async () => ({ ...(await foo) }); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ const foo = { ...(a || b) }; const foo2 = { ...(a || b) }; +const foo3 = { ...(a ? b : c) }; + +async () => ({ ...(await foo) }); `; diff --git a/tests/spread/spread.js b/tests/spread/spread.js index 7cd0a237f..516467c6a 100644 --- a/tests/spread/spread.js +++ b/tests/spread/spread.js @@ -1,2 +1,5 @@ const foo = { ...(a || b) }; const foo2 = { ...a || b }; +const foo3 = { ...(a ? b : c) }; + +async () => ({ ...(await foo) });