From ab240d49833b4e6e594667c1abe5b0caa8a9cf70 Mon Sep 17 00:00:00 2001 From: Milos Djermanovic Date: Fri, 18 Dec 2020 01:25:36 +0100 Subject: [PATCH] Fix: prefer-exponentiation-operator invalid autofix with await (#13924) --- lib/rules/prefer-exponentiation-operator.js | 1 + tests/lib/rules/prefer-exponentiation-operator.js | 2 ++ 2 files changed, 3 insertions(+) diff --git a/lib/rules/prefer-exponentiation-operator.js b/lib/rules/prefer-exponentiation-operator.js index d1a00d6209e..6121af88971 100644 --- a/lib/rules/prefer-exponentiation-operator.js +++ b/lib/rules/prefer-exponentiation-operator.js @@ -30,6 +30,7 @@ function doesBaseNeedParens(base) { astUtils.getPrecedence(base) <= PRECEDENCE_OF_EXPONENTIATION_EXPR || // An unary operator cannot be used immediately before an exponentiation expression + base.type === "AwaitExpression" || base.type === "UnaryExpression" ); } diff --git a/tests/lib/rules/prefer-exponentiation-operator.js b/tests/lib/rules/prefer-exponentiation-operator.js index da147b021fd..7bccdd64b43 100644 --- a/tests/lib/rules/prefer-exponentiation-operator.js +++ b/tests/lib/rules/prefer-exponentiation-operator.js @@ -218,6 +218,8 @@ ruleTester.run("prefer-exponentiation-operator", rule, { invalid("Math.pow(a, -b)", "a**-b"), invalid("Math.pow(-2, 3)", "(-2)**3"), invalid("Math.pow(2, -3)", "2**-3"), + invalid("async () => Math.pow(await a, b)", "async () => (await a)**b"), + invalid("async () => Math.pow(a, await b)", "async () => a**await b"), // base and exponent with a lower precedence invalid("Math.pow(a * b, c)", "(a * b)**c"),