From 1b9575b9d14399e9426b9eacdd92b3717846c3f2 Mon Sep 17 00:00:00 2001 From: Manoj Kumar Date: Sun, 14 Aug 2016 10:54:16 +0000 Subject: [PATCH] Core: Deprecate jQuery.isArray Fixes gh-2961 Closes gh-3278 --- src/attributes/val.js | 4 ++-- src/core.js | 6 ++---- src/css.js | 2 +- src/data/Data.js | 2 +- src/deprecated.js | 1 + src/effects.js | 2 +- src/queue.js | 2 +- src/serialize.js | 6 +++--- test/data/testinit.js | 2 +- test/data/testrunner.js | 2 +- test/unit/core.js | 4 ++-- test/unit/deprecated.js | 6 ++++++ test/unit/queue.js | 2 +- 13 files changed, 23 insertions(+), 18 deletions(-) diff --git a/src/attributes/val.js b/src/attributes/val.js index fbf406929..9245e4e0a 100644 --- a/src/attributes/val.js +++ b/src/attributes/val.js @@ -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 + ""; } ); @@ -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 ); } } diff --git a/src/core.js b/src/core.js index f3983b4a8..c99f27e22 100644 --- a/src/core.js +++ b/src/core.js @@ -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 : {}; @@ -215,8 +215,6 @@ jQuery.extend( { return jQuery.type( obj ) === "function"; }, - isArray: Array.isArray, - isWindow: function( obj ) { return obj != null && obj === obj.window; }, diff --git a/src/css.js b/src/css.js index 5e4451193..c17265ced 100644 --- a/src/css.js +++ b/src/css.js @@ -404,7 +404,7 @@ jQuery.fn.extend( { map = {}, i = 0; - if ( jQuery.isArray( name ) ) { + if ( Array.isArray( name ) ) { styles = getStyles( elem ); len = name.length; diff --git a/src/data/Data.js b/src/data/Data.js index 43ae01623..8c856c039 100644 --- a/src/data/Data.js +++ b/src/data/Data.js @@ -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. diff --git a/src/deprecated.js b/src/deprecated.js index 9fcc6b7da..0329b9564 100644 --- a/src/deprecated.js +++ b/src/deprecated.js @@ -25,6 +25,7 @@ jQuery.fn.extend( { } } ); +jQuery.isArray = Array.isArray; jQuery.parseJSON = JSON.parse; } ); diff --git a/src/effects.js b/src/effects.js index 68af96c61..4823659c2 100644 --- a/src/effects.js +++ b/src/effects.js @@ -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 ]; } diff --git a/src/queue.js b/src/queue.js index 3a626a2fc..fbbbeab71 100644 --- a/src/queue.js +++ b/src/queue.js @@ -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 ); diff --git a/src/serialize.js b/src/serialize.js index 35dcf04f9..2e28ce1e0 100644 --- a/src/serialize.js +++ b/src/serialize.js @@ -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 ) { @@ -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() { @@ -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" ) }; } ); diff --git a/test/data/testinit.js b/test/data/testinit.js index ef210e739..c37687f68 100644 --- a/test/data/testinit.js +++ b/test/data/testinit.js @@ -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 ]; } diff --git a/test/data/testrunner.js b/test/data/testrunner.js index e5ca01389..0784ae0a8 100644 --- a/test/data/testrunner.js +++ b/test/data/testrunner.js @@ -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 ]; } diff --git a/test/unit/core.js b/test/unit/core.js index f5083b4a9..2166576ec 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -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 = {}; @@ -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 ) { diff --git a/test/unit/deprecated.js b/test/unit/deprecated.js index 27ba1cf88..b56af0ffe 100644 --- a/test/unit/deprecated.js +++ b/test/unit/deprecated.js @@ -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" ); +} ); diff --git a/test/unit/queue.js b/test/unit/queue.js index 2248c68d4..0a6862d6b 100644 --- a/test/unit/queue.js +++ b/test/unit/queue.js @@ -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 ) {