function isBinary(node) {
        return n.BinaryExpression.check(node)
            || n.LogicalExpression.check(node);
    }
Determine whether this.node needs to be wrapped in parentheses in order
for a parser to reproduce the same local AST structure.

For instance, in the expression `(1 + 2) * 3`, the BinaryExpression
whose operator is "+" needs parentheses, because `1 + 2 * 3` would
parse differently.

If assumeExpressionContext === true, we don't worry about edge cases
like an anonymous FunctionExpression appearing lexically first in its
enclosing statement and thus needing parentheses to avoid being parsed
as a FunctionDeclaration with a missing name.