'use strict'; 
 | 
var $ = require('../internals/export'); 
 | 
var iterate = require('../internals/iterate'); 
 | 
var aCallable = require('../internals/a-callable'); 
 | 
var anObject = require('../internals/an-object'); 
 | 
var getIteratorDirect = require('../internals/get-iterator-direct'); 
 | 
  
 | 
// `Iterator.prototype.forEach` method 
 | 
// https://tc39.es/ecma262/#sec-iterator.prototype.foreach 
 | 
$({ target: 'Iterator', proto: true, real: true }, { 
 | 
  forEach: function forEach(fn) { 
 | 
    anObject(this); 
 | 
    aCallable(fn); 
 | 
    var record = getIteratorDirect(this); 
 | 
    var counter = 0; 
 | 
    iterate(record, function (value) { 
 | 
      fn(value, counter++); 
 | 
    }, { IS_RECORD: true }); 
 | 
  } 
 | 
}); 
 |