Index: lib/filterStorage.js
===================================================================
--- a/lib/filterStorage.js
+++ b/lib/filterStorage.js
@@ -70,18 +70,19 @@
    * Will be set to true if no patterns.ini file exists.
    * @type {boolean}
    */
   firstRun: false,
 
   /**
    * Map of properties listed in the filter storage file before the sections
    * start. Right now this should be only the format version.
+   * @type {Map.<string,string>}
    */
-  fileProperties: Object.create(null),
+  fileProperties: new Map(),
 
   /**
    * List of filter subscriptions containing all filters
    * @type {Subscription[]}
    */
   subscriptions: [],
 
   /**
@@ -684,17 +685,17 @@
 }
 
 /**
  * Listener returned by FilterStorage.importData(), parses filter data.
  * @constructor
  */
 function INIParser()
 {
-  this.fileProperties = this.curObj = {};
+  this.fileProperties = this.curObj = new Map();
   this.subscriptions = [];
   this.knownFilters = new Map();
   this.knownSubscriptions = new Map();
 }
 INIParser.prototype =
 {
   linesProcessed: 0,
   subscriptions: null,
@@ -710,30 +711,30 @@
     let origKnownFilters = Filter.knownFilters;
     Filter.knownFilters = this.knownFilters;
     let origKnownSubscriptions = Subscription.knownSubscriptions;
     Subscription.knownSubscriptions = this.knownSubscriptions;
     let match;
     try
     {
       if (this.wantObj === true && (match = /^(\w+)=(.*)$/.exec(val)))
-        this.curObj[match[1]] = match[2];
+        this.curObj.set(match[1], match[2]);
       else if (val === null || (match = /^\s*\[(.+)\]\s*$/.exec(val)))
       {
         if (this.curObj)
         {
           // Process current object before going to next section
           switch (this.curSection)
           {
             case "filter":
-              if ("text" in this.curObj)
-                Filter.fromObject(this.curObj);
+              if (this.curObj.has("text"))
+                Filter.fromMap(this.curObj);
               break;
             case "subscription": {
-              let subscription = Subscription.fromObject(this.curObj);
+              let subscription = Subscription.fromMap(this.curObj);
               if (subscription)
                 this.subscriptions.push(subscription);
               break;
             }
             case "subscription filters":
               if (this.subscriptions.length)
               {
                 let subscription = this.subscriptions[
@@ -754,17 +755,17 @@
           return;
 
         this.curSection = match[1].toLowerCase();
         switch (this.curSection)
         {
           case "filter":
           case "subscription":
             this.wantObj = true;
-            this.curObj = {};
+            this.curObj = new Map();
             break;
           case "subscription filters":
             this.wantObj = false;
             this.curObj = [];
             break;
           default:
             this.wantObj = undefined;
             this.curObj = null;
