From 4d2f224919325fb47717ee63690cf9929956a168 Mon Sep 17 00:00:00 2001 From: Ika Date: Wed, 8 Aug 2018 23:48:12 +0800 Subject: [PATCH] fix(javascript): add parens for unary in bind (#4950) * test: add tests * fix(javascript): add parens for unary in bind --- src/language-js/needs-parens.js | 1 + .../__snapshots__/jsfmt.spec.js.snap | 22 +++++++++++++++++++ tests/bind_expressions/unary.js | 3 +++ 3 files changed, 26 insertions(+) create mode 100644 tests/bind_expressions/unary.js diff --git a/src/language-js/needs-parens.js b/src/language-js/needs-parens.js index a3a467a66cb4..4e46c0a1503b 100644 --- a/src/language-js/needs-parens.js +++ b/src/language-js/needs-parens.js @@ -168,6 +168,7 @@ function needsParens(path, options) { (node.operator === "+" || node.operator === "-") ); + case "BindExpression": case "MemberExpression": return name === "object" && parent.object === node; diff --git a/tests/bind_expressions/__snapshots__/jsfmt.spec.js.snap b/tests/bind_expressions/__snapshots__/jsfmt.spec.js.snap index 345aa99c6310..e38133cd9031 100644 --- a/tests/bind_expressions/__snapshots__/jsfmt.spec.js.snap +++ b/tests/bind_expressions/__snapshots__/jsfmt.spec.js.snap @@ -215,3 +215,25 @@ class X { } `; + +exports[`unary.js - babylon-verify 1`] = ` +(void 0)::func(); + +(+0)::is(-0); +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +(void 0)::func(); + +(+0)::is(-0); + +`; + +exports[`unary.js - babylon-verify 2`] = ` +(void 0)::func(); + +(+0)::is(-0); +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +;(void 0)::func() + +;(+0)::is(-0) + +`; diff --git a/tests/bind_expressions/unary.js b/tests/bind_expressions/unary.js new file mode 100644 index 000000000000..0d6244275b2b --- /dev/null +++ b/tests/bind_expressions/unary.js @@ -0,0 +1,3 @@ +(void 0)::func(); + +(+0)::is(-0);