Krinkle [Thu, 30 Jun 2011 01:20:37 +0000 (01:20 +0000)]
Adding alternative method for U+024B62. Making sure both ways work.
Krinkle [Thu, 30 Jun 2011 01:06:47 +0000 (01:06 +0000)]
byteLimit/byteLength improvements:
* Split the byte length logic into a seperate method to allow it to be called directly on a string (easier to test and easier re-use)
* Added basic unit tests for it.
Sam Reed [Thu, 30 Jun 2011 01:06:17 +0000 (01:06 +0000)]
Replace more multiple calls to $this->getResult() in methods with temporary variable
Sam Reed [Wed, 29 Jun 2011 23:46:39 +0000 (23:46 +0000)]
Fix trailing whitespace
Swap methods that call $this->getResult() to use temporary variable
Brion Vibber [Wed, 29 Jun 2011 23:35:05 +0000 (23:35 +0000)]
Tweak doc comments on WebRequest::getRequestURL() & WebRequest::getFullRequestURL() per in-person discussion with preilly; the docs were unclear as to whether the query string is included (it is).
Sam Reed [Wed, 29 Jun 2011 23:18:45 +0000 (23:18 +0000)]
Followup r91082, capitalise API, mark as optional
Brian Wolff [Wed, 29 Jun 2011 23:09:00 +0000 (23:09 +0000)]
(Follow-up r91059) Make backlinks query do both null or "" to potentially account for old rows that havn't been updated
yet to new conventions.
Hopefully I got the syntax right for the OR thing using mw's db functions (I tested the query, its fine, I'm just not 100% sure thats the most correct way using mw's db funcs, I've never really had to build an OR query using the db funcs).
Platonides [Wed, 29 Jun 2011 22:37:11 +0000 (22:37 +0000)]
Follow up r91072. This is indeed not needed.
Brian Wolff [Wed, 29 Jun 2011 22:24:27 +0000 (22:24 +0000)]
(follow-up r91106) Explicitly compare against the self::BROKEN_FILE constants.
Before was doing if !$metadata, which used to work when self::BROKEN_FILE was 0, now it's -1
and that works less.
Aaron Schulz [Wed, 29 Jun 2011 22:09:51 +0000 (22:09 +0000)]
* Split off WikiPage class from Article, WikiFilePage class from ImagePage, and WikiCategoryPage from CategoryPage.
* WikiPage functions/fields are "magically" part of Article when accessed for b/c. Magic is kind of ugly but there are too many callers to make breaking changes atm. Some functions are just wrappers for WikiPage ones (were magic won't work).
* Added newFromID() to each WikiPage subclass (works around pre-existing inheritance problem).
* Added Page class for convenient type hinting and changed hints from Article -> Page. This lets things use WikiPage objects without getting type errors.
* Updated FlaggedPage to extend WikiPage. Worked around getOldIdFromRequest().
* Added setTimestamp() to WikiPage and moved some timestamp setting code from ParserCache to Article.
* Removed ampersands from $dbw arguments.
* @TODO: dependency inject user objects for WikiPage
The idea is to migrate things to use WikiPage, as the run-of-the-mill "new Article()" call doesn't care about $oldid and $wgRequest. After that, Article, ImagePage, and CategoryPage can be rewritten as an Action class or something sane (a Viewer class of sorts).
Platonides [Wed, 29 Jun 2011 21:51:27 +0000 (21:51 +0000)]
We don't need $skin as a local variable.
Bryan Tong Minh [Wed, 29 Jun 2011 20:31:43 +0000 (20:31 +0000)]
Per CR, revert non debugging stuff from r82436. (KML uploads)
Antoine Musso [Wed, 29 Jun 2011 20:28:43 +0000 (20:28 +0000)]
basic tests for wfUrlencode
Please note this function use a static variable based on the value
of $GLOBALS[’SERVER_SOFTWARE']. With PHP 5.2 and PHPUnit 3.5.x, there
is currently now way to reset the static variable :-/ Tests relying on
a change of SERVER_SOFTWARE are thus skipped, still the framework is there
for later use.
Raimond Spekking [Wed, 29 Jun 2011 20:25:45 +0000 (20:25 +0000)]
Bryan Tong Minh [Wed, 29 Jun 2011 20:24:53 +0000 (20:24 +0000)]
Add wfUnserialize() wrapper around unserialize to prevent E_NOTICE and use it in ExifBitmap.php. There are probably many more places that could use this. This should fix Platonides' problem at r90421, but also added a check for $wgShowExif to prevent the test from failing.
Chad Horohoe [Wed, 29 Jun 2011 18:44:21 +0000 (18:44 +0000)]
Followup r91094: monobook wasn't broken, but I broke it. Rename to content here too so I don't get confused
Chad Horohoe [Wed, 29 Jun 2011 18:40:08 +0000 (18:40 +0000)]
Fix for r91081, I think he meant $content, not $cont.
Antoine Musso [Wed, 29 Jun 2011 17:59:50 +0000 (17:59 +0000)]
Move global functions tests to their own directory.
Will let us create a test file for each functions which is easier to handle
in the long time.
Sam Reed [Wed, 29 Jun 2011 17:20:50 +0000 (17:20 +0000)]
Add 'api' type to extension types for special version
Platonides [Wed, 29 Jun 2011 17:20:47 +0000 (17:20 +0000)]
Make a sidebar key with value false mean 'skip this header'.
Intended for the forced headers, such as SEARCH.
These entries would be added using SkinBuildSidebar hook.
Alexandre Emsenhuber [Wed, 29 Jun 2011 17:18:06 +0000 (17:18 +0000)]
Fix for r91076: forgot to change one instance of $useMaster to $database
Platonides [Wed, 29 Jun 2011 17:11:38 +0000 (17:11 +0000)]
Create renderPortals() function for MonoBook (same interface as Vector one).
Changed Modern to call that function instead of duplicating the code with Modern.
Alexandre Emsenhuber [Wed, 29 Jun 2011 15:39:40 +0000 (15:39 +0000)]
Per Platonides, follow-up r72842: pass the db connection to SiteStatsInit::doAllAndCommit(). Changed parameters to that functions to give as first parameter a db connection and merged existing ones in the second parameter which is now an array of options (and is also much, much easier to read that those boolean parameters). No other calls in core or extensions.
Alexandre Emsenhuber [Wed, 29 Jun 2011 15:16:40 +0000 (15:16 +0000)]
* Modified some methods of SpecialWatchlist to be non-static so that they can use $this->getTitle() instead of having to pass the special page's name
* Use context variable instead of global ones
* Really use countItems()
* Updated InterwikiIntegration for these changes; I'm not keeping b/c since anyway that extension was broken until now because SpecialWatchlist::countItems() was static and SpecialInterwikiWatchlist::countItems() not (was throwing fatal error)
Platonides [Wed, 29 Jun 2011 14:15:47 +0000 (14:15 +0000)]
Delay expansion of XmlSelect options until getting the HTML.
Setting the default after adding options now works.
Enabled testSetDefaultAfterAddingOptions().
Platonides [Wed, 29 Jun 2011 13:45:57 +0000 (13:45 +0000)]
Make BitmapMetadataHandlerTest incomplete if $wgShowEXIF is not set.
It was throwing 'MWException: Internal error: exif_read_data not present. $wgShowEXIF may be incorrectly set or not checked by an extension.'
Fixed typo in LocalSettings.
Platonides [Wed, 29 Jun 2011 13:23:51 +0000 (13:23 +0000)]
$wgContLang no longer used here
Alexandre Emsenhuber [Wed, 29 Jun 2011 10:58:54 +0000 (10:58 +0000)]
Pass the Title object to Parser::transformMsg()
Alexandre Emsenhuber [Wed, 29 Jun 2011 10:51:15 +0000 (10:51 +0000)]
Follow-up r90334 and r90337: made DifferenceEngine::addHeader() non-static to be able to use $this->mTitle instead of $wgTitle
Alexandre Emsenhuber [Wed, 29 Jun 2011 09:22:15 +0000 (09:22 +0000)]
Removed code2utf() and replaced with codepointToUtf8() to reduce code duplication since they do exactely the same thing
Brian Wolff [Wed, 29 Jun 2011 07:19:12 +0000 (07:19 +0000)]
BacklinkCache was forgetting to check rd_interwiki when getting redirects, and thus getting
some extranous backlinks for the redirect table (if there happened to be a page redirecting
to an interwiki page with the same name plus an interwiki prefix).
Not a major issue since this is really only used as far as i can tell, to purge squids and html file cache.
A couple of extra unneeded purges shouldn't hurt anything, just a bit pointless.
Chad Horohoe [Wed, 29 Jun 2011 01:26:56 +0000 (01:26 +0000)]
Basic first round of testing for the InstallDocFormatter
Chad Horohoe [Wed, 29 Jun 2011 00:08:25 +0000 (00:08 +0000)]
(bug 29277) MediaWiki:Filepage.css not loaded on foreignwiki itself. Fixup to r68904. Yay Roan finally taught me how to use the resourceloader :D
Chad Horohoe [Tue, 28 Jun 2011 23:03:41 +0000 (23:03 +0000)]
Remove superfluous NewDBTest, doesn't test anything afaict
Chad Horohoe [Tue, 28 Jun 2011 22:26:22 +0000 (22:26 +0000)]
Merge SearchDbTest into SearchEngineTest. No real need for two classes here anymore, and it's kind of confusing if you try to run the stub by itself.
Also did some misc. cleanup while I was here
Results: OK (5 tests, 16 assertions)
Russ Nelson [Tue, 28 Jun 2011 22:00:21 +0000 (22:00 +0000)]
UploadStashFile::__construct() can't assume that the mwrepo-produced paths match the temp zone.
Aaron Schulz [Tue, 28 Jun 2011 21:39:55 +0000 (21:39 +0000)]
Use getLatest() accessor
Aaron Schulz [Tue, 28 Jun 2011 21:38:04 +0000 (21:38 +0000)]
Use title accessor
Raimond Spekking [Tue, 28 Jun 2011 21:20:29 +0000 (21:20 +0000)]
Localisation updates for core and extension messages from translatewiki.net (2011-06-28 21:10:00 UTC)
Rotem Liss [Tue, 28 Jun 2011 19:49:08 +0000 (19:49 +0000)]
Localization update for he.
Chad Horohoe [Tue, 28 Jun 2011 19:46:23 +0000 (19:46 +0000)]
* Remove Exception.php's reliance on wfDie(), as well as the awful constant MEDIAWIKI_INSTALL (holdover from old installer)
* Rm checking for MEDIAWIKI_INSTALL in wfOut(), no codepath leads here from the installer anymore
Antoine Musso [Tue, 28 Jun 2011 19:35:26 +0000 (19:35 +0000)]
rename test for the ns selector checkboxes
follow up r90943
Antoine Musso [Tue, 28 Jun 2011 19:32:25 +0000 (19:32 +0000)]
Find 'all' special ns regardless of its rank in the select
This is done by looking for an <option> element with an empty string value
which denote the special case 'all'.
Also removed a comment in Xml.php asking to keep 'all' as a first element
since it is no longer needed.
Follow up r90943 (comment 18872 by Brion)
Chad Horohoe [Tue, 28 Jun 2011 18:35:37 +0000 (18:35 +0000)]
Revert r85324 (making links grey for rev-del'd info). Per CR: grey is a bad color for links.
Alexandre Emsenhuber [Tue, 28 Jun 2011 18:21:59 +0000 (18:21 +0000)]
Added some GPL headers
Krinkle [Tue, 28 Jun 2011 18:17:49 +0000 (18:17 +0000)]
per r90984 CR, cleaner this way
Krinkle [Tue, 28 Jun 2011 17:57:56 +0000 (17:57 +0000)]
module name is not shortened
Krinkle [Tue, 28 Jun 2011 17:56:56 +0000 (17:56 +0000)]
mw.special.recentchanges fixes:
- Partial self-revert of r90982 (binding and triggering must not be chained, as the calling function refers to the variable we're setting)
- The Qunit tests pass now :)
Follows up: r90943 r90960 r90968 r90980 r90982
Krinkle [Tue, 28 Jun 2011 17:40:06 +0000 (17:40 +0000)]
mw.special.recentchanges fixes:
- using mw globally directly
- ID-selectors
- JS Effeciency in mw.special.rc.init (chaining instead of re-getting from this.select)
- passing function by reference instead of calling inside a new anonymous function
- marking checkboxes a private/local variable
- whitespace conventions
Follows up: r90943 r90960 r90968 r90980
Alexandre Emsenhuber [Tue, 28 Jun 2011 17:20:16 +0000 (17:20 +0000)]
* Fixed documentation
* Added GPL header
Brion Vibber [Tue, 28 Jun 2011 17:17:03 +0000 (17:17 +0000)]
Update qunit test runner includes for mediawiki.special.js move in r90968
Roan Kattouw [Tue, 28 Jun 2011 15:24:38 +0000 (15:24 +0000)]
Move mediawiki.special.js to the correct directory. Followup r90941, r90960
Roan Kattouw [Tue, 28 Jun 2011 14:28:11 +0000 (14:28 +0000)]
Fix r90943: redefined mediawiki.special module that had already been added in r83789 (!), broke loading of special page-specific CSS by addModuleStyles( 'mediawiki.special' ) . Bug originally reported by Nikerabbit as lack of CSS on Special:Search on TranslateWiki
Aaron Schulz [Tue, 28 Jun 2011 14:10:55 +0000 (14:10 +0000)]
Removed raw Article->field accessing
Chad Horohoe [Tue, 28 Jun 2011 12:00:04 +0000 (12:00 +0000)]
Revert r86623: merging Serbian language improvements to trunk. Per CR: this needs some tests, and I really don't know what's going on here well enough to write them :)
Antoine Musso [Tue, 28 Jun 2011 06:40:49 +0000 (06:40 +0000)]
Disable ns selector checkboxes when 'all' namespace is selected
* based on an idea by Aaron on r90866
* comes with QUnit test
* expect the special 'all' namespace to be the first in the list
* function build on mediawiki.special form r90941
Antoine Musso [Tue, 28 Jun 2011 05:57:55 +0000 (05:57 +0000)]
mediawiki.special as a dumb JS object
It will be extended later on.
Brian Wolff [Tue, 28 Jun 2011 04:47:59 +0000 (04:47 +0000)]
Use content language in formatting of dates in revertpage message
(rollback revert edit summary) and do not adjust for user timezone.
Brian Wolff [Tue, 28 Jun 2011 04:00:40 +0000 (04:00 +0000)]
(follow-up to some RequestContext revision) When Special:userlogin creates a new user, not only replace
$wgUser, but also do RequestContext::getMain()->setUser( $new_user );
Otherwise this causes a bug in the page immediatly after account creation where the
personal url's go to the wrong place, and the js wgUser variables are wrong.
I didn't add any release notes, since I'm tagging this for 1.18, and it was broken in 1.18,
so its not fixing anything between versions. (hopefully that's correct thing to do).
Aaron Schulz [Tue, 28 Jun 2011 03:51:00 +0000 (03:51 +0000)]
Follow-up r85226: use getContext()->getUser() instead of $wgOut->getUser()
Aaron Schulz [Tue, 28 Jun 2011 02:56:45 +0000 (02:56 +0000)]
Follow-up r90819: made XOR only work on two conditions per CR. Give a warning if three or more given.
Sam Reed [Tue, 28 Jun 2011 01:17:19 +0000 (01:17 +0000)]
Add SpecialPermanentLink to Autoloader
Aaron Schulz [Tue, 28 Jun 2011 01:09:02 +0000 (01:09 +0000)]
* Added truncate() & truncateHTML() tests
* Some fixes/changes to truncateHTML() based on tests
** Something like "<span>hello</span>" ends up as "<span>...</span>" instead of just "..." for relevant cases)
** If we get something like "<span></span" in, just return it back instead of ""
* Renamed $dispLength -> $dispLen in truncateHTML()
Robin Pepermans [Mon, 27 Jun 2011 23:58:46 +0000 (23:58 +0000)]
Follow-up r90742: the parser should call getFunctionLang()
Sam Reed [Mon, 27 Jun 2011 23:25:41 +0000 (23:25 +0000)]
Followup r90923, best to actually use displayPrefix
Sam Reed [Mon, 27 Jun 2011 23:20:31 +0000 (23:20 +0000)]
Don't put a quoted/regexed prefix back out again
Sam Reed [Mon, 27 Jun 2011 23:16:19 +0000 (23:16 +0000)]
Fix casing of langcode
Neil Kandalgaonkar [Mon, 27 Jun 2011 23:01:17 +0000 (23:01 +0000)]
adding standard location of exiv2 under Ubuntu Linux as default. This is used by tests/phpunit/includes/api/RandomImageGenerator.php and the same binary is also used in the PagedTiffHandler extension
Aaron Schulz [Mon, 27 Jun 2011 22:32:58 +0000 (22:32 +0000)]
Added formatTimePeriod() tests for r90385 and made some fixes
Raimond Spekking [Mon, 27 Jun 2011 20:37:08 +0000 (20:37 +0000)]
Localisation updates for core and extension messages from translatewiki.net (2011-06-27 20:21:00 UTC)
Aaron Schulz [Mon, 27 Jun 2011 20:36:59 +0000 (20:36 +0000)]
* Fixed 'Fatal error: Class 'SpecialMyuploads' not found in C:\wamp\www\MW_trunk\includes\SpecialPageFactory.php on line 318'
* Made use of $this->getUser() with special pages rather than wgUser
* Broke long lines
Happy-melon [Mon, 27 Jun 2011 19:38:30 +0000 (19:38 +0000)]
Follow-up r89408, r86872: restore IContextSource and ContextSource, to be more carefully reimplemented.
Happy-melon [Mon, 27 Jun 2011 19:23:54 +0000 (19:23 +0000)]
Revert r85288 (magic accessors for RequestContext); much more trouble than they're worth.
Happy-melon [Mon, 27 Jun 2011 18:05:09 +0000 (18:05 +0000)]
(bug 29511) block dropdown reasons should be in wiki content language.
Happy-melon [Mon, 27 Jun 2011 16:22:01 +0000 (16:22 +0000)]
Follow-up r90877: spot the copy-and-pasted code... :D
Happy-melon [Mon, 27 Jun 2011 16:13:10 +0000 (16:13 +0000)]
Follow-up r85322: brion's right that some styling is desirable; so make it centered more like the diff layout.
Happy-melon [Mon, 27 Jun 2011 14:05:23 +0000 (14:05 +0000)]
Follow-up r86044 CR (correct subtitle message for action=credits), and some documentation.
Happy-melon [Mon, 27 Jun 2011 13:48:01 +0000 (13:48 +0000)]
Follow-up r88738: this check is no longer needed since r88750.
Aaron Schulz [Sun, 26 Jun 2011 23:50:15 +0000 (23:50 +0000)]
Tweaked r90766 messages. Still awkward. Also, this still needs JS to disable the check if "all" is selected, to be less confusing.
Happy-melon [Sun, 26 Jun 2011 23:40:43 +0000 (23:40 +0000)]
Follow-up r86234, and more parameter documentation.
Aaron Schulz [Sun, 26 Jun 2011 23:32:46 +0000 (23:32 +0000)]
Restore new_name_timestamp index usage in UNION. Since r51907, there was no reason for doing the UNION. Fixed "is_null( $namespace )" checks, broken probably since FormOptions was used here (NULL value not saved for 'namespace', left to default, which is ''). Added check for 'associated namespaces' option.
Happy-melon [Sun, 26 Jun 2011 23:25:50 +0000 (23:25 +0000)]
Comment shuffling, also fixing r86347 CR.
Happy-melon [Sun, 26 Jun 2011 23:10:57 +0000 (23:10 +0000)]
Follow-up r84588 CR
Happy-melon [Sun, 26 Jun 2011 23:01:29 +0000 (23:01 +0000)]
Follow-up r84475 CR; and also documentation fixes; PhpStorm 2.1 is *even more* fussy about documentation format... :D
Robin Pepermans [Sun, 26 Jun 2011 22:58:27 +0000 (22:58 +0000)]
Make parser->getFunctionLang be dependent on title->getPageLanguage() instead of $wgContLang, i.e. the page content language instead of the wiki content language. This sets the right language on page view + edit for all pages, instead of only edit preview on MediaWiki namespace pages (as in EditPage.php).
Aaron Schulz [Sun, 26 Jun 2011 21:50:24 +0000 (21:50 +0000)]
Remove disableaccount stuff from r77558. Left out from r86146 reverts.
Aaron Schulz [Sun, 26 Jun 2011 21:44:55 +0000 (21:44 +0000)]
Follow-up r90749: use a new 'autopromote' action for the autopromote rights log entries. Removed the 'rightsautocomment' msg.
Mark A. Hershberger [Sun, 26 Jun 2011 20:04:38 +0000 (20:04 +0000)]
random eol w/s annoys me.
Raimond Spekking [Sun, 26 Jun 2011 20:00:58 +0000 (20:00 +0000)]
Localisation updates for ToolserverI18N messages from translatewiki.net (2011-06-26 19:34:00)
Mark A. Hershberger [Sun, 26 Jun 2011 20:00:20 +0000 (20:00 +0000)]
Followup r90239: Move return till after the toggle is executed.
Mark A. Hershberger [Sun, 26 Jun 2011 19:52:11 +0000 (19:52 +0000)]
Apply rgcjones' patch for Bug#29533:
Whe placing an external link in the sidebar, $wgExternalLinkTarget is ignored.
Also enables applying of $wgNoFollowLinks in the sidebar.
Sam Reed [Sun, 26 Jun 2011 19:33:05 +0000 (19:33 +0000)]
Followup r89566, r89568, make links point to the user whom the contributions are for (not $wgUser)
Add a comment to go with r90775
Sam Reed [Sun, 26 Jun 2011 19:20:14 +0000 (19:20 +0000)]
Followup r90839, de-capitali[sz]e api parameter
Sam Reed [Sun, 26 Jun 2011 19:16:04 +0000 (19:16 +0000)]
Update calls to deprecated User::isValidEmailAddr
Fix trailing whitespace
Some minor documentation fixes
Raimond Spekking [Sun, 26 Jun 2011 17:36:39 +0000 (17:36 +0000)]
Followup r90775: Fix PHP Notice: Undefined index: deletedonly in /www/w/includes/specials/SpecialContributions.php on line 131
Niklas Laxström [Sun, 26 Jun 2011 15:40:14 +0000 (15:40 +0000)]
Unbreak multiple maintenance scripts
Niklas Laxström [Sun, 26 Jun 2011 15:14:32 +0000 (15:14 +0000)]
Per translatewiki.net/wiki/Thread:Support/Unprotect get rid of term unprotect (hard to translate, not necessarily used to remove protection)
Antoine Musso [Sun, 26 Jun 2011 11:48:55 +0000 (11:48 +0000)]
Fix comment in BacklinkCache::partition()
+ a typo
Per cr on r84254
Aaron Schulz [Sun, 26 Jun 2011 04:50:24 +0000 (04:50 +0000)]
Made '^' (XOR) in recCheckCondition() act as a one-hot detector. Before r28805, XOR silently ignored subconds beyond the first two. After r28805, XOR passed iff an odd number of subconds passed. It now passes iff exactly one subcond passes. This should be more intuitive, as I highly doubt anyone using 3+ subconds was doing it correctly before.
Krinkle [Sun, 26 Jun 2011 04:36:02 +0000 (04:36 +0000)]
Review and clean up of jquery.tablesorter.js + applying code conventions
* Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope.
* Adding more function documentation
* Whitespace contentions
* Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right).
* Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table)
* Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.)
* Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier.
* Removed commented out code
* Added more line breaks to separate blocks
* Merge var-statements together
* Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter
* Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames)
* Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery)
- 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition
- Strict === comparison to 0, null, undefined, false, true, '' etc.
- Require curly braces around all blocks
* Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF)
- Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend
- Object literal {foo}, instead of new function(){ this.foo }
- Strict/fast comparison to undefined, without typeof and/or string evaluation
- cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)