b4afa1f455847eee0272c750342006832c5f3647956f5f9073a887404eea64c61a5c25561400719e765ae0de509669a592f9f169fd2081bc2bf15a4458e112 923 B

12345678910111213141516171819202122
  1. 'use strict';
  2. var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
  3. var toLength = require('../internals/to-length');
  4. var toAbsoluteIndex = require('../internals/to-absolute-index');
  5. var typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');
  6. var aTypedArray = ArrayBufferViewCore.aTypedArray;
  7. var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
  8. // `%TypedArray%.prototype.subarray` method
  9. // https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray
  10. exportTypedArrayMethod('subarray', function subarray(begin, end) {
  11. var O = aTypedArray(this);
  12. var length = O.length;
  13. var beginIndex = toAbsoluteIndex(begin, length);
  14. var C = typedArraySpeciesConstructor(O);
  15. return new C(
  16. O.buffer,
  17. O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,
  18. toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)
  19. );
  20. });