jquery core: closes #3541. Added isArray.
authorAriel Flesler <aflesler@gmail.com>
Wed, 29 Oct 2008 02:01:22 +0000 (02:01 +0000)
committerAriel Flesler <aflesler@gmail.com>
Wed, 29 Oct 2008 02:01:22 +0000 (02:01 +0000)
src/ajax.js
src/core.js
src/fx.js

index e454533..7e024a3 100644 (file)
@@ -76,7 +76,7 @@ jQuery.fn.extend({
                .map(function(i, elem){
                        var val = jQuery(this).val();
                        return val == null ? null :
-                               val.constructor == Array ?
+                               jQuery.isArray(val) ?
                                        jQuery.map( val, function(val, i){
                                                return {name: elem.name, value: val};
                                        }) :
@@ -504,7 +504,7 @@ jQuery.extend({
 
                // If an array was passed in, assume that it is an array
                // of form elements
-               if ( a.constructor == Array || a.jquery )
+               if ( jQuery.isArray(a) || a.jquery )
                        // Serialize the form elements
                        jQuery.each( a, function(){
                                add( this.name, this.value );
@@ -515,7 +515,7 @@ jQuery.extend({
                        // Serialize the key/values
                        for ( var j in a )
                                // If the value is an array then the key names need to be repeated
-                               if ( a[j] && a[j].constructor == Array )
+                               if ( jQuery.isArray(a[j]) )
                                        jQuery.each( a[j], function(){
                                                add( j, this );
                                        });
index 55c1223..b35b2e9 100644 (file)
@@ -407,7 +407,7 @@ jQuery.fn = jQuery.prototype = {
                        if ( this.nodeType != 1 )
                                return;
 
-                       if ( value.constructor == Array && /radio|checkbox/.test( this.type ) )
+                       if ( jQuery.isArray(value) && /radio|checkbox/.test( this.type ) )
                                this.checked = (jQuery.inArray(this.value, value) >= 0 ||
                                        jQuery.inArray(this.name, value) >= 0);
 
@@ -621,6 +621,10 @@ jQuery.extend({
        isFunction: function( fn ) {
                return !!fn && !!fn.hasOwnProperty && fn instanceof Function;
        },
+       
+       isArray: function( arr ){
+               return !!arr && arr.constructor == Array;
+       },
 
        // check if an element is in a (or is an) XML document
        isXMLDoc: function( elem ) {
index 3fe9369..cbf067f 100644 (file)
--- a/src/fx.js
+++ b/src/fx.js
@@ -112,7 +112,7 @@ jQuery.fn.extend({
        },
 
        queue: function(type, fn){
-               if ( jQuery.isFunction(type) || ( type && type.constructor == Array )) {
+               if ( jQuery.isFunction(type) || jQuery.isArray(type) ) {
                        fn = type;
                        type = "fx";
                }
@@ -121,7 +121,7 @@ jQuery.fn.extend({
                        return queue( this[0], type );
 
                return this.each(function(){
-                       if ( fn.constructor == Array )
+                       if ( jQuery.isArray(fn) )
                                queue(this, type, fn);
                        else {
                                queue(this, type).push( fn );