Bug Tracker

Changeset 2790

Show
Ignore:
Timestamp:
08/20/07 07:04:00 (1 year ago)
Author:
jeresig
Message:

Just pushed in my changes for making jQuery.each on objects faster, sample results: http://dev.jquery.com/~john/ticket/each/obj.html

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/jquery/src/jquery/jquery.js

    r2789 r2790  
    13921392    // args is for internal usage only 
    13931393    each: function( obj, fn, args ) { 
    1394         if ( obj.length == undefined ) 
    1395             for ( var i in obj ) 
    1396                 fn.apply( obj[i], args || [i, obj[i]] ); 
    1397         else if ( args ) { 
    1398             for ( var i = 0, ol = obj.length; i < ol; i++ ) 
    1399                 if ( fn.apply( obj[i], args ) === false ) break; 
     1394        if ( args ) { 
     1395            if ( obj.length == undefined ) 
     1396                for ( var i in obj ) 
     1397                    fn.apply( obj[i], args ); 
     1398            else 
     1399                for ( var i = 0, ol = obj.length; i < ol; i++ ) 
     1400                    if ( fn.apply( obj[i], args ) === false ) break; 
    14001401 
    14011402        // A special, fast, case for the most common use of each 
    1402         } else 
    1403             for ( var i = 0, ol = obj.length, val = obj[0];  
    1404                 i < ol && fn.call(val,i,val) !== false; val = obj[++i] ); 
     1403        } else { 
     1404            if ( obj.length == undefined ) 
     1405                for ( var i in obj ) 
     1406                    fn.call( obj[i], i, obj[i] ); 
     1407            else 
     1408                for ( var i = 0, ol = obj.length, val = obj[0];  
     1409                    i < ol && fn.call(val,i,val) !== false; val = obj[++i] ); 
     1410        } 
    14051411 
    14061412        return obj;