| 123456789101112131415161718192021222324252627282930313233343536373839404142 | 
							- import Check from "./Check.js";
 
- import defined from "./defined.js";
 
- import FeatureDetection from "./FeatureDetection.js";
 
- /**
 
-  * Create a shallow copy of an array from begin to end.
 
-  *
 
-  * @param {Array} array The array to fill.
 
-  * @param {Number} [begin=0] The index to start at.
 
-  * @param {Number} [end=array.length] The index to end at which is not included.
 
-  *
 
-  * @returns {Array} The resulting array.
 
-  * @private
 
-  */
 
- function arraySlice(array, begin, end) {
 
-   //>>includeStart('debug', pragmas.debug);
 
-   Check.defined("array", array);
 
-   if (defined(begin)) {
 
-     Check.typeOf.number("begin", begin);
 
-   }
 
-   if (defined(end)) {
 
-     Check.typeOf.number("end", end);
 
-   }
 
-   //>>includeEnd('debug');
 
-   if (typeof array.slice === "function") {
 
-     return array.slice(begin, end);
 
-   }
 
-   let copy = Array.prototype.slice.call(array, begin, end);
 
-   const typedArrayTypes = FeatureDetection.typedArrayTypes;
 
-   const length = typedArrayTypes.length;
 
-   for (let i = 0; i < length; ++i) {
 
-     if (array instanceof typedArrayTypes[i]) {
 
-       copy = new typedArrayTypes[i](copy);
 
-       break;
 
-     }
 
-   }
 
-   return copy;
 
- }
 
- export default arraySlice;
 
 
  |