d1f6b386e0e898c5e8235940d1a47db023f1b7b1606dba35922b21af651e82f745c274a833150149c99fe7a88eec89e2eae64fded5c7fac15d4349a963f8be 790 B

1234567891011121314151617181920212223242526272829
  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/6.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 2 - 3
  14. }
  15. var buffer = typedArrayBuffer(O); // step 4
  16. if (IsDetachedBuffer(buffer)) {
  17. throw new $TypeError('`O` must be backed by a non-detached buffer'); // step 5
  18. }
  19. return buffer; // step 6
  20. };