Skip to content

Commit

Permalink
Chore: simplify range checks (yoda)
Browse files Browse the repository at this point in the history
  • Loading branch information
anikethsaha committed Mar 22, 2020
1 parent 1539805 commit 9953a04
Showing 1 changed file with 19 additions and 38 deletions.
57 changes: 19 additions & 38 deletions lib/rules/yoda.js
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,6 @@ function looksLikeLiteral(node) {
/**
* Attempts to derive a Literal node from nodes that are treated like literals.
* @param {ASTNode} node Node to normalize.
* @param {number} [defaultValue] The default value to be returned if the node
* is not a Literal.
* @returns {ASTNode} One of the following options.
* 1. The original node if the node is already a Literal
* 2. A normalized Literal node with the negative number as the value if the
Expand All @@ -89,7 +87,7 @@ function looksLikeLiteral(node) {
* 4. The Literal node which has the `defaultValue` argument if it exists.
* 5. Otherwise `null`.
*/
function getNormalizedLiteral(node, defaultValue) {
function getNormalizedLiteral(node) {
if (node.type === "Literal") {
return node;
}
Expand All @@ -110,14 +108,6 @@ function getNormalizedLiteral(node, defaultValue) {
};
}

if (defaultValue) {
return {
type: "Literal",
value: defaultValue,
raw: String(defaultValue)
};
}

return null;
}

Expand Down Expand Up @@ -247,23 +237,18 @@ module.exports = {

if (node.operator === "&&") {
leftLiteral = getNormalizedLiteral(left.left);
rightLiteral = getNormalizedLiteral(right.right, Number.POSITIVE_INFINITY);
rightLiteral = getNormalizedLiteral(right.right);

if (leftLiteral && rightLiteral) {

if (leftLiteral.value <= rightLiteral.value && same(left.right, right.left)) {
return true;
}
if (leftLiteral === null && rightLiteral === null) {
return false;
}

if (
(typeof leftLiteral.value === "string" &&
(typeof rightLiteral.value !== "string" && rightLiteral.value === Number.POSITIVE_INFINITY)) ||
(typeof rightLiteral.value === "string" &&
(typeof leftLiteral.value !== "string" && leftLiteral.value === Number.POSITIVE_INFINITY))
) {
if (leftLiteral !== null && rightLiteral === null || rightLiteral !== null && leftLiteral === null) {
return true;
}

return true;
}
if (leftLiteral.value <= rightLiteral.value && same(left.right, right.left)) {
return true;
}
}
return false;
Expand All @@ -277,23 +262,19 @@ module.exports = {
let leftLiteral, rightLiteral;

if (node.operator === "||") {
leftLiteral = getNormalizedLiteral(left.right, Number.NEGATIVE_INFINITY);
leftLiteral = getNormalizedLiteral(left.right);
rightLiteral = getNormalizedLiteral(right.left);

if (leftLiteral && rightLiteral) {
if (leftLiteral === null && rightLiteral === null) {
return false;
}

if ((leftLiteral.value <= rightLiteral.value) && same(left.left, right.right)) {
return true;
}
if (leftLiteral !== null && rightLiteral === null || rightLiteral !== null && leftLiteral === null) {
return true;
}

if (
(typeof leftLiteral.value === "string" &&
(typeof rightLiteral.value !== "string" && rightLiteral.value === Number.NEGATIVE_INFINITY)) ||
(typeof rightLiteral.value === "string" &&
(typeof leftLiteral.value !== "string" && leftLiteral.value === Number.NEGATIVE_INFINITY))
) {
return true;
}
if ((leftLiteral.value <= rightLiteral.value) && same(left.left, right.right)) {
return true;
}
}

Expand Down

0 comments on commit 9953a04

Please sign in to comment.