_isKeyable.js 430 B

123456789101112131415
  1. /**
  2. * Checks if `value` is suitable for use as unique object key.
  3. *
  4. * @private
  5. * @param {*} value The value to check.
  6. * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
  7. */
  8. function isKeyable(value) {
  9. var type = typeof value;
  10. return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
  11. ? (value !== '__proto__')
  12. : (value === null);
  13. }
  14. module.exports = isKeyable;