summaryrefslogtreecommitdiff
path: root/tools/node_modules/eslint/lib/rules/no-constant-condition.js
diff options
context:
space:
mode:
authorRich Trott <rtrott@gmail.com>2019-02-01 11:44:36 -0800
committerRich Trott <rtrott@gmail.com>2019-02-03 16:46:26 -0800
commit7540f9dbe8114c62e0ec7d751bf2a36998514b2c (patch)
tree1fe235430de7fd84606affb77b6fb68bf516915a /tools/node_modules/eslint/lib/rules/no-constant-condition.js
parentb322b76dad5b05e20586622cdc86c83367e863e1 (diff)
downloadandroid-node-v8-7540f9dbe8114c62e0ec7d751bf2a36998514b2c.tar.gz
android-node-v8-7540f9dbe8114c62e0ec7d751bf2a36998514b2c.tar.bz2
android-node-v8-7540f9dbe8114c62e0ec7d751bf2a36998514b2c.zip
tools: update ESLint to 5.13.0
PR-URL: https://github.com/nodejs/node/pull/25877 Reviewed-By: Michaƫl Zasso <targos@protonmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Yuta Hiroto <hello@hiroppy.me>
Diffstat (limited to 'tools/node_modules/eslint/lib/rules/no-constant-condition.js')
-rw-r--r--tools/node_modules/eslint/lib/rules/no-constant-condition.js20
1 files changed, 19 insertions, 1 deletions
diff --git a/tools/node_modules/eslint/lib/rules/no-constant-condition.js b/tools/node_modules/eslint/lib/rules/no-constant-condition.js
index 39c2928eed..fb36207ebb 100644
--- a/tools/node_modules/eslint/lib/rules/no-constant-condition.js
+++ b/tools/node_modules/eslint/lib/rules/no-constant-condition.js
@@ -6,6 +6,13 @@
"use strict";
//------------------------------------------------------------------------------
+// Helpers
+//------------------------------------------------------------------------------
+
+const EQUALITY_OPERATORS = ["===", "!==", "==", "!="];
+const RELATIONAL_OPERATORS = [">", "<", ">=", "<=", "in", "instanceof"];
+
+//------------------------------------------------------------------------------
// Rule Definition
//------------------------------------------------------------------------------
@@ -110,7 +117,18 @@ module.exports = {
const isRightShortCircuit = (isRightConstant && isLogicalIdentity(node.right, node.operator));
return (isLeftConstant && isRightConstant) ||
- (node.operator === "||" && isRightConstant && node.right.value) || // in the case of an "OR", we need to know if the right constant value is truthy
+ (
+
+ // in the case of an "OR", we need to know if the right constant value is truthy
+ node.operator === "||" &&
+ isRightConstant &&
+ node.right.value &&
+ (
+ !node.parent ||
+ node.parent.type !== "BinaryExpression" ||
+ !(EQUALITY_OPERATORS.includes(node.parent.operator) || RELATIONAL_OPERATORS.includes(node.parent.operator))
+ )
+ ) ||
isLeftShortCircuit ||
isRightShortCircuit;
}