From: Krinkle Date: Sat, 30 Jul 2011 06:33:46 +0000 (+0000) Subject: mediawiki.js request() caching deep level object member access. X-Git-Tag: 1.31.0-rc.0~28541 X-Git-Url: http://git.cyclocoop.org/%22%20.%20generer_url_ecrire%28%22suivi_revisions%22%29%20.%20%22?a=commitdiff_plain;h=2463f989961423790f7c7c04c0bbbf2f7f052e5c;p=lhc%2Fweb%2Fwiklou.git mediawiki.js request() caching deep level object member access. - Instead of requesting index 0 of dependancies-argument, and the value of that of the registry, and the dependancies object in that of which we read the length property is very deep. Even worse when doing that both in the head and in the body of a for()-loop. - Instead caching reference access to dependancies object of the registry item. - Plus a simple by-value of the length property --- diff --git a/resources/mediawiki/mediawiki.js b/resources/mediawiki/mediawiki.js index e0cab820dc..9cf0bf10c5 100644 --- a/resources/mediawiki/mediawiki.js +++ b/resources/mediawiki/mediawiki.js @@ -630,8 +630,12 @@ window.mw = window.mediaWiki = new ( function( $ ) { if ( typeof dependencies === 'string' ) { dependencies = [dependencies]; if ( dependencies[0] in registry ) { - for ( var n = 0; n < registry[dependencies[0]].dependencies.length; n++ ) { - dependencies[dependencies.length] = registry[dependencies[0]].dependencies[n]; + // Cache repetitively accessed deep level object member + var regItemDeps = registry[dependencies[0]].dependencies, + // Cache to avoid looped access to length property + regItemDepLen = regItemDeps.length; + for ( var n = 0; n < regItemDepLen; n++ ) { + dependencies[dependencies.length] = regItemDeps[n]; } } }