13 Commits

Author SHA1 Message Date
Weston Ruter
f9eaba01e1 Emoji: Optimize emoji loader with sessionStorage, willReadFrequently, and OffscreenCanvas.
* Use `sessionStorage` to remember the previous results of calls to `browserSupportsEmoji()` for 1 week.
* Optimize reading from canvas by supplying the `willReadFrequently` option for the 2D context.
* When `OffscreenCanvas` is available, offload `browserSupportsEmoji()` to a web worker to prevent blocking the main thread. This is of primary benefit to Safari which does not yet support `willReadFrequently`.
* Remove obsolete support for IE11 since promises are now utilized. Nevertheless, ES3 syntax is maintained and IE11 will simply short-circuit.

Props westonruter, dmsnell, peterwilsoncc, valterlorran, flixos90, spacedmonkey, joemcgill.
Fixes #58472.


git-svn-id: https://develop.svn.wordpress.org/trunk@56074 602fd350-edb4-49c9-b593-d223f7449a82
2023-06-27 17:22:59 +00:00
Joe McGill
12ed5ccb0a Revert unnecessary changes to .jshintrc files.
This reverts changes to the .jshintrc file that were included in r56033.

Props TobiasBg.
See #12009.


git-svn-id: https://develop.svn.wordpress.org/trunk@56049 602fd350-edb4-49c9-b593-d223f7449a82
2023-06-27 01:27:14 +00:00
Joe McGill
613b0e7dc9 Script Loader: Add support for HTML 5 "async" and "defer" attributes.
This allows developers to register scripts with an intended loading strategy by changing the `$in_footer` parameter of `wp_register_script` and `wp_enqueue_script` to an array that accepts both an `in_footer` and `strategy` argument. If present, the loading strategy attribute will be added to the script tag when that script is printed to the page as long as it is not a dependency of any blocking scripts, including any inline scripts attached to the script or any of its dependents.

Props 10upsimon, thekt12, westonruter, costdev, flixos90, spacedmonkey, adamsilverstein, azaozz, mukeshpanchal27, mor10, scep, wpnook, vanaf1979, Otto42.
Fixes #12009.


git-svn-id: https://develop.svn.wordpress.org/trunk@56033 602fd350-edb4-49c9-b593-d223f7449a82
2023-06-26 13:40:31 +00:00
Anton Timmermans
5faccb9683 Build tools: Fix the travis:js build.
After [44359] it is impossible to not use ES6 syntax for some logic in the `Gruntfile.js`, so adjust the `esversion` setting for the `Gruntfile.js` to 6. Because the previous setting in `.jshintrc` was not compatible with setting `esversion`, set the `esversion` in the `.jshintrc` explicitly.

See #44492.


git-svn-id: https://develop.svn.wordpress.org/trunk@44361 602fd350-edb4-49c9-b593-d223f7449a82
2018-12-24 13:53:11 +00:00
Gary Pendergast
b57742018a General: Remove .jshintrc and *.json from the 2-space-indent .editorconfig group.
JSON files don't need a particular indent style, this was just inherited from the jQuery `.editorconfig`, that we based ours on.

`package.json` is staying in the 2-space-indent group for now, due to npm 3 and 4 having issues. Upgrading to npm 5 will allow us to remove `package.json`, too.

Props netweb.
Fixes #40946.



git-svn-id: https://develop.svn.wordpress.org/trunk@41835 602fd350-edb4-49c9-b593-d223f7449a82
2017-10-12 01:57:45 +00:00
Adam Silverstein
851d51ebd6 Build: Webpack instead of Browserify as JavaScript bundler.
Use Webpack as our bundler of choice, enabling improved JavaScript build chain capabilities.

Props aduth, netweb, kadamwhite, schlessera.
Fixes #40894. 


git-svn-id: https://develop.svn.wordpress.org/trunk@41752 602fd350-edb4-49c9-b593-d223f7449a82
2017-10-04 21:00:15 +00:00
Sergey Biryukov
2f6e33dd2e Build/Test Tools: After [29858], update .jsintrc to use spaces, not tabs.
Props netweb.
Fixes #39359.

git-svn-id: https://develop.svn.wordpress.org/trunk@39898 602fd350-edb4-49c9-b593-d223f7449a82
2017-01-13 04:44:53 +00:00
Gary Pendergast
571084e0e1 Build: Prevent non-breaking spaces from accidentally being inserted into JavaScript files.
See #34658.



git-svn-id: https://develop.svn.wordpress.org/trunk@35628 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-12 12:04:55 +00:00
Scott Taylor
3d944cc15e Update grunt-contrib-jshint to 0.11.0
Props netweb.
Fixes #31488.


git-svn-id: https://develop.svn.wordpress.org/trunk@31649 602fd350-edb4-49c9-b593-d223f7449a82
2015-03-06 21:07:35 +00:00
Andrew Nacin
d4802f6c82 Remove smarttabs from .jshintrc per IRC discussion. see #25187.
git-svn-id: https://develop.svn.wordpress.org/trunk@26136 602fd350-edb4-49c9-b593-d223f7449a82
2013-11-13 19:23:16 +00:00
Andrew Nacin
8bdd289576 Update jshint grunt task to exclude eqeqeq and curly for now, until we've resolved other code smells.
props kadamwhite.
see #25187.


git-svn-id: https://develop.svn.wordpress.org/trunk@26041 602fd350-edb4-49c9-b593-d223f7449a82
2013-11-07 21:14:49 +00:00
Andrew Ozz
370c503d66 Add es3 and onevar to the JSHint configuration as discussed in IRC. Props jorbin, see #25187.
git-svn-id: https://develop.svn.wordpress.org/trunk@26025 602fd350-edb4-49c9-b593-d223f7449a82
2013-11-06 20:26:42 +00:00
Andrew Nacin
06635ed4cd Add a .jshintrc file and associated jshint grunt task.
This .jshintrc is adopted from the jQuery project, with some basic modifications (such as single quotes instead of double quotes). This pretty closely follows our current JS standards and rather closely resembles our PHP standards, especially the love of whitespace. The major changes are enforcing === and always using braces for if statements.

props kadamwhite, gnarf37, with mattwiebe and carldanley.
see #25187.


git-svn-id: https://develop.svn.wordpress.org/trunk@25960 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-27 21:53:11 +00:00