aboutsummaryrefslogtreecommitdiff
path: root/node_modules/core-js/library/modules/_object-keys-internal.js
blob: e23481d7c29b16f7cdf351e3f50c44757b1b17d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var has          = require('./_has')
  , toIObject    = require('./_to-iobject')
  , arrayIndexOf = require('./_array-includes')(false)
  , IE_PROTO     = require('./_shared-key')('IE_PROTO');

module.exports = function(object, names){
  var O      = toIObject(object)
    , i      = 0
    , result = []
    , key;
  for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);
  // Don't enum bug & hidden keys
  while(names.length > i)if(has(O, key = names[i++])){
    ~arrayIndexOf(result, key) || result.push(key);
  }
  return result;
};