asyncGeneratorDelegate.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = _asyncGeneratorDelegate;
  6. var _OverloadYield = require("./OverloadYield.js");
  7. function _asyncGeneratorDelegate(inner) {
  8. var iter = {},
  9. waiting = false;
  10. function pump(key, value) {
  11. waiting = true;
  12. value = new Promise(function (resolve) {
  13. resolve(inner[key](value));
  14. });
  15. return {
  16. done: false,
  17. value: new _OverloadYield.default(value, 1)
  18. };
  19. }
  20. iter[typeof Symbol !== "undefined" && Symbol.iterator || "@@iterator"] = function () {
  21. return this;
  22. };
  23. iter.next = function (value) {
  24. if (waiting) {
  25. waiting = false;
  26. return value;
  27. }
  28. return pump("next", value);
  29. };
  30. if (typeof inner.throw === "function") {
  31. iter.throw = function (value) {
  32. if (waiting) {
  33. waiting = false;
  34. throw value;
  35. }
  36. return pump("throw", value);
  37. };
  38. }
  39. if (typeof inner.return === "function") {
  40. iter.return = function (value) {
  41. if (waiting) {
  42. waiting = false;
  43. return value;
  44. }
  45. return pump("return", value);
  46. };
  47. }
  48. return iter;
  49. }
  50. //# sourceMappingURL=asyncGeneratorDelegate.js.map