disposablestack
Version:
An ESnext spec-compliant `DisposableStack`, `AsyncDisposableStack`, `Symbol.dispose`, and `Symbol.asyncDispose` shim/polyfill/replacement that works as far down as ES3.
19 lines (15 loc) • 552 B
JavaScript
;
var hasOwn = require('hasown');
var isArray = require('es-abstract/helpers/IsArray');
var every = require('es-abstract/helpers/every');
var isDisposableResourceRecord = require('./disposable-resource-record');
module.exports = function isDisposeCapabilityRecord(x) {
return x
&& typeof x === 'object'
&& hasOwn(x, '[[DisposableResourceStack]]')
&& isArray(x['[[DisposableResourceStack]]'])
&& (
x['[[DisposableResourceStack]]'].length === 0
|| every(x['[[DisposableResourceStack]]'], isDisposableResourceRecord)
);
};