]> source.dussan.org Git - jquery.git/commitdiff
Attributes: Shave off a couple of bytes
authorMichał Gołębiowski-Owczarek <m.goleb@gmail.com>
Wed, 31 Jan 2024 00:47:11 +0000 (01:47 +0100)
committerGitHub <noreply@github.com>
Wed, 31 Jan 2024 00:47:11 +0000 (01:47 +0100)
The `attrHooks` entries for boolean attributes are only defined for jQuery 4+;
jQuery 3.x used a separate mechanism - assigning them to
`jQuery.expr.attrHandle`. That object used to be maintained by Sizzle, since
jQuery 3.7.0 it's kept in the selector module. Because of that, the `isXMLDoc`
check used to be require in this hook.

Now that standard `attrHooks` are used, the `isXMLDoc` check already happens
inside of `jQuery.attr` and there's no need to repeat it in the test. Note that
this repetition is even incorrect - while Sizzle's `jQuery.find.attr` used to
treat an `undefined` output of the hooks from `jQuery.expr.attrHandle` as a way
to opt out of the hook, jQuery's `attrHooks` use `null` to opt out of a getter
hook.

Apart from the size, this patch also avoids unnecessary extra checks.

Closes gh-5398

src/attributes/attr.js

index 5a911c7d0cd998edddbec9052691e977f39c9435..426a8e5245d3e733bf06a000de42a2168d439024 100644 (file)
@@ -108,16 +108,9 @@ jQuery.each( (
 ).split( " " ), function( _i, name ) {
        jQuery.attrHooks[ name ] = {
                get: function( elem ) {
-                       var ret,
-                               isXML = jQuery.isXMLDoc( elem ),
-                               lowercaseName = name.toLowerCase();
-
-                       if ( !isXML ) {
-                               ret = elem.getAttribute( name ) != null ?
-                                       lowercaseName :
-                                       null;
-                       }
-                       return ret;
+                       return elem.getAttribute( name ) != null ?
+                               name.toLowerCase() :
+                               null;
                },
 
                set: function( elem, value, name ) {