b3e86a9ec9f756243b7c4402350ec6296206b595670dff1778c6e3f698438758b0e31a9061deb57cb844b01893573365abfae2c1b06285aa2f5133d6ae8c1d 738 B

1234567891011121314151617
  1. 'use strict';
  2. var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
  3. var lengthOfArrayLike = require('../internals/length-of-array-like');
  4. var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
  5. var aTypedArray = ArrayBufferViewCore.aTypedArray;
  6. var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
  7. // `%TypedArray%.prototype.at` method
  8. // https://tc39.es/ecma262/#sec-%typedarray%.prototype.at
  9. exportTypedArrayMethod('at', function at(index) {
  10. var O = aTypedArray(this);
  11. var len = lengthOfArrayLike(O);
  12. var relativeIndex = toIntegerOrInfinity(index);
  13. var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;
  14. return (k < 0 || k >= len) ? undefined : O[k];
  15. });