mail/components/extensions/parent/ext-messages.js
changeset 29877 93610e507d37b2da5e034536ba05f7d2679fcfac
parent 29406 e7ab0d2b72908c0a66347f188f8e00d3b87e7b11
child 30228 4f1fac782b47fc236f62a18e7a51a51c8982edfd
--- a/mail/components/extensions/parent/ext-messages.js
+++ b/mail/components/extensions/parent/ext-messages.js
@@ -337,20 +337,22 @@ this.messages = class extends ExtensionA
             context.extension
           );
         },
         async update(messageId, newProperties) {
           let msgHdr = messageTracker.getMessage(messageId);
           if (!msgHdr) {
             return;
           }
-          const msgs = Cc["@mozilla.org/array;1"].createInstance(
+          // Stopgap for nsIArray removal (Bug 1612239).
+          const msgsArray = Cc["@mozilla.org/array;1"].createInstance(
             Ci.nsIMutableArray
           );
-          msgs.appendElement(msgHdr);
+          msgsArray.appendElement(msgHdr);
+          let msgs = [msgHdr];
 
           if (newProperties.read !== null) {
             msgHdr.folder.markMessagesRead(msgs, newProperties.read);
           }
           if (newProperties.flagged !== null) {
             msgHdr.folder.markMessagesFlagged(msgs, newProperties.flagged);
           }
           if (newProperties.junk !== null) {
@@ -360,20 +362,20 @@ this.messages = class extends ExtensionA
             msgHdr.folder.setJunkScoreForMessages(msgs, score);
           }
           if (Array.isArray(newProperties.tags)) {
             let currentTags = msgHdr.getStringProperty("keywords").split(" ");
 
             for (let { key: tagKey } of MailServices.tags.getAllTags()) {
               if (newProperties.tags.includes(tagKey)) {
                 if (!currentTags.includes(tagKey)) {
-                  msgHdr.folder.addKeywordsToMessages(msgs, tagKey);
+                  msgHdr.folder.addKeywordsToMessages(msgsArray, tagKey);
                 }
               } else if (currentTags.includes(tagKey)) {
-                msgHdr.folder.removeKeywordsFromMessages(msgs, tagKey);
+                msgHdr.folder.removeKeywordsFromMessages(msgsArray, tagKey);
               }
             }
           }
         },
         async move(messageIds, destination) {
           return moveOrCopyMessages(messageIds, destination, true);
         },
         async copy(messageIds, destination) {