Repository URL to install this package:
|
Version:
5.0.0-rc.11 ▾
|
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var _baseTimes = require('./_baseTimes.js');
var isArguments = require('./isArguments.js');
var isArray = require('./isArray.js');
var isBuffer = require('./isBuffer.js');
var _isIndex = require('./_isIndex.js');
var isTypedArray = require('./isTypedArray.js');
/** Used for built-in method references. */
var objectProto = Object.prototype;
/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;
/**
* Creates an array of the enumerable property names of the array-like `value`.
*
* @private
* @param {*} value The value to query.
* @param {boolean} inherited Specify returning inherited property names.
* @returns {Array} Returns the array of property names.
*/
function arrayLikeKeys(value, inherited) {
var isArr = isArray.default(value),
isArg = !isArr && isArguments.default(value),
isBuff = !isArr && !isArg && isBuffer.default(value),
isType = !isArr && !isArg && !isBuff && isTypedArray.default(value),
skipIndexes = isArr || isArg || isBuff || isType,
result = skipIndexes ? _baseTimes.default(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.default(key, length)
))) {
result.push(key);
}
}
return result;
}
var _arrayLikeKeys = arrayLikeKeys;
exports.__moduleExports = _arrayLikeKeys;
exports.default = _arrayLikeKeys;
//# sourceMappingURL=_arrayLikeKeys.js.map