array-slice-simple.js 602 B

123456789101112131415161718
  1. 'use strict';
  2. var toAbsoluteIndex = require('../internals/to-absolute-index');
  3. var lengthOfArrayLike = require('../internals/length-of-array-like');
  4. var createProperty = require('../internals/create-property');
  5. var $Array = Array;
  6. var max = Math.max;
  7. module.exports = function (O, start, end) {
  8. var length = lengthOfArrayLike(O);
  9. var k = toAbsoluteIndex(start, length);
  10. var fin = toAbsoluteIndex(end === undefined ? length : end, length);
  11. var result = $Array(max(fin - k, 0));
  12. var n = 0;
  13. for (; k < fin; k++, n++) createProperty(result, n, O[k]);
  14. result.length = n;
  15. return result;
  16. };