]> source.dussan.org Git - jquery.git/commitdiff
Core: Make jQuery.isXMLDoc accept falsy input
authorMichał Gołębiowski-Owczarek <m.goleb@gmail.com>
Mon, 7 Dec 2020 20:09:15 +0000 (21:09 +0100)
committerGitHub <noreply@github.com>
Mon, 7 Dec 2020 20:09:15 +0000 (21:09 +0100)
Fixes gh-4782
Closes gh-4814

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

index e122305cef37ce3ea2b0c03521dddffe61a5bda5..31d749dd1f150fec6c726ce791dc48d1993bf7bf 100644 (file)
@@ -307,8 +307,8 @@ jQuery.extend( {
        },
 
        isXMLDoc: function( elem ) {
-               var namespace = elem.namespaceURI,
-                       docElem = ( elem.ownerDocument || elem ).documentElement;
+               var namespace = elem && elem.namespaceURI,
+                       docElem = elem && ( elem.ownerDocument || elem ).documentElement;
 
                // Assume HTML when documentElement doesn't yet exist, such as inside
                // document fragments.
index e24966551caf382e5792e1f766993bc99ef077c8..6bcea95af20ff0da0968d0a8a7288f0d95db9706 100644 (file)
@@ -417,6 +417,16 @@ QUnit.test( "isXMLDoc - XML", function( assert ) {
        assert.ok( jQuery.isXMLDoc( jQuery( "desc", svg )[ 0 ] ), "XML desc Element" );
 } );
 
+QUnit.test( "isXMLDoc - falsy", function( assert ) {
+       assert.expect( 5 );
+
+       assert.strictEqual( jQuery.isXMLDoc( undefined ), false, "undefined" );
+       assert.strictEqual( jQuery.isXMLDoc( null ), false, "null" );
+       assert.strictEqual( jQuery.isXMLDoc( false ), false, "false" );
+       assert.strictEqual( jQuery.isXMLDoc( 0 ), false, "0" );
+       assert.strictEqual( jQuery.isXMLDoc( "" ), false, "\"\"" );
+} );
+
 QUnit.test( "XSS via location.hash", function( assert ) {
        var done = assert.async();
        assert.expect( 1 );