'use strict';
var $export = require('./$.export');

// WebKit Array.of isn't generic
$export($export.S + $export.F * require('./$.fails')(function () {
    function F() {
    }

    return !(Array.of.call(F) instanceof F);
}), 'Array', {
    // 22.1.2.3 Array.of( ...items)
    of: function of(/* ...args */) {
        var index = 0
            , $$ = arguments
            , $$len = $$.length
            , result = new (typeof this == 'function' ? this : Array)($$len);
        while ($$len > index) result[index] = $$[index++];
        result.length = $$len;
        return result;
    }
});