From 69475f03083daf4dd665eaec7aa50f88e1bb0eb9 Mon Sep 17 00:00:00 2001 From: Fomafix Date: Sun, 14 Dec 2014 11:28:09 +0000 Subject: [PATCH] Prevent predefined object methods to be interpreted as valid language Change-Id: I97bb0f8eef6a9361118527cecb4680aeac51b7e1 --- resources/js/ext.uls.init.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/resources/js/ext.uls.init.js b/resources/js/ext.uls.init.js index 47008a29..5a112e75 100644 --- a/resources/js/ext.uls.init.js +++ b/resources/js/ext.uls.init.js @@ -19,6 +19,8 @@ ( function ( $, mw ) { 'use strict'; + var hasOwn = Object.prototype.hasOwnProperty; + mw.uls = mw.uls || {}; mw.uls.previousLanguagesCookie = 'uls-previous-languages'; mw.uls.previousLanguageAutonymCookie = 'uls-previous-language-autonym'; @@ -163,7 +165,7 @@ var target; // If the language is already known and defined, just use it - if ( $.fn.uls.defaults.languages[ langCode ] !== undefined ) { + if ( hasOwn.call( $.fn.uls.defaults.languages, langCode ) ) { return true; } @@ -174,7 +176,7 @@ if ( target ) { // Check that the redirect's target is known // to this instance of ULS - return $.fn.uls.defaults.languages[ target ] !== undefined; + return hasOwn.call( $.fn.uls.defaults.languages, target ); } return false;