"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const _baseTimes = require("./_baseTimes.cjs");
const isArguments = require("./isArguments.cjs");
const isArray = require("./isArray.cjs");
const isBuffer = require("./isBuffer.cjs");
const _isIndex = require("./_isIndex.cjs");
const isTypedArray = require("./isTypedArray.cjs");
var _arrayLikeKeys;
var hasRequired_arrayLikeKeys;
function require_arrayLikeKeys() {
  if (hasRequired_arrayLikeKeys)
    return _arrayLikeKeys;
  hasRequired_arrayLikeKeys = 1;
  var baseTimes = _baseTimes.__require(), isArguments$1 = isArguments.__require(), isArray$1 = isArray.__require(), isBuffer$1 = isBuffer.__require(), isIndex = _isIndex.__require(), isTypedArray$1 = isTypedArray.__require();
  var objectProto = Object.prototype;
  var hasOwnProperty = objectProto.hasOwnProperty;
  function arrayLikeKeys(value, inherited) {
    var isArr = isArray$1(value), isArg = !isArr && isArguments$1(value), isBuff = !isArr && !isArg && isBuffer$1(value), isType = !isArr && !isArg && !isBuff && isTypedArray$1(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length;
    for (var key in value) {
      if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.
      (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
      isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
      isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties.
      isIndex(key, length)))) {
        result.push(key);
      }
    }
    return result;
  }
  _arrayLikeKeys = arrayLikeKeys;
  return _arrayLikeKeys;
}
exports.__require = require_arrayLikeKeys;
//# sourceMappingURL=_arrayLikeKeys.cjs.map
