"use strict";
const _baseTimes = require("./_baseTimes.js");
const isArguments$1 = require("./isArguments.js");
const isArray$1 = require("./isArray.js");
require("./isBuffer.js");
const _isIndex = require("./_isIndex.js");
const isTypedArray$1 = require("./isTypedArray.js");
const isBuffer$1 = require("../../../../../_virtual/isBuffer.js");
var baseTimes = _baseTimes, isArguments = isArguments$1, isArray = isArray$1, isBuffer = isBuffer$1.isBuffer.exports, isIndex = _isIndex, isTypedArray = isTypedArray$1;
var objectProto = Object.prototype;
var hasOwnProperty = objectProto.hasOwnProperty;
function arrayLikeKeys(value, inherited) {
  var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(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 && (key == "length" || isBuff && (key == "offset" || key == "parent") || isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || isIndex(key, length)))) {
      result.push(key);
    }
  }
  return result;
}
var _arrayLikeKeys = arrayLikeKeys;
module.exports = _arrayLikeKeys;
//# sourceMappingURL=_arrayLikeKeys.js.map
