- Convert prototype object modifications into object literal. Saves bandwidth (less characters) and speeds up execution (no need to access 2 level deep object member repetitively). Local testing (Chrome Web Inspector) shows 14.80KB to 14.67KB (non-cached, debug=false), and execution time on cached request 32ms to 25ms.
- Un-indent 1 tab for d.setTime (Follows up r92964)
- Whitespace consistency
- Move var statements to top of loader's addScript
Follows up: r92933
- No functional changes
- Whitespace correction
- Comment fixes
- Combine var statements
- A few [[JSPERF]]ies
- Using mw instead of mediaWiki
- Putting global alias on top, to avoid a ReferenceError in case the immediately invoked "new function(){}" refers to mw during the construction
- "class" -> "constructor"
- caching "typeof dependencies" in mw.loader.using
- fix var "group" collision in mw.loader.work
- move var statements to top of functions
- fixing some occurrences of var statements in for-loops by declaring them before the loop
- Remove space before slash in html-fragement for jQuery html regex in <link /> and <br />
* Use strict comparison to undefined where possible (arguments and object/array members)
* Make sure $ is not implied global (using jQuery.isFunction at the bottom instead of creating another 1-line closure)
* Instead of delete window.foobar whitelist the global in QUnit.config.pollution
** the reason either is needed is to make QUnit's "noglobal" option useful)
** delete window.foo throws an "TypeError: Object doesn't support this action" in Internet Explorer.
-> http://perfectionkills.com/understanding-delete/
* Remove other globals introduced
* Reverts/re-do's r88794 and r88796.
** mediawiki.util.js no longer extends itself but is defined once.
** mediawiki.util.jpegmeta no longer extends mw.util but is installed as an object property of mw.libs
* Empty placeholder defined in mediawiki.js
* Removed the redundant 'mw' argument from the IIFE around mediawiki.libs.jpegmeta.js
* Fixed all usages in /mediawiki/trunk/*
** http://toolserver.org/~krinkle/wikimedia-svn-search/view.php?id=205&hash=ddc0908eef111558816c9fe1c775f7c1
Also did some trivial clean up, JSHint fixes and performance optimizations while at it. (per http://www.mediawiki.org/wiki/JavaScript_performance )
* Missing semicolons.
* [mediawiki.js Line 540] Unreachable 'registry' after 'throw'.
* [mediawiki.log.js] Checked for window.console but used console.
* Added callback option to mw.util.toggleToc (forwarded to jQuery.fn.slideUp/Down)
* Made mw.log argument more descriptive (logmsg instead of string)
* Using deepEqual(, true) instead of ok() when asserting true. (ok() is like casting a boolean (or a plain if() statement) to verify that something is not falsy)
Added missing test suites for:
* mw.util.toggleToc (follow-up r88732, Dummy check was introduced in r87898)
/me has been infected by Reedy and will be doing more of this tonight.
* Adding "return this;" in object constructor functions.
* Added test suites for Map and Message object constructors to match the @return descriptions.
Also did some trivial clean up and performance optimizations while at it. (per http://www.mediawiki.org/wiki/JavaScript_performance )
/me has been infected by Reedy and will be doing more of this tonight.
* Replace the overly paranoid regex with a function that simulates IE6's behavior
* Remove the UA check in isPathInfoBad(), was causing more problems than it was worth
* Revert r87711, going back to using dots for dots in ResourceLoader URLs, instead of exclamation marks
* Append &* to ResourceLoader URLs. * is an illegal character in extensions, and putting it at the end of the URL ensures that both IE6 and our detection function will deem the URL to have no extension (unless something like .html? appears in the query string, but in that case we're screwed no matter what)
One of WikiEditor's modules had only messages, no scripts; updates to the debug mode loader had ended up failing in the case where no scripts got passed in (if passed with a loader function we were fine, hence non-debug mode being ok)
This commit explicitly checks for the empty-array case and marks the module as ready immediately, instead of waiting for the last item in the loop to finish, which never happens. :)
Also consolidated three calls to the same few lines of code into a lambda function.
* Split mw.user from mediawiki.js into its own module
* Except for "new Map()" to "new mw.Map()", no code was changed.
* Merged addModules call in OutputPage->addDefaultModules for "mediawiki.action.view.tablesorting" into existing call to addModules (no need for two calls, addModules takes an array)
* This also makes the mw.loader.load call at the bottom of mediawiki.js redundant (now in dependancies for mediawiki.user in Resources.php)
* Added QUnit test suite for mw.user
Bergi
Sometimes userscripts need to know about the registrated modules,
mostly about their state.
…
My patch also resolves inconsistencies in the naming conventions
of getters and setters; I think there should be a clear
difference.
* I thought a while for a way to somehow get that global variable from php to the start of the main mediaWiki object creation. Considered using a (temporary) global variable and deleting afterwards, but that looked like a hack and wasn't sure about the cross-browser functioning of it. Instead ended up by moving it to the startUp module where other global variables are accessed as well. This seems to work pretty good.
* Can be toggled from LocalSettings by setting $wgLegacyJavaScriptGlobals.
* Changed some usages of mediaWiki to use the global mw alias instead.
* Add jQuery QUnit module
* Add a return value to mw.Map.prototype.set
* Add fallback to 'body' for options.parent in a new $.messageBox
(this is a re-do of r87830, but without breaking mw.config, see r87830 CR)
--
* Small whitespace fix (spaces to tabs) in Resources.php
* [mw.util.test] Moving CSS style check for div#js-message after the call to jsMessage(). In most skins this doesn't matter as the element already exists. But some skins this element isn't created untill the call to jsMessage().
* Expand these URLs in ResourceLoaderContext
* Build and emit these URLs in OutputPage::makeResourceLoaderLink() and in mw.loader
* Throw an exception in ResourceLoader::register() for module names that contain pipe characters or commas. Commas need to be forbidden for this packing feature to work. Pipes were already forbidden but weren't checked for
* Renaming locally declared function "request" to "getScriptTag" to avoid confusion or conflict with the other local "request" function inside the mw.loader closure
* (bug 26804) Code clean up ($skin was generated locally already)
* Remove hiding of rows after the test, in almost all cases someone will want to unhide these, especially in case of an error; Plus, there were some inconsistencies in firefox with the hovering of the last (non-collapsible) row.
* Changing mw.util.addCSS to a style that is actually visible on the action=mwutiltest page.
* Making the entire row red in case of errors (easier finding of the error)
* Moving $.isDomElement tests to mw.util.test instead of in comments
* Adding missing tests for all mw.util properties
* Fix bug where $.isDomElement fails if the passed argument isn't an object at all (eg. null or undefined). Check variable first before checking object property (<code>$.isDomElement( document.getElementById('notexist') );</code> returned TypeError: Result of expression 'el' [null] is not an object.)
** Adding test for this
* Try/Catch the evaluation
** Reports catched exceptions through mw.log instead of using throw. This way non-consoled browsers can be easily debugged through mw.log's console.
** Fixes: (bug 28803) mw.util.test doesn't handle exceptions
* Using a canonical variable instead of a localized one in the tests.
** Fixes: (bug 28788) 2 tests related to wgTitle in mediawiki.util.test are broken for non-English wikis.
* Remove color:black from table {} in skins (bug 28422)
* Add color:black to .wikitable (since it has a background-color)
* Update comment about CSS3 'word-wrap:break-word' support in Gecko
* Remove line-break in mediawiki.js (it's ~ 90 chars, acceptable)