is-implemented.js 481 B

12345678910111213141516
  1. 'use strict';
  2. var iteratorSymbol = require('es6-symbol').iterator;
  3. module.exports = function () {
  4. var arr = ['foo', 1], iterator, result;
  5. if (typeof arr[iteratorSymbol] !== 'function') return false;
  6. iterator = arr[iteratorSymbol]();
  7. if (!iterator) return false;
  8. if (typeof iterator.next !== 'function') return false;
  9. result = iterator.next();
  10. if (!result) return false;
  11. if (result.value !== 'foo') return false;
  12. if (result.done !== false) return false;
  13. return true;
  14. };