import m from "./index.es44.js";
import { toString as h, SymbolProto as j } from "./index.es40.js";
import g from "./index.es274.js";
import V from "./index.es138.js";
import y from "./index.es41.js";
import { hasDataViewBug as A } from "./index.es42.js";
import w from "./index.es134.js";
import v from "./index.es143.js";
import a from "./index.es271.js";
import d from "./index.es275.js";
var B = "[object DataView]";
function c(e, r, f, n) {
  if (e === r) return e !== 0 || 1 / e === 1 / r;
  if (e == null || r == null) return !1;
  if (e !== e) return r !== r;
  var o = typeof e;
  return o !== "function" && o !== "object" && typeof r != "object" ? !1 : D(e, r, f, n);
}
function D(e, r, f, n) {
  e instanceof m && (e = e._wrapped), r instanceof m && (r = r._wrapped);
  var o = h.call(e);
  if (o !== h.call(r)) return !1;
  if (A && o == "[object Object]" && w(e)) {
    if (!w(r)) return !1;
    o = B;
  }
  switch (o) {
    // These types are compared by value.
    case "[object RegExp]":
    // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')
    case "[object String]":
      return "" + e == "" + r;
    case "[object Number]":
      return +e != +e ? +r != +r : +e == 0 ? 1 / +e === 1 / r : +e == +r;
    case "[object Date]":
    case "[object Boolean]":
      return +e == +r;
    case "[object Symbol]":
      return j.valueOf.call(e) === j.valueOf.call(r);
    case "[object ArrayBuffer]":
    case B:
      return D(d(e), d(r), f, n);
  }
  var i = o === "[object Array]";
  if (!i && V(e)) {
    var O = g(e);
    if (O !== g(r)) return !1;
    if (e.buffer === r.buffer && e.byteOffset === r.byteOffset) return !0;
    i = !0;
  }
  if (!i) {
    if (typeof e != "object" || typeof r != "object") return !1;
    var u = e.constructor, s = r.constructor;
    if (u !== s && !(y(u) && u instanceof u && y(s) && s instanceof s) && "constructor" in e && "constructor" in r)
      return !1;
  }
  f = f || [], n = n || [];
  for (var t = f.length; t--; )
    if (f[t] === e) return n[t] === r;
  if (f.push(e), n.push(r), i) {
    if (t = e.length, t !== r.length) return !1;
    for (; t--; )
      if (!c(e[t], r[t], f, n)) return !1;
  } else {
    var p = v(e), l;
    if (t = p.length, v(r).length !== t) return !1;
    for (; t--; )
      if (l = p[t], !(a(r, l) && c(e[l], r[l], f, n))) return !1;
  }
  return f.pop(), n.pop(), !0;
}
function z(e, r) {
  return c(e, r);
}
export {
  z as default
};
//# sourceMappingURL=index.es141.js.map
