blob: f7bf73afb1c1617b04596a6e2af6d1617857bf1e [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
Nikolay Vitkovd76576c2024-12-02 14:10:155var hasOwn = require('hasown');
Tim van der Lippefdbd42e2020-04-07 14:14:366
Nikolay Vitkovd76576c2024-12-02 14:10:157var isPropertyDescriptor = require('../helpers/records/property-descriptor');
Tim van der Lippefdbd42e2020-04-07 14:14:368
Nikolay Vitkovd76576c2024-12-02 14:10:159// https://262.ecma-international.org/5.1/#sec-8.10.1
Tim van der Lippefdbd42e2020-04-07 14:14:3610
11module.exports = function IsAccessorDescriptor(Desc) {
12 if (typeof Desc === 'undefined') {
13 return false;
14 }
15
Nikolay Vitkovd76576c2024-12-02 14:10:1516 if (!isPropertyDescriptor(Desc)) {
17 throw new $TypeError('Assertion failed: `Desc` must be a Property Descriptor');
18 }
Tim van der Lippefdbd42e2020-04-07 14:14:3619
Nikolay Vitkovd76576c2024-12-02 14:10:1520 if (!hasOwn(Desc, '[[Get]]') && !hasOwn(Desc, '[[Set]]')) {
Tim van der Lippefdbd42e2020-04-07 14:14:3621 return false;
22 }
23
24 return true;
25};