Browse files

Core: Arrays like [42] should fail .isNumeric()

Fixes #14179
  • Loading branch information...
1 parent 279913c commit 10efa1f5b44046aab6bcc8423322a41923faa290 @dmethvin dmethvin committed Mar 3, 2014
Showing with 4 additions and 2 deletions.
  1. +1 −1 src/core.js
  2. +3 −1 test/unit/core.js
View
2 src/core.js
@@ -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;
},
isPlainObject: function( obj ) {
View
4 test/unit/core.js
@@ -457,7 +457,7 @@ test("isFunction", function() {
});
test( "isNumeric", function() {
- expect( 36 );
+ expect( 38 );
var t = jQuery.isNumeric,
Traditionalists = /** @constructor */ function(n) {
@@ -505,6 +505,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");

0 comments on commit 10efa1f

Please sign in to comment.