Bug 1209777 - part2: Replace 'const EXPORTED_SYMBOLS' in comm-central. r=mkmelin
authoraleth <aleth@instantbird.org>
Thu, 08 Oct 2015 15:54:02 +0200
changeset 22494 7a2c243821cc79b3a11bc8fae12bc0c6135f35d5
parent 22493 4bcf10412c0ff59fdae2b2d77dc9232020ee48db
child 22495 d09fd3bc81697fe1b498f8ae01bec3a89a03ecb5
push idunknown
push userunknown
push dateunknown
reviewersmkmelin
bugs1209777
Bug 1209777 - part2: Replace 'const EXPORTED_SYMBOLS' in comm-central. r=mkmelin
calendar/base/modules/calExtract.jsm
chat/modules/ArrayBufferUtils.jsm
chat/modules/BigInteger.jsm
chat/modules/NormalizedMap.jsm
chat/modules/hiddenWindow.jsm
chat/modules/imContentSink.jsm
chat/modules/imServices.jsm
chat/modules/imSmileys.jsm
chat/modules/imStatusUtils.jsm
chat/modules/imTextboxUtils.jsm
chat/modules/imThemes.jsm
chat/modules/imXPCOMUtils.jsm
chat/modules/jsProtoHelper.jsm
chat/modules/socket.jsm
chat/modules/test/appInfoUtils.jsm
chat/protocols/irc/ircBase.jsm
chat/protocols/irc/ircCAP.jsm
chat/protocols/irc/ircCTCP.jsm
chat/protocols/irc/ircCommands.jsm
chat/protocols/irc/ircDCC.jsm
chat/protocols/irc/ircHandlers.jsm
chat/protocols/irc/ircISUPPORT.jsm
chat/protocols/irc/ircMultiPrefix.jsm
chat/protocols/irc/ircNonStandard.jsm
chat/protocols/irc/ircSASL.jsm
chat/protocols/irc/ircServices.jsm
chat/protocols/irc/ircUtils.jsm
chat/protocols/irc/ircWatchMonitor.jsm
chat/protocols/twitter/twitter-text.jsm
chat/protocols/xmpp/xmpp-authmechs.jsm
chat/protocols/xmpp/xmpp-commands.jsm
chat/protocols/xmpp/xmpp-session.jsm
chat/protocols/xmpp/xmpp-xml.jsm
chat/protocols/xmpp/xmpp.jsm
chat/protocols/yahoo/yahoo-session.jsm
im/modules/ibCore.jsm
im/modules/ibInterruptions.jsm
im/modules/ibNotifications.jsm
im/modules/ibSounds.jsm
im/modules/ibTagMenu.jsm
im/modules/ibWinJumpList.jsm
im/modules/imWindows.jsm
mail/base/modules/attachmentChecker.js
mail/base/modules/dbViewWrapper.js
mail/base/modules/distribution.js
mail/base/modules/mailInstrumentation.js
mail/base/modules/mailViewManager.js
mail/base/modules/quickFilterManager.js
mail/base/modules/searchSpec.js
mail/base/modules/sessionStoreManager.js
mail/base/modules/summaryFrameManager.js
mail/components/activity/modules/activityModules.js
mail/components/activity/modules/alertHook.js
mail/components/activity/modules/autosync.js
mail/components/activity/modules/glodaIndexer.js
mail/components/activity/modules/moveCopy.js
mail/components/activity/modules/pop3Download.js
mail/components/activity/modules/sendLater.js
mail/components/appIdleManager.js
mail/components/cloudfile/cloudFileAccounts.js
mail/components/im/modules/chatHandler.jsm
mail/components/im/modules/chatNotifications.jsm
mail/components/im/modules/index_im.js
mail/components/im/modules/search_im.js
mail/test/resources/mozmill/mozmill/extension/resource/stdlib/httpd.js
mailnews/base/src/virtualFolderWrapper.js
mailnews/base/util/ABQueryUtils.jsm
mailnews/base/util/IOUtils.js
mailnews/base/util/StringBundle.js
mailnews/base/util/errUtils.js
mailnews/base/util/folderUtils.jsm
mailnews/base/util/hostnameUtils.jsm
mailnews/base/util/iteratorUtils.jsm
mailnews/base/util/jsTreeSelection.js
mailnews/base/util/mailnewsMigrator.js
mailnews/base/util/msgDBCacheManager.js
mailnews/base/util/traceHelper.js
mailnews/db/gloda/modules/collection.js
mailnews/db/gloda/modules/connotent.js
mailnews/db/gloda/modules/databind.js
mailnews/db/gloda/modules/datamodel.js
mailnews/db/gloda/modules/datastore.js
mailnews/db/gloda/modules/dbview.js
mailnews/db/gloda/modules/everybody.js
mailnews/db/gloda/modules/explattr.js
mailnews/db/gloda/modules/fundattr.js
mailnews/db/gloda/modules/gloda.js
mailnews/db/gloda/modules/index_ab.js
mailnews/db/gloda/modules/index_msg.js
mailnews/db/gloda/modules/indexer.js
mailnews/db/gloda/modules/log4moz.js
mailnews/db/gloda/modules/mimemsg.js
mailnews/db/gloda/modules/msg_search.js
mailnews/db/gloda/modules/noun_freetag.js
mailnews/db/gloda/modules/noun_mimetype.js
mailnews/db/gloda/modules/noun_tag.js
mailnews/db/gloda/modules/public.js
mailnews/db/gloda/modules/query.js
mailnews/db/gloda/modules/suffixtree.js
mailnews/db/gloda/modules/utils.js
mailnews/extensions/newsblog/content/FeedUtils.jsm
mailnews/test/resources/MockFactory.js
mailnews/test/resources/PromiseTestUtils.jsm
mailnews/test/resources/localAccountUtils.js
mailnews/test/resources/mailTestUtils.js
--- a/calendar/base/modules/calExtract.jsm
+++ b/calendar/base/modules/calExtract.jsm
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["Extractor"];
+this.EXPORTED_SYMBOLS = ["Extractor"];
 Components.utils.import("resource://calendar/modules/calUtils.jsm");
 Components.utils.import("resource://gre/modules/Services.jsm");
 Components.utils.import("resource://gre/modules/Preferences.jsm");
 
 /**
 * Initializes extraction
 *
 * @param fallbackLocale  locale to use when others are not found or
--- a/chat/modules/ArrayBufferUtils.jsm
+++ b/chat/modules/ArrayBufferUtils.jsm
@@ -2,17 +2,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /*
  * JavaScript ArrayBuffers are missing a variety of useful methods which are
  * provided by this module.
  */
 
-const EXPORTED_SYMBOLS = ["copyBytes", "ArrayBufferToBytes",
+this.EXPORTED_SYMBOLS = ["copyBytes", "ArrayBufferToBytes",
   "BytesToArrayBuffer", "StringToBytes", "StringToArrayBuffer",
   "ArrayBufferToString", "ArrayBufferToHexString"];
 
 /*
  * aTarget / aSource are ArrayBuffers.
  *
  * Note that this is very similar to ArrayBuffer.slice except that it allows
  * for an offset in the target as well as the source.
--- a/chat/modules/BigInteger.jsm
+++ b/chat/modules/BigInteger.jsm
@@ -22,17 +22,17 @@
  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  * OTHER DEALINGS IN THE SOFTWARE.
  *
  * For more information, please refer to <http://unlicense.org>
  */
 
 "use strict";
 
-const EXPORTED_SYMBOLS = ["bigInt"];
+this.EXPORTED_SYMBOLS = ["bigInt"];
 
 var bigInt = (function () {
     var base = 10000000, logBase = 7;
     var sign = {
         positive: false,
         negative: true
     };
 
--- a/chat/modules/NormalizedMap.jsm
+++ b/chat/modules/NormalizedMap.jsm
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["NormalizedMap"];
+this.EXPORTED_SYMBOLS = ["NormalizedMap"];
 
 /*
  * A Map that automatically normalizes keys before accessing the values.
  *
  * The constructor takes two parameters:
  *  aNormalize:   A function which takes a string and returns the "normalized"
  *                version of it.
  *  aIterable:    A iterable to prefill the map with, keys will be normalized.
--- a/chat/modules/hiddenWindow.jsm
+++ b/chat/modules/hiddenWindow.jsm
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["getHiddenHTMLWindow"];
+this.EXPORTED_SYMBOLS = ["getHiddenHTMLWindow"];
 
 Components.utils.import("resource://gre/modules/Services.jsm");
 Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
 
 XPCOMUtils.defineLazyGetter(this, "hiddenWindow", () =>
   Services.appShell.hiddenDOMWindow
 );
 #ifndef XP_MACOSX
--- a/chat/modules/imContentSink.jsm
+++ b/chat/modules/imContentSink.jsm
@@ -1,15 +1,15 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 Components.utils.import("resource:///modules/imServices.jsm");
 
-const EXPORTED_SYMBOLS = [
+this.EXPORTED_SYMBOLS = [
   "cleanupImMarkup", // used to clean up incoming IMs.
                      // This will use the global ruleset of acceptable stuff
                      // except if another (custom one) is provided
   "createDerivedRuleset", // used to create a ruleset that inherits from the
                           // default one
                           // useful if you want to allow or forbid
                           // an additionnal thing in a specific
                           // conversation but take into account all
--- a/chat/modules/imServices.jsm
+++ b/chat/modules/imServices.jsm
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["Services"];
+this.EXPORTED_SYMBOLS = ["Services"];
 
 Components.utils.import("resource://gre/modules/Services.jsm");
 Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
 
 XPCOMUtils.defineLazyServiceGetter(Services, "accounts",
                                    "@mozilla.org/chat/accounts-service;1",
                                    "imIAccountsService");
 XPCOMUtils.defineLazyServiceGetter(Services, "core",
--- a/chat/modules/imSmileys.jsm
+++ b/chat/modules/imSmileys.jsm
@@ -1,15 +1,15 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 Components.utils.import("resource:///modules/imServices.jsm");
 
-const EXPORTED_SYMBOLS = [
+this.EXPORTED_SYMBOLS = [
   "smileImMarkup", // used to add smile:// img tags into IM markup.
   "smileTextNode", // used to add smile:// img tags to the content of a textnode
   "smileString", // used to add smile:// img tags into a string without parsing it as HTML. Be sure the string doesn't contain HTML tags.
   "getSmileRealURI", // used to retrive the chrome URI for a smile:// URI
   "getSmileyList" // used to display a list of smileys in the UI
 ];
 
 const kEmoticonsThemePref = "messenger.options.emoticonsTheme";
--- a/chat/modules/imStatusUtils.jsm
+++ b/chat/modules/imStatusUtils.jsm
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["Status"];
+this.EXPORTED_SYMBOLS = ["Status"];
 
 const {interfaces: Ci, utils: Cu} = Components;
 
 Cu.import("resource:///modules/imXPCOMUtils.jsm");
 Cu.import("resource:///modules/imServices.jsm");
 
 XPCOMUtils.defineLazyGetter(this, "_", () =>
   l10nHelper("chrome://chat/locale/status.properties")
--- a/chat/modules/imTextboxUtils.jsm
+++ b/chat/modules/imTextboxUtils.jsm
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = [
+this.EXPORTED_SYMBOLS = [
   "MessageFormat",
   "TextboxSize",
   "TextboxSpellChecker"
 ];
 
 Components.utils.import("resource:///modules/imServices.jsm");
 const Ci = Components.interfaces;
 
--- a/chat/modules/imThemes.jsm
+++ b/chat/modules/imThemes.jsm
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = [
+this.EXPORTED_SYMBOLS = [
   "getCurrentTheme",
   "getThemeByName",
   "getHTMLForMessage",
   "getThemeVariants",
   "isNextMessage",
   "insertHTMLForMessage",
   "initHTMLDocument",
   "getMessagesForRange",
--- a/chat/modules/imXPCOMUtils.jsm
+++ b/chat/modules/imXPCOMUtils.jsm
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = [
+this.EXPORTED_SYMBOLS = [
   "XPCOMUtils",
   "setTimeout",
   "clearTimeout",
   "executeSoon",
   "nsSimpleEnumerator",
   "EmptyEnumerator",
   "ClassInfo",
   "l10nHelper",
--- a/chat/modules/jsProtoHelper.jsm
+++ b/chat/modules/jsProtoHelper.jsm
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = [
+this.EXPORTED_SYMBOLS = [
   "GenericAccountPrototype",
   "GenericAccountBuddyPrototype",
   "GenericConvIMPrototype",
   "GenericConvChatPrototype",
   "GenericConvChatBuddyPrototype",
   "GenericConversationPrototype",
   "GenericMessagePrototype",
   "GenericProtocolPrototype",
--- a/chat/modules/socket.jsm
+++ b/chat/modules/socket.jsm
@@ -70,17 +70,17 @@
 
 /*
  * To Do:
  *   Add a message queue to keep from flooding a server (just an array, just
  *     keep shifting the first element off and calling as setTimeout for the
  *     desired flood time?).
  */
 
-const EXPORTED_SYMBOLS = ["Socket"];
+this.EXPORTED_SYMBOLS = ["Socket"];
 
 const {classes: Cc, interfaces: Ci, results: Cr, utils: Cu} = Components;
 Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource:///modules/ArrayBufferUtils.jsm");
 Cu.import("resource:///modules/imXPCOMUtils.jsm");
 
 // Network errors see: xpcom/base/nsError.h
 const NS_ERROR_MODULE_NETWORK = 2152398848;
--- a/chat/modules/test/appInfoUtils.jsm
+++ b/chat/modules/test/appInfoUtils.jsm
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["XULAppInfo"];
+this.EXPORTED_SYMBOLS = ["XULAppInfo"];
 
 const Ci = Components.interfaces;
 
 Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
 
 var XULAppInfo = {
   vendor: "Mozilla",
   name: "XPCShell",
--- a/chat/protocols/irc/ircBase.jsm
+++ b/chat/protocols/irc/ircBase.jsm
@@ -12,17 +12,17 @@
  *     http://tools.ietf.org/html/rfc2811
  *   RFC 2812: Internet Relay Chat: Client Protocol
  *     http://tools.ietf.org/html/rfc2812
  *   RFC 2813: Internet Relay Chat: Server Protocol
  *     http://tools.ietf.org/html/rfc2813
  *   RFC 1459: Internet Relay Chat Protocol
  *     http://tools.ietf.org/html/rfc1459
  */
-const EXPORTED_SYMBOLS = ["ircBase"];
+this.EXPORTED_SYMBOLS = ["ircBase"];
 
 const {interfaces: Ci, utils: Cu} = Components;
 
 Cu.import("resource:///modules/imXPCOMUtils.jsm");
 Cu.import("resource:///modules/imServices.jsm");
 Cu.import("resource:///modules/ircHandlers.jsm");
 Cu.import("resource:///modules/ircUtils.jsm");
 Cu.import("resource:///modules/jsProtoHelper.jsm");
--- a/chat/protocols/irc/ircCAP.jsm
+++ b/chat/protocols/irc/ircCAP.jsm
@@ -9,17 +9,17 @@
  *   RFC Drafts: IRC Client Capabilities
  *     http://tools.ietf.org/html/draft-baudis-irc-capab-00
  *     http://tools.ietf.org/html/draft-mitchell-irc-capabilities-01
  *
  * Note that this doesn't include any implementation as these RFCs do not even
  * include example parameters.
  */
 
-const EXPORTED_SYMBOLS = ["ircCAP"];
+this.EXPORTED_SYMBOLS = ["ircCAP"];
 
 const Cu = Components.utils;
 
 Cu.import("resource:///modules/ircHandlers.jsm");
 Cu.import("resource:///modules/ircUtils.jsm");
 
 // This matches a modifier, followed by the name spaces (network specific or
 // standardized), followed by the capability name.
--- a/chat/protocols/irc/ircCTCP.jsm
+++ b/chat/protocols/irc/ircCTCP.jsm
@@ -3,17 +3,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /*
  * This implements the Client-to-Client Protocol (CTCP), a subprotocol of IRC.
  *   REVISED AND UPDATED CTCP SPECIFICATION
  *     http://www.alien.net.au/irc/ctcp.txt
  */
 
-const EXPORTED_SYMBOLS = ["ircCTCP", "ctcpBase"];
+this.EXPORTED_SYMBOLS = ["ircCTCP", "ctcpBase"];
 
 const Cu = Components.utils;
 
 Cu.import("resource:///modules/imServices.jsm");
 Cu.import("resource:///modules/imXPCOMUtils.jsm");
 Cu.import("resource:///modules/ircHandlers.jsm");
 Cu.import("resource:///modules/ircUtils.jsm");
 
--- a/chat/protocols/irc/ircCommands.jsm
+++ b/chat/protocols/irc/ircCommands.jsm
@@ -1,15 +1,15 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 // This is to be exported directly onto the IRC prplIProtocol object, directly
 // implementing the commands field before we register them.
-const EXPORTED_SYMBOLS = ["commands"];
+this.EXPORTED_SYMBOLS = ["commands"];
 
 const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
 
 Cu.import("resource:///modules/imXPCOMUtils.jsm");
 Cu.import("resource:///modules/ircUtils.jsm");
 
 // Shortcut to get the JavaScript conversation object.
 function getConv(aConv) { return aConv.wrappedJSObject; };
--- a/chat/protocols/irc/ircDCC.jsm
+++ b/chat/protocols/irc/ircDCC.jsm
@@ -4,17 +4,17 @@
 
 /*
  * This contains an implementation of the Direct Client-to-Client (DCC)
  * protocol.
  *   A description of the DCC protocol
  *     http://www.irchelp.org/irchelp/rfc/dccspec.html
  */
 
-const EXPORTED_SYMBOLS = ["ctcpDCC"/*, "dccBase"*/];
+this.EXPORTED_SYMBOLS = ["ctcpDCC"/*, "dccBase"*/];
 
 const Cu = Components.utils;
 
 Cu.import("resource:///modules/ircHandlers.jsm");
 Cu.import("resource:///modules/ircUtils.jsm");
 Cu.import("resource:///modules/jsProtoHelper.jsm");
 
 // Parse a CTCP message into a DCC message. A DCC message is a CTCP message of
--- a/chat/protocols/irc/ircHandlers.jsm
+++ b/chat/protocols/irc/ircHandlers.jsm
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["ircHandlers"];
+this.EXPORTED_SYMBOLS = ["ircHandlers"];
 
 const Cu = Components.utils;
 
 Cu.import("resource:///modules/ircUtils.jsm");
 
 var ircHandlers = {
   /*
    * Object to hold the IRC handlers, each handler is an object that implements:
--- a/chat/protocols/irc/ircISUPPORT.jsm
+++ b/chat/protocols/irc/ircISUPPORT.jsm
@@ -7,17 +7,17 @@
  * to notify a client of what capabilities it supports.
  *   The 005 numeric
  *     http://www.irc.org/tech_docs/005.html
  *   RFC Drafts: IRC RPL_ISUPPORT Numeric Definition
  *     http://tools.ietf.org/html/draft-brocklesby-irc-isupport-03
  *     http://tools.ietf.org/html/draft-hardy-irc-isupport-00
  */
 
-const EXPORTED_SYMBOLS = ["ircISUPPORT", "isupportBase"];
+this.EXPORTED_SYMBOLS = ["ircISUPPORT", "isupportBase"];
 
 const Cu = Components.utils;
 
 Cu.import("resource:///modules/ircHandlers.jsm");
 Cu.import("resource:///modules/ircUtils.jsm");
 
 /*
  * Parses an ircMessage into an ISUPPORT message for each token of the form:
--- a/chat/protocols/irc/ircMultiPrefix.jsm
+++ b/chat/protocols/irc/ircMultiPrefix.jsm
@@ -10,17 +10,17 @@
  *   bar JOINs the channel (and receives @foo)
  *   foo MODE -o
  * foo knows that it has mode +h, but bar does not know foo has +h set.
  *
  *   http://wiki.inspircd.org/Modules/2.1/namesx
  *   http://ircv3.atheme.org/extensions/multi-prefix-3.1
  */
 
-const EXPORTED_SYMBOLS = ["isupportNAMESX", "capMultiPrefix"];
+this.EXPORTED_SYMBOLS = ["isupportNAMESX", "capMultiPrefix"];
 
 Components.utils.import("resource:///modules/ircHandlers.jsm");
 
 var isupportNAMESX = {
   name: "ISUPPORT NAMESX",
   // Slightly above default ISUPPORT priority.
   priority: ircHandlers.DEFAULT_PRIORITY + 10,
   isEnabled: () => true,
--- a/chat/protocols/irc/ircNonStandard.jsm
+++ b/chat/protocols/irc/ircNonStandard.jsm
@@ -7,17 +7,17 @@
  * different servers. This implementation is based on a combination of
  * documentation and reverse engineering. Each handler must include a comment
  * listing the known servers that support this extension.
  *
  * Resources for these commands include:
  *  https://github.com/atheme/charybdis/blob/master/include/numeric.h
  *  http://hg.unrealircd.com/hg/unreal/raw-file/tip/include/numeric.h
  */
-const EXPORTED_SYMBOLS = ["ircNonStandard"];
+this.EXPORTED_SYMBOLS = ["ircNonStandard"];
 
 const {interfaces: Ci, utils: Cu} = Components;
 
 Cu.import("resource:///modules/ircHandlers.jsm");
 Cu.import("resource:///modules/ircUtils.jsm");
 
 var ircNonStandard = {
   name: "Non-Standard IRC Extensions",
--- a/chat/protocols/irc/ircSASL.jsm
+++ b/chat/protocols/irc/ircSASL.jsm
@@ -3,17 +3,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /*
  * This implements SASL for IRC.
  *   https://raw.github.com/atheme/atheme/master/doc/SASL
  *   https://github.com/ircv3/ircv3-specifications/blob/master/extensions/sasl-3.1
  */
 
-const EXPORTED_SYMBOLS = ["ircSASL", "capSASL"];
+this.EXPORTED_SYMBOLS = ["ircSASL", "capSASL"];
 
 const Cu = Components.utils;
 
 Cu.import("resource:///modules/ircHandlers.jsm");
 Cu.import("resource:///modules/ircUtils.jsm");
 
 var ircSASL = {
   name: "SASL AUTHENTICATE",
--- a/chat/protocols/irc/ircServices.jsm
+++ b/chat/protocols/irc/ircServices.jsm
@@ -11,17 +11,17 @@
  * Since the "protocol" behind services is really just text-based, human
  * readable messages, attempt to parse them, but always fall back to just
  * showing the message to the user if we're unsure what to do.
  *
  * Anope
  *  http://www.anope.org/docgen/1.8/
  */
 
-const EXPORTED_SYMBOLS = ["ircServices", "servicesBase"];
+this.EXPORTED_SYMBOLS = ["ircServices", "servicesBase"];
 
 const Cu = Components.utils;
 
 Cu.import("resource:///modules/imXPCOMUtils.jsm");
 Cu.import("resource:///modules/ircHandlers.jsm");
 Cu.import("resource:///modules/ircUtils.jsm");
 
 /*
--- a/chat/protocols/irc/ircUtils.jsm
+++ b/chat/protocols/irc/ircUtils.jsm
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["_", "_conv", "ctcpFormatToText", "ctcpFormatToHTML",
+this.EXPORTED_SYMBOLS = ["_", "_conv", "ctcpFormatToText", "ctcpFormatToHTML",
                           "conversationErrorMessage", "kListRefreshInterval"];
 
 const {classes: Cc, interfaces: Ci} = Components;
 
 Components.utils.import("resource:///modules/imXPCOMUtils.jsm");
 
 XPCOMUtils.defineLazyGetter(this, "_", () =>
   l10nHelper("chrome://chat/locale/irc.properties")
--- a/chat/protocols/irc/ircWatchMonitor.jsm
+++ b/chat/protocols/irc/ircWatchMonitor.jsm
@@ -7,17 +7,17 @@
  * (compared to ISON) keep track of a user's status.
  *
  *   MONITOR (supported by Charybdis)
  *     https://github.com/atheme/charybdis/blob/master/doc/monitor.txt
  *   WATCH (supported by Bahamut and UnrealIRCd)
  *     http://www.stack.nl/~jilles/cgi-bin/hgwebdir.cgi/irc-documentation-jilles/raw-file/tip/reference/draft-meglio-irc-watch-00.txt
  */
 
-const EXPORTED_SYMBOLS = ["ircWATCH", "isupportWATCH", "ircMONITOR",
+this.EXPORTED_SYMBOLS = ["ircWATCH", "isupportWATCH", "ircMONITOR",
                           "isupportMONITOR"];
 
 const {interfaces: Ci, utils: Cu} = Components;
 
 Cu.import("resource:///modules/imXPCOMUtils.jsm");
 Cu.import("resource:///modules/ircHandlers.jsm");
 Cu.import("resource:///modules/ircUtils.jsm");
 
--- a/chat/protocols/twitter/twitter-text.jsm
+++ b/chat/protocols/twitter/twitter-text.jsm
@@ -8,17 +8,17 @@
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
-const EXPORTED_SYMBOLS = ["twttr"];
+this.EXPORTED_SYMBOLS = ["twttr"];
 
 var window = {};
 
 // The code below is imported from Twitter's JavaScript utility for parsing
 // tweets. The original version of this file can be found at
 // https://github.com/twitter/twitter-text-js/blob/master/twitter-text.js
 
 (function() {
--- a/chat/protocols/xmpp/xmpp-authmechs.jsm
+++ b/chat/protocols/xmpp/xmpp-authmechs.jsm
@@ -5,17 +5,17 @@
 // This module exports XMPPAuthMechanisms, an object containing all
 // the supported SASL authentication mechanisms.
 // By default we currently support the PLAIN and the DIGEST-MD5 mechanisms.
 // As this is only used by XMPPSession, it may seem like an internal
 // detail of the XMPP implementation, but exporting it is valuable so that
 // add-ons can add support for more auth mechanisms easily by adding them
 // in XMPPAuthMechanisms without having to modify XMPPSession.
 
-const EXPORTED_SYMBOLS = ["XMPPAuthMechanisms"];
+this.EXPORTED_SYMBOLS = ["XMPPAuthMechanisms"];
 
 const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
 
 Cu.import("resource:///modules/xmpp-xml.jsm");
 
 /* Handle PLAIN authorization mechanism */
 function PlainAuth(username, password, domain) {
   let data = "\0"+ username + "\0" + password;
--- a/chat/protocols/xmpp/xmpp-commands.jsm
+++ b/chat/protocols/xmpp/xmpp-commands.jsm
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["commands"];
+this.EXPORTED_SYMBOLS = ["commands"];
 
 const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
 
 Cu.import("resource:///modules/imXPCOMUtils.jsm");
 
 XPCOMUtils.defineLazyGetter(this, "_", () =>
   l10nHelper("chrome://chat/locale/xmpp.properties")
 );
--- a/chat/protocols/xmpp/xmpp-session.jsm
+++ b/chat/protocols/xmpp/xmpp-session.jsm
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["XMPPSession", "XMPPDefaultResource"];
+this.EXPORTED_SYMBOLS = ["XMPPSession", "XMPPDefaultResource"];
 
 const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
 
 Cu.import("resource:///modules/imXPCOMUtils.jsm");
 Cu.import("resource:///modules/socket.jsm");
 Cu.import("resource:///modules/xmpp-xml.jsm");
 Cu.import("resource:///modules/xmpp-authmechs.jsm");
 
--- a/chat/protocols/xmpp/xmpp-xml.jsm
+++ b/chat/protocols/xmpp/xmpp-xml.jsm
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["Stanza", "XMPPParser"];
+this.EXPORTED_SYMBOLS = ["Stanza", "XMPPParser"];
 
 const {classes: Cc, interfaces: Ci, results: Cr, utils: Cu} = Components;
 
 const NS = {
   xml                       : "http://www.w3.org/XML/1998/namespace",
   xhtml                     : "http://www.w3.org/1999/xhtml",
   xhtml_im                  : "http://jabber.org/protocol/xhtml-im",
 
--- a/chat/protocols/xmpp/xmpp.jsm
+++ b/chat/protocols/xmpp/xmpp.jsm
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = [
+this.EXPORTED_SYMBOLS = [
   "XMPPConversationPrototype",
   "XMPPMUCConversationPrototype",
   "XMPPAccountBuddyPrototype",
   "XMPPAccountPrototype"
 ];
 
 const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
 
--- a/chat/protocols/yahoo/yahoo-session.jsm
+++ b/chat/protocols/yahoo/yahoo-session.jsm
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["YahooSession"];
+this.EXPORTED_SYMBOLS = ["YahooSession"];
 
 const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
 
 Cu.import("resource://gre/modules/FileUtils.jsm");
 Cu.import("resource://gre/modules/Http.jsm");
 Cu.import("resource://gre/modules/NetUtil.jsm");
 Cu.import("resource:///modules/ArrayBufferUtils.jsm");
 Cu.import("resource:///modules/imServices.jsm");
--- a/im/modules/ibCore.jsm
+++ b/im/modules/ibCore.jsm
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["Core"];
+this.EXPORTED_SYMBOLS = ["Core"];
 
 const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
 Cu.import("resource:///modules/imServices.jsm");
 Cu.import("resource:///modules/imWindows.jsm");
 Cu.import("resource:///modules/ibNotifications.jsm");
 Cu.import("resource:///modules/ibSounds.jsm");
 Cu.import("resource:///modules/imXPCOMUtils.jsm");
 
--- a/im/modules/ibInterruptions.jsm
+++ b/im/modules/ibInterruptions.jsm
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["Interruptions"];
+this.EXPORTED_SYMBOLS = ["Interruptions"];
 
 var Interruptions = {
   _listeners: [],
   addListener: function(aListener) {
     if (this._listeners.indexOf(aListener) == -1)
       this._listeners.push(aListener);
   },
   removeListener: function(aListener) {
--- a/im/modules/ibNotifications.jsm
+++ b/im/modules/ibNotifications.jsm
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["Notifications"];
+this.EXPORTED_SYMBOLS = ["Notifications"];
 
 Components.utils.import("resource:///modules/imServices.jsm");
 Components.utils.import("resource:///modules/imWindows.jsm");
 Components.utils.import("resource:///modules/hiddenWindow.jsm");
 Components.utils.import("resource:///modules/ibInterruptions.jsm");
 
 var Notifications = {
   get ellipsis () {
--- a/im/modules/ibSounds.jsm
+++ b/im/modules/ibSounds.jsm
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["Sounds"];
+this.EXPORTED_SYMBOLS = ["Sounds"];
 
 Components.utils.import("resource:///modules/hiddenWindow.jsm");
 Components.utils.import("resource:///modules/imServices.jsm");
 Components.utils.import("resource:///modules/ibInterruptions.jsm");
 
 var Sounds = {
   soundEvents: ["contact-signed-on", "contact-signed-off", "new-text"],
   soundFiles: {
--- a/im/modules/ibTagMenu.jsm
+++ b/im/modules/ibTagMenu.jsm
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["TagMenu"];
+this.EXPORTED_SYMBOLS = ["TagMenu"];
 
 const Cu = Components.utils;
 Cu.import("resource:///modules/imServices.jsm");
 Cu.import("resource:///modules/imXPCOMUtils.jsm");
 
 XPCOMUtils.defineLazyGetter(this, "_", () =>
   l10nHelper("chrome://instantbird/locale/instantbird.properties")
 );
--- a/im/modules/ibWinJumpList.jsm
+++ b/im/modules/ibWinJumpList.jsm
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["WinJumpList"];
+this.EXPORTED_SYMBOLS = ["WinJumpList"];
 
 const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
 
 Cu.import("resource:///modules/imServices.jsm");
 Cu.import("resource:///modules/imStatusUtils.jsm");
 
 var WinJumpList = {
   winJumpListBuilder: null,
--- a/im/modules/imWindows.jsm
+++ b/im/modules/imWindows.jsm
@@ -1,14 +1,14 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 const CONVERSATION_WINDOW_URI = "chrome://instantbird/content/instantbird.xul";
-const EXPORTED_SYMBOLS = ["Conversations"];
+this.EXPORTED_SYMBOLS = ["Conversations"];
 
 Components.utils.import("resource:///modules/imServices.jsm");
 Components.utils.import("resource:///modules/ibInterruptions.jsm");
 
 var Conversations = {
   _unreadCount: 0,
   get unreadCount() { return this._unreadCount; },
   set unreadCount(val) {
--- a/mail/base/modules/attachmentChecker.js
+++ b/mail/base/modules/attachmentChecker.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["GetAttachmentKeywords"];
+this.EXPORTED_SYMBOLS = ["GetAttachmentKeywords"];
 
 /**
  * Check whether the character is a CJK character or not.
  *
  * @return true if it is a CJK character.
  */
 function IsCJK(code)
 {
--- a/mail/base/modules/dbViewWrapper.js
+++ b/mail/base/modules/dbViewWrapper.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ['DBViewWrapper', 'IDBViewWrapperListener'];
+this.EXPORTED_SYMBOLS = ['DBViewWrapper', 'IDBViewWrapperListener'];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 Cu.import("resource:///modules/mailServices.js");
 Cu.import("resource:///modules/mailViewManager.js");
--- a/mail/base/modules/distribution.js
+++ b/mail/base/modules/distribution.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["TBDistCustomizer"];
+this.EXPORTED_SYMBOLS = ["TBDistCustomizer"];
 
 const Ci = Components.interfaces;
 const Cc = Components.classes;
 const Cu = Components.utils;
 
 Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
--- a/mail/base/modules/mailInstrumentation.js
+++ b/mail/base/modules/mailInstrumentation.js
@@ -3,17 +3,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
  * Thunderbird UI Instrumentation, currently just the account setup process.
  */
 
 /* :::::::: Constants and Helpers ::::::::::::::: */
 
-const EXPORTED_SYMBOLS = ["mailInstrumentationManager"];
+this.EXPORTED_SYMBOLS = ["mailInstrumentationManager"];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cu = Components.utils;
 
 const nsIMFNService = Ci.nsIMsgFolderNotificationService;
 
 Cu.import("resource:///modules/errUtils.js");
--- a/mail/base/modules/mailViewManager.js
+++ b/mail/base/modules/mailViewManager.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ['MailViewManager', 'MailViewConstants'];
+this.EXPORTED_SYMBOLS = ['MailViewManager', 'MailViewConstants'];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 var nsMsgSearchScope  = Ci.nsMsgSearchScope;
 var nsMsgSearchAttrib = Ci.nsMsgSearchAttrib;
--- a/mail/base/modules/quickFilterManager.js
+++ b/mail/base/modules/quickFilterManager.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["QuickFilterState", "QuickFilterManager",
+this.EXPORTED_SYMBOLS = ["QuickFilterState", "QuickFilterManager",
                           "MessageTextFilter", "QuickFilterSearchListener"];
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 Cu.import("resource://gre/modules/PluralForm.jsm");
 Cu.import("resource://gre/modules/Services.jsm");
--- a/mail/base/modules/searchSpec.js
+++ b/mail/base/modules/searchSpec.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ['SearchSpec'];
+this.EXPORTED_SYMBOLS = ['SearchSpec'];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 Cu.import("resource:///modules/iteratorUtils.jsm");
 Cu.import("resource:///modules/mailServices.js");
--- a/mail/base/modules/sessionStoreManager.js
+++ b/mail/base/modules/sessionStoreManager.js
@@ -3,17 +3,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
  * Session Storage and Restoration
  */
 
 /* :::::::: Constants and Helpers ::::::::::::::: */
 
-const EXPORTED_SYMBOLS = ["sessionStoreManager"];
+this.EXPORTED_SYMBOLS = ["sessionStoreManager"];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cu = Components.utils;
 
 Cu.import("resource://gre/modules/AsyncShutdown.jsm");
 Cu.import("resource://gre/modules/NetUtil.jsm");
 Cu.import("resource://gre/modules/osfile.jsm");
--- a/mail/base/modules/summaryFrameManager.js
+++ b/mail/base/modules/summaryFrameManager.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["SummaryFrameManager"];
+this.EXPORTED_SYMBOLS = ["SummaryFrameManager"];
 
 /**
  * The SummaryFrameManager manages the source attribute of iframes which can
  * be multi-purposed.  For example, the thread/multimessage summary and the
  * folder summary both use it.  The SummaryFrameManager takes care of
  * causing the content file to be reloaded as necessary, and manages event
  * handlers, so that the right callback is called when the specified
  * document is loaded.
--- a/mail/components/activity/modules/activityModules.js
+++ b/mail/components/activity/modules/activityModules.js
@@ -1,17 +1,17 @@
 /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 // This module is designed to be a central place to initialise activity related
 // modules.
 
-const EXPORTED_SYMBOLS = [];
+this.EXPORTED_SYMBOLS = [];
 
 Components.utils.import("resource:///modules/activity/sendLater.js");
 sendLaterModule.init();
 Components.utils.import("resource:///modules/activity/moveCopy.js");
 moveCopyModule.init();
 Components.utils.import("resource:///modules/activity/glodaIndexer.js");
 glodaIndexerActivity.init();
 Components.utils.import("resource:///modules/activity/autosync.js");
--- a/mail/components/activity/modules/alertHook.js
+++ b/mail/components/activity/modules/alertHook.js
@@ -1,14 +1,14 @@
 /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ['alertHook'];
+this.EXPORTED_SYMBOLS = ['alertHook'];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 
 const nsActWarning = Components.Constructor("@mozilla.org/activity-warning;1",
                                             "nsIActivityWarning", "init");
 
--- a/mail/components/activity/modules/autosync.js
+++ b/mail/components/activity/modules/autosync.js
@@ -1,14 +1,14 @@
 /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ['autosyncModule'];
+this.EXPORTED_SYMBOLS = ['autosyncModule'];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 
 const nsActProcess = Components.Constructor("@mozilla.org/activity-process;1",
                                             "nsIActivityProcess", "init");
 const nsActEvent = Components.Constructor("@mozilla.org/activity-event;1",
--- a/mail/components/activity/modules/glodaIndexer.js
+++ b/mail/components/activity/modules/glodaIndexer.js
@@ -1,14 +1,14 @@
 /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["glodaIndexerActivity"];
+this.EXPORTED_SYMBOLS = ["glodaIndexerActivity"];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 const nsActProcess = Components.Constructor("@mozilla.org/activity-process;1",
                                             "nsIActivityProcess", "init");
--- a/mail/components/activity/modules/moveCopy.js
+++ b/mail/components/activity/modules/moveCopy.js
@@ -1,14 +1,14 @@
 /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ['moveCopyModule'];
+this.EXPORTED_SYMBOLS = ['moveCopyModule'];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 
 const nsActProcess = Components.Constructor("@mozilla.org/activity-process;1",
                                             "nsIActivityProcess", "init");
 const nsActEvent = Components.Constructor("@mozilla.org/activity-event;1",
--- a/mail/components/activity/modules/pop3Download.js
+++ b/mail/components/activity/modules/pop3Download.js
@@ -1,14 +1,14 @@
 /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ['pop3DownloadModule'];
+this.EXPORTED_SYMBOLS = ['pop3DownloadModule'];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 
 const nsActProcess = Components.Constructor("@mozilla.org/activity-process;1",
                                             "nsIActivityProcess", "init");
 const nsActEvent = Components.Constructor("@mozilla.org/activity-event;1",
--- a/mail/components/activity/modules/sendLater.js
+++ b/mail/components/activity/modules/sendLater.js
@@ -1,14 +1,14 @@
 /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ['sendLaterModule'];
+this.EXPORTED_SYMBOLS = ['sendLaterModule'];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 
 const nsActProcess = Components.Constructor("@mozilla.org/activity-process;1",
                                             "nsIActivityProcess", "init");
 const nsActEvent = Components.Constructor("@mozilla.org/activity-event;1",
--- a/mail/components/appIdleManager.js
+++ b/mail/components/appIdleManager.js
@@ -1,14 +1,14 @@
 /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ['appIdleManager'];
+this.EXPORTED_SYMBOLS = ['appIdleManager'];
 
 Components.utils.import("resource://gre/modules/Services.jsm");
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 
 // This module provides a mechanism to turn window focus and blur events
 // into app idle notifications. If we get a blur notification that is not
--- a/mail/components/cloudfile/cloudFileAccounts.js
+++ b/mail/components/cloudfile/cloudFileAccounts.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["cloudFileAccounts"];
+this.EXPORTED_SYMBOLS = ["cloudFileAccounts"];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cu = Components.utils;
 const Cr = Components.results;
 
 const CATEGORY = "cloud-files";
 const PREF_ROOT = "mail.cloud_files.";
--- a/mail/components/im/modules/chatHandler.jsm
+++ b/mail/components/im/modules/chatHandler.jsm
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["allContacts", "onlineContacts", "ChatCore"];
+this.EXPORTED_SYMBOLS = ["allContacts", "onlineContacts", "ChatCore"];
 
 Components.utils.import("resource:///modules/imServices.jsm");
 Components.utils.import("resource:///modules/iteratorUtils.jsm");
 Components.utils.import("resource:///modules/mailServices.js");
 
 let allContacts = {};
 let onlineContacts = {};
 
--- a/mail/components/im/modules/chatNotifications.jsm
+++ b/mail/components/im/modules/chatNotifications.jsm
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["Notifications"];
+this.EXPORTED_SYMBOLS = ["Notifications"];
 const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
 
 Cu.import("resource:///modules/imServices.jsm");
 Cu.import("resource:///modules/hiddenWindow.jsm");
 Cu.import("resource:///modules/StringBundle.js");
 Cu.import("resource://gre/modules/PluralForm.jsm");
 Cu.import("resource://gre/modules/Timer.jsm");
 
--- a/mail/components/im/modules/index_im.js
+++ b/mail/components/im/modules/index_im.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = [];
+this.EXPORTED_SYMBOLS = [];
 
 const {classes: Cc, interfaces: Ci, utils: Cu, Constructor: CC} = Components;
 
 Cu.import("resource:///modules/gloda/public.js");
 Cu.import("resource:///modules/gloda/datamodel.js");
 Cu.import("resource:///modules/gloda/indexer.js");
 Cu.import("resource:///modules/imServices.jsm");
 Cu.import("resource:///modules/imXPCOMUtils.jsm");
--- a/mail/components/im/modules/search_im.js
+++ b/mail/components/im/modules/search_im.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["GlodaIMSearcher"];
+this.EXPORTED_SYMBOLS = ["GlodaIMSearcher"];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource:///modules/gloda/public.js");
--- a/mail/test/resources/mozmill/mozmill/extension/resource/stdlib/httpd.js
+++ b/mail/test/resources/mozmill/mozmill/extension/resource/stdlib/httpd.js
@@ -5,17 +5,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /*
  * An implementation of an HTTP server both as a loadable script and as an XPCOM
  * component.  See the accompanying README file for user documentation on
  * httpd.js.
  */
 
-const EXPORTED_SYMBOLS = [
+this.EXPORTED_SYMBOLS = [
   "HTTP_400",
   "HTTP_401",
   "HTTP_402",
   "HTTP_403",
   "HTTP_404",
   "HTTP_405",
   "HTTP_406",
   "HTTP_407",
--- a/mailnews/base/src/virtualFolderWrapper.js
+++ b/mailnews/base/src/virtualFolderWrapper.js
@@ -1,17 +1,17 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /*
  * Wrap everything about virtual folders.
  */
 
-const EXPORTED_SYMBOLS = ['VirtualFolderHelper'];
+this.EXPORTED_SYMBOLS = ['VirtualFolderHelper'];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 Cu.import("resource:///modules/mailServices.js");
 Cu.import("resource:///modules/iteratorUtils.jsm");
--- a/mailnews/base/util/ABQueryUtils.jsm
+++ b/mailnews/base/util/ABQueryUtils.jsm
@@ -1,17 +1,17 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
  * This file contains helper methods for dealing with addressbook search URIs.
  */
 
-const EXPORTED_SYMBOLS = ["getSearchTokens", "generateQueryURI", "encodeABTermValue"];
+this.EXPORTED_SYMBOLS = ["getSearchTokens", "generateQueryURI", "encodeABTermValue"];
 
 /**
  * Parse the multiword search string to extract individual search terms
  * (separated on the basis of spaces) or quoted exact phrases to search
  * against multiple fields of the addressbook cards.
  *
  * @param aSearchString The full search string entered by the user.
  *
--- a/mailnews/base/util/IOUtils.js
+++ b/mailnews/base/util/IOUtils.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["IOUtils"];
+this.EXPORTED_SYMBOLS = ["IOUtils"];
 
 Components.utils.import("resource://gre/modules/Services.jsm");
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const kStringBlockSize = 4096;
 const kStreamBlockSize = 8192;
 
--- a/mailnews/base/util/StringBundle.js
+++ b/mailnews/base/util/StringBundle.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["StringBundle"];
+this.EXPORTED_SYMBOLS = ["StringBundle"];
 
 Components.utils.import("resource://gre/modules/Services.jsm");
 
 /**
  * A string bundle.
  *
  * This object presents two APIs: a deprecated one that is equivalent to the API
  * for the stringbundle XBL binding, to make it easy to switch from that binding
--- a/mailnews/base/util/errUtils.js
+++ b/mailnews/base/util/errUtils.js
@@ -2,17 +2,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
  * This file contains helper methods for debugging -- things like logging
  * exception objects, dumping DOM nodes, Events, and generic object dumps.
  */
 
-const EXPORTED_SYMBOLS = ["logObject", "logException", "logElement", "logEvent",
+this.EXPORTED_SYMBOLS = ["logObject", "logException", "logElement", "logEvent",
                           "errorWithDebug"];
 
 /**
  * Report on an object to stdout.
  * @param aObj  the object to be dumped
  * @param aName the name of the object, for informational purposes
  */
 function logObject(aObj, aName) {
--- a/mailnews/base/util/folderUtils.jsm
+++ b/mailnews/base/util/folderUtils.jsm
@@ -1,17 +1,17 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
  * This file contains helper methods for dealing with nsIMsgFolders.
  */
 
-const EXPORTED_SYMBOLS = ["getFolderProperties", "getSpecialFolderString",
+this.EXPORTED_SYMBOLS = ["getFolderProperties", "getSpecialFolderString",
                           "getFolderFromUri", "allAccountsSorted",
                           "getMostRecentFolders", "folderNameCompare"];
 
 Components.utils.import("resource:///modules/mailServices.js");
 Components.utils.import("resource:///modules/iteratorUtils.jsm");
 
 /**
  * Returns a string representation of a folder's "special" type.
--- a/mailnews/base/util/hostnameUtils.jsm
+++ b/mailnews/base/util/hostnameUtils.jsm
@@ -2,17 +2,17 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
  * Generic shared utility code for checking of IP and hostname validity.
  */
 
-const EXPORTED_SYMBOLS = [ "isLegalHostNameOrIP",
+this.EXPORTED_SYMBOLS = [ "isLegalHostNameOrIP",
                            "isLegalHostName",
                            "isLegalIPv4Address",
                            "isLegalIPv6Address",
                            "isLegalIPAddress",
                            "isLegalLocalIPAddress",
                            "cleanUpHostName",
                            "kMinPort",
                            "kMaxPort" ];
--- a/mailnews/base/util/iteratorUtils.jsm
+++ b/mailnews/base/util/iteratorUtils.jsm
@@ -2,17 +2,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
  * This file contains helper methods for dealing with XPCOM iterators (arrays
  * and enumerators) in JS-friendly ways.
  */
 
-const EXPORTED_SYMBOLS = ["fixIterator", "toXPCOMArray", "toArray"];
+this.EXPORTED_SYMBOLS = ["fixIterator", "toXPCOMArray", "toArray"];
 
 Components.utils.import("resource://gre/modules/Deprecated.jsm");
 
 const Ci = Components.interfaces;
 
 const JS_HAS_SYMBOLS = typeof Symbol === "function";
 const ITERATOR_SYMBOL = JS_HAS_SYMBOLS ? Symbol.iterator : "@@iterator";
 
--- a/mailnews/base/util/jsTreeSelection.js
+++ b/mailnews/base/util/jsTreeSelection.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ['JSTreeSelection'];
+this.EXPORTED_SYMBOLS = ['JSTreeSelection'];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
 
--- a/mailnews/base/util/mailnewsMigrator.js
+++ b/mailnews/base/util/mailnewsMigrator.js
@@ -5,17 +5,17 @@
 /**
  * Migrate profile (prefs and other files) from older versions of Mailnews to
  * current.
  * This should be run at startup. It migrates as needed: each migration
  * function should be written to be a no-op when the value is already migrated
  * or was never used in the old version.
  */
 
-const EXPORTED_SYMBOLS = [ "migrateMailnews" ];
+this.EXPORTED_SYMBOLS = [ "migrateMailnews" ];
 
 Components.utils.import("resource:///modules/errUtils.js");
 Components.utils.import("resource://gre/modules/Services.jsm");
 Components.utils.import("resource:///modules/mailServices.js");
 const Ci = Components.interfaces;
 const kServerPrefVersion = 1;
 const kSmtpPrefVersion = 1;
 const kABRemoteContentPrefVersion = 1;
--- a/mailnews/base/util/msgDBCacheManager.js
+++ b/mailnews/base/util/msgDBCacheManager.js
@@ -3,17 +3,17 @@
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
  * Message DB Cache manager
  */
 
 /* :::::::: Constants and Helpers ::::::::::::::: */
 
-const EXPORTED_SYMBOLS = ["msgDBCacheManager"];
+this.EXPORTED_SYMBOLS = ["msgDBCacheManager"];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cu = Components.utils;
 
 Cu.import("resource:///modules/mailServices.js");
 Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource:///modules/gloda/log4moz.js");
--- a/mailnews/base/util/traceHelper.js
+++ b/mailnews/base/util/traceHelper.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ['DebugTraceHelper'];
+this.EXPORTED_SYMBOLS = ['DebugTraceHelper'];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
 
--- a/mailnews/db/gloda/modules/collection.js
+++ b/mailnews/db/gloda/modules/collection.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ['GlodaCollection', 'GlodaCollectionManager'];
+this.EXPORTED_SYMBOLS = ['GlodaCollection', 'GlodaCollectionManager'];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 Cu.import("resource:///modules/gloda/log4moz.js");
 
--- a/mailnews/db/gloda/modules/connotent.js
+++ b/mailnews/db/gloda/modules/connotent.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ['GlodaContent', 'whittlerRegistry',
+this.EXPORTED_SYMBOLS = ['GlodaContent', 'whittlerRegistry',
                           'mimeMsgToContentAndMeta', 'mimeMsgToContentSnippetAndMeta'];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 Cu.import("resource:///modules/gloda/log4moz.js");
--- a/mailnews/db/gloda/modules/databind.js
+++ b/mailnews/db/gloda/modules/databind.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["GlodaDatabind"];
+this.EXPORTED_SYMBOLS = ["GlodaDatabind"];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 Cu.import("resource:///modules/gloda/log4moz.js");
 
--- a/mailnews/db/gloda/modules/datamodel.js
+++ b/mailnews/db/gloda/modules/datamodel.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["GlodaAttributeDBDef", "GlodaAccount",
+this.EXPORTED_SYMBOLS = ["GlodaAttributeDBDef", "GlodaAccount",
                     "GlodaConversation", "GlodaFolder", "GlodaMessage",
                     "GlodaContact", "GlodaIdentity", "GlodaAttachment"];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
--- a/mailnews/db/gloda/modules/datastore.js
+++ b/mailnews/db/gloda/modules/datastore.js
@@ -2,17 +2,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /* This file looks to Myk Melez <myk@mozilla.org>'s Mozilla Labs snowl
  * project's (http://hg.mozilla.org/labs/snowl/) modules/datastore.js
  * for inspiration and idioms (and also a name :).
  */
 
-const EXPORTED_SYMBOLS = ["GlodaDatastore"];
+this.EXPORTED_SYMBOLS = ["GlodaDatastore"];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 Cu.import("resource:///modules/IOUtils.js");
 Cu.import("resource://gre/modules/Services.jsm");
--- a/mailnews/db/gloda/modules/dbview.js
+++ b/mailnews/db/gloda/modules/dbview.js
@@ -2,17 +2,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /*
  * This file is charged with providing you a way to have a pretty gloda-backed
  *  nsIMsgDBView.
  */
 
-const EXPORTED_SYMBOLS = ["GlodaSyntheticView"];
+this.EXPORTED_SYMBOLS = ["GlodaSyntheticView"];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource:///modules/gloda/log4moz.js");
--- a/mailnews/db/gloda/modules/everybody.js
+++ b/mailnews/db/gloda/modules/everybody.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = [];
+this.EXPORTED_SYMBOLS = [];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 Cu.import("resource:///modules/gloda/log4moz.js");
 const LOG = Log4Moz.repository.getLogger("gloda.everybody");
--- a/mailnews/db/gloda/modules/explattr.js
+++ b/mailnews/db/gloda/modules/explattr.js
@@ -4,17 +4,17 @@
 
 /*
  * This file provides the "explicit attribute" provider for messages.  It is
  *  concerned with attributes that are the result of user actions.  For example,
  *  whether a message is starred (flagged), message tags, whether it is
  *  read/unread, etc.
  */
 
-const EXPORTED_SYMBOLS = ['GlodaExplicitAttr'];
+this.EXPORTED_SYMBOLS = ['GlodaExplicitAttr'];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 Cu.import("resource:///modules/gloda/log4moz.js");
 Cu.import("resource:///modules/StringBundle.js");
--- a/mailnews/db/gloda/modules/fundattr.js
+++ b/mailnews/db/gloda/modules/fundattr.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ['GlodaFundAttr'];
+this.EXPORTED_SYMBOLS = ['GlodaFundAttr'];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 Cu.import("resource:///modules/gloda/log4moz.js");
 Cu.import("resource:///modules/StringBundle.js");
--- a/mailnews/db/gloda/modules/gloda.js
+++ b/mailnews/db/gloda/modules/gloda.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ['Gloda'];
+this.EXPORTED_SYMBOLS = ['Gloda'];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 Cu.import("resource:///modules/gloda/log4moz.js");
 
--- a/mailnews/db/gloda/modules/index_ab.js
+++ b/mailnews/db/gloda/modules/index_ab.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ['GlodaABIndexer', 'GlodaABAttrs'];
+this.EXPORTED_SYMBOLS = ['GlodaABIndexer', 'GlodaABAttrs'];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 Cu.import("resource:///modules/gloda/collection.js");
 Cu.import("resource:///modules/gloda/datastore.js");
--- a/mailnews/db/gloda/modules/index_msg.js
+++ b/mailnews/db/gloda/modules/index_msg.js
@@ -7,17 +7,17 @@
 /*
  * This file currently contains a fairly general implementation of asynchronous
  *  indexing with a very explicit message indexing implementation.  As gloda
  *  will eventually want to index more than just messages, the message-specific
  *  things should ideally lose their special hold on this file.  This will
  *  benefit readability/size as well.
  */
 
-const EXPORTED_SYMBOLS = ['GlodaMsgIndexer'];
+this.EXPORTED_SYMBOLS = ['GlodaMsgIndexer'];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 Cu.import("resource:///modules/iteratorUtils.jsm");
--- a/mailnews/db/gloda/modules/indexer.js
+++ b/mailnews/db/gloda/modules/indexer.js
@@ -5,17 +5,17 @@
 /*
  * This file currently contains a fairly general implementation of asynchronous
  *  indexing with a very explicit message indexing implementation.  As gloda
  *  will eventually want to index more than just messages, the message-specific
  *  things should ideally lose their special hold on this file.  This will
  *  benefit readability/size as well.
  */
 
-const EXPORTED_SYMBOLS = ['GlodaIndexer', 'IndexingJob'];
+this.EXPORTED_SYMBOLS = ['GlodaIndexer', 'IndexingJob'];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 Cu.import("resource://gre/modules/Services.jsm");
--- a/mailnews/db/gloda/modules/log4moz.js
+++ b/mailnews/db/gloda/modules/log4moz.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ['Log4Moz'];
+this.EXPORTED_SYMBOLS = ['Log4Moz'];
 
 Components.utils.import("resource://gre/modules/Services.jsm");
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
--- a/mailnews/db/gloda/modules/mimemsg.js
+++ b/mailnews/db/gloda/modules/mimemsg.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ['MsgHdrToMimeMessage',
+this.EXPORTED_SYMBOLS = ['MsgHdrToMimeMessage',
                           'MimeMessage', 'MimeContainer',
                           'MimeBody', 'MimeUnknown',
                           'MimeMessageAttachment'];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
--- a/mailnews/db/gloda/modules/msg_search.js
+++ b/mailnews/db/gloda/modules/msg_search.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["GlodaMsgSearcher"];
+this.EXPORTED_SYMBOLS = ["GlodaMsgSearcher"];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource:///modules/gloda/public.js");
--- a/mailnews/db/gloda/modules/noun_freetag.js
+++ b/mailnews/db/gloda/modules/noun_freetag.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ['FreeTag', 'FreeTagNoun'];
+this.EXPORTED_SYMBOLS = ['FreeTag', 'FreeTagNoun'];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 Cu.import("resource:///modules/gloda/log4moz.js");
 
--- a/mailnews/db/gloda/modules/noun_mimetype.js
+++ b/mailnews/db/gloda/modules/noun_mimetype.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ['MimeType', 'MimeTypeNoun'];
+this.EXPORTED_SYMBOLS = ['MimeType', 'MimeTypeNoun'];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 Cu.import("resource:///modules/gloda/log4moz.js");
 Cu.import("resource:///modules/StringBundle.js");
--- a/mailnews/db/gloda/modules/noun_tag.js
+++ b/mailnews/db/gloda/modules/noun_tag.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ['TagNoun'];
+this.EXPORTED_SYMBOLS = ['TagNoun'];
 
 Components.utils.import("resource:///modules/mailServices.js");
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
--- a/mailnews/db/gloda/modules/public.js
+++ b/mailnews/db/gloda/modules/public.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["Gloda"];
+this.EXPORTED_SYMBOLS = ["Gloda"];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 Cu.import("resource:///modules/gloda/gloda.js");
 Cu.import("resource:///modules/gloda/everybody.js");
--- a/mailnews/db/gloda/modules/query.js
+++ b/mailnews/db/gloda/modules/query.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["GlodaQueryClassFactory"];
+this.EXPORTED_SYMBOLS = ["GlodaQueryClassFactory"];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 Cu.import("resource:///modules/gloda/log4moz.js");
 
--- a/mailnews/db/gloda/modules/suffixtree.js
+++ b/mailnews/db/gloda/modules/suffixtree.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["SuffixTree", "MultiSuffixTree"];
+this.EXPORTED_SYMBOLS = ["SuffixTree", "MultiSuffixTree"];
 
 /**
  * Given a list of strings and a corresponding map of items that those strings
  *  correspond to, build a suffix tree.
  */
 function MultiSuffixTree(aStrings, aItems) {
   if (aStrings.length != aItems.length)
     throw new Error("Array lengths need to be the same.");
--- a/mailnews/db/gloda/modules/utils.js
+++ b/mailnews/db/gloda/modules/utils.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ['GlodaUtils'];
+this.EXPORTED_SYMBOLS = ['GlodaUtils'];
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
 Cu.import("resource:///modules/mailServices.js");
 
--- a/mailnews/extensions/newsblog/content/FeedUtils.jsm
+++ b/mailnews/extensions/newsblog/content/FeedUtils.jsm
@@ -1,14 +1,14 @@
 /* -*- Mode: JavaScript; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ["Feed", "FeedItem", "FeedParser", "FeedUtils"];
+this.EXPORTED_SYMBOLS = ["Feed", "FeedItem", "FeedParser", "FeedUtils"];
 
 var {classes: Cc, interfaces: Ci, utils: Cu} = Components;
 
 Cu.import("resource:///modules/gloda/log4moz.js");
 Cu.import("resource:///modules/mailServices.js");
 Cu.import("resource:///modules/MailUtils.js");
 Cu.import("resource:///modules/jsmime.jsm");
 Cu.import("resource://gre/modules/FileUtils.jsm");
--- a/mailnews/test/resources/MockFactory.js
+++ b/mailnews/test/resources/MockFactory.js
@@ -1,9 +1,9 @@
-const EXPORTED_SYMBOLS = ["MockFactory"];
+this.EXPORTED_SYMBOLS = ["MockFactory"];
 
 Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cm = Components.manager;
 
--- a/mailnews/test/resources/PromiseTestUtils.jsm
+++ b/mailnews/test/resources/PromiseTestUtils.jsm
@@ -2,17 +2,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
  * This file provides utilities useful in using Promises and Task.jsm
  * with mailnews tests.
  */
 
-const EXPORTED_SYMBOLS = ['PromiseTestUtils'];
+this.EXPORTED_SYMBOLS = ['PromiseTestUtils'];
 
 var Cc = Components.classes;
 var Ci = Components.interfaces;
 var Cr = Components.results;
 var CC = Components.Constructor;
 var Cu = Components.utils;
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
--- a/mailnews/test/resources/localAccountUtils.js
+++ b/mailnews/test/resources/localAccountUtils.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ['localAccountUtils'];
+this.EXPORTED_SYMBOLS = ['localAccountUtils'];
 
 // MailServices
 Components.utils.import("resource:///modules/mailServices.js");
 Components.utils.import("resource://gre/modules/Services.jsm");
 
 var Cc = Components.classes;
 var Ci = Components.interfaces;
 var Cr = Components.results;
--- a/mailnews/test/resources/mailTestUtils.js
+++ b/mailnews/test/resources/mailTestUtils.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-const EXPORTED_SYMBOLS = ['mailTestUtils'];
+this.EXPORTED_SYMBOLS = ['mailTestUtils'];
 
 Components.utils.import("resource://gre/modules/ctypes.jsm");
 Components.utils.import("resource://gre/modules/Services.jsm");
 Components.utils.import("resource:///modules/mailServices.js");
 Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
 
 var Cc = Components.classes;
 var Ci = Components.interfaces;