62cfd0e4a39a73c3072af9153a40fe3dc9161cdbd1242dc6772a5ddec35b0be3e67de23acfadc339462762ff55db7b00e6c9a3d8704b85f6791a2d7aa12bae 764 B

123456789101112131415161718192021222324252627
  1. 'use strict';
  2. var $TypeError = require('es-errors/type');
  3. var IsDetachedBuffer = require('./IsDetachedBuffer');
  4. var isObject = require('../helpers/isObject');
  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. };