Projekt

Obecné

Profil

Stáhnout (870 Bajtů) Statistiky
| Větev: | Revize:
1
var isObject = require('./isObject'),
2
    isPrototype = require('./_isPrototype'),
3
    nativeKeysIn = require('./_nativeKeysIn');
4

    
5
/** Used for built-in method references. */
6
var objectProto = Object.prototype;
7

    
8
/** Used to check objects for own properties. */
9
var hasOwnProperty = objectProto.hasOwnProperty;
10

    
11
/**
12
 * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
13
 *
14
 * @private
15
 * @param {Object} object The object to query.
16
 * @returns {Array} Returns the array of property names.
17
 */
18
function baseKeysIn(object) {
19
  if (!isObject(object)) {
20
    return nativeKeysIn(object);
21
  }
22
  var isProto = isPrototype(object),
23
      result = [];
24

    
25
  for (var key in object) {
26
    if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
27
      result.push(key);
28
    }
29
  }
30
  return result;
31
}
32

    
33
module.exports = baseKeysIn;
(92-92/634)