Tim van der Lippe | fdbd42e | 2020-04-07 14:14:36 | [diff] [blame] | 1 | 'use strict'; |
| 2 | |
Nikolay Vitkov | d76576c | 2024-12-02 14:10:15 | [diff] [blame] | 3 | var $TypeError = require('es-errors/type'); |
Tim van der Lippe | fdbd42e | 2020-04-07 14:14:36 | [diff] [blame] | 4 | |
| 5 | var IsAccessorDescriptor = require('./IsAccessorDescriptor'); |
| 6 | var IsDataDescriptor = require('./IsDataDescriptor'); |
Tim van der Lippe | fdbd42e | 2020-04-07 14:14:36 | [diff] [blame] | 7 | |
Nikolay Vitkov | d76576c | 2024-12-02 14:10:15 | [diff] [blame] | 8 | var isPropertyDescriptor = require('../helpers/records/property-descriptor'); |
| 9 | |
| 10 | // https://262.ecma-international.org/6.0/#sec-isgenericdescriptor |
Tim van der Lippe | fdbd42e | 2020-04-07 14:14:36 | [diff] [blame] | 11 | |
| 12 | module.exports = function IsGenericDescriptor(Desc) { |
| 13 | if (typeof Desc === 'undefined') { |
| 14 | return false; |
| 15 | } |
| 16 | |
Nikolay Vitkov | d76576c | 2024-12-02 14:10:15 | [diff] [blame] | 17 | if (!isPropertyDescriptor(Desc)) { |
| 18 | throw new $TypeError('Assertion failed: `Desc` must be a Property Descriptor'); |
| 19 | } |
Tim van der Lippe | fdbd42e | 2020-04-07 14:14:36 | [diff] [blame] | 20 | |
| 21 | if (!IsAccessorDescriptor(Desc) && !IsDataDescriptor(Desc)) { |
| 22 | return true; |
| 23 | } |
| 24 | |
| 25 | return false; |
| 26 | }; |