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.
|
|
'use strict';
var GetIntrinsic = require('get-intrinsic');
var has = require('has'); var $TypeError = GetIntrinsic('%TypeError%');
module.exports = function IsPropertyDescriptor(ES, Desc) { if (ES.Type(Desc) !== 'Object') { return false; } var allowed = { '[[Configurable]]': true, '[[Enumerable]]': true, '[[Get]]': true, '[[Set]]': true, '[[Value]]': true, '[[Writable]]': true };
for (var key in Desc) { // eslint-disable-line no-restricted-syntax
if (has(Desc, key) && !allowed[key]) { return false; } }
if (ES.IsDataDescriptor(Desc) && ES.IsAccessorDescriptor(Desc)) { throw new $TypeError('Property Descriptors may not be both accessor and data descriptors'); } return true; };
|