blob: 9f6ef045ee44e9eaea4506a234f0e41e0bd1bac9 [file] [log] [blame]
Tim van der Lippefdbd42e2020-04-07 14:14:361'use strict';
2
Nikolay Vitkovd76576c2024-12-02 14:10:153var $TypeError = require('es-errors/type');
Tim van der Lippefdbd42e2020-04-07 14:14:364
5var IsAccessorDescriptor = require('./IsAccessorDescriptor');
6var IsDataDescriptor = require('./IsDataDescriptor');
Tim van der Lippefdbd42e2020-04-07 14:14:367
Nikolay Vitkovd76576c2024-12-02 14:10:158var isPropertyDescriptor = require('../helpers/records/property-descriptor');
9
10// https://262.ecma-international.org/6.0/#sec-isgenericdescriptor
Tim van der Lippefdbd42e2020-04-07 14:14:3611
12module.exports = function IsGenericDescriptor(Desc) {
13 if (typeof Desc === 'undefined') {
14 return false;
15 }
16
Nikolay Vitkovd76576c2024-12-02 14:10:1517 if (!isPropertyDescriptor(Desc)) {
18 throw new $TypeError('Assertion failed: `Desc` must be a Property Descriptor');
19 }
Tim van der Lippefdbd42e2020-04-07 14:14:3620
21 if (!IsAccessorDescriptor(Desc) && !IsDataDescriptor(Desc)) {
22 return true;
23 }
24
25 return false;
26};