jquery core: improves #3248. Functions are supported by isFunction.
[jquery.git] / src / core.js
index 829e153..3a2548f 100644 (file)
@@ -612,10 +612,14 @@ jQuery.extend({
        },
 
        // See test/unit/core.js for details concerning this function.
-       // Since 1.3 DOM methods and function like alert
+       // Since version 1.3, DOM methods and functions like alert
        // aren't supported. They return false on IE (#2968).
+       
+       // Memory leaks appear in IE6 when applying instanceof 
+       // to the window, document or any other COM object (#3485)
+       // http://ajaxian.com/archives/working-aroung-the-instanceof-memory-leak
        isFunction: function( fn ) {
-               return fn instanceof Function;
+               return !!fn && !!fn.hasOwnProperty && fn instanceof Function;
        },
 
        // check if an element is in a (or is an) XML document
@@ -1133,7 +1137,7 @@ jQuery.extend({
                if( array != null ){
                        var i = array.length;
                        // The window, strings (and functions) also have 'length'
-                       if( i == null || typeof array == 'string' || array.setInterval )
+                       if( i == null || typeof array == 'string' || jQuery.isFunction(array) || array.setInterval )
                                ret[0] = array;
                        else
                                while( i )