diff --git a/src/language-js/needs-parens.js b/src/language-js/needs-parens.js index a3a467a6..4e46c0a1 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 345aa99c..e38133cd 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 00000000..0d624427 --- /dev/null +++ b/tests/bind_expressions/unary.js @@ -0,0 +1,3 @@ +(void 0)::func(); + +(+0)::is(-0);