call-with-safe-iteration-closing.js 427 B

12345678910111213
  1. var anObject = require('../internals/an-object');
  2. var iteratorClose = require('../internals/iterator-close');
  3. // call something on iterator step with safe closing on error
  4. module.exports = function (iterator, fn, value, ENTRIES) {
  5. try {
  6. return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);
  7. // 7.4.6 IteratorClose(iterator, completion)
  8. } catch (error) {
  9. iteratorClose(iterator);
  10. throw error;
  11. }
  12. };