code: function equal(a, b) {
          if (a === b) return true;
          if (a === undefined || b === undefined) return false;
          if (a === null || b === null) return false;
          if (a.constructor === String) return a.localeCompare(b) === 0;
          if (b.constructor === String) return b.localeCompare(a) === 0;
          return false;
      }
docs: Compares equality of a and b taking into account that a and b may be strings, in which case localeCompare is used
  @param a
  @param b