var anObject = require('../internals/an-object'); | |
// call something on iterator step with safe closing on error | |
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 (error) { | |
var returnMethod = iterator['return']; | |
if (returnMethod !== undefined) anObject(returnMethod.call(iterator)); | |
throw error; | |
} | |
}; |