import m from "./_Symbol.js";
import t from "./_Uint8Array.js";
import A from "./eq.js";
import b from "./_equalArrays.js";
import o from "./_mapToArray.js";
import d from "./_setToArray.js";
var L = 1, O = 2, v = "[object Boolean]", E = "[object Date]", R = "[object Error]", w = "[object Map]", B = "[object Number]", D = "[object RegExp]", P = "[object Set]", S = "[object String]", _ = "[object Symbol]", c = "[object ArrayBuffer]", x = "[object DataView]", i = m ? m.prototype : void 0, n = i ? i.valueOf : void 0;
function N(e, a, l, s, y, u, r) {
  switch (l) {
    case x:
      if (e.byteLength != a.byteLength || e.byteOffset != a.byteOffset)
        return !1;
      e = e.buffer, a = a.buffer;
    case c:
      return !(e.byteLength != a.byteLength || !u(new t(e), new t(a)));
    case v:
    case E:
    case B:
      return A(+e, +a);
    case R:
      return e.name == a.name && e.message == a.message;
    case D:
    case S:
      return e == a + "";
    case w:
      var f = o;
    case P:
      var T = s & L;
      if (f || (f = d), e.size != a.size && !T)
        return !1;
      var g = r.get(e);
      if (g)
        return g == a;
      s |= O, r.set(e, a);
      var p = b(f(e), f(a), s, y, u, r);
      return r.delete(e), p;
    case _:
      if (n)
        return n.call(e) == n.call(a);
  }
  return !1;
}
export {
  N as default
};
//# sourceMappingURL=_equalByTag.js.map
