"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const index = require("../call-bind/index.cjs");
const callBound$1 = require("../call-bind/callBound.cjs");
const index$1 = require("../get-intrinsic/index.cjs");
var callBind = index.callBindExports;
var callBound = callBound$1.callBound;
var GetIntrinsic = index$1.getIntrinsic;
var $ArrayBuffer = GetIntrinsic("%ArrayBuffer%", true);
var $byteLength = callBound("ArrayBuffer.prototype.byteLength", true);
var $toString = callBound("Object.prototype.toString");
var abSlice = !!$ArrayBuffer && !$byteLength && new $ArrayBuffer(0).slice;
var $abSlice = !!abSlice && callBind(abSlice);
var isArrayBuffer = $byteLength || $abSlice ? function isArrayBuffer2(obj) {
  if (!obj || typeof obj !== "object") {
    return false;
  }
  try {
    if ($byteLength) {
      $byteLength(obj);
    } else {
      $abSlice(obj, 0);
    }
    return true;
  } catch (e) {
    return false;
  }
} : $ArrayBuffer ? function isArrayBuffer3(obj) {
  return $toString(obj) === "[object ArrayBuffer]";
} : function isArrayBuffer4(obj) {
  return false;
};
exports.isArrayBuffer = isArrayBuffer;
//# sourceMappingURL=index.cjs.map
