Skip to content

Commit b717a22

Browse files
authored
fix: prevent eqeqeq null option from reporting non-equality operators (#21057)
1 parent 8fb550e commit b717a22

2 files changed

Lines changed: 9 additions & 1 deletion

File tree

lib/rules/eqeqeq.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,11 @@ module.exports = {
186186
const isNull = isNullCheck(node);
187187

188188
if (node.operator !== "==" && node.operator !== "!=") {
189-
if (enforceInverseRuleForNull && isNull) {
189+
if (
190+
enforceInverseRuleForNull &&
191+
isNull &&
192+
(node.operator === "===" || node.operator === "!==")
193+
) {
190194
report(node, node.operator.slice(0, -1));
191195
}
192196
return;

tests/lib/rules/eqeqeq.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ ruleTester.run("eqeqeq", rule, {
4848
{ code: "a != null", options: ["always", { null: "never" }] },
4949
{ code: "null == null", options: ["always", { null: "never" }] },
5050
{ code: "null != null", options: ["always", { null: "never" }] },
51+
{ code: "a >= null", options: ["always", { null: "never" }] },
52+
{ code: "a + null", options: ["always", { null: "never" }] },
53+
{ code: "null + null", options: ["always", { null: "never" }] },
54+
{ code: "null instanceof Foo", options: ["always", { null: "never" }] },
5155

5256
// https://github.com/eslint/eslint/issues/8020
5357
{

0 commit comments

Comments
 (0)