222
schangxiang@126.com
2025-06-13 6a8393408d8cefcea02b7a598967de8dc1e565c2
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);
};