保誠-保戶業務員媒合平台
Tomas
2022-05-19 957a1f10a06fdbb76f1a0ba94fe44126c613fee3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
'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;
};