1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
x3 x26 x26 x26 x654 x26 x26 x46 x26 x26 x49 x261 x261 x49 x26 x26 |
// Copyright 2018-2025 the Deno authors. MIT license. // partial `DisposableStack` polyfill // https://github.com/tc39/proposal-explicit-resource-management export function disposableStack() { return { disposables: [] as Disposable[], defer(fn: () => void) { this.disposables.push({ [Symbol.dispose]: fn }); }, use(val: Disposable) { this.disposables.push(val); }, [Symbol.dispose]() { for (let i = this.disposables.length - 1; i >= 0; --i) { this.disposables[i]![Symbol.dispose](); } }, }; } |