function isFailure(errors) {
  return errors && !!find(errors, function(msg) {
    if (msg.code[0] === "W") {
      return msg.code in incorrectSeverity;
    } else if (msg.code[0] === "I") {
      return false;
    }

    return !(msg.code in incorrectSeverity);
  });
}
JSHint "error" messages generally indicate a parsing failure and "warning"
messages generally indicate more objective problems with technically-valid
programs. This convention is not consistently honored, however, so
interpreting parsing success/failure from message code requires the
following list of "contradictory" codes.