source: frontend/node_modules/core-js-pure/modules/es.iterator.map.js

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 12 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 1.9 KB
Line 
1'use strict';
2var $ = require('../internals/export');
3var call = require('../internals/function-call');
4var aCallable = require('../internals/a-callable');
5var anObject = require('../internals/an-object');
6var getIteratorDirect = require('../internals/get-iterator-direct');
7var createIteratorProxy = require('../internals/iterator-create-proxy');
8var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
9var iteratorClose = require('../internals/iterator-close');
10var iteratorHelperThrowsOnInvalidIterator = require('../internals/iterator-helper-throws-on-invalid-iterator');
11var iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');
12var IS_PURE = require('../internals/is-pure');
13
14var MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('map', function () { /* empty */ });
15var mapWithoutClosingOnEarlyError = !IS_PURE && !MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR
16 && iteratorHelperWithoutClosingOnEarlyError('map', TypeError);
17
18var FORCED = IS_PURE || MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || mapWithoutClosingOnEarlyError;
19
20var IteratorProxy = createIteratorProxy(function () {
21 var iterator = this.iterator;
22 var result = anObject(call(this.next, iterator));
23 var done = this.done = !!result.done;
24 if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);
25});
26
27// `Iterator.prototype.map` method
28// https://tc39.es/ecma262/#sec-iterator.prototype.map
29$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {
30 map: function map(mapper) {
31 anObject(this);
32 try {
33 aCallable(mapper);
34 } catch (error) {
35 iteratorClose(this, 'throw', error);
36 }
37
38 if (mapWithoutClosingOnEarlyError) return call(mapWithoutClosingOnEarlyError, this, mapper);
39
40 return new IteratorProxy(getIteratorDirect(this), {
41 mapper: mapper
42 });
43 }
44});
Note: See TracBrowser for help on using the repository browser.