# Changelog

https://blog.jquery.com/2026/01/17/jquery-4-0-0/

## Ajax

- Don't treat array data as binary ([992a1911](https://github.com/jquery/jquery/commit/992a1911d0b6195012edc25fd5a48810d4be64b5))
- Allow `processData: true` even for binary data ([ce264e07](https://github.com/jquery/jquery/commit/ce264e0789116e37fe371503537a217c038dfae8))
- Support binary data (including FormData) ([a7ed9a7b](https://github.com/jquery/jquery/commit/a7ed9a7b6364273b1b964fd2cf9691dec2cbec6b))
- Support `headers` for script transport even when cross-domain ([#5142](https://github.com/jquery/jquery/issues/5142), [6d136443](https://github.com/jquery/jquery/commit/6d1364431b63b0d3bbe1c5fd604131f9db453396))
- Support `null` as success functions in `jQuery.get` ([#4989](https://github.com/jquery/jquery/issues/4989), [74978b7e](https://github.com/jquery/jquery/commit/74978b7e892537559850cda7332bdab8106e6354))
- Don't auto-execute scripts unless dataType provided ([#4822](https://github.com/jquery/jquery/issues/4822), [025da4dd](https://github.com/jquery/jquery/commit/025da4dd343e6734f3d3c1b4785b1548498115d8))
- Make responseJSON work for erroneous same-domain JSONP requests ([68b4ec59](https://github.com/jquery/jquery/commit/68b4ec59c8f290d680e9db4bc980655660817dd1))
- Execute JSONP error script responses ([#4771](https://github.com/jquery/jquery/issues/4771), [a1e619b0](https://github.com/jquery/jquery/commit/a1e619b03a557b47c3e26a5e74af12b63a0d5e73))
- Avoid CSP errors in the script transport for async requests ([#3969](https://github.com/jquery/jquery/issues/3969), [07a8e4a1](https://github.com/jquery/jquery/commit/07a8e4a177550025c1a08d7ac754839733943f55))
- Drop the json to jsonp auto-promotion logic ([#1799](https://github.com/jquery/jquery/issues/1799), [#3376](https://github.com/jquery/jquery/issues/3376), [e7b3bc48](https://github.com/jquery/jquery/commit/e7b3bc488d01d584262e12a7c5c25f935d0d034b))
- Overwrite s.contentType with content-type header value, if any ([#4119](https://github.com/jquery/jquery/issues/4119), [7fb90a6b](https://github.com/jquery/jquery/commit/7fb90a6beaeffe16699800f73746748f6a5cc2de))
- Deprecate AJAX event aliases, inline event/alias into deprecated ([23d53928](https://github.com/jquery/jquery/commit/23d53928f383b0e7440bf4b08b7524e6af232fad))
- Do not execute scripts for unsuccessful HTTP responses ([#4250](https://github.com/jquery/jquery/issues/4250), [50871a5a](https://github.com/jquery/jquery/commit/50871a5a85cc802421b40cc67e2830601968affe))
- Simplify jQuery.ajaxSettings.xhr ([#1967](https://github.com/jquery/jquery/issues/1967), [abdc89ac](https://github.com/jquery/jquery/commit/abdc89ac2e581392b800c0364e0f5f2b6a82cdc6))

## Attributes

- Make `.attr( name, false )` remove for all non-ARIA attrs ([#5388](https://github.com/jquery/jquery/issues/5388), [063831b6](https://github.com/jquery/jquery/commit/063831b6378d518f9870ec5c4f1e7d5d16e04f36))
- Shave off a couple of bytes ([b40a4807](https://github.com/jquery/jquery/commit/b40a4807b604efbde51faf075d11e25441af1990))
- Don't stringify attributes in the setter ([#4948](https://github.com/jquery/jquery/issues/4948), [4250b628](https://github.com/jquery/jquery/commit/4250b628783d7bfa92ec6c5550c6e4b22fab6034))
- Drop the `toggleClass(boolean|undefined)` signature ([#3388](https://github.com/jquery/jquery/issues/3388), [a4421101](https://github.com/jquery/jquery/commit/a4421101fd6d9d7b0550210f8e8690641733dd9a))
- Refactor val(): don't strip carriage return, isolate IE workarounds ([ff281991](https://github.com/jquery/jquery/commit/ff2819911da6cbbed5ee42c35d695240f06e65e3))
- Don't set the type attr hook at all outside of IE ([9e66fe9a](https://github.com/jquery/jquery/commit/9e66fe9acf0ef27681f5a21149fc61678f791641))

## Core

- Remove obsolete workarounds, update support comments ([e2fe97b7](https://github.com/jquery/jquery/commit/e2fe97b7f15cf5ee2e44566b381f7bf214e491b1))
- Switch `$.parseHTML` from `document.implementation` to `DOMParser` ([0e123509](https://github.com/jquery/jquery/commit/0e123509d529456ddf130abb97e6266b53f62c50))
- Fix the exports setup to make bundlers work with ESM & CommonJS ([#5416](https://github.com/jquery/jquery/issues/5416), [60f11b58](https://github.com/jquery/jquery/commit/60f11b58bfeece6b6d0189d7d19b61a4e1e61139))
- Add more info about named exports ([5f869590](https://github.com/jquery/jquery/commit/5f869590924b7dea6a16d176b18700939f4b5290))
- Simplify code post browser support reduction ([93ca49e6](https://github.com/jquery/jquery/commit/93ca49e6d1ac23fee33b3bc3b7f4d93dd1a25cb7))
- Move the factory to separate exports ([46f6e3da](https://github.com/jquery/jquery/commit/46f6e3da796ee9d28c7c1428793b72d66bcbb0b7))
- Use named exports in `src/` ([#5262](https://github.com/jquery/jquery/issues/5262), [f75daab0](https://github.com/jquery/jquery/commit/f75daab09102a4dd5107deadb55d4a169f86254a))
- Fix regression in jQuery.text() on HTMLDocument objects ([#5264](https://github.com/jquery/jquery/issues/5264), [a75d6b52](https://github.com/jquery/jquery/commit/a75d6b52fad212820358e8ada3154f2f634e699b))
- Selector: Move jQuery.contains from the selector to the core module ([024d8719](https://github.com/jquery/jquery/commit/024d87195ac46690023e2b0b308d4406a8a5a27e))
- Drop the root parameter of jQuery.fn.init ([d2436df3](https://github.com/jquery/jquery/commit/d2436df36a4b2ef556907e734a90771f0dbdbcaf))
- Don't rely on splice being present on input ([9c6f64c7](https://github.com/jquery/jquery/commit/9c6f64c7b51d50e334ef1183e2937ad77c0a68b0))
- Manipulation: Add basic TrustedHTML support ([#4409](https://github.com/jquery/jquery/issues/4409), [de5398a6](https://github.com/jquery/jquery/commit/de5398a6ad088dc006b46c6a870a2a053f4cd663))
- Report browser errors in parseXML ([#4784](https://github.com/jquery/jquery/issues/4784), [89697325](https://github.com/jquery/jquery/commit/8969732518470a7f8e654d5bc5be0b0076cb0b87))
- Make jQuery.isXMLDoc accept falsy input ([#4782](https://github.com/jquery/jquery/issues/4782), [fd421097](https://github.com/jquery/jquery/commit/fd421097c56696e4c1c4a99c1aae44c59a722be4))
- Drop support for Edge Legacy (i.e. non-Chromium Microsoft Edge) ([#4568](https://github.com/jquery/jquery/issues/4568), [e35fb62d](https://github.com/jquery/jquery/commit/e35fb62db4fb46f031056bb53e393982c03972a1))
- Fire iframe script in its context, add doc param in globalEval ([#4518](https://github.com/jquery/jquery/issues/4518), [4592595b](https://github.com/jquery/jquery/commit/4592595b478be979141ce35c693dbc6b65647173))
- Exclude callbacks & deferred modules in the slim build as well ([fbc44f52](https://github.com/jquery/jquery/commit/fbc44f52fe76e1b601da76a1d7f8ef27884c06da))
- Migrate from AMD to ES modules 🎉 ([d0ce00cd](https://github.com/jquery/jquery/commit/d0ce00cdfa680f1f0c38460bc51ea14079ae8b07))
- Use Array.prototype.flat where supported ([#4320](https://github.com/jquery/jquery/issues/4320), [9df4f1de](https://github.com/jquery/jquery/commit/9df4f1de12728b44a4b0f91748f12421008d9079))
- Remove private copies of push, sort & splice from the jQuery prototype ([b59107f5](https://github.com/jquery/jquery/commit/b59107f5d7451ac16a7c8755128719be6ec8bf12))
- Implement .even() & .odd() to replace POS :even & :odd ([78420d42](https://github.com/jquery/jquery/commit/78420d427cf3734d9264405fcbe08b76be182a95))
- Deprecate jQuery.trim ([#4363](https://github.com/jquery/jquery/issues/4363), [5ea59460](https://github.com/jquery/jquery/commit/5ea5946094784f68437ef26d463dfcfbbbaff1f6))
- Remove IE-specific support tests, rely on document.documentMode ([#4386](https://github.com/jquery/jquery/issues/4386), [3527a384](https://github.com/jquery/jquery/commit/3527a3840585e6a359cd712591c9c57398357b9b))
- Drop support for IE <11, iOS <11, Firefox <65, Android Browser & PhantomJS ([#3950](https://github.com/jquery/jquery/issues/3950), [#4299](https://github.com/jquery/jquery/issues/4299), [cf84696f](https://github.com/jquery/jquery/commit/cf84696fd1d7fe314a11492606529b5a658ee9e3))
- Remove deprecated jQuery APIs ([#4056](https://github.com/jquery/jquery/issues/4056), [58f0c00b](https://github.com/jquery/jquery/commit/58f0c00bed695f934bb205c6115e5fe99dd5c27b))

## CSS

- Fix dimensions of table `<col>` elements ([#5628](https://github.com/jquery/jquery/issues/5628), [eca2a564](https://github.com/jquery/jquery/commit/eca2a56457e1c40c071aeb3ac87efeb8bbb8013e))
- Drop the cache in finalPropName ([640d5825](https://github.com/jquery/jquery/commit/640d5825df5ff223560c5690f1a268681c32f9fa))
- Tests: Fix tests & support tests under CSS Zoom ([#5489](https://github.com/jquery/jquery/issues/5489), [071f6dba](https://github.com/jquery/jquery/commit/071f6dba6bd1d8db3f36ce4694aab5ff437b9e36))
- Fix reliableTrDimensions support test for initially hidden iframes ([b1e66a5f](https://github.com/jquery/jquery/commit/b1e66a5faaf46ffcbcc27c79a9a224aaf851a987))
- Selector: Align with 3.x, remove the outer `selector.js` wrapper ([53cf7244](https://github.com/jquery/jquery/commit/53cf7244da2a2040333335c36e435b1c12efdff9))
- Make the reliableTrDimensions support test work with Bootstrap CSS ([#5270](https://github.com/jquery/jquery/issues/5270), [65b85031](https://github.com/jquery/jquery/commit/65b85031fb5688361c077bc04e641e4b502671e1))
- Make `offsetHeight( true )`, etc. include negative margins ([#3982](https://github.com/jquery/jquery/issues/3982), [bce13b72](https://github.com/jquery/jquery/commit/bce13b72c1753e16cc0db53ebf0f0456bdcf6b48))
- Return `undefined` for whitespace-only CSS variable values (#5120) ([7eb00196](https://github.com/jquery/jquery/commit/7eb0019640a5856c42b451551eb7f995d913eba9))
- Don’t trim whitespace of undefined custom property ([#5105](https://github.com/jquery/jquery/issues/5105), [ed306c02](https://github.com/jquery/jquery/commit/ed306c0261ab63746040e5d58bb4477c3069a427))
- Skip falsy values in `addClass( array )`, compress code ([#4998](https://github.com/jquery/jquery/issues/4998), [a338b407](https://github.com/jquery/jquery/commit/a338b407f2479f82df40635055effc163835183f))
- Justify use of rtrim on CSS property values ([655c0ed5](https://github.com/jquery/jquery/commit/655c0ed5e204b1f6427e09d615a49586a7bc84eb))
- Trim whitespace surrounding CSS Custom Properties values ([#4926](https://github.com/jquery/jquery/issues/4926), [efadfe99](https://github.com/jquery/jquery/commit/efadfe991a5c287af561a9326bf1427d726c91c1))
- Include `show`, `hide` & `toggle` methods in the jQuery slim build ([297d18dd](https://github.com/jquery/jquery/commit/297d18dd13f7b810ea5a4afeefa4cb15d9e16e16))
- Remove the opacity CSS hook ([865469f5](https://github.com/jquery/jquery/commit/865469f5e60f55feb28469bb0a7526dd22f04b4e))
- Workaround buggy getComputedStyle on table rows in IE/Edge ([#4490](https://github.com/jquery/jquery/issues/4490), [26415e08](https://github.com/jquery/jquery/commit/26415e081b318dbe1d46d2b7c30e05f14c339b75))
- Don't automatically add "px" to properties with a few exceptions ([#2795](https://github.com/jquery/jquery/issues/2795), [00a9c2e5](https://github.com/jquery/jquery/commit/00a9c2e5f4c855382435cec6b3908eb9bd5a53b7))

## Data

- Refactor to reduce size ([805cdb43](https://github.com/jquery/jquery/commit/805cdb43fd02c3a5783c06b5ec2c9519be0682ab))
- Event:Manipulation: Prevent collisions with Object.prototype ([#3256](https://github.com/jquery/jquery/issues/3256), [9d76c0b1](https://github.com/jquery/jquery/commit/9d76c0b163675505d1a901e5fe5249a2c55609bc))
- Separate data & css/effects camelCase implementations ([#3355](https://github.com/jquery/jquery/issues/3355), [8fae2120](https://github.com/jquery/jquery/commit/8fae21200e80647fec4389995c4879948d11ad66))

## Deferred

- Rename `getStackHook` to `getErrorHook` ([#5201](https://github.com/jquery/jquery/issues/5201), [258ca1ec](https://github.com/jquery/jquery/commit/258ca1ec6a373f85f7849308c967b7e6a993e6e7))
- Respect source maps in jQuery.Deferred.exceptionHook ([#3179](https://github.com/jquery/jquery/issues/3179), [0b9c5037](https://github.com/jquery/jquery/commit/0b9c5037f707a0b8e0dbb11776b690ae7dde7123))
- Rename master to primary ([a32cf632](https://github.com/jquery/jquery/commit/a32cf6324f8f2190e66a687e94be9687ebf840b7))

## Deprecated

- Define `.hover()` using non-deprecated methods ([fd6ffc5e](https://github.com/jquery/jquery/commit/fd6ffc5eb2c12562f2656d2f33865448420252be))
- Remove jQuery.trim ([0b676ae1](https://github.com/jquery/jquery/commit/0b676ae12d20721e2df6f6f32f37f7302f8805bf))
- Fix AMD parameter order ([f810080e](https://github.com/jquery/jquery/commit/f810080e8e92278bb5288cba7cc0169481471780))

## Dimensions

- Add offset prop fallback to FF for unreliable TR dimensions ([#4529](https://github.com/jquery/jquery/issues/4529), [3bbbc111](https://github.com/jquery/jquery/commit/3bbbc11111840d6fd5160db13f2c1a9acb05c4c4))

## Docs

- updated the vulnerability reporting process and added escalation steps ([02cf4ee0](https://github.com/jquery/jquery/commit/02cf4ee090debded3da4b0e3f59bd33f516125ea))
- Fix some minor issues in comments ([e4d4dd81](https://github.com/jquery/jquery/commit/e4d4dd81bfb0c27a9c557746035738319253a30c))
- update herodevs link in README ([#5695](https://github.com/jquery/jquery/issues/5695), [093e63f9](https://github.com/jquery/jquery/commit/093e63f92a5843c2d73fd953454cc6307fe8025c))
- Align CONTRIBUTING.md with `3.x-stable` ([d9281061](https://github.com/jquery/jquery/commit/d92810614b53270a8f014db14022887ee3383fd5))
- Update CONTRIBUTING.md ([4ef25b0d](https://github.com/jquery/jquery/commit/4ef25b0de4a847f14ba2f88e309eaf759e035d78))
- add version support section to README ([cbc2bc1f](https://github.com/jquery/jquery/commit/cbc2bc1fd37bb6af5d2c60cf666265c4d438200f))
- Update remaining HTTP URLs to HTTPS ([7cdd8374](https://github.com/jquery/jquery/commit/7cdd8374234b77a3c70dd511a1b06066afb146bb))
- Fix module links in the package README ([ace646f6](https://github.com/jquery/jquery/commit/ace646f6e83e653f666ba715c200739f1cbdba52))
- update watch task in CONTRIBUTING.md ([77d6ad71](https://github.com/jquery/jquery/commit/77d6ad7172db3ae11573df7b322d410b161eb43e))
- Fix typos found by codespell ([620870a1](https://github.com/jquery/jquery/commit/620870a1af5287d29c77ec6d5f973116b23793a7))
- remove stale gitter badge from readme ([67cb1af7](https://github.com/jquery/jquery/commit/67cb1af7740a956e150e8d93266c4e601f55e8a4))
- Remove the "Grunt build" section from the PR template ([988a5684](https://github.com/jquery/jquery/commit/988a56847de301ce18a653f84b07c5af432a269f))
- Remove stale badge from README ([bcd9c2bc](https://github.com/jquery/jquery/commit/bcd9c2bc3ddaa04f89f550681ca9c1ec5efc4328))
- Update the README of the published package ([edccabf1](https://github.com/jquery/jquery/commit/edccabf10d37b57cbd4eeebc44f3acb67cb2739c))
- Remove git.io from a GitHub Actions comment ([016872ff](https://github.com/jquery/jquery/commit/016872ffe03ab9107b1bc62fae674a4809c3b23f))
- Update webpack website in README ([01819bc3](https://github.com/jquery/jquery/commit/01819bc3bcc44282e5bb9301c3478d837d1e5152))
- add link to patchwelcome and help wanted issues ([924b7ce8](https://github.com/jquery/jquery/commit/924b7ce825962bfe4c16e02eb411c7f66ee75a55))
- add link to preview the new CLAs ([683ceb8f](https://github.com/jquery/jquery/commit/683ceb8ff067ac53a7cb464ba1ec3f88e353e3f5))
- Fix incorrect `trac-NUMBER` references ([eb9ceb2f](https://github.com/jquery/jquery/commit/eb9ceb2facbeff1c66a41824bd0ac0c56d0c5c62))
- remove expired links from old jquery source (#4997) ([ed066ac7](https://github.com/jquery/jquery/commit/ed066ac70270b4bb20b5717501d2d268ef144bd3))
- Remove links to Web Archive from source ([#4981](https://github.com/jquery/jquery/issues/4981), [e24f2dcf](https://github.com/jquery/jquery/commit/e24f2dcf3f6bda1a672502e0233c732065cbbe89))
- Replace `#NUMBER` Trac issue references with `trac-NUMBER` ([5d5ea015](https://github.com/jquery/jquery/commit/5d5ea015114092c157311c4948f7cc3d8c8e7f8a))
- Update the URL to the latest jQuery build in CONTRIBUTING.md ([9bdb16cd](https://github.com/jquery/jquery/commit/9bdb16cd19097da67950a707baac3980bda873f3))
- Remove the CLA checkbox in the pull request template ([e1248931](https://github.com/jquery/jquery/commit/e124893132d7a979d7987f978e968a1f889348b6))
- update irc to Libera and fix LAMP dead link ([175db73e](https://github.com/jquery/jquery/commit/175db73ec7938e774d9e93d3afdfb35a24466b47))
- Update Frequently Reported Issues in the GitHub issue template ([7a6fae6a](https://github.com/jquery/jquery/commit/7a6fae6a7e51ae30a9f3177e8639fbf523ed0915))
- Change JS Foundation mentions to OpenJS Foundation ([11611967](https://github.com/jquery/jquery/commit/11611967adf2bd9ff4304132f917629ec1134049))
- add SECURITY.md, show security email address ([2ffe54ca](https://github.com/jquery/jquery/commit/2ffe54ca53b4ba2de2012f83c3faf262c1003af9))
- Fix typos ([1a7332ce](https://github.com/jquery/jquery/commit/1a7332ce83cdee7d6cd9d45c2a4b83067f53f14b))
- Update the link to the jsdom repository ([a62309e0](https://github.com/jquery/jquery/commit/a62309e01b3c76d2b73560ca666c454b7bbfcb77))
- Use https for hyperlinks in README ([73415da2](https://github.com/jquery/jquery/commit/73415da25d964ee31ec1804d55f5af0199a1378e))
- Remove a mention of the event/alias.js module from README ([3edfa1bc](https://github.com/jquery/jquery/commit/3edfa1bcdc50bca41ac58b2642b12f3feee03a3b))
- Update links to EdgeHTML issues to go through Web Archive ([1dad1185](https://github.com/jquery/jquery/commit/1dad1185e0b2ca2a13bf411558eda75fb2d4da88))
- direct users to GitHub docs for cloning the repo ([f1c16de2](https://github.com/jquery/jquery/commit/f1c16de29689d2cfaf629f00d682148e99753509))
- Change OS X to macOS in README ([5a3e0664](https://github.com/jquery/jquery/commit/5a3e0664d261422f11a78faaf101d70c73b3a5a8))
- Update most URLs to HTTPS ([f09d9210](https://github.com/jquery/jquery/commit/f09d92100ffff6208211b200ed0cdc39bfd17fc3))
- Convert link to Homebrew from HTTP to HTTPS ([e0022f23](https://github.com/jquery/jquery/commit/e0022f23144fd1dc6db86a5d8c18af47bc14f0f3))

## Effect

- Fix a unnecessary conditional statement in .stop() ([#4374](https://github.com/jquery/jquery/issues/4374), [110802c7](https://github.com/jquery/jquery/commit/110802c7f22b677ef658963aa95ebdf5cb9c5573))

## Effects

- Remove jQuery.fx.interval ([6c2c7362](https://github.com/jquery/jquery/commit/6c2c7362fb18d3df7c2a7b13715c2763645acfcb))

## Event

- Use `.preventDefault()` in beforeunload ([7c123dec](https://github.com/jquery/jquery/commit/7c123dec4b96e7c3ce5f5a78e828c8aa335bea98))
- Increase robustness of an inner native event in leverageNative ([#5459](https://github.com/jquery/jquery/issues/5459), [527fb3dc](https://github.com/jquery/jquery/commit/527fb3dcf0dcde69302a741dfc61cbfa58e99eb0))
- Avoid collisions between jQuery.event.special & Object.prototype ([bcaeb000](https://github.com/jquery/jquery/commit/bcaeb000b777c018ad5d18e01be5060caa8cb158))
- Simplify the check for saved data in leverageNative ([dfe212d5](https://github.com/jquery/jquery/commit/dfe212d5a1eed6b4a67d1cbd04ece09bbac33699))
- Make trigger(focus/blur/click) work with native handlers ([#5015](https://github.com/jquery/jquery/issues/5015), [6ad3651d](https://github.com/jquery/jquery/commit/6ad3651dbfea9e9bb56e608f72b4ef2f97bd4e70))
- Simulate focus/blur in IE via focusin/focusout ([#4856](https://github.com/jquery/jquery/issues/4856), [#4859](https://github.com/jquery/jquery/issues/4859), [#4950](https://github.com/jquery/jquery/issues/4950), [ce60d318](https://github.com/jquery/jquery/commit/ce60d31893deab7d3da592b5173e90b5d50e7732))
- Don't break focus triggering after `.on(focus).off(focus)` ([#4867](https://github.com/jquery/jquery/issues/4867), [e539bac7](https://github.com/jquery/jquery/commit/e539bac79e666bba95bba86d690b4e609dca2286))
- Make focus re-triggering not focus the original element back ([#4382](https://github.com/jquery/jquery/issues/4382), [dbcffb39](https://github.com/jquery/jquery/commit/dbcffb396c2db61ff96edc4162602e850797d61f))
- Don't crash if an element is removed on blur ([#4417](https://github.com/jquery/jquery/issues/4417), [5c2d0870](https://github.com/jquery/jquery/commit/5c2d08704e289dd2745bcb0557b35a9c0e6af4a4))
- Remove the event.which shim ([#3235](https://github.com/jquery/jquery/issues/3235), [1a5fff4c](https://github.com/jquery/jquery/commit/1a5fff4c169dbaa2df72c656868bcf60ed4413d0))
- remove jQuery.event.global ([18db8717](https://github.com/jquery/jquery/commit/18db87172cffbe48b92e30b70249e304863a70f9))
- Only attach events to objects that accept data - for real ([#4397](https://github.com/jquery/jquery/issues/4397), [d5c505e3](https://github.com/jquery/jquery/commit/d5c505e35d8c74ce8e9d99731a1a7eab0e0d911c))
- Stop shimming focusin & focusout events ([#4300](https://github.com/jquery/jquery/issues/4300), [8a741376](https://github.com/jquery/jquery/commit/8a741376937dfacf9f82b2b88f93b239fe267435))
- Prevent leverageNative from registering duplicate dummy handlers ([eb6c0a7c](https://github.com/jquery/jquery/commit/eb6c0a7c97b1b3cf00144de12d945c9c569f935c))
- Fix handling of multiple async focus events ([#4350](https://github.com/jquery/jquery/issues/4350), [ddfa8376](https://github.com/jquery/jquery/commit/ddfa83766478268391bc9da96683fc0d4973fcfe))

## Manipulation

- Make jQuery.cleanData not skip elements during cleanup ([#5214](https://github.com/jquery/jquery/issues/5214), [3cad5c43](https://github.com/jquery/jquery/commit/3cad5c435aa2333c39baa55a8bceb2b6bf1e2721))
- Generalize a test to support IE ([88690ebf](https://github.com/jquery/jquery/commit/88690ebfc8b5ef8b1e444326c664b590ecc0b888))
- Support $el.html(selfRemovingScript) (#5378) ([#5377](https://github.com/jquery/jquery/issues/5377), [937923d9](https://github.com/jquery/jquery/commit/937923d9ee8dfd19008447b5059cbd13ee5a23ac))
- Extract domManip to a separate file ([ee6e8740](https://github.com/jquery/jquery/commit/ee6e874075ba1fcd8f9e62cd1ee5c04f6518b6d6))
- Don't remove HTML comments from scripts ([#4904](https://github.com/jquery/jquery/issues/4904), [2f8f39e4](https://github.com/jquery/jquery/commit/2f8f39e457c32c454c50545b0fdaa1d7a4a2f8bd))
- Respect script crossorigin attribute in DOM manipulation ([#4542](https://github.com/jquery/jquery/issues/4542), [15ae3614](https://github.com/jquery/jquery/commit/15ae361485056b236a9484a185238f992806e1ff))
- Avoid concatenating strings in buildFragment ([9c98e4e8](https://github.com/jquery/jquery/commit/9c98e4e86eda857ee063bc48adbc1a11bb5506ee))
- Make jQuery.htmlPrefilter an identity function ([90fed4b4](https://github.com/jquery/jquery/commit/90fed4b453a5becdb7f173d9e3c1492390a1441f))
- Selector: Use the nodeName util where possible to save size ([4504fc3d](https://github.com/jquery/jquery/commit/4504fc3d722dd029d861cb47aa65a5edc651c4d3))

## Offset

- Increase search depth when finding the 'real' offset parent ([556eaf4a](https://github.com/jquery/jquery/commit/556eaf4a193287c306d163635cbb5f5c95a22a84))

## Selector

- Remove the workaround for `:has`; test both on iPhone & iPad ([65e35450](https://github.com/jquery/jquery/commit/65e35450c9954173dc1ddd3576242a913d8efb88))
- Properly deprecate `jQuery.expr[ ":" ]`/`jQuery.expr.filters` ([329661fd](https://github.com/jquery/jquery/commit/329661fd538a07993a2fcfa2a75fdd7f5667f86c))
- Make `selector.js` module depend on `attributes/attr.js` ([#5379](https://github.com/jquery/jquery/issues/5379), [e06ff088](https://github.com/jquery/jquery/commit/e06ff08849057cd099365bf43598c8952fe9956d))
- Eliminate `selector.js` depenencies from various modules ([e8b7db4b](https://github.com/jquery/jquery/commit/e8b7db4b0f1e1b8e08578641b30a92b955ccc4ec))
- Re-expose jQuery.find.{tokenize,select,compile,setDocument} ([#5259](https://github.com/jquery/jquery/issues/5259), [338de359](https://github.com/jquery/jquery/commit/338de3599039a3ba906214e656bcbe637430c37d))
- Stop relying on CSS.supports( "selector(...)" ) ([#5194](https://github.com/jquery/jquery/issues/5194), [68aa2ef7](https://github.com/jquery/jquery/commit/68aa2ef7571e2d9f91fad1aa9e5f956c04dc9ee9))
- Backport jQuery selection context logic to selector-native ([#5185](https://github.com/jquery/jquery/issues/5185), [2e644e84](https://github.com/jquery/jquery/commit/2e644e845051703775b35b358eec5d3608a9465f))
- Make selector lists work with `qSA` again ([#5177](https://github.com/jquery/jquery/issues/5177), [09d988b7](https://github.com/jquery/jquery/commit/09d988b774e7ff4acfb69c0cde2dab373559aaca))
- Implement the `uniqueSort` chainable method ([#5166](https://github.com/jquery/jquery/issues/5166), [5266f23c](https://github.com/jquery/jquery/commit/5266f23cf49c9329bddce4d4af6cb5fbbd1e0383))
- Re-introduce selector-native.js ([4c1171f2](https://github.com/jquery/jquery/commit/4c1171f2ed62584211250df0af8302d34c04621a))
- Manipulation: Fix DOM manip within template contents ([#5147](https://github.com/jquery/jquery/issues/5147), [3299236c](https://github.com/jquery/jquery/commit/3299236c898136dc1aa57dc5148811203e931895))
- Drop support for legacy pseudos, test custom pseudos ([8c7da22c](https://github.com/jquery/jquery/commit/8c7da22caeae8c2c3f7e9869d5f47414669f106c))
- Use jQuery `:has` if `CSS.supports(selector(...))` non-compliant ([#5098](https://github.com/jquery/jquery/issues/5098), [d153c375](https://github.com/jquery/jquery/commit/d153c375e67f2c2dba82c2fb079c36b8d795e66a))
- Remove the "a:enabled" workaround for Chrome <=77 ([c1ee33ad](https://github.com/jquery/jquery/commit/c1ee33aded44051b8f1288b59d2efdc68d0413cc))
- Make empty attribute selectors work in IE again ([#4435](https://github.com/jquery/jquery/issues/4435), [05184cc4](https://github.com/jquery/jquery/commit/05184cc448f4ed7715ddd6a5d724e167882415f1))
- Use shallow document comparisons in uniqueSort ([#4441](https://github.com/jquery/jquery/issues/4441), [15750b0a](https://github.com/jquery/jquery/commit/15750b0af270da07917b70457cf09bda97d3d935))
- Add a test for throwing on post-comma invalid selectors ([6eee5f7f](https://github.com/jquery/jquery/commit/6eee5f7f181f9ebf5aa428e96356667e3cf7ddbd))
- Make selectors with leading combinators use qSA again ([ed66d5a2](https://github.com/jquery/jquery/commit/ed66d5a22b37425abf5b63c361f91340de89c994))
- Use shallow document comparisons to avoid IE/Edge crashes ([#4441](https://github.com/jquery/jquery/issues/4441), [aa6344ba](https://github.com/jquery/jquery/commit/aa6344baf87145ffc807a527d9c1fb03c96b1948))
- reduce size, simplify setDocument ([29a9544a](https://github.com/jquery/jquery/commit/29a9544a4fb743491a42f827a6cf8627b7b99e0f))
- Leverage the :scope pseudo-class where possible ([#4453](https://github.com/jquery/jquery/issues/4453), [df6a7f7f](https://github.com/jquery/jquery/commit/df6a7f7f0f615149266b1a51064293b748b29900))
- Bring back querySelectorAll shortcut usage ([cef4b731](https://github.com/jquery/jquery/commit/cef4b73179b8d2a38cfd5e0730111cc80518311a))
- Inline Sizzle into the selector module ([47835965](https://github.com/jquery/jquery/commit/47835965bd100a3661d8299d8b769ceeb8b6ce48))
- Port Sizzle tests to jQuery ([79b74e04](https://github.com/jquery/jquery/commit/79b74e043a4ee737d44a95094ff1184e40bd5b16))

## Support

- ensure display is set to block for the support div ([#4832](https://github.com/jquery/jquery/issues/4832), [09f25436](https://github.com/jquery/jquery/commit/09f254361f1fe8a563b8a90fe6a4d269f4b11514))

## Tests

- Fix the "outside view position" test in Headless Chrome ([23d72cb1](https://github.com/jquery/jquery/commit/23d72cb1db8f2846ac49579f420afffe99d65fcb))
- Fix selector tests in Chrome 141 ([25a1b080](https://github.com/jquery/jquery/commit/25a1b080ae5b6cc57382ed1c29958fcbaa3475d3))
- Increase nomodule test timeout for IE from 1s to 5s ([5eab0a3c](https://github.com/jquery/jquery/commit/5eab0a3cb2d9617167db1bac0a5befe48ce7d143))
- Fix module/nomodule tests flakiness ([5964acf3](https://github.com/jquery/jquery/commit/5964acf3302be4fff70109d742910cfb852a204d))
- Use releases.jquery.com as external host for AJAX testing ([f21a6ea6](https://github.com/jquery/jquery/commit/f21a6ea6b5b59fc7fca6a594c353962b23b1fc29))
- Fix tests for `jQuery.get( String, null-ish, null-ish, String )` ([05325801](https://github.com/jquery/jquery/commit/05325801b9453374bf8279f2121829a19b3c09d8))
- Add tests for `jQuery.get( String, null-ish, null-ish, String )` ([76687566](https://github.com/jquery/jquery/commit/76687566f0569dc832f13e901f0d2ce74016cd4d))
- Backport the `hidden="until-found"` attr tests from 3.x-stable ([3a31866b](https://github.com/jquery/jquery/commit/3a31866b80844d8bb06084c70c5b788dd129f7e8))
- migrate test runner to jquery-test-runner ([733e62d2](https://github.com/jquery/jquery/commit/733e62d20328dd3e5b226fd9793b159637d922b8))
- Add custom attribute getter tests to the selector module ([44667709](https://github.com/jquery/jquery/commit/4466770992d5833358169d0248c4deedadea1a96))
- Switch to an updated fork of promises-aplus-tests ([559bc5ac](https://github.com/jquery/jquery/commit/559bc5ac58cb3494ee936c1ee1a14ada75196c6b))
- Run tests in Edge in IE mode in GitHub Actions ([6d78c076](https://github.com/jquery/jquery/commit/6d78c0768d9aa6ba213678724c89af69a1958df6))
- Run tests on both real Firefox ESRs ([4b7ecbad](https://github.com/jquery/jquery/commit/4b7ecbad24463c875f03ef4c7a7d307a091f93fd))
- align mock.php spacing with 3.x-stable branch ([d5ae14f6](https://github.com/jquery/jquery/commit/d5ae14f6fe07e2c2050f029525664cc2d42f9376))
- replace dead links in qunit fixture ([dbc9dac7](https://github.com/jquery/jquery/commit/dbc9dac7aecb106b66050342ff8daf1ecdd4239f))
- replace express with basic Node server ([c85454a8](https://github.com/jquery/jquery/commit/c85454a84306677efda3286a3214419bff945849))
- remove unnecessary scroll feature test ([ea31e4d5](https://github.com/jquery/jquery/commit/ea31e4d57c05a072df98a08df6532b2afb679d30))
- Align `:has` selector tests with `3.x-stable` ([f2d9fde5](https://github.com/jquery/jquery/commit/f2d9fde5f34c83a098fa2074ed808311086d9d23))
- revert concurrency group change ([fa73e2f1](https://github.com/jquery/jquery/commit/fa73e2f1b25304c93006dd45b6cba24f663e2ae7))
- include github ref in concurrency group ([5880e027](https://github.com/jquery/jquery/commit/5880e02707dcefc4ec527bd1c56f64b8b0eba391))
- Make the beforeunload event tests work regardless of extensions ([399a78ee](https://github.com/jquery/jquery/commit/399a78ee9fc5802509df462a2851aef1b60b7fbc))
- share queue/browser handling for all worker types ([284b082e](https://github.com/jquery/jquery/commit/284b082eb86602705519d6ca754c40f6d2f8fcc0))
- improve diffing for values of different types ([b9d333ac](https://github.com/jquery/jquery/commit/b9d333acef65a68d68b169b6acbbf96965414728))
- show any and all actual/expected values ([f80e78ef](https://github.com/jquery/jquery/commit/f80e78ef3e7ded1fc693465d02dfb07510ded0ab))
- add diffing to test reporter ([44fb7fa2](https://github.com/jquery/jquery/commit/44fb7fa220e2dc2780203b128df2181853b3300f))
- add actual and expected messages to test reporter ([1e84908b](https://github.com/jquery/jquery/commit/1e84908baf13da63c33ee66c857e45c2f02eced7))
- fix worker restarts for failed browser acknowledgements ([fedffe74](https://github.com/jquery/jquery/commit/fedffe7448b9e2328b43641158335be18eff5f69))
- add --hard-retries option to test runner ([822362e6](https://github.com/jquery/jquery/commit/822362e6efae90610d7289b46477c7fa22758141))
- fix cleanup in cases where server doesn't stop ([0754d596](https://github.com/jquery/jquery/commit/0754d5966400ff12e216031d68cb25ea314eac55))
- fix flakey message logs; ignore delete worker failures ([02d23478](https://github.com/jquery/jquery/commit/02d23478289e45af3d7f4673b9ffe84591c23472))
- reuse browser workers in BrowserStack tests (#5428) ([95a4c94b](https://github.com/jquery/jquery/commit/95a4c94b8131b737d8f160c582a4acfe2b65e0f8))
- Use allowlist instead of whitelist ([2b97b6bb](https://github.com/jquery/jquery/commit/2b97b6bbcfc67c234b86d41451aac7cdd778e855))
- migrate testing infrastructure to minimal dependencies ([dfc693ea](https://github.com/jquery/jquery/commit/dfc693ea25fe85e5f29da23752b0c7c8d285fbf0))
- Fix Karma tests on Node.js 20 ([d478a1c0](https://github.com/jquery/jquery/commit/d478a1c0226b7825a99718bf605ef9727ee4beca))
- Disable the ":lang respects escaped backslashes" test ([#5271](https://github.com/jquery/jquery/issues/5271), [62b9a258](https://github.com/jquery/jquery/commit/62b9a2583460c2384f6de1d0a6aeaf05e51d523b))
- Indicate Chrome 112 & Safari 16.4 pass the cssHas support test ([89ef81f8](https://github.com/jquery/jquery/commit/89ef81f86f8f371154e9fd3173be5fb57cb72d5e))
- Test AJAX deprecated event aliases properly ([cff28998](https://github.com/jquery/jquery/commit/cff2899885c314d32eea42e9eef6ead6e5da5c2f))
- Indicate Firefox 106+ passes the `cssSupportsSelector` test ([716130e0](https://github.com/jquery/jquery/commit/716130e094caf780100a39cfd4526adbd7673b12))
- Remove a workaround for a Firefox XML parsing issue ([e7ffe1f1](https://github.com/jquery/jquery/commit/e7ffe1f135dfa68ce3065b2bd319a29a57866dc6))
- Fix the link to QUnit CSS file ([8cf39b78](https://github.com/jquery/jquery/commit/8cf39b78e6c36b360dd81268a7f84fb4ca218e15))
- Exclude tests based on compilation flags, not API presence ([#5069](https://github.com/jquery/jquery/issues/5069), [fae5fee8](https://github.com/jquery/jquery/commit/fae5fee8b435cc20352d28b0a384b9784b1ad9ed))
- Workaround an XML parsing bug in Firefox ([af1cd6f2](https://github.com/jquery/jquery/commit/af1cd6f218f699abc34b1582a910c0df00312aee))
- lock colors version to 1.4.0 ([9603b3c8](https://github.com/jquery/jquery/commit/9603b3c899af354a4f538fa5b15f9dac3fcc0f55))
- Skip ETag AJAX tests on TestSwarm ([00c060d1](https://github.com/jquery/jquery/commit/00c060d1619d472a2d8c5b104ed76fa3afc2ce97))
- Allow statusText to be "success" in AJAX tests ([19ced963](https://github.com/jquery/jquery/commit/19ced963c63372eae5aca9e1a4baec80b78a2b8e))
- Make Karma browser timeout larger than the QUnit one ([4fd6912b](https://github.com/jquery/jquery/commit/4fd6912bfd8fffbfabc98a9b0789d28f10af0914))
- Don't remove csp.log in the cspClean action of mock.php ([1019074f](https://github.com/jquery/jquery/commit/1019074f7b1df96ee9d6409ada3dc0562046f6c7))
- Load the TestSwarm listener via HTTPS ([d225639a](https://github.com/jquery/jquery/commit/d225639a8ea62863482bd20249077688f60235db))
- Switch background image from online file to local 1x1.jpg ([482f8462](https://github.com/jquery/jquery/commit/482f846203e82b1c2620f580e483bf41d11f9f49))
- Strip untypical callback parameter characters from mock.php ([a7027463](https://github.com/jquery/jquery/commit/a70274632dc19ff4a64d7bb7657a2cc647ff38b9))
- Make more tests run natively in Chrome & Firefox ([50e8e846](https://github.com/jquery/jquery/commit/50e8e84621ff7a314fca253ce73f0519322d8a4d))
- Fix tests for not auto-executing scripts without dataType ([d38528b1](https://github.com/jquery/jquery/commit/d38528b17a846b7ca4513b41150a05436546292d))
- Recognize callbacks with dots in the Node.js mock server ([df6858df](https://github.com/jquery/jquery/commit/df6858df2ed3fc5c424591a5e09b900eb4ce0417))
- Skip the "jQuery.ajax() on unload" test in Safari ([c18dc496](https://github.com/jquery/jquery/commit/c18dc49699bc27481a4af36ed1a0ee1b19c6eb03))
- Remove an unused local variable ([82b87f6f](https://github.com/jquery/jquery/commit/82b87f6f0e45ca4e717b4e3a4a20a592709a099f))
- Remove remaining obsolete jQuery.cache references ([d96111e1](https://github.com/jquery/jquery/commit/d96111e18b42ae1bc7def72a8a0d156ea39e4d0e))
- Workaround failures in recent XSS tests in iOS 8 - 12 ([11066a9e](https://github.com/jquery/jquery/commit/11066a9e6ac183dd710d1bc7aa74a3f809757136))
- Add tests for recently fixed manipulation XSS issues ([dc06d68b](https://github.com/jquery/jquery/commit/dc06d68bdc4c2562b5cc530f21e668a17d78ee2d))
- Use only one focusin/out handler per matching window & document ([9b732043](https://github.com/jquery/jquery/commit/9b7320435059e30af71d648ab34ac6c00c80f5ef))
- Fix flakiness in the "jQuery.ajax() - JSONP - Same Domain" test ([7b0864d0](https://github.com/jquery/jquery/commit/7b0864d0539bbfbb01d88d9bc95369580ffd99bc))
- Pass a number of necessary done() calls to assert.async() ([364476c3](https://github.com/jquery/jquery/commit/364476c3dc1231603ba61fc08068fa89fb095e1a))
- Remove obsolete jQuery data tests ([eb35be52](https://github.com/jquery/jquery/commit/eb35be528fdea40faab4d89ac859d38dfd024271))
- Skip a "width/height on a table row with phantom borders" test in Firefox ([a612733b](https://github.com/jquery/jquery/commit/a612733be0c68d337647a6fcc8f8e0cabc1fc36b))
- Don't test synchronous XHR on unload in Chrome ([323575fb](https://github.com/jquery/jquery/commit/323575fb9bb330a852718d89e323f7ec79549100))
- Stop using jQuery.find in tests ([1d624c10](https://github.com/jquery/jquery/commit/1d624c10b4a6b97ac254bcefffa91058556075d2))
- Port changes from Sizzle ([ac5f7cd8](https://github.com/jquery/jquery/commit/ac5f7cd8e29ecc7cdf21c13199be5472375ffa0e))
- Fix a comment in testinit.js ([7bdf307b](https://github.com/jquery/jquery/commit/7bdf307b51e4d4a891b123a96d4899e31bfba024))
- update npo.js and include unminified source instead ([b334ce77](https://github.com/jquery/jquery/commit/b334ce7735ae453bd5643b251f36c3cedce4b3de))
- Restrict an event test fallback to TestSwarm ([bde53edc](https://github.com/jquery/jquery/commit/bde53edcf4bd6c975d068eed4eb16c5ba09c1cff))
- Fix the new focusin/focusout test in IE ([6f2fae7c](https://github.com/jquery/jquery/commit/6f2fae7c410dcb5876814866a03fc819f0502290))
- Fix the core-js polyfill inclusion method ([2e4b79ab](https://github.com/jquery/jquery/commit/2e4b79ab8f7c43d36537a743c4c1a1a5b17e130e))

## Traversing

- Fix `contents()` on `<object>`s with children in IE ([ccbd6b93](https://github.com/jquery/jquery/commit/ccbd6b93424cbdbf86f07a86c2e55cbab497d7a3))
- Fix `contents()` on `<object>`s with children ([#4384](https://github.com/jquery/jquery/issues/4384), [4d865d96](https://github.com/jquery/jquery/commit/4d865d96aa5aae91823c50020b5c19da79566811))
