3 exports.__esModule = true;
5 var _symbol = require("../core-js/symbol");
7 var _symbol2 = _interopRequireDefault(_symbol);
9 var _promise = require("../core-js/promise");
11 var _promise2 = _interopRequireDefault(_promise);
13 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15 exports.default = function () {
16 function AwaitValue(value) {
20 function AsyncGenerator(gen) {
23 function send(key, arg) {
24 return new _promise2.default(function (resolve, reject) {
34 back = back.next = request;
36 front = back = request;
42 function resume(key, arg) {
44 var result = gen[key](arg);
45 var value = result.value;
47 if (value instanceof AwaitValue) {
48 _promise2.default.resolve(value.value).then(function (arg) {
54 settle(result.done ? "return" : "normal", result.value);
61 function settle(type, value) {
85 resume(front.key, front.arg);
93 if (typeof gen.return !== "function") {
94 this.return = undefined;
98 if (typeof _symbol2.default === "function" && _symbol2.default.asyncIterator) {
99 AsyncGenerator.prototype[_symbol2.default.asyncIterator] = function () {
104 AsyncGenerator.prototype.next = function (arg) {
105 return this._invoke("next", arg);
108 AsyncGenerator.prototype.throw = function (arg) {
109 return this._invoke("throw", arg);
112 AsyncGenerator.prototype.return = function (arg) {
113 return this._invoke("return", arg);
117 wrap: function wrap(fn) {
119 return new AsyncGenerator(fn.apply(this, arguments));
122 await: function await(value) {
123 return new AwaitValue(value);