diff options
Diffstat (limited to 'node_modules/core-js/modules/esnext.async-iterator.from.js')
| -rw-r--r-- | node_modules/core-js/modules/esnext.async-iterator.from.js | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/node_modules/core-js/modules/esnext.async-iterator.from.js b/node_modules/core-js/modules/esnext.async-iterator.from.js new file mode 100644 index 0000000..e986a73 --- /dev/null +++ b/node_modules/core-js/modules/esnext.async-iterator.from.js @@ -0,0 +1,30 @@ +// https://github.com/tc39/proposal-iterator-helpers +var $ = require('../internals/export'); +var path = require('../internals/path'); +var aFunction = require('../internals/a-function'); +var anObject = require('../internals/an-object'); +var toObject = require('../internals/to-object'); +var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy'); +var getAsyncIteratorMethod = require('../internals/get-async-iterator-method'); + +var AsyncIterator = path.AsyncIterator; + +var AsyncIteratorProxy = createAsyncIteratorProxy(function (arg) { + return anObject(this.next.call(this.iterator, arg)); +}, true); + +$({ target: 'AsyncIterator', stat: true }, { + from: function from(O) { + var object = toObject(O); + var usingIterator = getAsyncIteratorMethod(object); + var iterator; + if (usingIterator != null) { + iterator = aFunction(usingIterator).call(object); + if (iterator instanceof AsyncIterator) return iterator; + } else { + iterator = object; + } return new AsyncIteratorProxy({ + iterator: iterator + }); + } +}); |
