propertySymbolsIn

Return an array of an object's own and inherited symbol properties.

Usage

var propertySymbolsIn = require( '@stdlib/utils/property-symbols-in' );

propertySymbolsIn( obj )

Returns an array of an object's own and inherited symbol properties.

var symbols = propertySymbolsIn( [] );

Notes

  • In contrast to the built-in Object.getOwnPropertySymbols(), if provided null or undefined, the function returns an empty array, rather than throwing an error.

Examples

var hasSymbolSupport = require( '@stdlib/assert/has-symbol-support' );
var Symbol = require( '@stdlib/symbol/ctor' );
var propertySymbolsIn = require( '@stdlib/utils/property-symbols-in' );

var hasSymbols;
var symbols;
var obj;

hasSymbols = hasSymbolSupport();

function Foo() {
    if ( hasSymbols ) {
        this[ Symbol( 'beep' ) ] = 'boop';
    }
    return this;
}

if ( hasSymbols ) {
    Foo.prototype[ Symbol( 'foo' ) ] = 'bar';
}

obj = new Foo();
symbols = propertySymbolsIn( obj );

console.log( symbols );