usingCtx.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import _SuppressedError from "core-js-pure/features/suppressed-error.js";
  2. import _Symbol$asyncDispose from "core-js-pure/features/symbol/async-dispose.js";
  3. import _Symbol$for from "core-js-pure/features/symbol/for.js";
  4. import _Symbol$dispose from "core-js-pure/features/symbol/dispose.js";
  5. import _Promise from "core-js-pure/features/promise/index.js";
  6. import _pushInstanceProperty from "core-js-pure/features/instance/push.js";
  7. import _bindInstanceProperty from "core-js-pure/features/instance/bind.js";
  8. function _usingCtx() {
  9. var r = "function" == typeof _SuppressedError ? _SuppressedError : function (r, e) {
  10. var n = Error();
  11. return n.name = "SuppressedError", n.error = r, n.suppressed = e, n;
  12. },
  13. e = {},
  14. n = [];
  15. function using(r, e) {
  16. if (null != e) {
  17. if (Object(e) !== e) throw new TypeError("using declarations can only be used with objects, functions, null, or undefined.");
  18. if (r) var o = e[_Symbol$asyncDispose || _Symbol$for("Symbol.asyncDispose")];
  19. if (void 0 === o && (o = e[_Symbol$dispose || _Symbol$for("Symbol.dispose")], r)) var t = o;
  20. if ("function" != typeof o) throw new TypeError("Object is not disposable.");
  21. t && (o = function o() {
  22. try {
  23. t.call(e);
  24. } catch (r) {
  25. return _Promise.reject(r);
  26. }
  27. }), _pushInstanceProperty(n).call(n, {
  28. v: e,
  29. d: o,
  30. a: r
  31. });
  32. } else r && _pushInstanceProperty(n).call(n, {
  33. d: e,
  34. a: r
  35. });
  36. return e;
  37. }
  38. return {
  39. e: e,
  40. u: _bindInstanceProperty(using).call(using, null, !1),
  41. a: _bindInstanceProperty(using).call(using, null, !0),
  42. d: function d() {
  43. var o,
  44. t = this.e,
  45. s = 0;
  46. function next() {
  47. for (; o = n.pop();) try {
  48. if (!o.a && 1 === s) return s = 0, _pushInstanceProperty(n).call(n, o), _Promise.resolve().then(next);
  49. if (o.d) {
  50. var r = o.d.call(o.v);
  51. if (o.a) return s |= 2, _Promise.resolve(r).then(next, err);
  52. } else s |= 1;
  53. } catch (r) {
  54. return err(r);
  55. }
  56. if (1 === s) return t !== e ? _Promise.reject(t) : _Promise.resolve();
  57. if (t !== e) throw t;
  58. }
  59. function err(n) {
  60. return t = t !== e ? new r(n, t) : n, next();
  61. }
  62. return next();
  63. }
  64. };
  65. }
  66. export { _usingCtx as default };