diff --git a/resources/js/ext.uls.compactlinks.js b/resources/js/ext.uls.compactlinks.js index 952da1d1..20f02d00 100644 --- a/resources/js/ext.uls.compactlinks.js +++ b/resources/js/ext.uls.compactlinks.js @@ -210,12 +210,14 @@ * @param {jQuery} $trigger Element to use as trigger. */ CompactInterlanguageList.prototype.createSelector = function ( $trigger ) { - var languages = Object.keys( this.interlanguageList ), + var languages, self = this, ulsLanguageList = {}; - languages.forEach( function ( languageCode ) { - ulsLanguageList[ languageCode ] = this.interlanguageList[ languageCode ].autonym; + languages = $.map( this.interlanguageList, function ( language, languageCode ) { + ulsLanguageList[ languageCode ] = language.autonym; + + return languageCode; } ); // Attach ULS to the trigger @@ -327,7 +329,9 @@ var language, languages, compactLanguages, i, compactedList = {}; - languages = Object.keys( this.interlanguageList ); + languages = $.map( this.interlanguageList, function ( item, languageCode ) { + return languageCode; + } ); compactLanguages = this.compact( languages ); diff --git a/resources/js/ext.uls.displaysettings.js b/resources/js/ext.uls.displaysettings.js index 55678b4d..557c4773 100644 --- a/resources/js/ext.uls.displaysettings.js +++ b/resources/js/ext.uls.displaysettings.js @@ -456,7 +456,7 @@ // Get the saved font using the fontSelector defined in mw.webfonts.setup savedFont = this.$webfonts.getFont( language ); - fonts.forEach( function ( font ) { + $.each( fonts, function ( key, font ) { var $fontOption; if ( font !== 'system' ) { diff --git a/resources/js/ext.uls.languagesettings.js b/resources/js/ext.uls.languagesettings.js index 40101d18..6fd18cf0 100644 --- a/resources/js/ext.uls.languagesettings.js +++ b/resources/js/ext.uls.languagesettings.js @@ -105,14 +105,18 @@ // Get the name of all registered modules and list them in left side menu. // Sort the modules based on id - modules = Object.keys( $.fn.languagesettings.modules ).sort(); - modules.forEach( function ( moduleName ) { - if ( !defaultModule ) { - defaultModule = moduleName; - } + modules = $.map( $.fn.languagesettings.modules, function ( element, index ) { + return index; + } ).sort(); + $.each( modules, function ( index, moduleName ) { + if ( $.fn.languagesettings.modules.hasOwnProperty( moduleName ) ) { + if ( !defaultModule ) { + defaultModule = moduleName; + } - // Call render function on the current setting module. - languageSettings.initModule( moduleName, defaultModule === moduleName ); + // Call render function on the current setting module. + languageSettings.initModule( moduleName, defaultModule === moduleName ); + } } ); }, diff --git a/tests/webfonts.html b/tests/webfonts.html index fbee034d..0a756453 100644 --- a/tests/webfonts.html +++ b/tests/webfonts.html @@ -40,9 +40,9 @@ $langselector = $( 'select#language' ); function listFonts( fonts ) { - fonts.push( 'Sans', 'Serif' ); + $.merge( fonts, [ 'Sans', 'Serif' ] ); $fontSelector.find( 'option' ).remove(); - fonts.forEach( function ( font ) { + $.each( fonts, function ( key, font ) { $fontSelector.append( $( "" ) .attr( "value", font ).text( font ) ); } ); @@ -50,7 +50,7 @@ } listFonts( fonts ); - languages.forEach( function ( language ) { + $.each( languages, function ( lang, language ) { $langselector.append( $( "" ) .attr( 'value', language ) .text( language + " - " + $.uls.data.getAutonym( language ) ) );