Commit Graph

6191 Commits

Author SHA1 Message Date
Oleg Gaidarenko
6d43dc4233 Effects: stabilize rAF logic & align timeout logic with it
rAF logic was introduced almost three years ago relative to this commit,
as a primary method for scheduling animation (see gh-1578 pull).

With it there was two substantial changes - one was explicitly mentioned
and the other was not.

First, if browser window was hidden aka `document.hidden === true`
it would immediately execute all scheduled animation without waiting
for time pass i.e. tick time become `0` instead of 13 ms of a default value.

Which created possibility for circular executions in case if `complete`
method executed the same animation (see gh-3434 issue).

And the second one - since then there was two ways of scheduling animation:
with `setInterval` and `requestAnimationFrame`, but there was a
difference in their execution.

In case of `setInterval` it waited default `jQuery.fx.interval` value before
actually starting the new tick, not counting the first step which wasn't
set to be executed through tick method (aka `jQuery.fx.tick`).

Whereas `requestAnimationFrame` first scheduled the call and executed
the `step` method right after that, counting the first call of
`jQuery.fx.timer`, `tick` was happening twice in one frame.

But since tests explicitly disabled rAF method i.e.
`requestAnimationFrame = null` and checking only `setInterval` logic,
since it's impossible to do it otherwise - we missed that change.

Faulty logic also was presented with `cancelAnimationFrame`, which couldn't
clear any timers since `raf` scheduler didn't define new `timerId` value.

Because that change was so subtle, apparently no user noticed it proving
that both `cancelAnimationFrame` and `clearInterval` code paths are redundant.

Since `cancelAnimationFrame` didn't work properly and rAF is and was a primary
used code path, plus the same approach is used in other popular animation libs.

Therefore those code paths were removed.

These changes also replace two different functions which schedule the animation
with one, which checks what type of logic should be used and executes it
appropriatley, but for secondary path it now uses `setTimeout` making it more
consistent with rAF path.

Since ticks are happening globally we also don't require to listen
`visibilitychange` event.

It also changes the way how first call is scheduled so execution of
animation will not happen twice in one frame.

No new tests were not introduced, since now `setTimeout` logic should be
equivalent to the rAF one, but one test was changed since now we actually
execute animation at the first tick.

Fixes gh-3434
Closes gh-3559
2017-03-06 19:17:14 +01:00
karan-96
ac9e301664 Core: Deprecate jQuery.nodeName
Fixes gh-3475
Closes gh-3505
2017-03-01 11:48:11 +01:00
Manoj Kumar
bd984f0ee2
Core: Move holdReady to deprecated
Fixes gh-3288
Close gh-3306
2017-02-13 10:55:39 -05:00
Timmy Willison
0588d0ce35
Build: Keep deprecated module in slim
Fixes gh-3237
Close gh-3533
2017-02-13 10:53:04 -05:00
南漂一卒
3e3b09d68d Traversing: $.fn.contents() supports HTMLTemplateElement
Fixes gh-3436
Closes gh-3462
2017-01-29 23:32:15 +01:00
Alex Padilla
5f35b5b406 Event: Add radio click triggering tests
Ref b442abacbb
Ref gh-3423
2017-01-19 17:27:35 -05:00
Alex Padilla
b442abacbb Event: Trigger checkbox and radio click events identically
Fixes gh-3423
Closes gh-3494
2017-01-19 16:51:49 -05:00
Richard Gibson
3c89329cb2 Effects: Resolve issues revealed by recent Callbacks fix
Notify full progress before resolving empty animations
Register animation callbacks before their ticker
Remove the right timer when immediately-done animations spawn more

Ref 9d822bc1c1
Fixes gh-3502
Fixes gh-3503
Closes gh-3496
2017-01-16 10:18:49 -08:00
Richard Gibson
efdb8a46e4 Manipulation: Restrict the tbody search to child nodes
For performance, use a querySelectorAll path instead of Javascript iteration.
http://codepen.io/anon/pen/vywJjx?editors=1010

Fixes gh-3439
Closes gh-3463
2017-01-09 11:37:12 -08:00
Richard Gibson
9d822bc1c1 Callbacks: Prevent add() from unlocking with-memory lists
Fixes gh-3469
Closes gh-3470
2017-01-09 11:33:39 -08:00
Richard Gibson
14b393d0d6 Tests: Update the loader so test pages always get jQuery
Pages used for iframe tests will now successfully load jQuery, even when
opened directly in the browser.

Closes gh-3489
2017-01-09 11:23:47 -08:00
Alexander Lisianoi
25c6a0a238 Build: fix markerPattern and ticketPattern regexes in package.json
Commit messages used to fail the style check if they contained a word
starting with "ref", like reformat or reference, in their message body.

Close gh-3437
Ref jzaefferer/commitplease#91
2017-01-09 11:45:30 -05:00
Alex Louden
a8816caf26 Docs: Correct typo in issue template 2017-01-05 03:49:02 -05:00
Michał Gołębiowski
d10ac0e532 Build: Drop support for building on Node.js 0.12
Node.js 0.12 is no longer supported by upstream. So far we had to keep
a workaround that would skip running ESLint there (or even load its task)
as it no longer supports Node.js <4; the same applied to Node smoke tests
as jsdom has also dropped support for those old Node versions. Those
workarounds have been removed now.

Ref 030191ae32
Closes gh-3478
2016-12-30 13:54:59 +01:00
David Broder-Rodgers
bd9145fa15 Tests: Added tests for symbol-separated tag names
Fixes gh-2006
Closes gh-3473
2016-12-29 15:02:12 -05:00
Richard Gibson
bf3a43eff8 Offset: Eliminate little-used internal function
Fixes gh-3449
Closes gh-3456
2016-12-19 12:00:46 -05:00
Richard Gibson
8cb4cd71ef Build: Use valid ecmaVersion
Fixes Node smoke tests

Ref gh-3385
Closes gh-3460
2016-12-19 11:58:48 -05:00
Michał Gołębiowski
1754e315f8 Build: Add most of the dist folder to .eslintignore
This way `eslint .` run from the terminal will work regardless of ignored
files present in the repository.

Closes gh-3385
2016-12-19 02:07:54 +01:00
Michał Gołębiowski
b3e0a56072 Build: Drop jscs.json from .npmignore
The file doesn't exist anymore.
2016-12-19 02:07:03 +01:00
Michał Gołębiowski
cbc8638c38 Build: ESLint setup improvements
1. Use the short name of the preset in the config.
2. Run ESLint first on non-minified files.
3. Explicitly specify environments in every config file (those settings cascade
which means we've been assuming a Node.js environment where we shouldn't have).
2016-12-19 02:07:03 +01:00
Richard Gibson
5d79c64663 Deferred: Stop inventing jQuery.when() resolution values
Fixes gh-3442
Closes gh-3445
2016-12-16 11:45:35 -05:00
Jason Bedard
1777899a74 Offset: report offset for 0 sized elements
Fixes gh-3267
Closes gh-3367
2016-12-12 22:32:11 -08:00
Michał Gołębiowski
4e50967725 Build: Make the @CODE-replacing regex more robust
The code replacing @CODE in wrapper.js was written so that it expected
both the code and the next line to start in the first column. This commit
adjusts the regex so to get rid of that assumption and to work properly
regardless of number of lines with comments after this block.

While this is technically not necessary for our code, contributors sometimes
re-format the wrapper file in their pull requests and the error
messages they get don't tell them what's the real problem with their code.

Closes gh-3429
2016-12-05 18:43:10 +01:00
Timmy Willison
7fbab88110
Build: jQuery Foundation -> JS Foundation
Close gh-3414
2016-12-05 11:54:38 -05:00
Manoj Kumar
1b9575b9d1 Core: Deprecate jQuery.isArray
Fixes gh-2961
Closes gh-3278
2016-11-30 12:22:24 +01:00
Michał Gołębiowski
5b4cb0d337 Build: Stop testing on Node.js 0.10
Node.js 0.10 loses upstream support today (see https://github.com/nodejs/LTS/)
so let's stop testing against it as well.
2016-10-31 18:38:35 +01:00
Michał Gołębiowski
fedc1aa690 Docs: Remove supported jQuery versions from ISSUE_TEMPLATE.md
We no longer support jQuery 1.x/2.x and mentioning 3.x would just mean the text
gets out of date once we release jQuery 4. We only really support the latest
jQuery version so let's make that clear.

Closes gh-3372
2016-10-31 18:35:19 +01:00
Michał Gołębiowski
7bb62bb3ae Build: Run tests on Node.js 7 2016-10-26 12:08:14 +02:00
Timmy Willison
f18ca7bfe0
Build: Updating the master version to 3.1.2-pre. 2016-09-22 18:32:55 -04:00
Timmy Willison
51c29dc1fe
Release: fix quotes for releasing on Windows 2016-09-22 18:18:25 -04:00
Timmy Willison
cc16f11854
Release: add email to .mailmap, update AUTHORS
- Not sure how that got there. I did check the privacy box at one point,
but can't find any commits with that email
2016-09-22 16:13:18 -04:00
Steve Mao
fcb8a1b3eb
Core: remove precautionary variable readyFiring
Close gh-3284
2016-09-19 13:08:39 -04:00
Dave Methvin
37f1da6b91 Build: Make sourcemap updates in two .replace() passes
Fixes gh-3260
Closes gh-3321
2016-09-19 13:03:32 -04:00
Michał Gołębiowski
223ed99f4a Tests: Add test results for Safari 10/iOS 10, remove for Safari 8 2016-09-19 18:55:12 +02:00
Richard Gibson
b5d09b90ca
Core: Compress stripAndCollapse
Close gh-3318
2016-09-19 09:19:48 -04:00
Timmy Willison
3bbcce68d7
Core: rnotwhite -> rhtmlnotwhite and jQuery.trim -> stripAndCollapse
- 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
2016-09-15 10:40:27 -04:00
Michał Gołębiowski
2d4f53416e Build: Update promises-aplus-tests for compat with Node 7
The older promises-aplus-tests was relying on old Mocha that, in turn,
used an obsolete graceful-fs version that is not guaranteed to work fine
with the upcoming Node 7 and later.
2016-09-12 19:27:56 +02:00
Michał Gołębiowski
3f5f5433d5 Tests: Disable a whitespace-setting test in Edge 14
Working around this problem would require us to skip setting whitespace-only
values except when they're valid which would be very fragile. Another option
would be to set the value and see if it succeeded and then react to that.

We've tried something like that in the past to be able to overwrite !important
styles (see 24e5879) but it broke the CSS cascade (see
https://bugs.jquery.com/ticket/14836#comment:5) and was triggering
MutationObserver callbacks too often so it was reverted in PR gh-1532.

Ref gh-3204
Ref gh-1532
2016-09-12 18:36:48 +02:00
Timmy Willison
52e24471c8
Core: expose noConflict in AMD mode
- For compability reasons, we had already added the global
  in AMD mode, but without noConflict. This adds back noConflict
  to AMD (which fixes noConflict mode in the tests).

Fixes gh-2930
2016-08-15 11:54:55 -04:00
Dave Methvin
560c0c6f99 Traversing: Let .not(arraylike) pass non-element nodes
Fixes gh-3226
Closes gh-3261
2016-08-10 10:04:24 -04:00
Richard Gibson
cca2aa2254 Build: Update Sizzle to 2.3.3
Fixes gh-3263
2016-08-08 14:05:49 -04:00
Richard Gibson
6160523d30 Build: Update Sizzle to 2.3.2 2016-08-08 12:35:44 -04:00
Dave Methvin
cd4ad00478 Ajax: Don't mangle the URL when removing the anti-cache param
Fixes gh-3229
Closes gh-3253
2016-08-08 12:13:22 -04:00
Richard Gibson
9526557e67 Build: Update Sizzle to 2.3.1
Fixes gh-3224
2016-08-08 11:59:14 -04:00
Richard Gibson
76c5237cc4 Event: Optimize delegated event processing
Closes gh-3255
2016-08-04 23:52:12 -04:00
Oleg Gaidarenko
6acf4a7946 Build: .eslintrc -> .eslintrc.json
`.eslintrc` format is deprecated -
http://eslint.org/docs/user-guide/configuring#configuration-file-formats

Fixes gh-3248
Closes gh-3247
2016-08-02 21:16:20 +03:00
Oleg Gaidarenko
308e4b534b Build: Simplify Gruntfile constructions
Fixes gh-3246
2016-08-02 20:58:01 +03:00
Timmy Willison
9c90be9c04 Build: add new email to mailmap 2016-08-02 12:04:21 -04:00
Michał Gołębiowski
edf7a43681 Build: Don't lint every file in dist/ (#3245)
Currently the "all" target for the eslint task includes way more than
the "dev" & "dist" targets combined and those 2 tasks are the one run in
`npm test`.
2016-07-26 03:22:53 +04:00
Alexander Lisianoi
04a2e036d0 Build: use commitplease via husky, prohibit #NNNN github-style tickets
Closes gh-3176
2016-07-25 18:27:36 +02:00