diff options
Diffstat (limited to 'src/node_modules/es-abstract/2019/FromPropertyDescriptor.js')
-rw-r--r-- | src/node_modules/es-abstract/2019/FromPropertyDescriptor.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/node_modules/es-abstract/2019/FromPropertyDescriptor.js b/src/node_modules/es-abstract/2019/FromPropertyDescriptor.js new file mode 100644 index 0000000..5ec200e --- /dev/null +++ b/src/node_modules/es-abstract/2019/FromPropertyDescriptor.js @@ -0,0 +1,36 @@ +'use strict'; + +var assertRecord = require('../helpers/assertRecord'); + +var Type = require('./Type'); + +// https://www.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; +}; |