dispose.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = _dispose;
  6. function dispose_SuppressedError(suppressed, error) {
  7. if (typeof SuppressedError !== "undefined") {
  8. dispose_SuppressedError = SuppressedError;
  9. } else {
  10. dispose_SuppressedError = function SuppressedError(suppressed, error) {
  11. this.suppressed = suppressed;
  12. this.error = error;
  13. this.stack = new Error().stack;
  14. };
  15. dispose_SuppressedError.prototype = Object.create(Error.prototype, {
  16. constructor: {
  17. value: dispose_SuppressedError,
  18. writable: true,
  19. configurable: true
  20. }
  21. });
  22. }
  23. return new dispose_SuppressedError(suppressed, error);
  24. }
  25. function _dispose(stack, error, hasError) {
  26. function next() {
  27. while (stack.length > 0) {
  28. try {
  29. var r = stack.pop();
  30. var p = r.d.call(r.v);
  31. if (r.a) return Promise.resolve(p).then(next, err);
  32. } catch (e) {
  33. return err(e);
  34. }
  35. }
  36. if (hasError) throw error;
  37. }
  38. function err(e) {
  39. error = hasError ? new dispose_SuppressedError(e, error) : e;
  40. hasError = true;
  41. return next();
  42. }
  43. return next();
  44. }
  45. //# sourceMappingURL=dispose.js.map