| '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 }); | 
|   } | 
| }); |