diff --git a/src/language-js/needs-parens.js b/src/language-js/needs-parens.js index e058a3db..b53ef8ae 100644 --- a/src/language-js/needs-parens.js +++ b/src/language-js/needs-parens.js @@ -369,6 +369,7 @@ function needsParens(path, options) { case "ExperimentalSpreadProperty": case "TSAsExpression": case "TSNonNullExpression": + case "BindExpression": return true; case "MemberExpression": diff --git a/tests/bind_expressions/__snapshots__/jsfmt.spec.js.snap b/tests/bind_expressions/__snapshots__/jsfmt.spec.js.snap index dd276621..36807c05 100644 --- a/tests/bind_expressions/__snapshots__/jsfmt.spec.js.snap +++ b/tests/bind_expressions/__snapshots__/jsfmt.spec.js.snap @@ -1,5 +1,31 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`await.js 1`] = ` +const doBothThings = async () => { + const request = doAsyncThing(); + return (await request)::doSyncThing(); +}; +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +const doBothThings = async () => { + const request = doAsyncThing(); + return (await request)::doSyncThing(); +}; + +`; + +exports[`await.js 2`] = ` +const doBothThings = async () => { + const request = doAsyncThing(); + return (await request)::doSyncThing(); +}; +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +const doBothThings = async () => { + const request = doAsyncThing() + return (await request)::doSyncThing() +} + +`; + exports[`bind_parens.js 1`] = ` (a || b)::c; a || (b::c); diff --git a/tests/bind_expressions/await.js b/tests/bind_expressions/await.js new file mode 100644 index 00000000..affbaa1c --- /dev/null +++ b/tests/bind_expressions/await.js @@ -0,0 +1,4 @@ +const doBothThings = async () => { + const request = doAsyncThing(); + return (await request)::doSyncThing(); +};