1// call something on iterator step with safe closing on error 2var anObject = require('./_an-object'); 3module.exports = function (iterator, fn, value, entries) { 4 try { 5 return entries ? fn(anObject(value)[0], value[1]) : fn(value); 6 // 7.4.6 IteratorClose(iterator, completion) 7 } catch (e) { 8 var ret = iterator['return']; 9 if (ret !== undefined) anObject(ret.call(iterator)); 10 throw e; 11 } 12}; 13