diff options
author | John Resig <jeresig@gmail.com> | 2007-08-20 06:29:41 +0000 |
---|---|---|
committer | John Resig <jeresig@gmail.com> | 2007-08-20 06:29:41 +0000 |
commit | f0353e89abf6643e5a88a649887a71a9ebd973d9 (patch) | |
tree | 8cef2d8880713c667f6a03b8a7bc8240d014d4b1 | |
parent | 2b05e24993c48f3b9c2cb9857090dc4b218b8834 (diff) | |
download | jquery-f0353e89abf6643e5a88a649887a71a9ebd973d9.tar.gz jquery-f0353e89abf6643e5a88a649887a71a9ebd973d9.zip |
Just pushed some major speed improvements through for $.each() - we're now seeing a 2x speed improvement over 1.1.3. Some crude results can be found here: http://dev.jquery.com/~john/ticket/each/
-rw-r--r-- | src/jquery/jquery.js | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index ff33034ed..5ffccc5b6 100644 --- a/src/jquery/jquery.js +++ b/src/jquery/jquery.js @@ -1394,9 +1394,15 @@ jQuery.extend({ if ( obj.length == undefined ) for ( var i in obj ) fn.apply( obj[i], args || [i, obj[i]] ); - else + else if ( args ) { for ( var i = 0, ol = obj.length; i < ol; i++ ) - if ( fn.apply( obj[i], args || [i, obj[i]] ) === false ) break; + 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] ); + return obj; }, |