025cf051f7825da518892a681e338e19055c57af178ac4e31364c1e92a0f74a447a8566d0ae0ea9f5a21142c1c438c5b53219a9fb4be889545e9fac0333556 718 B

1234567891011121314151617181920212223
  1. 'use strict';
  2. var $SyntaxError = require('es-errors/syntax');
  3. var $TypeError = require('es-errors/type');
  4. var isInteger = require('math-intrinsics/isInteger');
  5. var whichTypedArray = require('which-typed-array');
  6. // https://262.ecma-international.org/13.0/#sec-typedarrayelementsize
  7. var tableTAO = require('./tables/typed-array-objects');
  8. module.exports = function TypedArrayElementSize(O) {
  9. var type = whichTypedArray(O);
  10. if (!type) {
  11. throw new $TypeError('Assertion failed: `O` must be a TypedArray');
  12. }
  13. var size = tableTAO.size['$' + tableTAO.name['$' + type]];
  14. if (!isInteger(size) || size < 0) {
  15. throw new $SyntaxError('Assertion failed: Unknown TypedArray type `' + type + '`');
  16. }
  17. return size;
  18. };