diff options
author | Michał Gołębiowski-Owczarek <m.goleb@gmail.com> | 2024-01-12 01:18:03 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-12 01:18:03 +0100 |
commit | e06ff08849057cd099365bf43598c8952fe9956d (patch) | |
tree | d9c545a188d34df174557ad23d1067c91e848fe8 | |
parent | 56139394705022e4f6756440030ad6f3bf35f5a6 (diff) | |
download | jquery-e06ff08849057cd099365bf43598c8952fe9956d.tar.gz jquery-e06ff08849057cd099365bf43598c8952fe9956d.zip |
Selector: Make `selector.js` module depend on `attributes/attr.js`
This fixes custom builds using the `--include` switch that don't include
the `attributes` module.
Fixes gh-5379
Closes gh-5384
Co-authored-by: Richard Gibson <richard.gibson@gmail.com>
-rw-r--r-- | src/attributes/attr.js | 10 | ||||
-rw-r--r-- | src/selector-native.js | 2 | ||||
-rw-r--r-- | src/selector.js | 3 | ||||
-rw-r--r-- | src/selector/var/booleans.js | 2 |
4 files changed, 10 insertions, 7 deletions
diff --git a/src/attributes/attr.js b/src/attributes/attr.js index ddddcada6..5a911c7d0 100644 --- a/src/attributes/attr.js +++ b/src/attributes/attr.js @@ -97,7 +97,15 @@ if ( isIE ) { }; } -jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { +// HTML boolean attributes have special behavior: +// we consider the lowercase name to be the only valid value, so +// getting (if the attribute is present) normalizes to that, as does +// setting to any non-`false` value (and setting to `false` removes the attribute). +// See https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#boolean-attributes +jQuery.each( ( + "checked selected async autofocus autoplay controls defer disabled " + + "hidden ismap loop multiple open readonly required scoped" +).split( " " ), function( _i, name ) { jQuery.attrHooks[ name ] = { get: function( elem ) { var ret, diff --git a/src/selector-native.js b/src/selector-native.js index afb60f227..b245e3350 100644 --- a/src/selector-native.js +++ b/src/selector-native.js @@ -25,7 +25,6 @@ import { jQuery } from "./core.js"; import { document } from "./var/document.js"; import { whitespace } from "./var/whitespace.js"; import { isIE } from "./var/isIE.js"; -import { booleans } from "./selector/var/booleans.js"; import { rleadingCombinator } from "./selector/var/rleadingCombinator.js"; import { rdescend } from "./selector/var/rdescend.js"; import { rsibling } from "./selector/var/rsibling.js"; @@ -41,7 +40,6 @@ import "./selector/escapeSelector.js"; import "./selector/uniqueSort.js"; var matchExpr = jQuery.extend( { - bool: new RegExp( "^(?:" + booleans + ")$", "i" ), needsContext: new RegExp( "^" + whitespace + "*[>+~]" ) }, filterMatchExpr ); diff --git a/src/selector.js b/src/selector.js index d71e65ad4..da535718e 100644 --- a/src/selector.js +++ b/src/selector.js @@ -9,7 +9,6 @@ import { rbuggyQSA } from "./selector/rbuggyQSA.js"; import { rtrimCSS } from "./var/rtrimCSS.js"; import { isIE } from "./var/isIE.js"; import { identifier } from "./selector/var/identifier.js"; -import { booleans } from "./selector/var/booleans.js"; import { rleadingCombinator } from "./selector/var/rleadingCombinator.js"; import { rdescend } from "./selector/var/rdescend.js"; import { rsibling } from "./selector/var/rsibling.js"; @@ -24,6 +23,7 @@ import { tokenize } from "./selector/tokenize.js"; import { toSelector } from "./selector/toSelector.js"; // The following utils are attached directly to the jQuery object. +import "./attributes/attr.js"; // jQuery.attr import "./selector/escapeSelector.js"; import "./selector/uniqueSort.js"; @@ -50,7 +50,6 @@ var i, ridentifier = new RegExp( "^" + identifier + "$" ), matchExpr = jQuery.extend( { - bool: new RegExp( "^(?:" + booleans + ")$", "i" ), // For use in libraries implementing .is() // We use this for POS matching in `select` diff --git a/src/selector/var/booleans.js b/src/selector/var/booleans.js deleted file mode 100644 index bbdc4fdfc..000000000 --- a/src/selector/var/booleans.js +++ /dev/null @@ -1,2 +0,0 @@ -export var booleans = "checked|selected|async|autofocus|autoplay|controls|" + - "defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped"; |