aboutsummaryrefslogtreecommitdiff
path: root/node_modules/core-js/modules/_set-collection-from.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/core-js/modules/_set-collection-from.js')
-rw-r--r--node_modules/core-js/modules/_set-collection-from.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/node_modules/core-js/modules/_set-collection-from.js b/node_modules/core-js/modules/_set-collection-from.js
new file mode 100644
index 00000000..d5001f93
--- /dev/null
+++ b/node_modules/core-js/modules/_set-collection-from.js
@@ -0,0 +1,28 @@
+'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);
+ } });
+};