code: function deepEqual(a, b, m) {
    if (sameValue(a, b)) {
      return true;
    } else if ('date' === type(a)) {
      return dateEqual(a, b);
    } else if ('regexp' === type(a)) {
      return regexpEqual(a, b);
    } else if (Buffer.isBuffer(a)) {
      return bufferEqual(a, b);
    } else if ('arguments' === type(a)) {
      return argumentsEqual(a, b, m);
    } else if (!typeEqual(a, b)) {
      return false;
    } else if (('object' !== type(a) && 'object' !== type(b))
    && ('array' !== type(a) && 'array' !== type(b))) {
      return sameValue(a, b);
    } else {
      return objectEqual(a, b, m);
    }
  }
docs: Assert super-strict (egal) equality between
  two objects of any type.
  
  @param {Mixed} a
  @param {Mixed} b
  @param {Array} memoised (optional)
  @return {Boolean} equal match