diff options
| author | Priyansh <[email protected]> | 2020-12-22 17:49:59 +0530 |
|---|---|---|
| committer | Priyansh <[email protected]> | 2020-12-22 17:49:59 +0530 |
| commit | e93da8b04da86773247aadb1cbb1912e4f4526b2 (patch) | |
| tree | eb4ef3203a92ed3dbd2252ddb1ea23bd2d670c98 /node_modules/core-js/internals/async-iterator-create-proxy.js | |
| parent | a5743c293dcb435e4b159a4df791f8955a4110ec (diff) | |
| download | styx-e93da8b04da86773247aadb1cbb1912e4f4526b2.tar.xz styx-e93da8b04da86773247aadb1cbb1912e4f4526b2.zip | |
Rewriting Project
Diffstat (limited to 'node_modules/core-js/internals/async-iterator-create-proxy.js')
| -rw-r--r-- | node_modules/core-js/internals/async-iterator-create-proxy.js | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/node_modules/core-js/internals/async-iterator-create-proxy.js b/node_modules/core-js/internals/async-iterator-create-proxy.js new file mode 100644 index 0000000..9e8c5df --- /dev/null +++ b/node_modules/core-js/internals/async-iterator-create-proxy.js @@ -0,0 +1,61 @@ +'use strict'; +var path = require('../internals/path'); +var aFunction = require('../internals/a-function'); +var anObject = require('../internals/an-object'); +var create = require('../internals/object-create'); +var createNonEnumerableProperty = require('../internals/create-non-enumerable-property'); +var redefineAll = require('../internals/redefine-all'); +var wellKnownSymbol = require('../internals/well-known-symbol'); +var InternalStateModule = require('../internals/internal-state'); +var getBuiltIn = require('../internals/get-built-in'); + +var Promise = getBuiltIn('Promise'); + +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.get; + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); + +var $return = function (value) { + var iterator = getInternalState(this).iterator; + var $$return = iterator['return']; + return $$return === undefined + ? Promise.resolve({ done: true, value: value }) + : anObject($$return.call(iterator, value)); +}; + +var $throw = function (value) { + var iterator = getInternalState(this).iterator; + var $$throw = iterator['throw']; + return $$throw === undefined + ? Promise.reject(value) + : $$throw.call(iterator, value); +}; + +module.exports = function (nextHandler, IS_ITERATOR) { + var AsyncIteratorProxy = function AsyncIterator(state) { + state.next = aFunction(state.iterator.next); + state.done = false; + setInternalState(this, state); + }; + + AsyncIteratorProxy.prototype = redefineAll(create(path.AsyncIterator.prototype), { + next: function next(arg) { + var state = getInternalState(this); + if (state.done) return Promise.resolve({ done: true, value: undefined }); + try { + return Promise.resolve(anObject(nextHandler.call(state, arg, Promise))); + } catch (error) { + return Promise.reject(error); + } + }, + 'return': $return, + 'throw': $throw + }); + + if (!IS_ITERATOR) { + createNonEnumerableProperty(AsyncIteratorProxy.prototype, TO_STRING_TAG, 'Generator'); + } + + return AsyncIteratorProxy; +}; |
