Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/object.getownpropertydescriptors/implementation.js')
-rw-r--r--node_modules/object.getownpropertydescriptors/implementation.js60
1 files changed, 27 insertions, 33 deletions
diff --git a/node_modules/object.getownpropertydescriptors/implementation.js b/node_modules/object.getownpropertydescriptors/implementation.js
index 784c22c99..529f86e95 100644
--- a/node_modules/object.getownpropertydescriptors/implementation.js
+++ b/node_modules/object.getownpropertydescriptors/implementation.js
@@ -1,44 +1,38 @@
'use strict';
-var ES = require('es-abstract/es7');
+var CreateDataProperty = require('es-abstract/2019/CreateDataProperty');
+var IsCallable = require('es-abstract/2019/IsCallable');
+var RequireObjectCoercible = require('es-abstract/2019/RequireObjectCoercible');
+var ToObject = require('es-abstract/2019/ToObject');
+var callBound = require('es-abstract/helpers/callBound');
-var defineProperty = Object.defineProperty;
-var getDescriptor = Object.getOwnPropertyDescriptor;
-var getOwnNames = Object.getOwnPropertyNames;
-var getSymbols = Object.getOwnPropertySymbols;
-var concat = Function.call.bind(Array.prototype.concat);
-var reduce = Function.call.bind(Array.prototype.reduce);
-var getAll = getSymbols ? function (obj) {
- return concat(getOwnNames(obj), getSymbols(obj));
-} : getOwnNames;
+var $gOPD = Object.getOwnPropertyDescriptor;
+var $getOwnNames = Object.getOwnPropertyNames;
+var $getSymbols = Object.getOwnPropertySymbols;
+var $concat = callBound('Array.prototype.concat');
+var $reduce = callBound('Array.prototype.reduce');
+var getAll = $getSymbols ? function (obj) {
+ return $concat($getOwnNames(obj), $getSymbols(obj));
+} : $getOwnNames;
-var isES5 = ES.IsCallable(getDescriptor) && ES.IsCallable(getOwnNames);
-
-var safePut = function put(obj, prop, val) { // eslint-disable-line max-params
- if (defineProperty && prop in obj) {
- defineProperty(obj, prop, {
- configurable: true,
- enumerable: true,
- value: val,
- writable: true
- });
- } else {
- obj[prop] = val;
- }
-};
+var isES5 = IsCallable($gOPD) && IsCallable($getOwnNames);
module.exports = function getOwnPropertyDescriptors(value) {
- ES.RequireObjectCoercible(value);
+ RequireObjectCoercible(value);
if (!isES5) {
throw new TypeError('getOwnPropertyDescriptors requires Object.getOwnPropertyDescriptor');
}
- var O = ES.ToObject(value);
- return reduce(getAll(O), function (acc, key) {
- var descriptor = getDescriptor(O, key);
- if (typeof descriptor !== 'undefined') {
- safePut(acc, key, descriptor);
- }
- return acc;
- }, {});
+ var O = ToObject(value);
+ return $reduce(
+ getAll(O),
+ function (acc, key) {
+ var descriptor = $gOPD(O, key);
+ if (typeof descriptor !== 'undefined') {
+ CreateDataProperty(acc, key, descriptor);
+ }
+ return acc;
+ },
+ {}
+ );
};