diff options
author | Rich Trott <rtrott@gmail.com> | 2019-02-01 11:44:36 -0800 |
---|---|---|
committer | Rich Trott <rtrott@gmail.com> | 2019-02-03 16:46:26 -0800 |
commit | 7540f9dbe8114c62e0ec7d751bf2a36998514b2c (patch) | |
tree | 1fe235430de7fd84606affb77b6fb68bf516915a /tools/node_modules/eslint/lib/rules/no-constant-condition.js | |
parent | b322b76dad5b05e20586622cdc86c83367e863e1 (diff) | |
download | android-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.js | 20 |
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; } |