1// https://github.com/tc39/proposal-object-getownpropertydescriptors
2var $export = require('./_export');
3var ownKeys = require('./_own-keys');
4var toIObject = require('./_to-iobject');
5var gOPD = require('./_object-gopd');
6var createProperty = require('./_create-property');
7
8$export($export.S, 'Object', {
9  getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {
10    var O = toIObject(object);
11    var getDesc = gOPD.f;
12    var keys = ownKeys(O);
13    var result = {};
14    var i = 0;
15    var key, desc;
16    while (keys.length > i) {
17      desc = getDesc(O, key = keys[i++]);
18      if (desc !== undefined) createProperty(result, key, desc);
19    }
20    return result;
21  }
22});
23