@babel/runtime-corejs3
Version:
babel's modular runtime helpers with core-js@3 polyfilling
59 lines • 1.9 kB
JavaScript
var _Promise = require("core-js-pure/features/promise/index.js");
var _Symbol = require("core-js-pure/features/symbol/index.js");
var _Symbol$asyncIterator = require("core-js-pure/features/symbol/async-iterator.js");
var OverloadYield = require("./OverloadYield.js");
function _wrapAsyncGenerator(e) {
return function () {
return new AsyncGenerator(e.apply(this, arguments));
};
}
function AsyncGenerator(t) {
var n, r;
function resume(n, r) {
try {
var o = t[n](r),
u = o.value,
i = u instanceof OverloadYield;
_Promise.resolve(i ? u.v : u).then(function (e) {
if (i) {
var r = "return" === n && u.k ? n : "next";
if (!u.k || e.done) return resume(r, e);
e = t[r](e).value;
}
settle(!!o.done, e);
}, function (e) {
resume("throw", e);
});
} catch (e) {
settle(2, e);
}
}
function settle(e, t) {
2 === e ? n.reject(t) : n.resolve({
value: t,
done: e
}), (n = n.next) ? resume(n.key, n.arg) : r = null;
}
this._invoke = function (e, t) {
return new _Promise(function (o, u) {
var i = {
key: e,
arg: t,
resolve: o,
reject: u,
next: null
};
r ? r = r.next = i : (n = r = i, resume(e, t));
});
}, "function" != typeof t["return"] && (this["return"] = void 0);
}
AsyncGenerator.prototype["function" == typeof _Symbol && _Symbol$asyncIterator || "@@asyncIterator"] = function () {
return this;
}, AsyncGenerator.prototype.next = function (e) {
return this._invoke("next", e);
}, AsyncGenerator.prototype["throw"] = function (e) {
return this._invoke("throw", e);
}, AsyncGenerator.prototype["return"] = function (e) {
return this._invoke("return", e);
};
module.exports = _wrapAsyncGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;