[webkit-dev] !!Tests for equality comparison

Geoffrey Garen ggaren at apple.com
Fri Apr 28 08:10:43 PDT 2017

> but == should be used for testing things where 0 is just another number, like indexes:
> if (index == 0)
The index case is especially annoying because we use -1 to indicate notFound, so !index means “the first valid index” rather than “no index”. It’s pretty odd to think of false as the first valid array index. I wouldn’t want someone to write “x = array[false]”.


If (point.x == 0)

If (gps.latitude == 0)


These are the cases where ! really grinds my gears.

Perhaps we could relax the rule to say:

Tests for true / false and null / non-null should use if (x) / if (!x) instead of equality comparisons:

    If (ptr)

Tests for numeric values where 0 indicates falsiness or emptiness should also use if (x) / if (!x).

    If (!collection.size())

Other comparisons to numeric values should use equality comparisons:

    if (index == 0)


More information about the webkit-dev mailing list