src/base/utils.js
function(a, b) {
    if (a !== b) {
      const atype = whatis(a);
      const btype = whatis(b);

      if (atype === btype) {
        return _equal.hasOwnProperty(atype) ? _equal[atype](a, b) : a == b;
      }

      return false;
    }

    return true;
  }
function(a, b) {
    if (a !== b) {
      const atype = whatis(a);
      const btype = whatis(b);

      if (atype === btype) {
        return _equal.hasOwnProperty(atype) ? _equal[atype](a, b) : a == b;
      }

      return false;
    }

    return true;
  }
function ( a , b ) { if ( a !== b ) { const atype = whatis ( a ) ; const btype = whatis ( b ) ; if ( atype === btype ) { return _equal . hasOwnProperty ( atype ) ? _equal [ atype ] ( a , b ) : a == b ; } return false ; } return true ; }
Are two values equal, deep compare for objects and arrays.
@param a {any}
@param b {any}
@return {boolean} Are equal?
Are two values equal deep compare for objects and arrays .