Show More
Commit Description:
use uuid cookie
Commit Description:
use uuid cookie
References:
File last commit:
Show/Diff file:
Action:
node_modules/es-abstract/5/FromPropertyDescriptor.js
| 39 lines
| 1.0 KiB
| application/javascript
| JavascriptLexer
|
r789 | 'use strict'; | |||
var GetIntrinsic = require('../GetIntrinsic'); | ||||
var $TypeError = GetIntrinsic('%TypeError%'); | ||||
var Type = require('./Type'); | ||||
var IsDataDescriptor = require('./IsDataDescriptor'); | ||||
var IsAccessorDescriptor = require('./IsAccessorDescriptor'); | ||||
var assertRecord = require('../helpers/assertRecord'); | ||||
// https://ecma-international.org/ecma-262/5.1/#sec-8.10.4 | ||||
module.exports = function FromPropertyDescriptor(Desc) { | ||||
if (typeof Desc === 'undefined') { | ||||
return Desc; | ||||
} | ||||
assertRecord(Type, 'Property Descriptor', 'Desc', Desc); | ||||
if (IsDataDescriptor(Desc)) { | ||||
return { | ||||
value: Desc['[[Value]]'], | ||||
writable: !!Desc['[[Writable]]'], | ||||
enumerable: !!Desc['[[Enumerable]]'], | ||||
configurable: !!Desc['[[Configurable]]'] | ||||
}; | ||||
} else if (IsAccessorDescriptor(Desc)) { | ||||
return { | ||||
get: Desc['[[Get]]'], | ||||
set: Desc['[[Set]]'], | ||||
enumerable: !!Desc['[[Enumerable]]'], | ||||
configurable: !!Desc['[[Configurable]]'] | ||||
}; | ||||
} else { | ||||
throw new $TypeError('FromPropertyDescriptor must be called with a fully populated Property Descriptor'); | ||||
} | ||||
}; | ||||