И опять makeArray
Доступна новая версия jQuery 1.3b1, в ней метод makeArray притерпел некоторые изменения и стал выглядеть следующим образом:
var makeArray = function(array, results) {
array = Array.prototype.slice.call( array );
if ( results ) {
results.push.apply( results, array );
return results;
}
return array;
};
// Perform a simple check to determine if the browser is capable of
// converting a NodeList to an array using builtin methods.
try {
Array.prototype.slice.call( document.documentElement.childNodes );
// Provide a fallback method if it does not work
} catch(e){
makeArray = function(array, results) {
var ret = results || [];
if ( array instanceof Array ) {
Array.prototype.push.apply( ret, array );
} else {
if ( typeof array.length === "number" ) {
for ( var i = 0, l = array.length; i < l; i++ ) {
ret.push( array[i] );
}
} else {
for ( var i = 0; array[i]; i++ ) {
ret.push( array[i] );
}
}
}
return ret;
};
}
То есть они проверяют не IE это или другой браузер, а возможность выполнить:
Array.prototype.slice.call( document.documentElement.childNodes );
Может ли это значить, что есть еще браузеры, кроме IE, которые будут выдавать ошибку при таком способе?