mediawiki.js request() caching deep level object member access.
authorKrinkle <krinkle@users.mediawiki.org>
Sat, 30 Jul 2011 06:33:46 +0000 (06:33 +0000)
committerKrinkle <krinkle@users.mediawiki.org>
Sat, 30 Jul 2011 06:33:46 +0000 (06:33 +0000)
- 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

index e0cab82..9cf0bf1 100644 (file)
@@ -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];
                                        }
                                }
                        }