aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiza Ramo <liza.h.ramo@gmail.com>2015-10-17 16:48:57 -0400
committerOleg Gaidarenko <markelog@gmail.com>2015-10-17 16:50:05 -0400
commit0703fd52ef88a2cdac93502070c51c93ffa1dfdd (patch)
tree0a13b247574110bf7961ef438bdb761aed527e7c
parent44f8239d3f9d09d81e2885e9ae7e044277b67341 (diff)
downloadjquery-0703fd52ef88a2cdac93502070c51c93ffa1dfdd.tar.gz
jquery-0703fd52ef88a2cdac93502070c51c93ffa1dfdd.zip
Core: make isNumeric test work on Symbol
Ref #2645 Closes #2657
-rw-r--r--src/core.js3
-rw-r--r--test/unit/core.js7
2 files changed, 9 insertions, 1 deletions
diff --git a/src/core.js b/src/core.js
index b1483c018..a31e5f93f 100644
--- a/src/core.js
+++ b/src/core.js
@@ -214,7 +214,8 @@ jQuery.extend( {
// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
// subtraction forces infinities to NaN
// adding 1 corrects loss of precision from parseFloat (#15100)
- return !jQuery.isArray( obj ) && ( obj - parseFloat( obj ) + 1 ) >= 0;
+ var realStringObj = obj && obj.toString();
+ return !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0;
},
isPlainObject: function( obj ) {
diff --git a/test/unit/core.js b/test/unit/core.js
index 33d162d68..26602dcb2 100644
--- a/test/unit/core.js
+++ b/test/unit/core.js
@@ -490,6 +490,13 @@ QUnit.test( "isNumeric", function( assert ) {
assert.equal( t( new Date() ), false, "Instance of a Date" );
} );
+QUnit[ typeof Symbol === "function" ? "test" : "skip" ]( "isNumeric(Symbol)", function( assert ) {
+ assert.expect( 2 );
+
+ assert.equal( jQuery.isNumeric( Symbol() ), false, "Symbol" );
+ assert.equal( jQuery.isNumeric( Object( Symbol() ) ), false, "Symbol inside an object" );
+} );
+
QUnit.test( "isXMLDoc - HTML", function( assert ) {
assert.expect( 4 );