'use strict'; var ES = require('es-abstract/es7'); 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 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; } }; module.exports = function getOwnPropertyDescriptors(value) { ES.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; }, {}); };
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
.editorconfig | File | 276 B | 0644 |
|
.jscs.json | File | 4.04 KB | 0644 |
|
.npmignore | File | 587 B | 0644 |
|
.travis.yml | File | 1.91 KB | 0644 |
|
CHANGELOG.md | File | 1.69 KB | 0644 |
|
LICENSE | File | 1.06 KB | 0644 |
|
Makefile | File | 3.74 KB | 0644 |
|
README.md | File | 3.63 KB | 0644 |
|
implementation.js | File | 1.21 KB | 0644 |
|
index.js | File | 316 B | 0644 |
|
package.json | File | 3.08 KB | 0644 |
|
polyfill.js | File | 227 B | 0644 |
|
shim.js | File | 381 B | 0644 |
|