23 lines
720 B
JavaScript
23 lines
720 B
JavaScript
// https://gist.github.com/WebReflection/9353781
|
|
var $ = require('./$')
|
|
, $export = require('./$.export')
|
|
, ownKeys = require('./$.own-keys')
|
|
, toIObject = require('./$.to-iobject')
|
|
, createDesc = require('./$.property-desc');
|
|
|
|
$export($export.S, 'Object', {
|
|
getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object){
|
|
var O = toIObject(object)
|
|
, setDesc = $.setDesc
|
|
, getDesc = $.getDesc
|
|
, keys = ownKeys(O)
|
|
, result = {}
|
|
, i = 0
|
|
, key, D;
|
|
while(keys.length > i){
|
|
D = getDesc(O, key = keys[i++]);
|
|
if(key in result)setDesc(result, key, createDesc(0, D));
|
|
else result[key] = D;
|
|
} return result;
|
|
}
|
|
}); |