diff options
Diffstat (limited to 'node_modules/@babel/runtime/helpers/builtin/asyncGeneratorDelegate.js')
| -rw-r--r-- | node_modules/@babel/runtime/helpers/builtin/asyncGeneratorDelegate.js | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/node_modules/@babel/runtime/helpers/builtin/asyncGeneratorDelegate.js b/node_modules/@babel/runtime/helpers/builtin/asyncGeneratorDelegate.js new file mode 100644 index 00000000..3211e9da --- /dev/null +++ b/node_modules/@babel/runtime/helpers/builtin/asyncGeneratorDelegate.js @@ -0,0 +1,53 @@ +function _asyncGeneratorDelegate(inner, awaitWrap) { + var iter = {}, + waiting = false; + + function pump(key, value) { + waiting = true; + value = new Promise(function (resolve) { + resolve(inner[key](value)); + }); + return { + done: false, + value: awaitWrap(value) + }; + } + + ; + + if (typeof Symbol === "function" && Symbol.iterator) { + iter[Symbol.iterator] = function () { + return this; + }; + } + + iter.next = function (value) { + if (waiting) { + waiting = false; + return value; + } + + return pump("next", value); + }; + + if (typeof inner.throw === "function") { + iter.throw = function (value) { + if (waiting) { + waiting = false; + throw value; + } + + return pump("throw", value); + }; + } + + if (typeof inner.return === "function") { + iter.return = function (value) { + return pump("return", value); + }; + } + + return iter; +} + +module.exports = _asyncGeneratorDelegate;
\ No newline at end of file |
