Bug Tracker

Ticket #2803: faster-map.diff

File faster-map.diff, 780 bytes (added by flesler, 7 years ago)
  • core.js

     
    11851185        }, 
    11861186 
    11871187        map: function( elems, callback ) { 
    1188                 var ret = []; 
     1188                var ret = [], value; 
    11891189 
    11901190                // Go through the array, translating each of the items to their 
    11911191                // new value (or values). 
    11921192                for ( var i = 0, length = elems.length; i < length; i++ ) { 
    1193                         var value = callback( elems[ i ], i ); 
     1193                        value = callback( elems[ i ], i ); 
    11941194 
    1195                         if ( value !== null && value != undefined ) { 
    1196                                 if ( value.constructor != Array ) 
    1197                                         value = [ value ]; 
    1198  
    1199                                 ret = ret.concat( value ); 
    1200                         } 
     1195                        if ( value != null ) 
     1196                                ret[ ret.length ] = value; 
    12011197                } 
    12021198 
    1203                 return ret; 
     1199                return ret.concat.apply( [], ret ); 
    12041200        } 
    12051201}); 
    12061202