"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const shams = require("../has-tostringtag/shams.cjs");
const callBound$1 = require("../call-bind/callBound.cjs");
var hasToStringTag = shams.shams();
var callBound = callBound$1.callBound;
var $toString = callBound("Object.prototype.toString");
var isStandardArguments = function isArguments(value) {
  if (hasToStringTag && value && typeof value === "object" && Symbol.toStringTag in value) {
    return false;
  }
  return $toString(value) === "[object Arguments]";
};
var isLegacyArguments = function isArguments2(value) {
  if (isStandardArguments(value)) {
    return true;
  }
  return value !== null && typeof value === "object" && typeof value.length === "number" && value.length >= 0 && $toString(value) !== "[object Array]" && $toString(value.callee) === "[object Function]";
};
var supportsStandardArguments = function() {
  return isStandardArguments(arguments);
}();
isStandardArguments.isLegacyArguments = isLegacyArguments;
var isArguments3 = supportsStandardArguments ? isStandardArguments : isLegacyArguments;
exports.isArguments = isArguments3;
//# sourceMappingURL=index.cjs.map
