123456789101112131415161718192021222324252627282930313233343536 |
- 'use strict';
- var assertRecord = require('../helpers/assertRecord');
- var Type = require('./Type');
- // https://ecma-international.org/ecma-262/6.0/#sec-frompropertydescriptor
- module.exports = function FromPropertyDescriptor(Desc) {
- if (typeof Desc === 'undefined') {
- return Desc;
- }
- assertRecord(Type, 'Property Descriptor', 'Desc', Desc);
- var obj = {};
- if ('[[Value]]' in Desc) {
- obj.value = Desc['[[Value]]'];
- }
- if ('[[Writable]]' in Desc) {
- obj.writable = Desc['[[Writable]]'];
- }
- if ('[[Get]]' in Desc) {
- obj.get = Desc['[[Get]]'];
- }
- if ('[[Set]]' in Desc) {
- obj.set = Desc['[[Set]]'];
- }
- if ('[[Enumerable]]' in Desc) {
- obj.enumerable = Desc['[[Enumerable]]'];
- }
- if ('[[Configurable]]' in Desc) {
- obj.configurable = Desc['[[Configurable]]'];
- }
- return obj;
- };
|