aboutsummaryrefslogtreecommitdiff
path: root/node_modules/core-js/internals/call-with-safe-iteration-closing.js
blob: 678b4d37d7ac975ed36ebf7ab63d90d26d22f82f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
var anObject = require('../internals/an-object');
var iteratorClose = require('../internals/iterator-close');

// 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) {
    iteratorClose(iterator);
    throw error;
  }
};