using.js 809 B

1234567891011121314151617181920212223242526272829
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = _using;
  6. function _using(stack, value, isAwait) {
  7. if (value === null || value === void 0) return value;
  8. if (Object(value) !== value) {
  9. throw new TypeError("using declarations can only be used with objects, functions, null, or undefined.");
  10. }
  11. if (isAwait) {
  12. var dispose = value[Symbol.asyncDispose || Symbol.for("Symbol.asyncDispose")];
  13. }
  14. if (dispose === null || dispose === void 0) {
  15. dispose = value[Symbol.dispose || Symbol.for("Symbol.dispose")];
  16. }
  17. if (typeof dispose !== "function") {
  18. throw new TypeError(`Property [Symbol.dispose] is not a function.`);
  19. }
  20. stack.push({
  21. v: value,
  22. d: dispose,
  23. a: isAwait
  24. });
  25. return value;
  26. }
  27. //# sourceMappingURL=using.js.map