is-implemented.js 1.0 KB

1234567891011121314151617181920212223242526272829303132
  1. 'use strict';
  2. module.exports = function () {
  3. var map, iterator, result;
  4. if (typeof Map !== 'function') return false;
  5. try {
  6. // WebKit doesn't support arguments and crashes
  7. map = new Map([['raz', 'one'], ['dwa', 'two'], ['trzy', 'three']]);
  8. } catch (e) {
  9. return false;
  10. }
  11. if (String(map) !== '[object Map]') return false;
  12. if (map.size !== 3) return false;
  13. if (typeof map.clear !== 'function') return false;
  14. if (typeof map.delete !== 'function') return false;
  15. if (typeof map.entries !== 'function') return false;
  16. if (typeof map.forEach !== 'function') return false;
  17. if (typeof map.get !== 'function') return false;
  18. if (typeof map.has !== 'function') return false;
  19. if (typeof map.keys !== 'function') return false;
  20. if (typeof map.set !== 'function') return false;
  21. if (typeof map.values !== 'function') return false;
  22. iterator = map.entries();
  23. result = iterator.next();
  24. if (result.done !== false) return false;
  25. if (!result.value) return false;
  26. if (result.value[0] !== 'raz') return false;
  27. if (result.value[1] !== 'one') return false;
  28. return true;
  29. };