Spaces:
Runtime error
Runtime error
; | |
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); | |
}; | |