aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichał Gołębiowski-Owczarek <m.goleb@gmail.com>2020-12-07 21:09:15 +0100
committerGitHub <noreply@github.com>2020-12-07 21:09:15 +0100
commitfd421097c56696e4c1c4a99c1aae44c59a722be4 (patch)
tree1b28881192f5f83253ff3fd4e8430539ef201719
parentdbcffb396c2db61ff96edc4162602e850797d61f (diff)
downloadjquery-fd421097c56696e4c1c4a99c1aae44c59a722be4.tar.gz
jquery-fd421097c56696e4c1c4a99c1aae44c59a722be4.zip
Core: Make jQuery.isXMLDoc accept falsy input
Fixes gh-4782 Closes gh-4814
-rw-r--r--src/core.js4
-rw-r--r--test/unit/core.js10
2 files changed, 12 insertions, 2 deletions
diff --git a/src/core.js b/src/core.js
index e122305ce..31d749dd1 100644
--- a/src/core.js
+++ b/src/core.js
@@ -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.
diff --git a/test/unit/core.js b/test/unit/core.js
index e24966551..6bcea95af 100644
--- a/test/unit/core.js
+++ b/test/unit/core.js
@@ -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 );