1'use strict';
2var $export = require('./_export');
3var createProperty = require('./_create-property');
4
5// WebKit Array.of isn't generic
6$export($export.S + $export.F * require('./_fails')(function () {
7  function F() { /* empty */ }
8  return !(Array.of.call(F) instanceof F);
9}), 'Array', {
10  // 22.1.2.3 Array.of( ...items)
11  of: function of(/* ...args */) {
12    var index = 0;
13    var aLen = arguments.length;
14    var result = new (typeof this == 'function' ? this : Array)(aLen);
15    while (aLen > index) createProperty(result, index, arguments[index++]);
16    result.length = aLen;
17    return result;
18  }
19});
20