From: Timo Tijhof Date: Sat, 9 Mar 2019 04:56:54 +0000 (+0000) Subject: resourceloader: Minor optimisation in variable declarations X-Git-Tag: 1.34.0-rc.0~2544^2 X-Git-Url: http://git.cyclocoop.org/%28?a=commitdiff_plain;h=346abb85a2c6cf421b621067bd7d743644a4721a;p=lhc%2Fweb%2Fwiklou.git resourceloader: Minor optimisation in variable declarations Trying out Safari after a while and, it's Dev Tools have a way to see the compiler's type inference, showing that Safari is not able to always detect some numbers as non-optional. While I generally avoid optimising for an optimiser, I believe being more explicit is always better or equal. Plus, it saves a few bytes while at it. Change-Id: I4084452a74c51953ff0a1609b3b52d696f14a7e1 --- diff --git a/resources/src/startup/mediawiki.js b/resources/src/startup/mediawiki.js index 28f57dbd8d..e110b95f6f 100644 --- a/resources/src/startup/mediawiki.js +++ b/resources/src/startup/mediawiki.js @@ -29,10 +29,10 @@ */ function fnv132( str ) { var hash = 0x811C9DC5, - i; + i = 0; /* eslint-disable no-bitwise */ - for ( i = 0; i < str.length; i++ ) { + for ( ; i < str.length; i++ ) { hash += ( hash << 1 ) + ( hash << 4 ) + ( hash << 7 ) + ( hash << 8 ) + ( hash << 24 ); hash ^= str.charCodeAt( i ); } @@ -734,8 +734,8 @@ * @return {boolean} True if all modules are in state 'ready', false otherwise */ function allReady( modules ) { - var i; - for ( i = 0; i < modules.length; i++ ) { + var i = 0; + for ( ; i < modules.length; i++ ) { if ( mw.loader.getState( modules[ i ] ) !== 'ready' ) { return false; } @@ -764,8 +764,9 @@ * @return {boolean} True if no modules are in state 'error' or 'missing', false otherwise */ function anyFailed( modules ) { - var i, state; - for ( i = 0; i < modules.length; i++ ) { + var state, + i = 0; + for ( ; i < modules.length; i++ ) { state = mw.loader.getState( modules[ i ] ); if ( state === 'error' || state === 'missing' ) { return true; @@ -982,8 +983,9 @@ * @throws {Error} If an unregistered module or a dependency loop is encountered */ function resolve( modules ) { - var i, resolved = []; - for ( i = 0; i < modules.length; i++ ) { + var resolved = [], + i = 0; + for ( ; i < modules.length; i++ ) { sortDependencies( modules[ i ], resolved ); } return resolved; @@ -998,8 +1000,10 @@ * @return {Array} List of dependencies. */ function resolveStubbornly( modules ) { - var i, saved, resolved = []; - for ( i = 0; i < modules.length; i++ ) { + var saved, + resolved = [], + i = 0; + for ( ; i < modules.length; i++ ) { saved = resolved.slice(); try { sortDependencies( modules[ i ], resolved ); @@ -1816,12 +1820,12 @@ * @private */ work: function () { - var q, batch, implementations, sourceModules; - - batch = []; + var implementations, sourceModules, + batch = [], + q = 0; // Appends a list of modules from the queue to the batch - for ( q = 0; q < queue.length; q++ ) { + for ( ; q < queue.length; q++ ) { // Only load modules which are registered if ( queue[ q ] in registry && registry[ queue[ q ] ].state === 'registered' ) { // Prevent duplicate entries