arraybuffer.prototype.detached
Version:
ES Proposal spec-compliant shim for ArrayBuffer.prototype.detached
48 lines (37 loc) • 1.15 kB
JavaScript
;
var inspect = require('object-inspect');
var DetachArrayBuffer = require('es-abstract/2024/DetachArrayBuffer');
var forEach = require('for-each');
var v = require('es-value-fixtures');
module.exports = function runTests(detached, t) {
forEach(v.primitives.concat(v.objects), function (nonAB) {
t['throws'](
function () { detached(nonAB); },
TypeError,
inspect(nonAB) + ' is not an ArrayBuffer'
);
});
t.test('ArrayBuffers', { skip: typeof ArrayBuffer === 'undefined' }, function (st) {
var ab = new ArrayBuffer(0);
st.equal(detached(ab), false, 'ArrayBuffer is not detached');
try {
DetachArrayBuffer(ab);
} catch (e) {
if (e instanceof SyntaxError) {
st.skip('Detaching ArrayBuffer is not supported');
return st.end();
}
}
st.equal(detached(ab), true, 'ArrayBuffer is now detached');
return st.end();
});
t.test('SharedArrayBuffers', { skip: typeof SharedArrayBuffer === 'undefined' }, function (st) {
var sab = new SharedArrayBuffer(0);
st['throws'](
function () { detached(sab); },
TypeError,
inspect(sab) + ' is not an ArrayBuffer'
);
st.end();
});
};