*
* Other browsers that pass the check are considered Grade X.
*
- * @param {string} [str] User agent, defaults to navigator.userAgent
+ * @private
+ * @param {string} ua User agent string
* @return {boolean} User agent is compatible with MediaWiki JS
*/
-function isCompatible( str ) {
- var ua = str || navigator.userAgent;
+function isCompatible( ua ) {
return !!(
// https://caniuse.com/#feat=es5
// https://caniuse.com/#feat=use-strict
);
}
-if ( !isCompatible() ) {
+if ( !isCompatible( navigator.userAgent ) ) {
// Handle Grade C
// Undo speculative Grade A <html> class. See ResourceLoaderClientHtml::getDocumentAttributes().
document.documentElement.className = document.documentElement.className
mw.config.set( $VARS.configuration );
// Process callbacks for Grade A
- // Must be after registrations and mw.config.set, which mw.loader depends on.
var queue = window.RLQ;
- // Redefine push(), but keep type as array for storing callbacks that require modules.
+ // Replace RLQ placeholder from ResourceLoaderClientHtml with an implementation
+ // that executes simple callbacks, but continues to store callbacks that require
+ // modules.
window.RLQ = [];
/* global RLQ */
RLQ.push = function ( fn ) {
}
};
while ( queue && queue[ 0 ] ) {
- // Re-use our push()
+ // Re-use our new push() method
RLQ.push( queue.shift() );
}