From 2096cbdb47dd511f10bdbd8358e6721d38f7dfba Mon Sep 17 00:00:00 2001 From: Timo Tijhof Date: Mon, 8 Apr 2019 01:20:06 +0100 Subject: [PATCH] resourceloader: Remove unused 'skipped' property from registry This was added for debugging purposes, but I've never needed it so far. It also makes the shape of objects in the registry inconsistent, which can be a de-opt. Keep it for now, but with a more minimal impact by storing it in the same property. Change-Id: I297e3adb4765b83b1e7356b81cd056f99b3de93d --- resources/src/startup/mediawiki.js | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/resources/src/startup/mediawiki.js b/resources/src/startup/mediawiki.js index 5c574a2efa..4c20e9dd06 100644 --- a/resources/src/startup/mediawiki.js +++ b/resources/src/startup/mediawiki.js @@ -536,14 +536,13 @@ * 'dependencies': ['required.foo', 'bar.also', ...] * 'group': 'somegroup', (or) null * 'source': 'local', (or) 'anotherwiki' - * 'skip': 'return !!window.Example', (or) null + * 'skip': 'return !!window.Example', (or) null, (or) boolean result of skip * 'module': export Object * * // Set from execute() or mw.loader.state() * 'state': 'registered', 'loaded', 'loading', 'ready', 'error', or 'missing' * * // Optionally added at run-time by mw.loader.implement() - * 'skipped': true * 'script': closure, array of urls, or string * 'style': { ... } (see #execute) * 'messages': { 'key': 'value', ... } @@ -717,7 +716,7 @@ /** * @private - * @param {Array} modules List of module names + * @param {string[]} modules List of module names * @return {string} Hash of concatenated version hashes. */ function getCombinedVersion( modules ) { @@ -732,7 +731,7 @@ * execute the module or job now. * * @private - * @param {Array} modules Names of modules to be checked + * @param {string[]} modules Names of modules to be checked * @return {boolean} True if all modules are in state 'ready', false otherwise */ function allReady( modules ) { @@ -929,12 +928,11 @@ throw new Error( 'Unknown dependency: ' + module ); } - if ( registry[ module ].skip !== null ) { + if ( typeof registry[ module ].skip === 'string' ) { // eslint-disable-next-line no-new-func - skip = new Function( registry[ module ].skip ); - registry[ module ].skip = null; - if ( skip() ) { - registry[ module ].skipped = true; + skip = ( new Function( registry[ module ].skip )() ); + registry[ module ].skip = !!skip; + if ( skip ) { registry[ module ].dependencies = []; setAndPropagate( module, 'ready' ); return; -- 2.20.1