'use strict';
|
|
var GetIntrinsic = require('get-intrinsic');
|
|
var $TypeError = GetIntrinsic('%TypeError%');
|
|
var callBound = require('call-bind/callBound');
|
var $taSome = callBound('%TypedArray.prototype.some%', true);
|
|
var Type = require('./Type');
|
|
var isTypedArray = require('is-typed-array');
|
|
// https://262.ecma-international.org/6.0/#sec-validatetypedarray
|
|
module.exports = function ValidateTypedArray(O) {
|
if (Type(O) !== 'Object') {
|
throw new $TypeError('Assertion failed: O must be an Object');
|
}
|
if (!isTypedArray(O)) {
|
throw new $TypeError('Assertion failed: O must be a TypedArray');
|
}
|
|
// without `.some` (like in node 0.10), there's no way to check buffer detachment, but also no way to be detached
|
if ($taSome) {
|
$taSome(O, function () { return true; });
|
}
|
|
return O.buffer;
|
};
|