Sha256: 3f952e6afee4027486f99e6a0e514474e766811225df54148ae869acd482b17d

Contents?: true

Size: 1.6 KB

Versions: 82

Compression:

Stored size: 1.6 KB

Contents

'use strict';
var ctx = require('./_ctx');
var $export = require('./_export');
var toObject = require('./_to-object');
var call = require('./_iter-call');
var isArrayIter = require('./_is-array-iter');
var toLength = require('./_to-length');
var createProperty = require('./_create-property');
var getIterFn = require('./core.get-iterator-method');

$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {
  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
  from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
    var O = toObject(arrayLike);
    var C = typeof this == 'function' ? this : Array;
    var aLen = arguments.length;
    var mapfn = aLen > 1 ? arguments[1] : undefined;
    var mapping = mapfn !== undefined;
    var index = 0;
    var iterFn = getIterFn(O);
    var length, result, step, iterator;
    if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
    // if object isn't iterable or it's array with default iterator - use simple case
    if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {
      for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
        createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
      }
    } else {
      length = toLength(O.length);
      for (result = new C(length); length > index; index++) {
        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
      }
    }
    result.length = index;
    return result;
  }
});

Version data entries

82 entries across 38 versions & 8 rubygems

Version Path
immosquare-cleaner-0.1.60 node_modules/core-js/library/modules/es6.array.from.js
immosquare-cleaner-0.1.60 node_modules/core-js/modules/es6.array.from.js
immosquare-cleaner-0.1.59 node_modules/core-js/library/modules/es6.array.from.js
immosquare-cleaner-0.1.59 node_modules/core-js/modules/es6.array.from.js
immosquare-cleaner-0.1.58 node_modules/core-js/library/modules/es6.array.from.js
immosquare-cleaner-0.1.58 node_modules/core-js/modules/es6.array.from.js
immosquare-cleaner-0.1.57 node_modules/core-js/modules/es6.array.from.js
immosquare-cleaner-0.1.57 node_modules/core-js/library/modules/es6.array.from.js
immosquare-cleaner-0.1.56 node_modules/core-js/library/modules/es6.array.from.js
immosquare-cleaner-0.1.56 node_modules/core-js/modules/es6.array.from.js
immosquare-cleaner-0.1.55 node_modules/core-js/library/modules/es6.array.from.js
immosquare-cleaner-0.1.55 node_modules/core-js/modules/es6.array.from.js
immosquare-cleaner-0.1.54 node_modules/core-js/library/modules/es6.array.from.js
immosquare-cleaner-0.1.54 node_modules/core-js/modules/es6.array.from.js
immosquare-cleaner-0.1.53 node_modules/core-js/modules/es6.array.from.js
immosquare-cleaner-0.1.53 node_modules/core-js/library/modules/es6.array.from.js
immosquare-cleaner-0.1.52 node_modules/core-js/library/modules/es6.array.from.js
immosquare-cleaner-0.1.52 node_modules/core-js/modules/es6.array.from.js
immosquare-cleaner-0.1.51 node_modules/core-js/library/modules/es6.array.from.js
immosquare-cleaner-0.1.51 node_modules/core-js/modules/es6.array.from.js