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; 31