UNPKG

776 BJavaScriptView Raw
1var isPrototype = require('./_isPrototype'),
2 nativeKeys = require('./_nativeKeys');
3
4/** Used for built-in method references. */
5var objectProto = Object.prototype;
6
7/** Used to check objects for own properties. */
8var hasOwnProperty = objectProto.hasOwnProperty;
9
10/**
11 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
12 *
13 * @private
14 * @param {Object} object The object to query.
15 * @returns {Array} Returns the array of property names.
16 */
17function baseKeys(object) {
18 if (!isPrototype(object)) {
19 return nativeKeys(object);
20 }
21 var result = [];
22 for (var key in Object(object)) {
23 if (hasOwnProperty.call(object, key) && key != 'constructor') {
24 result.push(key);
25 }
26 }
27 return result;
28}
29
30module.exports = baseKeys;