'use strict'; 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]]']); };