| 'use strict'; |
| var $ = require('../internals/export'); |
| var fails = require('../internals/fails'); |
| var isConstructor = require('../internals/is-constructor'); |
| var createProperty = require('../internals/create-property'); |
| var setArrayLength = require('../internals/array-set-length'); |
|
|
| var $Array = Array; |
|
|
| var ISNT_GENERIC = fails(function () { |
| function F() { } |
| |
| return !($Array.of.call(F) instanceof F); |
| }); |
|
|
| |
| |
| |
| $({ target: 'Array', stat: true, forced: ISNT_GENERIC }, { |
| of: function of() { |
| var index = 0; |
| var argumentsLength = arguments.length; |
| var result = new (isConstructor(this) ? this : $Array)(argumentsLength); |
| while (argumentsLength > index) createProperty(result, index, arguments[index++]); |
| setArrayLength(result, argumentsLength); |
| return result; |
| } |
| }); |
|
|