ac4b3170570c7c93ef1dd8a1734a8e38ec34262df4368be5dc8e23649d506a244c501a6a8895d4c8c0f52fb8ddd8422181a61f91228a1775d9c5816c231e92 768 B

1234567891011121314151617181920212223242526
  1. 'use strict';
  2. var $TypeError = require('es-errors/type');
  3. var isObject = require('es-object-atoms/isObject');
  4. var IsDetachedBuffer = require('./IsDetachedBuffer');
  5. var isTypedArray = require('is-typed-array');
  6. var typedArrayBuffer = require('typed-array-buffer');
  7. // https://262.ecma-international.org/13.0/#sec-validatetypedarray
  8. module.exports = function ValidateTypedArray(O) {
  9. if (!isObject(O)) {
  10. throw new $TypeError('Assertion failed: `O` must be an Object'); // step 1
  11. }
  12. if (!isTypedArray(O)) {
  13. throw new $TypeError('Assertion failed: `O` must be a Typed Array'); // steps 1 - 2
  14. }
  15. var buffer = typedArrayBuffer(O); // step 3
  16. if (IsDetachedBuffer(buffer)) {
  17. throw new $TypeError('`O` must be backed by a non-detached buffer'); // step 4
  18. }
  19. };