You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							29 lines
						
					
					
						
							933 B
						
					
					
				
			
		
		
	
	
							29 lines
						
					
					
						
							933 B
						
					
					
				| 'use strict';
 | |
| var $export = require('./_export');
 | |
| var html = require('./_html');
 | |
| var cof = require('./_cof');
 | |
| var toAbsoluteIndex = require('./_to-absolute-index');
 | |
| var toLength = require('./_to-length');
 | |
| var arraySlice = [].slice;
 | |
| 
 | |
| // fallback for not array-like ES3 strings and DOM objects
 | |
| $export($export.P + $export.F * require('./_fails')(function () {
 | |
|   if (html) arraySlice.call(html);
 | |
| }), 'Array', {
 | |
|   slice: function slice(begin, end) {
 | |
|     var len = toLength(this.length);
 | |
|     var klass = cof(this);
 | |
|     end = end === undefined ? len : end;
 | |
|     if (klass == 'Array') return arraySlice.call(this, begin, end);
 | |
|     var start = toAbsoluteIndex(begin, len);
 | |
|     var upTo = toAbsoluteIndex(end, len);
 | |
|     var size = toLength(upTo - start);
 | |
|     var cloned = new Array(size);
 | |
|     var i = 0;
 | |
|     for (; i < size; i++) cloned[i] = klass == 'String'
 | |
|       ? this.charAt(start + i)
 | |
|       : this[start + i];
 | |
|     return cloned;
 | |
|   }
 | |
| });
 |