You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							36 lines
						
					
					
						
							797 B
						
					
					
				
			
		
		
	
	
							36 lines
						
					
					
						
							797 B
						
					
					
				'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; | 
						|
};
 | 
						|
 |