jquery dimensions & offset: moving the local function 'num' to core, so it can be...
[jquery.git] / src / core.js
index 8743f05..fedd292 100644 (file)
@@ -579,8 +579,11 @@ jQuery.extend = jQuery.fn.extend = function() {
                                        continue;
 
                                // Recurse if we're merging object values
-                               if ( deep && copy && typeof copy == "object" && src && !copy.nodeType )
-                                       target[ name ] = jQuery.extend( deep, src, copy );
+                               if ( deep && copy && typeof copy == "object" && !copy.nodeType )
+                                       target[ name ] = jQuery.extend( deep, 
+                                               // Never move original objects, clone them
+                                               src || ( copy.length != null ? [ ] : { } )
+                                       , copy );
 
                                // Don't bring in undefined values
                                else if ( copy !== undefined )
@@ -612,7 +615,7 @@ jQuery.extend({
        // See test/unit/core.js for details concerning this function.
        isFunction: function( fn ) {
                return !!fn && typeof fn != "string" && !fn.nodeName &&
-                       fn.constructor != Array && /function/i.test( fn + "" );
+                       fn.constructor != Array && /^[\s[]?function/.test( fn + "" );
        },
 
        // check if an element is in a (or is an) XML document
@@ -1356,3 +1359,8 @@ jQuery.each([ "Height", "Width" ], function(i, name){
                                        this.css( type, size.constructor == String ? size : size + "px" );
        };
 });
+
+// Helper function used by the dimensions and offset modules
+function num(elem, prop) {
+       return elem[0] && parseInt( jQuery.curCSS(elem[0], prop, true), 10 ) || 0;
+}
\ No newline at end of file