From 05fb8eaa1058578f911ab5d0d4436e97010f4cc7 Mon Sep 17 00:00:00 2001 From: John Resig Date: Mon, 20 Aug 2007 07:04:00 +0000 Subject: [PATCH 1/1] Just pushed in my changes for making jQuery.each on objects faster, sample results: http://dev.jquery.com/~john/ticket/each/obj.html --- src/jquery/jquery.js | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index 5ffccc5..76b08ed 100644 --- a/src/jquery/jquery.js +++ b/src/jquery/jquery.js @@ -1391,17 +1391,23 @@ jQuery.extend({ */ // args is for internal usage only each: function( obj, fn, args ) { - if ( obj.length == undefined ) - for ( var i in obj ) - fn.apply( obj[i], args || [i, obj[i]] ); - else if ( args ) { - for ( var i = 0, ol = obj.length; i < ol; i++ ) - if ( fn.apply( obj[i], args ) === false ) break; + if ( args ) { + if ( obj.length == undefined ) + for ( var i in obj ) + fn.apply( obj[i], args ); + else + for ( var i = 0, ol = obj.length; i < ol; i++ ) + if ( fn.apply( obj[i], args ) === false ) break; // A special, fast, case for the most common use of each - } else - for ( var i = 0, ol = obj.length, val = obj[0]; - i < ol && fn.call(val,i,val) !== false; val = obj[++i] ); + } else { + if ( obj.length == undefined ) + for ( var i in obj ) + fn.call( obj[i], i, obj[i] ); + else + for ( var i = 0, ol = obj.length, val = obj[0]; + i < ol && fn.call(val,i,val) !== false; val = obj[++i] ); + } return obj; }, -- 1.7.10.4