Blame view

node_modules/es5-ext/object/get-property-names.js 444 Bytes
f7563de62   Palak Handa   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  'use strict';
  
  var uniq  = require('../array/#/uniq')
    , value = require('./valid-value')
  
    , push = Array.prototype.push
    , getOwnPropertyNames = Object.getOwnPropertyNames
    , getPrototypeOf = Object.getPrototypeOf;
  
  module.exports = function (obj) {
  	var keys;
  	obj = Object(value(obj));
  	keys = getOwnPropertyNames(obj);
  	while ((obj = getPrototypeOf(obj))) {
  		push.apply(keys, getOwnPropertyNames(obj));
  	}
  	return uniq.call(keys);
  };