MES手机端
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 
 

47 satır
1.0 KiB

  1. 'use strict';
  2. var $Map = typeof Map === 'function' && Map.prototype ? Map : null;
  3. var $Set = typeof Set === 'function' && Set.prototype ? Set : null;
  4. var exported;
  5. if (!$Set) {
  6. /** @type {import('.')} */
  7. // eslint-disable-next-line no-unused-vars
  8. exported = function isSet(x) {
  9. // `Set` is not present in this environment.
  10. return false;
  11. };
  12. }
  13. var $mapHas = $Map ? Map.prototype.has : null;
  14. var $setHas = $Set ? Set.prototype.has : null;
  15. if (!exported && !$setHas) {
  16. /** @type {import('.')} */
  17. // eslint-disable-next-line no-unused-vars
  18. exported = function isSet(x) {
  19. // `Set` does not have a `has` method
  20. return false;
  21. };
  22. }
  23. /** @type {import('.')} */
  24. module.exports = exported || function isSet(x) {
  25. if (!x || typeof x !== 'object') {
  26. return false;
  27. }
  28. try {
  29. $setHas.call(x);
  30. if ($mapHas) {
  31. try {
  32. $mapHas.call(x);
  33. } catch (e) {
  34. return true;
  35. }
  36. }
  37. // @ts-expect-error TS can't figure out that $Set is always truthy here
  38. return x instanceof $Set; // core-js workaround, pre-v2.5.0
  39. } catch (e) {}
  40. return false;
  41. };