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
				
				802 B
			
		
		
			
		
	
	
					29 lines
				
				802 B
			| 
											3 years ago
										 | 'use strict'; | ||
|  | // https://tc39.github.io/proposal-setmap-offrom/
 | ||
|  | var $export = require('./_export'); | ||
|  | var aFunction = require('./_a-function'); | ||
|  | var ctx = require('./_ctx'); | ||
|  | var forOf = require('./_for-of'); | ||
|  | 
 | ||
|  | module.exports = function (COLLECTION) { | ||
|  |   $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) { | ||
|  |     var mapFn = arguments[1]; | ||
|  |     var mapping, A, n, cb; | ||
|  |     aFunction(this); | ||
|  |     mapping = mapFn !== undefined; | ||
|  |     if (mapping) aFunction(mapFn); | ||
|  |     if (source == undefined) return new this(); | ||
|  |     A = []; | ||
|  |     if (mapping) { | ||
|  |       n = 0; | ||
|  |       cb = ctx(mapFn, arguments[2], 2); | ||
|  |       forOf(source, false, function (nextItem) { | ||
|  |         A.push(cb(nextItem, n++)); | ||
|  |       }); | ||
|  |     } else { | ||
|  |       forOf(source, false, A.push, A); | ||
|  |     } | ||
|  |     return new this(A); | ||
|  |   } }); | ||
|  | }; |