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 ) ) );