source: frontend/node_modules/object.getownpropertydescriptors/implementation.js

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 11 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 1.1 KB
Line 
1'use strict';
2
3var CreateDataProperty = require('es-abstract/2025/CreateDataProperty');
4var RequireObjectCoercible = require('es-object-atoms/RequireObjectCoercible');
5var ToObject = require('es-object-atoms/ToObject');
6var safeConcat = require('safe-array-concat');
7var reduce = require('array.prototype.reduce');
8var gOPD = require('gopd');
9var $Object = require('es-object-atoms');
10
11var $getOwnNames = $Object.getOwnPropertyNames;
12var $getSymbols = $Object.getOwnPropertySymbols;
13
14var getAll = $getSymbols ? function (obj) {
15 return safeConcat($getOwnNames(obj), $getSymbols(obj));
16} : $getOwnNames;
17
18var isES5 = gOPD && typeof $getOwnNames === 'function';
19
20module.exports = function getOwnPropertyDescriptors(value) {
21 RequireObjectCoercible(value);
22 if (!isES5) {
23 throw new TypeError('getOwnPropertyDescriptors requires Object.getOwnPropertyDescriptor');
24 }
25
26 var O = ToObject(value);
27 return reduce(
28 getAll(O),
29 function (acc, key) {
30 var descriptor = gOPD(O, key);
31 if (typeof descriptor !== 'undefined') {
32 CreateDataProperty(acc, key, descriptor);
33 }
34 return acc;
35 },
36 {}
37 );
38};
Note: See TracBrowser for help on using the repository browser.