jQuery.tablesorter seems to be an optional dependency - the code is loaded in the client only on pages which need it (otherwise the 'mediawiki.page.ready' resource loader module would specify it as a hard dependency in its dependencies)

If jquery.tablesorter was listed in the module manifest [1] for mediawiki.page.ready I could understand it throwing an exception when mediawiki.page.ready uses it - but it is /NOT/ thus the code in mediawiki.page.ready is making a bad assumption that that module exists and is available. In this case it is an optional module (otherwise it would be in the module manifest of a module that /has/ been knowingly added to the page) and the page will survive without it. I am sure however in other cases an exception might make more sense e.g. mw.using( 'mediawiki.modulethatwasrenamed' ). I don't know the resource loader code well enough but it seems it would be useful to distinguish between modules that do not exist and modules that have the wrong target.

On a side note mediawiki.page.ready doesn't look very useful to mobile - input placeholders are not really a problem on modern mobile browsers, we don't use the collapsible code, as this bug reveals the tablesorter isn't expected to work, access keys are useless on mobile and CheckboxShiftClick - I have no idea what that is but doesn't sound very mobile friendly. For our particular problem we should probably simply disable this module on the mobile site - yet it seems to be needed for qunit (wtf)?! [2]

[1]
'mediawiki.page.ready' => array(
		'scripts' => 'resources/mediawiki.page/mediawiki.page.ready.js',
		'dependencies' => array(
			'jquery.checkboxShiftClick',
			'jquery.makeCollapsible',
			'jquery.placeholder',
			'jquery.mw-jump',
			'mediawiki.util',
		),
		'targets' => array( 'desktop', 'mobile' ),
	),


Krinkle I disagree that we should enable jquery.tablesorter on mobile and we certainly shouldn't do it 'simply' - but that's another bug/discussion (see my comments on bug 47858) - let's not discuss that here.


[2] Change-Id: I84e0512590de9ff2dbdf519d983a0c1c2d007194