Skip to content

Commit

Permalink
Core: Deprecate jQuery.isArray
Browse files Browse the repository at this point in the history
Fixes gh-2961
Closes gh-3278
  • Loading branch information
kumarmj authored and mgol committed Nov 30, 2016
1 parent 5b4cb0d commit 1b9575b
Show file tree
Hide file tree
Showing 13 changed files with 23 additions and 18 deletions.
4 changes: 2 additions & 2 deletions src/attributes/val.js
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ jQuery.fn.extend( {
} else if ( typeof val === "number" ) {
val += "";

} else if ( jQuery.isArray( val ) ) {
} else if ( Array.isArray( val ) ) {
val = jQuery.map( val, function( value ) {
return value == null ? "" : value + "";
} );
Expand Down Expand Up @@ -173,7 +173,7 @@ jQuery.extend( {
jQuery.each( [ "radio", "checkbox" ], function() {
jQuery.valHooks[ this ] = {
set: function( elem, value ) {
if ( jQuery.isArray( value ) ) {
if ( Array.isArray( value ) ) {
return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
}
}
Expand Down
6 changes: 2 additions & 4 deletions src/core.js
Original file line number Diff line number Diff line change
Expand Up @@ -172,11 +172,11 @@ jQuery.extend = jQuery.fn.extend = function() {

// Recurse if we're merging plain objects or arrays
if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
( copyIsArray = jQuery.isArray( copy ) ) ) ) {
( copyIsArray = Array.isArray( copy ) ) ) ) {

if ( copyIsArray ) {
copyIsArray = false;
clone = src && jQuery.isArray( src ) ? src : [];
clone = src && Array.isArray( src ) ? src : [];

} else {
clone = src && jQuery.isPlainObject( src ) ? src : {};
Expand Down Expand Up @@ -215,8 +215,6 @@ jQuery.extend( {
return jQuery.type( obj ) === "function";
},

isArray: Array.isArray,

isWindow: function( obj ) {
return obj != null && obj === obj.window;
},
Expand Down
2 changes: 1 addition & 1 deletion src/css.js
Original file line number Diff line number Diff line change
Expand Up @@ -404,7 +404,7 @@ jQuery.fn.extend( {
map = {},
i = 0;

if ( jQuery.isArray( name ) ) {
if ( Array.isArray( name ) ) {
styles = getStyles( elem );
len = name.length;

Expand Down
2 changes: 1 addition & 1 deletion src/data/Data.js
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ Data.prototype = {
if ( key !== undefined ) {

// Support array or space separated string of keys
if ( jQuery.isArray( key ) ) {
if ( Array.isArray( key ) ) {

// If key is an array of keys...
// We always set camelCase keys, so remove that.
Expand Down
1 change: 1 addition & 0 deletions src/deprecated.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ jQuery.fn.extend( {
}
} );

jQuery.isArray = Array.isArray;
jQuery.parseJSON = JSON.parse;

} );
2 changes: 1 addition & 1 deletion src/effects.js
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,7 @@ function propFilter( props, specialEasing ) {
name = jQuery.camelCase( index );
easing = specialEasing[ name ];
value = props[ index ];
if ( jQuery.isArray( value ) ) {
if ( Array.isArray( value ) ) {
easing = value[ 1 ];
value = props[ index ] = value[ 0 ];
}
Expand Down
2 changes: 1 addition & 1 deletion src/queue.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jQuery.extend( {

// Speed up dequeue by getting out quickly if this is just a lookup
if ( data ) {
if ( !queue || jQuery.isArray( data ) ) {
if ( !queue || Array.isArray( data ) ) {
queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
} else {
queue.push( data );
Expand Down
6 changes: 3 additions & 3 deletions src/serialize.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ var
function buildParams( prefix, obj, traditional, add ) {
var name;

if ( jQuery.isArray( obj ) ) {
if ( Array.isArray( obj ) ) {

// Serialize array item.
jQuery.each( obj, function( i, v ) {
Expand Down Expand Up @@ -69,7 +69,7 @@ jQuery.param = function( a, traditional ) {
};

// If an array was passed in, assume that it is an array of form elements.
if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {

// Serialize the form elements
jQuery.each( a, function() {
Expand Down Expand Up @@ -115,7 +115,7 @@ jQuery.fn.extend( {
return null;
}

if ( jQuery.isArray( val ) ) {
if ( Array.isArray( val ) ) {
return jQuery.map( val, function( val ) {
return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
} );
Expand Down
2 changes: 1 addition & 1 deletion test/data/testinit.js
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ this.ajaxTest = function( title, expect, options ) {
}
options = options || [];
requestOptions = options.requests || options.request || options;
if ( !jQuery.isArray( requestOptions ) ) {
if ( !Array.isArray( requestOptions ) ) {
requestOptions = [ requestOptions ];
}

Expand Down
2 changes: 1 addition & 1 deletion test/data/testrunner.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ QUnit.assert.expectJqData = function( env, elems, key ) {
if ( elems.jquery && elems.toArray ) {
elems = elems.toArray();
}
if ( !supportjQuery.isArray( elems ) ) {
if ( !Array.isArray( elems ) ) {
elems = [ elems ];
}

Expand Down
4 changes: 2 additions & 2 deletions test/unit/core.js
Original file line number Diff line number Diff line change
Expand Up @@ -1161,7 +1161,7 @@ QUnit.test( "jQuery.extend(Object, Object)", function( assert ) {
assert.ok( jQuery.extend( true, {}, nestedarray )[ "arr" ] !== arr, "Deep extend of object must clone child array" );

// #5991
assert.ok( jQuery.isArray( jQuery.extend( true, { "arr": {} }, nestedarray )[ "arr" ] ), "Cloned array have to be an Array" );
assert.ok( Array.isArray( jQuery.extend( true, { "arr": {} }, nestedarray )[ "arr" ] ), "Cloned array have to be an Array" );
assert.ok( jQuery.isPlainObject( jQuery.extend( true, { "arr": arr }, { "arr": {} } )[ "arr" ] ), "Cloned object have to be an plain object" );

empty = {};
Expand Down Expand Up @@ -1282,7 +1282,7 @@ QUnit.test( "jQuery.extend(true,{},{a:[], o:{}}); deep copy with array, followed
result = jQuery.extend( true, {}, initial );

assert.deepEqual( result, initial, "The [result] and [initial] have equal shape and values" );
assert.ok( !jQuery.isArray( result.object ), "result.object wasn't paved with an empty array" );
assert.ok( !Array.isArray( result.object ), "result.object wasn't paved with an empty array" );
} );

QUnit.test( "jQuery.each(Object,Function)", function( assert ) {
Expand Down
6 changes: 6 additions & 0 deletions test/unit/deprecated.js
Original file line number Diff line number Diff line change
Expand Up @@ -110,3 +110,9 @@ QUnit.test( "jQuery.parseJSON", function( assert ) {

assert.strictEqual( jQuery.parseJSON( [ 0 ] ), 0, "Input cast to string" );
} );

QUnit.test( "jQuery.isArray", function( assert ) {
assert.expect( 1 );

assert.strictEqual( jQuery.isArray, Array.isArray, "Array.isArray equals jQuery.isArray" );
} );
2 changes: 1 addition & 1 deletion test/unit/queue.js
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ QUnit.test( "jQuery.queue should return array while manipulating the queue", fun

var div = document.createElement( "div" );

assert.ok( jQuery.isArray( jQuery.queue( div, "fx", jQuery.noop ) ), "jQuery.queue should return an array while manipulating the queue" );
assert.ok( Array.isArray( jQuery.queue( div, "fx", jQuery.noop ) ), "jQuery.queue should return an array while manipulating the queue" );
} );

QUnit.test( "delay()", function( assert ) {
Expand Down

6 comments on commit 1b9575b

@DenisLabrecque
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm assuming this is correct to do on jQuery UI as well.

@mgol
Copy link
Member

@mgol mgol commented on 1b9575b Jun 17, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm assuming this is correct to do on jQuery UI as well.

It’s already done in UI code.

@DenisLabrecque
Copy link

@DenisLabrecque DenisLabrecque commented on 1b9575b Jun 17, 2020 via email

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mgol
Copy link
Member

@mgol mgol commented on 1b9575b Jun 17, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It’s not released yet.

@DenisLabrecque
Copy link

@DenisLabrecque DenisLabrecque commented on 1b9575b Jun 17, 2020 via email

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@DenisLabrecque
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In case someone runs across this, this is the jQuery 1.12.1 release, but modified to patch jQuery migrate errors: https://github.com/DenisLabrecque/jQuery-UI-Fixed-for-3.5.1

Please sign in to comment.