From 2463f989961423790f7c7c04c0bbbf2f7f052e5c Mon Sep 17 00:00:00 2001 From: Krinkle Date: Sat, 30 Jul 2011 06:33:46 +0000 Subject: [PATCH] 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 --- resources/mediawiki/mediawiki.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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]; } } } -- 2.20.1