Skip to content

Files

Latest commit

6e2ada9 · Jan 7, 2024

History

History

is-accessor-property-in

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Sep 27, 2022
Jan 7, 2024
May 5, 2021
Sep 23, 2022
Jul 24, 2023
Sep 7, 2021
May 5, 2021

isAccessorPropertyIn

Test if an object's own or inherited property has an accessor descriptor.

Usage

var isAccessorPropertyIn = require( '@stdlib/assert/is-accessor-property-in' );

isAccessorPropertyIn( value, property )

Returns a boolean indicating if an object's own or inherited property has an accessor descriptor.

var defineProperty = require( '@stdlib/utils/define-property' );

var bool;
var obj;

function Foo() {
    this.foo = 'bar';
    return this;
}

defineProperty( Foo.prototype, 'beep', {
    'configurable': false,
    'enumerable': false,
    'writable': false,
    'value': 'boop'
});

defineProperty( Foo.prototype, 'accessor', {
    'configurable': false,
    'enumerable': false,
    'get': function getter() {
        return obj.foo;
    },
    'set': function setter( v ) {
        obj.foo = v;
    }
});

obj = new Foo();

bool = isAccessorPropertyIn( obj, 'foo' );
// returns false

bool = isAccessorPropertyIn( obj, 'beep' );
// returns false

bool = isAccessorPropertyIn( obj, 'accessor' );
// returns true

Notes

  • Value arguments other than null or undefined are coerced to objects.

    var bool = isAccessorPropertyIn( 'beep', 'length' );
    // returns false
  • Non-symbol property arguments are coerced to strings.

    var defineProperty = require( '@stdlib/utils/define-property' );
    
    var obj = {};
    
    function getter() {
        return true;
    }
    
    defineProperty( obj, 'null', {
        'configurable': true,
        'enumerable': true,
        'get': getter
    });
    
    var bool = isAccessorPropertyIn( obj, null );
    // returns true

Examples

var isAccessorPropertyIn = require( '@stdlib/assert/is-accessor-property-in' );

var bool = isAccessorPropertyIn( [ 'a' ], 'length' );
// returns false

bool = isAccessorPropertyIn( { 'a': 'b' }, 'a' );
// returns false

bool = isAccessorPropertyIn( [ 'a' ], 0 );
// returns false

bool = isAccessorPropertyIn( { 'null': false }, null );
// returns false

bool = isAccessorPropertyIn( { '[object Object]': false }, {} );
// returns false

bool = isAccessorPropertyIn( {}, 'toString' );
// returns false

bool = isAccessorPropertyIn( {}, 'hasOwnProperty' );
// returns false

bool = isAccessorPropertyIn( null, 'a' );
// returns false

bool = isAccessorPropertyIn( void 0, 'a' );
// returns false

See Also