UNPKG

906 BJavaScriptView Raw
1"use strict";
2
3exports.__esModule = true;
4
5var _promise = require("../core-js/promise");
6
7var _promise2 = _interopRequireDefault(_promise);
8
9function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
11exports.default = function (fn) {
12 return function () {
13 var gen = fn.apply(this, arguments);
14 return new _promise2.default(function (resolve, reject) {
15 function step(key, arg) {
16 try {
17 var info = gen[key](arg);
18 var value = info.value;
19 } catch (error) {
20 reject(error);
21 return;
22 }
23
24 if (info.done) {
25 resolve(value);
26 } else {
27 return _promise2.default.resolve(value).then(function (value) {
28 step("next", value);
29 }, function (err) {
30 step("throw", err);
31 });
32 }
33 }
34
35 return step("next");
36 });
37 };
38};
\No newline at end of file