Upstream Sinon.JS no longer supports the pre-2.x v1.17 branch
anymore but there have been a few post-2.0 releases to address
bugs in v1.17 that we can still benefit from.
https://github.com/sinonjs/sinon/blob/v1.17.7/Changelog.txt
Notable changes include:
* Fix Blob feature test to support running tests on Safari 9.
* Avoid calls to object-local 'hasOwnProperty'.
* Improve error messages and stricter signature/type checks so
that debugging code is easier when things go wrong.
* Fix various gaps in the XHR mock.
* Misc fixes for Node.js support.
Also remove outdated comment about ie-hacks from Sinon 1.15.
Change-Id: I66d1b461465b92798ad7eb2efcf4df2731cc78a4
Not yet tagged as release, but updating ahead of that for the
performance improvement that landed with
https://github.com/santhoshtr/CLDRPluralRuleParser/commit/a7782ca.
This is particularly impactful on calls to mw.msg() during the
critical path, due to this library being called by jqueryMsg,
which is used by mw.Message#text, which mw.msg() calls by default.
Particularly seen in the startup code from ULS modules.
Bug: T127328
Change-Id: Ic865e7077d1053c65f7ae1633c60bf52104731b7
Upstream commit 'd9aa703' is the commit right before the tagging
of v1.0.0. The only difference is the version string.
Change-Id: Icf7b7abacac583984977183da6f93f5fd02404fa
Notable change:
- Ajax: In Safari, $.ajax() previously did not reject the
Deferred if the XHR timed out. It now does, just as
it previously did already in other browsers.
- Deferred: Fixed a memory leak with callback closures.
- All: Misc perf optimisations and removal of code that
provided compat for browsers no longer supported.
Full release notes at
- https://blog.jquery.com/2018/01/19/jquery-3-3-0-a-fragrant-bouquet
- https://blog.jquery.com/2018/01/20/jquery-3-3-1-fixed-dependencies
Change-Id: Ia141dd46dc5b97c0f9766b44fea7559b1148538a
Per discussion on T193826, these are not part of jquery (the library, or the
module), and should not be in the same subdirectory.
To follow the new convention that all entries directly in /resources/lib
should correspond to single library only (either as file, or as directory),
move them one directory up.
Bug: T193826
Change-Id: I24c05ec5fc5f0a2d54d501a4a022d829675bf850
This commit implements step 4 and step 5 of the plan outlined at T192623.
Before this task began, the typical JavaScript execution flow was:
* HTML triggers request for startup module (js req 1).
* Startup module contains registry, site config, and triggers
a request for the base modules (js req 2).
* After the base modules arrive (which define jQuery and mw.loader),
the startup module invokes a callback that processes RLQ,
which is what will request modules for this page (js req 3).
In past weeks, we have:
* Made mediawiki.js independent of jQuery.
* Spun off 'mediawiki.base' from mediawiki.js – for everything
that wasn't needed for defining `mw.loader`.
* Moved mediawiki.js from the base module request to being embedded
as part of startup.js.
The concept of dependencies is native to ResourceLoader, and thanks to the
use of closures in mw.loader.implement() responses, we can download any
number of interdependant modules in a single request (or parallel requests).
Then, when a response arrives, mw.loader takes care to pause or resume
execution as-needed. It is normal for ResourceLoader to batch several modules
together, including their dependencies.
As such, we can eliminate one of the two roundtrips required before a
page can request modules. Specifically, we can eliminate "js req 2" (above),
by making the two remaining base modules ("jquery" and "mediawiki.base") an
implied dependency for all other modules, which ResourceLoader will naturally
fetch and execute in the right order as part of the batch request.
Bug: T192623
Change-Id: I17cd13dffebd6ae476044d8d038dc3974a1fa176
The library is used to compress large documents before
sending to the server, as HTTP doesn't support upload compression.
(See T68914 for context.)
N.B. Many of the polyfills in the original are omitted as
MediaWiki doesn't support browsers which require them.
Co-Authored-by: Kunal Mehta <legoktm@member.fsf.org>
Change-Id: I12a5879188f46f17dc4c33bdad52317d218d4172
Follows-up 648667ac9f, which didn't move this module because
it had a local patch for exposing via module.exports and mw.lib
(instead of its default 'pluralRuleParser' global).
Restore the file back to a clean copy from upstream, and perform
the export via a separately concatenated file instead, using the
same pattern we already use for 'oojs' and 'moment'.
Change-Id: I27ee80dc34e0ad5206cf9c1ce68be3ec8811ecf8
The .map file will be wrong, but those aren't used outside of an
experimental branch yet, so it's not the end of the world.
Bug: T184665
Change-Id: I9ff1ed80496ec61b836de4221dd36cde6d4a71ac
Languages and locales now with support:
* bm
* de-ch
* gom-latn
* gu
* kn
* sd
* tet
* ur
* uz-latn
* yo
Skipped languages because we don't support them in MW:
* ar-dz
* ar-kw
* ar-ly
* en-ie
* en-nz
* es-do
* es-us
* fr-ch
* me
* nl-be
* tlh
* tzl
Also drop 'x-pseudo' which was included but not used.
Bug: T161732
Bug: T181547
Change-Id: I7f89569c6ee6640d368af1378e84c5a9e725dad0