Last modified: 2014-02-12 23:48:02 UTC
The problem is in SkinMobile.php. 'position' => 'top' modules are packed into the $headModuleNames array and 'position' => 'bottom' are packed into $moduleNams. $headModuleNames are loaded properly and without fanfare, but there is some code hacking around ResourceLoader with $moduleNames (grep for '$bottomScripts') that (as far as I can determine) only works for 'raw' modules.
Specifically I think this would only work for 'raw' scripts since it bypasses most of ResourceLoader: $bottomScripts = Html::inlineScript( ResourceLoader::makeLoaderConditionalScript( Xml::encodeJsCall( 'mw.loader.load', array( $moduleNames ) ) ) );
Two things going on here: 1) https://gerrit.wikimedia.org/r/#/c/47193/ will make the bottom scripts behave well 2) Modules in EventLogging need to declare themselves as having target mobile - currently $headLinks[] = $this->resourceLoaderLink( $headModuleNames, 'scripts' ); ignores the target property - this is a bug and needs to be fixed. (see getTargets function in ResourceLoaderModule)
(In reply to comment #2) > 2) Modules in EventLogging need to declare themselves as having target mobile Gerrit change #47206 (merged) adds 'mobile' to targets EventLogging modules.
https://gerrit.wikimedia.org/r/#/c/47546/ takes care of this on MFE side.