1 var Reflect = require('./_Reflect'),
2 iteratorToArray = require('./_iteratorToArray');
4 /** Used for built-in method references. */
5 var objectProto = Object.prototype;
7 /** Built-in value references. */
8 var enumerate = Reflect ? Reflect.enumerate : undefined,
9 propertyIsEnumerable = objectProto.propertyIsEnumerable;
12 * The base implementation of `_.keysIn` which doesn't skip the constructor
13 * property of prototypes or treat sparse arrays as dense.
16 * @param {Object} object The object to query.
17 * @returns {Array} Returns the array of property names.
19 function baseKeysIn(object) {
20 object = object == null ? object : Object(object);
23 for (var key in object) {
29 // Fallback for IE < 9 with es6-shim.
30 if (enumerate && !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf')) {
31 baseKeysIn = function(object) {
32 return iteratorToArray(enumerate(object));
36 module.exports = baseKeysIn;