diff options
author | Liza Ramo <liza.h.ramo@gmail.com> | 2015-10-17 16:48:57 -0400 |
---|---|---|
committer | Richard Gibson <richard.gibson@gmail.com> | 2015-10-25 14:12:53 -0400 |
commit | d846c25dca4adeb4262f98957f1b887fe6b29912 (patch) | |
tree | 7ae5fde71f50e402d5b9fb73d356c27a0a7ee35b | |
parent | 20cd34384d6908e0280cea9b69e09f065c4e4003 (diff) | |
download | jquery-d846c25dca4adeb4262f98957f1b887fe6b29912.tar.gz jquery-d846c25dca4adeb4262f98957f1b887fe6b29912.zip |
Core: make isNumeric test work on Symbol
Ref #2645
Closes #2657
(cherry picked from commit 0703fd52ef88a2cdac93502070c51c93ffa1dfdd)
-rw-r--r-- | src/core.js | 3 | ||||
-rw-r--r-- | test/unit/core.js | 7 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/core.js b/src/core.js index 5e0037f19..4a1820b3d 100644 --- a/src/core.js +++ b/src/core.js @@ -221,7 +221,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; }, isEmptyObject: function( obj ) { diff --git a/test/unit/core.js b/test/unit/core.js index a08ecf0c1..c0edd3dcd 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -504,6 +504,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 ); |