aboutsummaryrefslogtreecommitdiffstats
path: root/src/core
Commit message (Collapse)AuthorAgeFilesLines
* Manipulation: Support $el.html(selfRemovingScript) (#5378)Richard Gibson2024-01-081-6/+7
| | | | | | | | Don't try to remove a script element that has already removed itself. Also, compress `DOMEval.js`. Fixes gh-5377 Closes gh-5378
* Core: Use named exports in `src/`Michał Gołębiowski-Owczarek2023-09-1216-54/+36
| | | | | | | | | The `default` export is treated differently across tooling when transpiled to CommonJS - tools differ on whether `module.exports` represents the full module object or just its default export. Switch `src/` modules to named exports for tooling consistency. Fixes gh-5262 Closes gh-5292
* Core:Selector: Move jQuery.contains from the selector to the core moduleMichał Gołębiowski-Owczarek2022-12-121-2/+0
| | | | | | | The `jQuery.contains` method is quite simple in jQuery 4+. On the other side, it's a dependency of the core `isAttached` util which is not ideal; moving it from the `selector` the `core` module resolves the issue. Closes gh-5167
* Core: Drop the root parameter of jQuery.fn.initMichał Gołębiowski-Owczarek2022-08-291-8/+4
| | | | | | | | | | The third parameter of `jQuery.fn.init` - `root` - was just needed to support `jQuery.sub`. Since this API has been removed in jQuery 1.9.0 and Migrate 3.x is not filling it in, this parameter is no longer needed. This parameter has never been documented but it's safer to remove it in a major update. Closes gh-5096
* Docs: Replace `#NUMBER` Trac issue references with `trac-NUMBER`Michał Gołębiowski-Owczarek2022-01-043-4/+4
| | | | | | | | | | | | | The GitHub UI treats `#NUMBER` as referring to its own issues which is confusing when in jQuery source it's usually referring to the old deprecated Trac instance at https://bugs.jquery.com. This change replaces all such Trac references with `trac-NUMBER`. A few of the references came with the Sizzle integration and referred to the Sizzle GitHub bug tracker. Those have been replaced with full links instead. A new entry describing issue reference conventions has been added to README. Closes gh-4993
* Core:Manipulation: Add basic TrustedHTML supportMichał Gołębiowski-Owczarek2021-09-304-26/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This ensures HTML wrapped in TrustedHTML can be used as an input to jQuery manipulation methods in a way that doesn't violate the `require-trusted-types-for` Content Security Policy directive. This commit builds on previous work needed for trusted types support, including gh-4642 and gh-4724. One restriction is that while any TrustedHTML wrapper should work as input for jQuery methods like `.html()` or `.append()`, for passing directly to the `jQuery` factory the string must start with `<` and end with `>`; no trailing or leading whitespaces are allowed. This is necessary as we cannot parse out a part of the input for further construction; that would violate the CSP rule - and that's what's done to HTML input not matching these constraints. No trusted types API is used explicitly in source; the majority of the work is ensuring we don't pass the input converted to string to APIs that would eventually assign it to `innerHTML`. This extra cautiousness is caused by the API being Blink-only, at least for now. The ban on passing strings to `innerHTML` means support tests relying on such assignments are impossible. We don't currently have such tests on the `main` branch but we used to have many of them in the 3.x & older lines. If there's a need to re-add such a test, we'll need an escape hatch to skip them for apps needing CSP-enforced TrustedHTML. See https://web.dev/trusted-types/ for more information about TrustedHTML. Fixes gh-4409 Closes gh-4927 Ref gh-4642 Ref gh-4724
* Core: Report browser errors in parseXMLMichał Gołębiowski-Owczarek2020-12-081-6/+11
| | | | Fixes gh-4784 Closes gh-4816
* Core: Drop support for Edge Legacy (i.e. non-Chromium Microsoft Edge)Michał Gołębiowski-Owczarek2020-09-222-21/+10
| | | | | | | | | | | | Drop support for Edge Legacy: the non-Chromium, EdgeHTML-based Microsoft Edge version. Also, restrict some workarounds that were applied unconditionally in all browsers to run only in IE now. This slightly increases the size but reduces the performance burden on modern browsers that don't need the workarounds. Also, clean up some comments & remove some obsolete workarounds. Fixes gh-4568 Closes gh-4792
* Build:Event: Make sure all source modules' exports are used (#4648)Michał Gołębiowski-Owczarek2020-06-023-5/+0
| | | | | | | To achieve that, use `eslint-plugin-import`'s `no-unused-modules` rule. Also, explicitly import `event/trigger.js` from `jquery.js`; so far it was only imported from ajax.js, making it mistakenly skipped in the `custom:slim,-deprecated` build.
* Build: Update eslint-config-jquery, fix linting violationsMichał Gołębiowski-Owczarek2020-05-181-1/+1
| | | | | Closes gh-4696 Ref jquery/eslint-config-jquery#15 Ref jquery/eslint-config-jquery#16
* Build: Correct code indentations based on jQuery Style GuideWonseop Kim2020-05-052-3/+3
| | | | | | | | 1. Correct code indentations based on jQuery Style Guide (contribute.jquery.org/style-guide/js/#spacing). 2. Add rules to "src/.eslintrc.json" to enable "enforcing consistent indentation", with minimal changes to the current code. Closes gh-4672
* Build:Tests: Fix custom build tests, verify on Travis Michał Gołębiowski-Owczarek2020-01-071-0/+24
| | | | | | | | | | | This commit fixes unit tests for the following builds: 1. The no-deprecated build: `custom:-deprecated` 2. The current slim build: `custom:-ajax,-effects` 3. The future (#4553) slim build: `custom:-ajax,-callbacks,-deferred,-effects` It also adds separate Travis jobs for the no-deprecated & slim builds. Closes gh-4577
* Core: Migrate from AMD to ES modules 🎉Michał Gołębiowski-Owczarek2019-11-1814-158/+83
| | | | | | | | | | | | | | | | | | | | | | Migrate all source AMD modules to ECMAScript modules. The final bundle is compiled by a custom build process that uses Rollup under the hood. Test files themselves are still loaded via RequireJS as that has to work in IE 11. Tests can now be run in "Load as modules" mode which replaces the previous "Load with AMD" option. That option of running tests doesn't work in IE and Edge as it requires support for dynamic imports. Some of the changes required by the migration: * check `typeof` of `noGlobal` instead of using the variable directly as it's not available when modules are used * change the nonce module to be an object as ECMASscript module exports are immutable * remove some unused exports * import `./core/parseHTML.js` directly in `jquery.js` so that it's not being cut out when the `ajax` module is excluded in a custom compilation Closes gh-4541
* Selector: Inline Sizzle into the selector moduleMichał Gołębiowski-Owczarek2019-07-292-1/+8
| | | | | | | | | | | | | | | | | | This commit removes Sizzle from jQuery, inlining its code & removing obsolete workarounds where applicable. The selector-native module has been removed. Further work on the selector module may decrease the size enough that it will no longer be necessary. If it turns out it's still useful, we'll reinstate it but the code will look different anyway as we'll want to share as much code as possible with the existing selector module. The Sizzle AUTHORS.txt file has been merged with the jQuery one - people are sorted by their first contributions to either of the two repositories. The commit reduces the gzipped jQuery size by 1460 bytes compared to master. Closes gh-4395
* Build: ESLint: forbid unused function parametersMichał Gołębiowski-Owczarek2019-05-132-2/+2
| | | | | | | | | | | | | This commit requires all function parameters to be used, not just the last one. In cases where that's not possible as we need to match an external API, there's an escape hatch of prefixing an unused argument with `_`. This change makes it easier to catch unused AMD dependencies and unused parameters in internal functions the API of which we may change at will, among other things. Unused AMD dependencies have been removed as part of this commit. Closes gh-4381
* Core: Drop support for IE <11, iOS <11, Firefox <65, Android Browser & PhantomJSMichał Gołębiowski-Owczarek2019-04-299-61/+25
| | | | | | | | | | | Also, update support comments format to match format described in: https://github.com/jquery/contribute.jquery.org/issues/95#issuecomment-69379197 with the change from: https://github.com/jquery/contribute.jquery.org/issues/95#issuecomment-448998379 (open-ended ranges end with `+`). Fixes gh-3950 Fixes gh-4299 Closes gh-4347
* Data: Separate data & css/effects camelCase implementationsMichał Gołębiowski-Owczarek2019-04-291-6/+3
| | | | | | | | The camelCase implementation used by the data module no longer turns `-ms-foo` into `msFoo` but to `MsFoo` now. This is because `data` is supposed to be a generic utility not specifically bound to CSS use cases. Fixes gh-3355 Closes gh-4365
* Core: Support passing nonce through jQuery.globalEvalMichał Gołębiowski-Owczarek2019-01-211-12/+15
| | | | | | Fixes gh-4278 Closes gh-4280 Ref gh-3541 Ref gh-4269
* Core: Preserve CSP nonce on scripts in DOM manipulationMichał Gołębiowski-Owczarek2019-01-141-0/+10
| | | | Fixes gh-3541 Closes gh-4269
* Core: Recognize Shadow DOM in attachment checksSaptak Sengupta2018-11-091-0/+22
| | | | | | | Allow `isAttached` to check Shadow DOM for attachment. Fixes gh-3504 Closes gh-3996 Ref gh-3977
* Manipulation: Properly detect HTML elements with single-character namesRichard Gibson2018-07-131-1/+2
| | | | Fixes gh-4124 Closes gh-4125
* Manipulation: Add support for scripts with module typebasil.belokon2018-01-161-2/+16
| | | | | Fixes gh-3871 Close gh-3869
* Core: deprecate jQuery.typeJason Bedard2018-01-162-2/+23
| | | | | Fixes gh-3605 Close gh-3895
* Core: deprecate jQuery.isFunctionJason Bedard2018-01-153-9/+12
| | | | Fixes gh-3609
* Core: make camelCase function available only for internal usageNilton Cesar2018-01-081-0/+23
| | | | | Close gh-3604 Fixes gh-3384
* Docs: Update links to HTML spec for stripAndCollapse (#3594)Boom Lee2017-03-291-1/+1
|
* Build: fix tests in AMD modeTimmy Willison2017-03-061-0/+1
| | | | - nodeName was included at the wrong spot in dependency lists
* Core: Deprecate jQuery.nodeNamekaran-962017-03-011-0/+13
| | | | | Fixes gh-3475 Closes gh-3505
* Core: Move holdReady to deprecatedManoj Kumar2017-02-132-18/+0
| | | | | Fixes gh-3288 Close gh-3306
* Core: remove precautionary variable `readyFiring`Steve Mao2016-09-191-10/+4
| | | | Close gh-3284
* Core: Compress stripAndCollapseRichard Gibson2016-09-191-5/+7
| | | | Close gh-3318
* Core: rnotwhite -> rhtmlnotwhite and jQuery.trim -> stripAndCollapseTimmy Willison2016-09-151-0/+12
| | | | | | | | | | | | - Renames and changes rnotwhite to focus on HTML whitespace chars - Change internal use of jQuery.trim to more accurate strip and collapse - Adds tests to ensure HTML space characters are retained where valid - Doesn't add tests where the difference is inconsequential and existing tests are adequate. Fixes gh-3003 Fixes gh-3072 Close gh-3316
* Build: Update eslint config and fix associated errorsOleg Gaidarenko2016-07-151-6/+9
|
* Core: Re-throw errors that happened in callbacks wrapped in jQuery readyMichał Gołębiowski2016-07-072-1/+23
| | | | | | | | Also, expose jQuery.readyException that allows to overwrite the default ready error handler. Fixes gh-3174 Closes gh-3210
* Build: Put all AMD modules in "src/" in strict modeMichał Gołębiowski2016-04-258-0/+15
| | | | Fixes gh-3073
* Core: set the base href of the context in parseHTMLTimmy Willison2016-04-041-8/+22
| | | | | Fixes gh-2965 Close gh-3022
* Core: implement ready without DeferredTimmy Willison2016-04-042-31/+128
| | | | | | | | | - Make jQuery.ready promise-compatible - Gives up sync guarantee for post-ready callbacks Fixes gh-1778 Fixes gh-1823 Close gh-2891
* Docs: Update support comments to follow the new syntaxMichał Gołębiowski2016-03-301-1/+1
| | | | | The changes follow the spec proposed in: https://github.com/jquery/contribute.jquery.org/issues/95#issuecomment-69379197
* Docs:Tests: Remove obsolete code from tests, update support commentsMichał Gołębiowski2016-03-081-1/+1
| | | | | | | | | | Support comments that were lacking the final IE/Edge version that exhibits the bug were checked & updated. Links to the Chromium bug tracker were updated. Code in tests related to unsupported browsers (like Android 2.3 in non-basic tests) has been removed. Fixes gh-2868 Closes gh-2949
* Manipulation: Bring tagname regexes up to specLeonardo Braga2016-01-071-1/+1
| | | | | Fixes gh-2005 Closes gh-2634
* Core: do not expose second argument of the `jQuery.globalEval`Oleg Gaidarenko2015-12-021-0/+14
| | | | | Closes jquery/api.jquery.com#831 Closes gh-2718
* Core: use interactive to evaluate dom ready, barring IE9-10Timmy Willison2015-10-291-4/+4
| | | | Fixes gh-2100
* Build: Update jscs and lint filesOleg Gaidarenko2015-09-076-34/+47
| | | | Fixes gh-2056
* Core: Don't expose jQuery.accessMichał Gołębiowski2015-08-031-1/+1
| | | | | | | jQuery.access was never documented, there is no need to keep it exposed. Fixes gh-2513 Closes gh-2524
* Core: Add a support comment for Safari 8Michał Gołębiowski2015-07-201-0/+5
| | | | | | | | Related issue: https://bugs.webkit.org/show_bug.cgi?id=137337 Thanks @phistuck! Refs cfe468f29c4cbe1a457d0feb17dec90dcfd7c280
* Core: Switch from modules to just window.setTimeout etc.Michał Gołębiowski2015-06-171-3/+2
| | | | | | Using modules for window.setTimeout etc. made those functions cached and disabled Sinon mocking, making effects tests fail. Just writing window.setTimeout directly is smaller anyway.
* Core: Use window.setTimeout & friends instead of global equivalentsMichał Gołębiowski2015-06-171-1/+2
| | | | Fixes gh-2177
* Core: remove custom ready eventTimmy Willison2015-05-121-7/+0
| | | | | Fixes gh-2264 Close gh-2265
* Manipulation: privatize buildFragment() functionTimmy Willison2015-05-051-6/+4
| | | | Fixes gh-2224
* Core: allow init to accept an alternate rootjQuery for migrate's sakeTimmy Willison2015-05-041-4/+8
| | | | | | - This will be tested in migrate Fixes gh-2101