]> source.dussan.org Git - jquery.git/commitdiff
Core: make isNumeric test work on Symbol
authorLiza Ramo <liza.h.ramo@gmail.com>
Sat, 17 Oct 2015 20:48:57 +0000 (16:48 -0400)
committerRichard Gibson <richard.gibson@gmail.com>
Sun, 25 Oct 2015 18:12:53 +0000 (14:12 -0400)
Ref #2645
Closes #2657

(cherry picked from commit 0703fd52ef88a2cdac93502070c51c93ffa1dfdd)

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

index 5e0037f194138efea30774a36f449fffdbcc25f4..4a1820b3d38b1deaa23bcfb932f7fe7f430fe330 100644 (file)
@@ -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 ) {
index a08ecf0c125d949d099e80a478ebb98865691c4d..c0edd3dcdf28438bb119913d121505766cff1bf0 100644 (file)
@@ -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 );