jquery core: enhancements to jquery.map, closes #2803
[jquery.git] / src / core.js
index 6accbc4..c9076b6 100644 (file)
@@ -1138,16 +1138,16 @@ jQuery.extend({
        merge: function( first, second ) {
                // We have to loop this way because IE & Opera overwrite the length
                // expando of getElementsByTagName
-
+               var i = 0;
                // Also, we need to make sure that the correct elements are being returned
                // (IE returns comment nodes in a '*' query)
                if ( jQuery.browser.msie ) {
-                       for ( var i = 0; second[ i ]; i++ )
+                       for ( ; second[ i ]; i++ )
                                if ( second[ i ].nodeType != 8 )
                                        first.push( second[ i ] );
 
                } else
-                       for ( var i = 0; second[ i ]; i++ )
+                       for ( ; second[ i ]; i++ )
                                first.push( second[ i ] );
 
                return first;
@@ -1194,15 +1194,11 @@ jQuery.extend({
                for ( var i = 0, length = elems.length; i < length; i++ ) {
                        var value = callback( elems[ i ], i );
 
-                       if ( value !== null && value != undefined ) {
-                               if ( value.constructor != Array )
-                                       value = [ value ];
-
-                               ret = ret.concat( value );
-                       }
+                       if ( value != null )
+                               ret[ ret.length ] = value;
                }
 
-               return ret;
+               return ret.concat.apply( [], ret );
        }
 });