28 lines
819 B
Plaintext
28 lines
819 B
Plaintext
|
/*!
|
||
|
* Chai - getOwnEnumerablePropertySymbols utility
|
||
|
* Copyright(c) 2011-2016 Jake Luer <jake@alogicalparadox.com>
|
||
|
* MIT Licensed
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* ### .getOwnEnumerablePropertySymbols(object)
|
||
|
*
|
||
|
* This allows the retrieval of directly-owned enumerable property symbols of an
|
||
|
* object. This function is necessary because Object.getOwnPropertySymbols
|
||
|
* returns both enumerable and non-enumerable property symbols.
|
||
|
*
|
||
|
* @param {Object} object
|
||
|
* @returns {Array}
|
||
|
* @namespace Utils
|
||
|
* @name getOwnEnumerablePropertySymbols
|
||
|
* @api public
|
||
|
*/
|
||
|
|
||
|
module.exports = function getOwnEnumerablePropertySymbols(obj) {
|
||
|
if (typeof Object.getOwnPropertySymbols !== 'function') return [];
|
||
|
|
||
|
return Object.getOwnPropertySymbols(obj).filter(function (sym) {
|
||
|
return Object.getOwnPropertyDescriptor(obj, sym).enumerable;
|
||
|
});
|
||
|
};
|