es-abstract
Version:
ECMAScript spec abstract operations.
19 lines (15 loc) • 535 B
JavaScript
var hasOwn = require('hasown');
var isDataView = require('is-data-view');
var isInteger = require('../isInteger');
module.exports = function isDataViewWithBufferWitnessRecord(value) {
return !!value
&& typeof value === 'object'
&& hasOwn(value, '[[Object]]')
&& hasOwn(value, '[[CachedBufferByteLength]]')
&& (
(isInteger(value['[[CachedBufferByteLength]]']) && value['[[CachedBufferByteLength]]'] >= 0)
|| value['[[CachedBufferByteLength]]'] === 'DETACHED'
)
&& isDataView(value['[[Object]]']);
};
;