Многие браузеры тупое переписывание выполняют быстрее чем slice.call . Так-что смысла нет столько всего писать, достаточно просто:
Array.toArray = function $A(iterable) {
if (iterable) {
var result = [], i = iterable.length;
while (i) result[--i] = iterable[i];
return result;
}
return [];
};