'use strict'; 
 | 
var $ = require('../internals/export'); 
 | 
var fails = require('../internals/fails'); 
 | 
var isConstructor = require('../internals/is-constructor'); 
 | 
var createProperty = require('../internals/create-property'); 
 | 
  
 | 
var $Array = Array; 
 | 
  
 | 
var ISNT_GENERIC = fails(function () { 
 | 
  function F() { /* empty */ } 
 | 
  // eslint-disable-next-line es/no-array-of -- safe 
 | 
  return !($Array.of.call(F) instanceof F); 
 | 
}); 
 | 
  
 | 
// `Array.of` method 
 | 
// https://tc39.es/ecma262/#sec-array.of 
 | 
// WebKit Array.of isn't generic 
 | 
$({ target: 'Array', stat: true, forced: ISNT_GENERIC }, { 
 | 
  of: function of(/* ...args */) { 
 | 
    var index = 0; 
 | 
    var argumentsLength = arguments.length; 
 | 
    var result = new (isConstructor(this) ? this : $Array)(argumentsLength); 
 | 
    while (argumentsLength > index) createProperty(result, index, arguments[index++]); 
 | 
    result.length = argumentsLength; 
 | 
    return result; 
 | 
  } 
 | 
}); 
 |