function equal(a, b) {
			if (a.type !== b.type) {
				return false;
			}

			if (
				a.type === "LogicalExpression" &&
				(a.operator === "||" || a.operator === "&&") &&
				a.operator === b.operator
			) {
				return (
					(equal(a.left, b.left) && equal(a.right, b.right)) ||
					(equal(a.left, b.right) && equal(a.right, b.left))
				);
			}

			return astUtils.equalTokens(a, b, sourceCode);
		}
Determines whether the two given nodes are considered to be equal. In particular, given that the nodes
represent expressions in a boolean context, `||` and `&&` can be considered as commutative operators.
@param {ASTNode} a First node.
@param {ASTNode} b Second node.
@returns {boolean} `true` if the nodes are considered to be equal.