Changeset 10203

Show
Ignore:
Timestamp:
08/15/07 20:51:12 (15 months ago)
Author:
peller
Message:

pick up a couple more bytes from array. Use xor bitwise logic on booleans. Refs #3961

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • dojo/trunk/_base/array.js

    r10200 r10203  
    1919                        //                      http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:indexOf 
    2020 
    21                         var step; 
     21                        var i = 0, step = 1, end = array.length; 
    2222                        if(findLast){ 
    23                                 step = -1, i = (fromIndex||array.length - 1), end = -1; 
    24                         }else{ 
    25                                 step = 1, i = (fromIndex||0), end = array.length; 
     23                                i = end - 1; 
     24                                step = end = -1; 
    2625                        } 
    27                         for(; i!=end; i+=step){ 
     26                        for(i = fromIndex || i; i != end; i += step){ 
    2827                                if(array[i] == value){ return i; } 
    2928                        } 
     
    5251 
    5352                        // match the behavior of the built-in forEach WRT empty arrs 
    54                         if((!arr)||(!arr.length)){ return; } 
     53                        if(!arr || !arr.length){ return; } 
    5554 
    5655                        // FIXME: there are several ways of handilng thisObject. Is 
     
    6463                _everyOrSome: function(/*Boolean*/every, /*Array*/arr, /*Function*/callback, /*Object?*/obj){ 
    6564                        var _p = _getParts(arr, obj); arr = _p[0]; obj = _p[1]; 
    66                         for(var i=0,l=arr.length; i<l; i++){ 
    67                                 var result = callback.call(obj, arr[i], i, arr); 
    68                                 if(every && !result){ 
    69                                         return false; // Boolean 
    70                                 }else if((!every)&&(result)){ 
    71                                         return true; // Boolean 
     65                        for(var i = 0, l = arr.length; i < l; i++){ 
     66                                var result = !!callback.call(obj, arr[i], i, arr); 
     67                                if(every ^ result){ 
     68                                        return result; // Boolean 
    7269                                } 
    7370                        } 
    74                         return (!!every); // Boolean 
     71                        return every; // Boolean 
    7572                }, 
    7673