// call something on iterator step with safe closing on error | |
var anObject = require('./_an-object'); | |
module.exports = function (iterator, fn, value, entries) { | |
try { | |
return entries ? fn(anObject(value)[0], value[1]) : fn(value); | |
// 7.4.6 IteratorClose(iterator, completion) | |
} catch (e) { | |
var ret = iterator['return']; | |
if (ret !== undefined) anObject(ret.call(iterator)); | |
throw e; | |
} | |
}; |