- From: Claudia Meadows <notifications@github.com>
- Date: Sun, 22 Dec 2024 15:35:31 -0800
- To: whatwg/webidl <webidl@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/webidl/issues/1459@github.com>
### What problem are you trying to solve? https://github.com/tc39/proposal-explicit-resource-management is stage 3, with [at least V8 starting to ship](https://chromium.googlesource.com/v8/v8/+/ab8548e43686a8bbb194a6003c5e211b76f177f7%5E%21/). Standards should be able to integrate with that with their existing disposer methods. ### What solutions exist today? Many standards have methods like `.close()`, `.abort()`, and so on. ### How would you solve it? Add a `disposer` keyword that interfaces can use to alias a method to `Symbol.dispose`, and a similar `async_disposer` for `Symbol.asyncDispose`. - All parameters must be optional. - `async_disposer`s must return promises. For a few examples: ```webidl [Exposed=(Window,Worker)] interface WebSocket : EventTarget { // ... disposer undefined close(optional [Clamp] unsigned short code, optional USVString reason); // ... }; interface mixin ReadableStreamGenericReader { readonly attribute Promise<undefined> closed; async_disposer Promise<undefined> cancel(optional any reason); }; [Exposed=(Window,Worker)] interface IDBTransaction : EventTarget { // ... undefined commit(); disposer undefined abort(); // ... }; ``` ### Anything else? _No response_ -- Reply to this email directly or view it on GitHub: https://github.com/whatwg/webidl/issues/1459 You are receiving this because you are subscribed to this thread. Message ID: <whatwg/webidl/issues/1459@github.com>
Received on Sunday, 22 December 2024 23:35:35 UTC