Skip to content

Support Number.NaN within use-isnan #14715

@esdmr

Description

@esdmr

What rule do you want to change?
use-isnan

Does this change cause the rule to produce more or fewer warnings?
More.

How will the change be implemented? (New option, new default behavior, etc.)?
Perhaps as a default behaviour, as NaN and Number.NaN are equivalent.

Please provide some example code that this change will affect:

x === NaN;
x === Number.NaN;

What does the rule currently do for this code?
Only the first line is reported as a NaN comparison. Second line does not report.

What will the rule do after it's changed?
Both lines will report as NaN comparisons. (Maybe recommending Number.isNaN instead of isNaN but that is aside)

Are you willing to submit a pull request to implement this change?
I would prefer if someone else send a PR.

At lib/rules/use-isnan.js:24:

-    return Boolean(node) && node.type === "Identifier" && node.name === "NaN";
+    return Boolean(node) && (node.type === "Identifier" && node.name === "NaN" ||
+        node.type === "MemberExpression" &&
+        node.object.type === "Identifier" && node.object.name === "Number" &&
+        node.property.type === "Identifier" && node.property.name === "NaN");

Metadata

Metadata

Assignees

No one assigned

    Labels

    acceptedThere is consensus among the team that this change meets the criteria for inclusionarchived due to ageThis issue has been archived; please open a new issue for any further discussionbugESLint is working incorrectlyrepro:yesIssues with a reproducible exampleruleRelates to ESLint's core rules

    Type

    No type

    Projects

    Status

    Complete

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions