es7.object.get-own-property-descriptors.js 720 B

1234567891011121314151617181920212223
  1. // https://gist.github.com/WebReflection/9353781
  2. var $ = require('./$')
  3. , $export = require('./$.export')
  4. , ownKeys = require('./$.own-keys')
  5. , toIObject = require('./$.to-iobject')
  6. , createDesc = require('./$.property-desc');
  7. $export($export.S, 'Object', {
  8. getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object){
  9. var O = toIObject(object)
  10. , setDesc = $.setDesc
  11. , getDesc = $.getDesc
  12. , keys = ownKeys(O)
  13. , result = {}
  14. , i = 0
  15. , key, D;
  16. while(keys.length > i){
  17. D = getDesc(O, key = keys[i++]);
  18. if(key in result)setDesc(result, key, createDesc(0, D));
  19. else result[key] = D;
  20. } return result;
  21. }
  22. });