Operation Has No Effect

The linter will warn when it sees an expression that is typically used only for its value in a place where its value is not used. This often happens when a programmer meant to call a function but didn't.

  myObject.myMethod;
or confused a comparison with an assignment
  foo == bar;
or typed + instead of +=
  output + part;
or typed , instead of ; changing the meaning of return statements in hard to read ways.
  if (c)
    return 4,
  foo()

If you have an expression like this that legitimately has a side effect, just put void in front of it to tell the linter, "I am discarding the value explicitly", so instead of

  el.parentNode.selectedIndex;  // Safari HACK
do
  void el.parentNode.selectedIndex;  // Safari HACK
The optimizer will take out the unnecessary void.

As always, to turn this off, put the error message name NO_SIDE_EFFECT in the ignores list.