| Index: lib/filterStorage.js | 
| =================================================================== | 
| --- a/lib/filterStorage.js | 
| +++ b/lib/filterStorage.js | 
| @@ -81,19 +81,19 @@ | 
| /** | 
| * List of filter subscriptions containing all filters | 
| * @type {Subscription[]} | 
| */ | 
| subscriptions: [], | 
| /** | 
| * Map of subscriptions already on the list, by their URL/identifier | 
| - * @type {Object} | 
| + * @type {Map.<string,Subscription>} | 
| */ | 
| - knownSubscriptions: Object.create(null), | 
| + knownSubscriptions: new Map(), | 
| /** | 
| * Finds the filter group that a filter should be added to by default. Will | 
| * return null if this group doesn't exist yet. | 
| * @param {Filter} filter | 
| * @return {?SpecialSubscription} | 
| */ | 
| getGroupForFilter(filter) | 
| @@ -119,21 +119,21 @@ | 
| }, | 
| /** | 
| * Adds a filter subscription to the list | 
| * @param {Subscription} subscription filter subscription to be added | 
| */ | 
| addSubscription(subscription) | 
| { | 
| - if (subscription.url in FilterStorage.knownSubscriptions) | 
| + if (FilterStorage.knownSubscriptions.has(subscription.url)) | 
| return; | 
| FilterStorage.subscriptions.push(subscription); | 
| - FilterStorage.knownSubscriptions[subscription.url] = subscription; | 
| + FilterStorage.knownSubscriptions.set(subscription.url, subscription); | 
| addSubscriptionFilters(subscription); | 
| FilterNotifier.triggerListeners("subscription.added", subscription); | 
| }, | 
| /** | 
| * Removes a filter subscription from the list | 
| * @param {Subscription} subscription filter subscription to be removed | 
| @@ -142,17 +142,17 @@ | 
| { | 
| for (let i = 0; i < FilterStorage.subscriptions.length; i++) | 
| { | 
| if (FilterStorage.subscriptions[i].url == subscription.url) | 
| { | 
| removeSubscriptionFilters(subscription); | 
| FilterStorage.subscriptions.splice(i--, 1); | 
| - delete FilterStorage.knownSubscriptions[subscription.url]; | 
| + FilterStorage.knownSubscriptions.delete(subscription.url); | 
| FilterNotifier.triggerListeners("subscription.removed", subscription); | 
| return; | 
| } | 
| } | 
| }, | 
| /** | 
| * Moves a subscription in the list to a new position. | 
| @@ -363,19 +363,19 @@ | 
| importData(silent) | 
| { | 
| let parser = new INIParser(); | 
| return line => | 
| { | 
| parser.process(line); | 
| if (line === null) | 
| { | 
| - let knownSubscriptions = Object.create(null); | 
| + let knownSubscriptions = new Map(); | 
| for (let subscription of parser.subscriptions) | 
| - knownSubscriptions[subscription.url] = subscription; | 
| + knownSubscriptions.set(subscription.url, subscription); | 
| this.fileProperties = parser.fileProperties; | 
| this.subscriptions = parser.subscriptions; | 
| this.knownSubscriptions = knownSubscriptions; | 
| Filter.knownFilters = parser.knownFilters; | 
| Subscription.knownSubscriptions = parser.knownSubscriptions; | 
| if (!silent) | 
| @@ -653,31 +653,31 @@ | 
| /** | 
| * Joins subscription's filters to the subscription without any notifications. | 
| * @param {Subscription} subscription | 
| * filter subscription that should be connected to its filters | 
| */ | 
| function addSubscriptionFilters(subscription) | 
| { | 
| - if (!(subscription.url in FilterStorage.knownSubscriptions)) | 
| + if (!FilterStorage.knownSubscriptions.has(subscription.url)) | 
| return; | 
| for (let filter of subscription.filters) | 
| filter.subscriptions.push(subscription); | 
| } | 
| /** | 
| * Removes subscription's filters from the subscription without any | 
| * notifications. | 
| * @param {Subscription} subscription filter subscription to be removed | 
| */ | 
| function removeSubscriptionFilters(subscription) | 
| { | 
| - if (!(subscription.url in FilterStorage.knownSubscriptions)) | 
| + if (!FilterStorage.knownSubscriptions.has(subscription.url)) | 
| return; | 
| for (let filter of subscription.filters) | 
| { | 
| let i = filter.subscriptions.indexOf(subscription); | 
| if (i >= 0) | 
| filter.subscriptions.splice(i, 1); | 
| } | 
| @@ -687,17 +687,17 @@ | 
| * Listener returned by FilterStorage.importData(), parses filter data. | 
| * @constructor | 
| */ | 
| function INIParser() | 
| { | 
| this.fileProperties = this.curObj = {}; | 
| this.subscriptions = []; | 
| this.knownFilters = new Map(); | 
| - this.knownSubscriptions = Object.create(null); | 
| + this.knownSubscriptions = new Map(); | 
| } | 
| INIParser.prototype = | 
| { | 
| linesProcessed: 0, | 
| subscriptions: null, | 
| knownFilters: null, | 
| knownSubscriptions: null, | 
| wantObj: true, |