Split 'use' overloads into multiple methods #103
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Per the September 2022 plenary, the overloaded
use
method should be split into multiple, distinct methods. These methods are as follows:use(value)
- Adds a disposable resource to the stack.null
orundefined
, it is returned as-is.[Symbol.dispose]()
method, an error is thrown.adopt(value, onDispose)
- Adds a non-disposable resource to the stack with a dispose callback.onDispose
is not callable, an error is thrown.value
can be any value, includingnull
orundefined
. It will always be tracked.onDispose
callback will be invoked withvalue
as its argument (i.e.,onDispose(value)
).defer(onDispose)
- Adds a callback to the stack.onDispose
is not callable, an error is thrown.onDispose
callback will be invoked with no argument (i.e.,onDispose()
).Fixes #102