Blame view

node_modules/es5-ext/object/get-property-names.js 491 Bytes
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  "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);
  };