// 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; | |
} | |
}; |