| '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; | 
|   } | 
| }); |