diff --git a/acorn.js b/acorn.js index 57c5245c77..e0d4dcf074 100644 --- a/acorn.js +++ b/acorn.js @@ -2515,17 +2515,9 @@ var op = tokType; next(); var start = storeCurrentPos(); - if (op.rightAssociative) { - node.right = parseExprOp(parseMaybeUnary(), start, minPrec, noIn); - } else { - node.right = parseExprOp(parseMaybeUnary(), start, prec, noIn); - } + node.right = parseExprOp(parseMaybeUnary(), start, op.rightAssociative ? (prec - 1) : prec, noIn); finishNode(node, (op === _logicalOR || op === _logicalAND) ? "LogicalExpression" : "BinaryExpression"); - if (op.rightAssociative) { - return node; - } else { - return parseExprOp(node, leftStart, minPrec, noIn); - } + return parseExprOp(node, leftStart, minPrec, noIn); } } return left;