diff --git a/escodegen.js b/escodegen.js index 16a05b17..6fe6646d 100644 --- a/escodegen.js +++ b/escodegen.js @@ -1835,7 +1835,7 @@ BinaryExpression: function (expr, precedence, flags) { var result, leftPrecedence, rightPrecedence, currentPrecedence, fragment, leftSource; currentPrecedence = BinaryPrecedence[expr.operator]; - leftPrecedence = expr.operator === '**' ? Precedence.Postfix : currentPrecedence + 1; + leftPrecedence = expr.operator === '**' ? Precedence.Postfix : currentPrecedence; rightPrecedence = expr.operator === '**' ? currentPrecedence : currentPrecedence + 1; if (currentPrecedence < precedence) { diff --git a/test/compare/binary-precedence.expected.js b/test/compare/binary-precedence.expected.js new file mode 100644 index 00000000..8a27b70e --- /dev/null +++ b/test/compare/binary-precedence.expected.js @@ -0,0 +1,4 @@ +a + b + c; +a + (b + c); +a + b * c; +a * b + c; diff --git a/test/compare/binary-precedence.js b/test/compare/binary-precedence.js new file mode 100644 index 00000000..37c87fae --- /dev/null +++ b/test/compare/binary-precedence.js @@ -0,0 +1,4 @@ +(a + b) + c; +a + (b + c); +a + b * c; +a * b + c;