diff options
Diffstat (limited to 'node_modules/core-js/modules/esnext.async-iterator.map.js')
| -rw-r--r-- | node_modules/core-js/modules/esnext.async-iterator.map.js | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/node_modules/core-js/modules/esnext.async-iterator.map.js b/node_modules/core-js/modules/esnext.async-iterator.map.js new file mode 100644 index 0000000..a5c2a8a --- /dev/null +++ b/node_modules/core-js/modules/esnext.async-iterator.map.js @@ -0,0 +1,30 @@ +'use strict'; +// https://github.com/tc39/proposal-iterator-helpers +var $ = require('../internals/export'); +var aFunction = require('../internals/a-function'); +var anObject = require('../internals/an-object'); +var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy'); + +var AsyncIteratorProxy = createAsyncIteratorProxy(function (arg, Promise) { + var state = this; + var mapper = state.mapper; + + return Promise.resolve(anObject(state.next.call(state.iterator, arg))).then(function (step) { + if (anObject(step).done) { + state.done = true; + return { done: true, value: undefined }; + } + return Promise.resolve(mapper(step.value)).then(function (value) { + return { done: false, value: value }; + }); + }); +}); + +$({ target: 'AsyncIterator', proto: true, real: true }, { + map: function map(mapper) { + return new AsyncIteratorProxy({ + iterator: anObject(this), + mapper: aFunction(mapper) + }); + } +}); |
