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>
This commit is contained in:
Michał Gołębiowski-Owczarek 2024-01-12 01:18:03 +01:00 committed by GitHub
parent 5613939470
commit e06ff08849
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 10 additions and 7 deletions

View File

@ -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 ] = { jQuery.attrHooks[ name ] = {
get: function( elem ) { get: function( elem ) {
var ret, var ret,

View File

@ -25,7 +25,6 @@ import { jQuery } from "./core.js";
import { document } from "./var/document.js"; import { document } from "./var/document.js";
import { whitespace } from "./var/whitespace.js"; import { whitespace } from "./var/whitespace.js";
import { isIE } from "./var/isIE.js"; import { isIE } from "./var/isIE.js";
import { booleans } from "./selector/var/booleans.js";
import { rleadingCombinator } from "./selector/var/rleadingCombinator.js"; import { rleadingCombinator } from "./selector/var/rleadingCombinator.js";
import { rdescend } from "./selector/var/rdescend.js"; import { rdescend } from "./selector/var/rdescend.js";
import { rsibling } from "./selector/var/rsibling.js"; import { rsibling } from "./selector/var/rsibling.js";
@ -41,7 +40,6 @@ import "./selector/escapeSelector.js";
import "./selector/uniqueSort.js"; import "./selector/uniqueSort.js";
var matchExpr = jQuery.extend( { var matchExpr = jQuery.extend( {
bool: new RegExp( "^(?:" + booleans + ")$", "i" ),
needsContext: new RegExp( "^" + whitespace + "*[>+~]" ) needsContext: new RegExp( "^" + whitespace + "*[>+~]" )
}, filterMatchExpr ); }, filterMatchExpr );

View File

@ -9,7 +9,6 @@ import { rbuggyQSA } from "./selector/rbuggyQSA.js";
import { rtrimCSS } from "./var/rtrimCSS.js"; import { rtrimCSS } from "./var/rtrimCSS.js";
import { isIE } from "./var/isIE.js"; import { isIE } from "./var/isIE.js";
import { identifier } from "./selector/var/identifier.js"; import { identifier } from "./selector/var/identifier.js";
import { booleans } from "./selector/var/booleans.js";
import { rleadingCombinator } from "./selector/var/rleadingCombinator.js"; import { rleadingCombinator } from "./selector/var/rleadingCombinator.js";
import { rdescend } from "./selector/var/rdescend.js"; import { rdescend } from "./selector/var/rdescend.js";
import { rsibling } from "./selector/var/rsibling.js"; import { rsibling } from "./selector/var/rsibling.js";
@ -24,6 +23,7 @@ import { tokenize } from "./selector/tokenize.js";
import { toSelector } from "./selector/toSelector.js"; import { toSelector } from "./selector/toSelector.js";
// The following utils are attached directly to the jQuery object. // The following utils are attached directly to the jQuery object.
import "./attributes/attr.js"; // jQuery.attr
import "./selector/escapeSelector.js"; import "./selector/escapeSelector.js";
import "./selector/uniqueSort.js"; import "./selector/uniqueSort.js";
@ -50,7 +50,6 @@ var i,
ridentifier = new RegExp( "^" + identifier + "$" ), ridentifier = new RegExp( "^" + identifier + "$" ),
matchExpr = jQuery.extend( { matchExpr = jQuery.extend( {
bool: new RegExp( "^(?:" + booleans + ")$", "i" ),
// For use in libraries implementing .is() // For use in libraries implementing .is()
// We use this for POS matching in `select` // We use this for POS matching in `select`

View File

@ -1,2 +0,0 @@
export var booleans = "checked|selected|async|autofocus|autoplay|controls|" +
"defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped";