News for hackers. Stuff that matters.
Re:NPM Vulnerability Discussion on Twitter by jefftk on Tuesday May 10, 2022 @10:01AM (#31327214)
Which wasn't everywhere in 2017, when isnan was created: IE11 didn't (and still doesn't, though it's less relevant) have isNaN()

(Not supporting a culture of taking a dependency for this sort of thing, though)

Re:NPM Vulnerability Discussion on Twitter by jaywalk on Tuesday May 10, 2022 @10:22AM (#31327482)
Just to be clear, because your comment made no sense to me: what IE11 doesn't support is Number.isNaN(). It definitely does support (and has since IE3) plain isNaN(): https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...
Re:NPM Vulnerability Discussion on Twitter by jefftk on Tuesday May 10, 2022 @11:03AM (#31327967)
Regular isNaN is very tricky, and almost never what you want: it first coerces its input to a Number, and then checks if that is NaN:

                isNaN   Number.isNaN
                -----   ------------
    {}           true          false
    [true]       true          false
    undefined    true          false
    "{}"         true          false
Re:NPM Vulnerability Discussion on Twitter by jaywalk on Tuesday May 10, 2022 @11:50AM (#31328546)
But none of those things you listed are numbers. The isNaN output is exactly what I want in pretty much every case.
Re:NPM Vulnerability Discussion on Twitter by jefftk on Tuesday May 10, 2022 @11:55AM (#31328620)
isNaN does not tell you whether something is not a Number either. Applying isNaN to any of these returns false: null, true, false, [], "", "cabbage".