From ce2652c9ec04437d0d6478044e798fbd5e5f8ef8 Mon Sep 17 00:00:00 2001 From: Sam Smith Date: Fri, 24 Feb 2017 10:08:07 +0000 Subject: [PATCH] mw.inspect: Include templates and messages in size Currently, mw.inspect#getModuleSize omits the size of templates and messages while calculating a ResourceLoader module's size despite them being included in the module's definition. Change-Id: Ib8d52c901a8e1656b8b6996762bfbff3af16a834 --- resources/src/mediawiki/mediawiki.inspect.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/resources/src/mediawiki/mediawiki.inspect.js b/resources/src/mediawiki/mediawiki.inspect.js index fdaa989dc5..6b3971e9eb 100644 --- a/resources/src/mediawiki/mediawiki.inspect.js +++ b/resources/src/mediawiki/mediawiki.inspect.js @@ -95,6 +95,15 @@ payload += $.byteLength( module.script.toString() ); } + // Tally templates and messages. Calculate their JSON size so that keys + // are included in the module size - in the case of messages, keys can be + // longer than values - and so that empty objects are also included. + $.each( [ module.templates, module.messages ], function ( i, object ) { + if ( object ) { + payload += $.byteLength( JSON.stringify( object ) ); + } + } ); + return payload; }, -- 2.20.1