From 2f3cd252a5ff11af949b5b4acbdd74c64e95bf82 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 24 May 2011 00:42:42 +0000 Subject: [PATCH] * (bug 29107) Fix regression in ResourceLoader debug mode for WikiEditor One of WikiEditor's modules had only messages, no scripts; updates to the debug mode loader had ended up failing in the case where no scripts got passed in (if passed with a loader function we were fine, hence non-debug mode being ok) This commit explicitly checks for the empty-array case and marks the module as ready immediately, instead of waiting for the last item in the loop to finish, which never happens. :) Also consolidated three calls to the same few lines of code into a lambda function. --- resources/mediawiki/mediawiki.js | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/resources/mediawiki/mediawiki.js b/resources/mediawiki/mediawiki.js index ccc703e571..8dd0052343 100644 --- a/resources/mediawiki/mediawiki.js +++ b/resources/mediawiki/mediawiki.js @@ -481,27 +481,30 @@ window.mediaWiki = new ( function( $ ) { // Execute script try { var script = registry[module].script; + var markModuleReady = function() { + registry[module].state = 'ready'; + handlePending( module ); + if ( $.isFunction( callback ) ) { + callback(); + } + }; if ( $.isArray( script ) ) { var done = 0; + if (script.length == 0 ) { + // No scripts in this module? Let's dive out early. + markModuleReady(); + } for ( var i = 0; i < script.length; i++ ) { registry[module].state = 'loading'; addScript( script[i], function() { if ( ++done == script.length ) { - registry[module].state = 'ready'; - handlePending( module ); - if ( $.isFunction( callback ) ) { - callback(); - } + markModuleReady(); } } ); } } else if ( $.isFunction( script ) ) { script( jQuery ); - registry[module].state = 'ready'; - handlePending( module ); - if ( $.isFunction( callback ) ) { - callback(); - } + markModuleReady(); } } catch ( e ) { // This needs to NOT use mw.log because these errors are common in production mode -- 2.20.1