]> source.dussan.org Git - jquery.git/commitdiff
Core: Arrays like [42] should fail .isNumeric()
authorDave Methvin <dave.methvin@gmail.com>
Tue, 4 Mar 2014 03:18:50 +0000 (22:18 -0500)
committerDave Methvin <dave.methvin@gmail.com>
Wed, 5 Mar 2014 02:50:39 +0000 (21:50 -0500)
Fixes #14179
(cherry picked from commit 10efa1f5b44046aab6bcc8423322a41923faa290)

src/core.js
test/unit/core.js

index f446ec30437f457ddb471b602d8ba98d1655dc15..f09d872b22f2771ea42101475faf9f44a9988262 100644 (file)
@@ -216,7 +216,7 @@ jQuery.extend({
                // parseFloat NaNs numeric-cast false positives (null|true|false|"")
                // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
                // subtraction forces infinities to NaN
-               return obj - parseFloat( obj ) >= 0;
+               return !jQuery.isArray( obj ) && obj - parseFloat( obj ) >= 0;
        },
 
        isEmptyObject: function( obj ) {
index a5b77e54e9039cfbafe4a8d269f0316bbd777142..02ad0f221639f2309197558f04344395584fb988 100644 (file)
@@ -462,7 +462,7 @@ test("isFunction", function() {
 });
 
 test( "isNumeric", function() {
-       expect( 36 );
+       expect( 38 );
 
        var t = jQuery.isNumeric,
                Traditionalists = /** @constructor */ function(n) {
@@ -510,6 +510,8 @@ test( "isNumeric", function() {
        equal( t(Number.NEGATIVE_INFINITY), false, "Negative Infinity");
        equal( t(rong), false, "Custom .toString returning non-number");
        equal( t({}), false, "Empty object");
+       equal( t( [] ), false, "Empty array" );
+       equal( t( [ 42 ] ), false, "Array with one number" );
        equal( t(function(){} ), false, "Instance of a function");
        equal( t( new Date() ), false, "Instance of a Date");
        equal( t(function(){} ), false, "Instance of a function");