| Index: lib/utils.js | 
| diff --git a/lib/utils.js b/lib/utils.js | 
| index e965cad717e4cb7f2c19a8181a4edbebf322f14c..9361039f8137f85bb5fe4f7fbf43590531c9a657 100644 | 
| --- a/lib/utils.js | 
| +++ b/lib/utils.js | 
| @@ -15,19 +15,21 @@ | 
| * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. | 
| */ | 
|  | 
| -var Utils = exports.Utils = { | 
| +"use strict"; | 
| + | 
| +let Utils = exports.Utils = { | 
| systemPrincipal: null, | 
| -  getString: function(id) | 
| +  getString(id) | 
| { | 
| return ext.i18n.getMessage("global_" + id); | 
| }, | 
| -  runAsync: function(callback) | 
| +  runAsync(callback) | 
| { | 
| if (document.readyState == "loading") | 
| { | 
| // Make sure to not run asynchronous actions before all | 
| // scripts loaded. This caused issues on Opera in the past. | 
| -      let onDOMContentLoaded = function() | 
| +      let onDOMContentLoaded = () => | 
| { | 
| document.removeEventListener("DOMContentLoaded", onDOMContentLoaded); | 
| callback(); | 
| @@ -41,40 +43,38 @@ var Utils = exports.Utils = { | 
| }, | 
| get appLocale() | 
| { | 
| -    var locale = ext.i18n.getMessage("@@ui_locale").replace(/_/g, "-"); | 
| +    let locale = ext.i18n.getMessage("@@ui_locale").replace(/_/g, "-"); | 
| Object.defineProperty(this, "appLocale", {value: locale, enumerable: true}); | 
| return this.appLocale; | 
| }, | 
| -  generateChecksum: function(lines) | 
| +  generateChecksum(lines) | 
| { | 
| // We cannot calculate MD5 checksums yet :-( | 
| return null; | 
| }, | 
| -  checkLocalePrefixMatch: function(prefixes) | 
| +  checkLocalePrefixMatch(prefixes) | 
| { | 
| if (!prefixes) | 
| return null; | 
|  | 
| -    var list = prefixes.split(","); | 
| -    for (var i = 0; i < list.length; i++) | 
| -      if (new RegExp("^" + list[i] + "\\b").test(this.appLocale)) | 
| -        return list[i]; | 
| +    for (let prefix of prefixes.split(",")) | 
| +      if (new RegExp("^" + prefix + "\\b").test(this.appLocale)) | 
| +        return prefix; | 
|  | 
| return null; | 
| }, | 
|  | 
| -  chooseFilterSubscription: function(subscriptions) | 
| +  chooseFilterSubscription(subscriptions) | 
| { | 
| -    var selectedItem = null; | 
| -    var selectedPrefix = null; | 
| -    var matchCount = 0; | 
| -    for (var i = 0; i < subscriptions.length; i++) | 
| +    let selectedItem = null; | 
| +    let selectedPrefix = null; | 
| +    let matchCount = 0; | 
| +    for (let subscription of subscriptions) | 
| { | 
| -      var subscription = subscriptions[i]; | 
| if (!selectedItem) | 
| selectedItem = subscription; | 
|  | 
| -      var prefix = require("utils").Utils.checkLocalePrefixMatch(subscription.getAttribute("prefixes")); | 
| +      let prefix = Utils.checkLocalePrefixMatch(subscription.getAttribute("prefixes")); | 
| if (prefix) | 
| { | 
| if (!selectedPrefix || selectedPrefix.length < prefix.length) | 
| @@ -102,14 +102,13 @@ var Utils = exports.Utils = { | 
| return selectedItem; | 
| }, | 
|  | 
| -  getDocLink: function(linkID) | 
| +  getDocLink(linkID) | 
| { | 
| -    var Prefs = require("prefs").Prefs; | 
| -    var docLink = Prefs.documentation_link; | 
| +    let docLink = require("prefs").Prefs.documentation_link; | 
| return docLink.replace(/%LINK%/g, linkID).replace(/%LANG%/g, Utils.appLocale); | 
| }, | 
|  | 
| -  yield: function() | 
| +  yield() | 
| { | 
| } | 
| }; | 
|  |