disposablestack
Version:
An ESnext spec-compliant `DisposableStack`, `AsyncDisposableStack`, `Symbol.dispose`, and `Symbol.asyncDispose` shim/polyfill/replacement that works as far down as ES3.
22 lines (16 loc) • 480 B
JavaScript
;
var hasSymbols = require('has-symbols');
var DefinePropertyOrThrow = require('es-abstract/2024/DefinePropertyOrThrow');
var polyfill = require('./polyfill');
module.exports = function shimSymbolAsyncDispose() {
var asyncDispose = polyfill();
if (hasSymbols()) {
DefinePropertyOrThrow(Symbol, 'asyncDispose', {
'[[Configurable]]': false,
'[[Enumerable]]': false,
'[[Writable]]': false,
'[[Value]]': asyncDispose
});
}
return asyncDispose;
};