isWeakSet.js 887 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. var isObjectLike = require('./isObjectLike');
  2. /** `Object#toString` result references. */
  3. var weakSetTag = '[object WeakSet]';
  4. /** Used for built-in method references. */
  5. var objectProto = Object.prototype;
  6. /**
  7. * Used to resolve the
  8. * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
  9. * of values.
  10. */
  11. var objectToString = objectProto.toString;
  12. /**
  13. * Checks if `value` is classified as a `WeakSet` object.
  14. *
  15. * @static
  16. * @memberOf _
  17. * @since 4.3.0
  18. * @category Lang
  19. * @param {*} value The value to check.
  20. * @returns {boolean} Returns `true` if `value` is correctly classified,
  21. * else `false`.
  22. * @example
  23. *
  24. * _.isWeakSet(new WeakSet);
  25. * // => true
  26. *
  27. * _.isWeakSet(new Set);
  28. * // => false
  29. */
  30. function isWeakSet(value) {
  31. return isObjectLike(value) && objectToString.call(value) == weakSetTag;
  32. }
  33. module.exports = isWeakSet;