[polari] cleanup: Always use type-safe comparisons



commit c6c8202a83c1bc460f5ba1d2cb951f85867e600e
Author: Florian Müllner <fmuellner gnome org>
Date:   Wed Aug 7 02:13:12 2019 +0200

    cleanup: Always use type-safe comparisons
    
    The type coercion performed by the regular == and != operators can
    have surprising results. It is therefore considered good practice
    to use the type-safe === and !== variants instead.
    
    https://gitlab.gnome.org/GNOME/polari/merge_requests/133

 src/accountsMonitor.js   |  8 ++---
 src/appNotifications.js  |  6 ++--
 src/application.js       | 40 +++++++++++------------
 src/chatView.js          | 84 ++++++++++++++++++++++++------------------------
 src/connections.js       | 28 ++++++++--------
 src/entryArea.js         | 17 +++++-----
 src/initialSetup.js      | 20 ++++++------
 src/ircParser.js         |  2 +-
 src/joinDialog.js        | 10 +++---
 src/mainWindow.js        | 20 ++++++------
 src/networksManager.js   |  2 +-
 src/pasteManager.js      | 10 +++---
 src/roomList.js          | 66 ++++++++++++++++++-------------------
 src/roomManager.js       | 12 +++----
 src/roomStack.js         |  6 ++--
 src/serverRoomManager.js | 26 +++++++--------
 src/tabCompletion.js     | 28 ++++++++--------
 src/telepathyClient.js   | 24 +++++++-------
 src/userList.js          | 34 ++++++++++----------
 src/userTracker.js       | 24 +++++++-------
 src/utils.js             | 14 ++++----
 21 files changed, 241 insertions(+), 240 deletions(-)
---
diff --git a/src/accountsMonitor.js b/src/accountsMonitor.js
index cec114d..1ba238b 100644
--- a/src/accountsMonitor.js
+++ b/src/accountsMonitor.js
@@ -97,7 +97,7 @@ var AccountsMonitor = class {
 
     _onPrepareShutdown() {
         let presence = Tp.ConnectionPresenceType.OFFLINE;
-        this.accounts.filter(a => a.requested_presence_type != presence).forEach(a => {
+        this.accounts.filter(a => a.requested_presence_type !== presence).forEach(a => {
             this._app.hold();
             a.request_presence_async(presence, 'offline', '', (o, res) => {
                 try {
@@ -109,7 +109,7 @@ var AccountsMonitor = class {
     }
 
     _shouldMonitorAccount(account) {
-        return account.protocol_name == 'irc';
+        return account.protocol_name === 'irc';
     }
 
     _addAccount(account) {
@@ -263,7 +263,7 @@ const PolariAccount = GObject.registerClass({
     }
 
     _setReachable(reachable) {
-        if (this._reachable == reachable)
+        if (this._reachable === reachable)
             return;
 
         this._reachable = reachable;
@@ -275,7 +275,7 @@ const PolariAccount = GObject.registerClass({
     }
 
     set visible(value) {
-        if (this._visible == value)
+        if (this._visible === value)
             return;
 
         this._visible = value;
diff --git a/src/appNotifications.js b/src/appNotifications.js
index 4646d85..fb8d014 100644
--- a/src/appNotifications.js
+++ b/src/appNotifications.js
@@ -183,7 +183,7 @@ class NotificationQueue extends Gtk.Frame {
     }
 
     _onChildDestroy() {
-        if (this._grid.get_children().length == 0)
+        if (this._grid.get_children().length === 0)
             this.hide();
     }
 });
@@ -249,7 +249,7 @@ var MessageInfoBar = GObject.registerClass({
     }
 
     set title(title) {
-        if (this._title == title)
+        if (this._title === title)
             return;
 
         this._title = title;
@@ -264,7 +264,7 @@ var MessageInfoBar = GObject.registerClass({
     }
 
     set subtitle(subtitle) {
-        if (this._subtitle == subtitle)
+        if (this._subtitle === subtitle)
             return;
 
         this._subtitle = subtitle;
diff --git a/src/application.js b/src/application.js
index 6a2eac7..fc41676 100644
--- a/src/application.js
+++ b/src/application.js
@@ -91,7 +91,7 @@ var Application = GObject.registerClass({
     isRoomFocused(room) {
         return this.active_window &&
                this.active_window['is-active'] &&
-               this.active_window.active_room == room;
+               this.active_window.active_room === room;
     }
 
     // Small wrapper to mark user-requested nick changes
@@ -112,7 +112,7 @@ var Application = GObject.registerClass({
                 conn, flags, null, name, opath, iface, null);
         } catch (e) {}
 
-        return proxy != null && proxy.get_name_owner() != null;
+        return proxy !== null && proxy.get_name_owner() !== null;
     }
 
     _ensureService(conn, name, opath, iface, command) {
@@ -325,7 +325,7 @@ var Application = GObject.registerClass({
         let networkMonitor = Gio.NetworkMonitor.get_default();
         networkMonitor.state_valid =
             !Utils.isFlatpakSandbox() &&
-            GLib.getenv('GTK_USE_PORTAL') != '1';
+            GLib.getenv('GTK_USE_PORTAL') !== '1';
 
         if (networkMonitor.state_valid) {
             if (!networkMonitor.network_metered)
@@ -409,9 +409,9 @@ var Application = GObject.registerClass({
 
         let action = this.lookup_action('leave-current-room');
         window.connect('notify::active-room', () => {
-            action.enabled = window.active_room != null;
+            action.enabled = window.active_room !== null;
         });
-        action.enabled = window.active_room != null;
+        action.enabled = window.active_room !== null;
 
         window.connect('active-room-state-changed',
             this._updateUserListAction.bind(this));
@@ -448,8 +448,8 @@ var Application = GObject.registerClass({
 
             let matchedId = this._networksManager.findByServer(server);
             let matches = Object.keys(map).filter(a => {
-                return GLib.ascii_strcasecmp(map[a].server, server) == 0 ||
-                       map[a].service == matchedId;
+                return GLib.ascii_strcasecmp(map[a].server, server) === 0 ||
+                       map[a].service === matchedId;
             });
 
             if (matches.length) {
@@ -496,7 +496,7 @@ var Application = GObject.registerClass({
                 'account': new GLib.Variant('s', GLib.get_user_name()),
                 'server': new GLib.Variant('s', server),
                 'port': new GLib.Variant('u', port ? port : 6667),
-                'use-ssl': new GLib.Variant('b', port == 6697),
+                'use-ssl': new GLib.Variant('b', port === 6697),
             };
             name = server;
         }
@@ -551,7 +551,7 @@ var Application = GObject.registerClass({
         }
 
         let savedRooms = this._settings.get_value('saved-channel-list');
-        return savedRooms.n_children() == 0;
+        return savedRooms.n_children() === 0;
     }
 
     get isTestInstance() {
@@ -561,7 +561,7 @@ var Application = GObject.registerClass({
     _updateUserListAction() {
         let room = this.active_window.active_room;
         let action = this.lookup_action('user-list');
-        action.enabled = room && room.type == Tp.HandleType.ROOM && room.channel;
+        action.enabled = room && room.type === Tp.HandleType.ROOM && room.channel;
     }
 
     _userListCreateHook(action) {
@@ -603,11 +603,11 @@ var Application = GObject.registerClass({
         let tracker = this._userStatusMonitor.getUserTrackerForAccount(account);
         let contactsChangedId = tracker.connect(`contacts-changed::${baseNick}`,
             (t, nick) => {
-                if (nick != nominalNick)
+                if (nick !== nominalNick)
                     return;
 
                 let contact = tracker.lookupContact(nick);
-                if (contact && contact.alias == nick)
+                if (contact && contact.alias === nick)
                     return;
 
                 this._untrackNominalNick(account);
@@ -642,8 +642,8 @@ var Application = GObject.registerClass({
 
         data = {
             retry: 0,
-            alternateServers: accountServers.filter(s => s.address != server ||
-                                                         s.port != port),
+            alternateServers: accountServers.filter(s => s.address !== server ||
+                                                         s.port !== port),
         };
         this._retryData.set(account.object_path, data);
         return data;
@@ -706,24 +706,24 @@ var Application = GObject.registerClass({
     _onAccountStatusChanged(mon, account) {
         let status = account.connection_status;
 
-        if (status == Tp.ConnectionStatus.CONNECTING)
+        if (status === Tp.ConnectionStatus.CONNECTING)
             return;
 
-        if (status == Tp.ConnectionStatus.DISCONNECTED) {
+        if (status === Tp.ConnectionStatus.DISCONNECTED) {
             let reason = account.connection_status_reason;
 
-            if (reason == Tp.ConnectionStatusReason.NAME_IN_USE) {
+            if (reason === Tp.ConnectionStatusReason.NAME_IN_USE) {
                 if (this._retryNickRequest(account))
                     return;
             }
 
-            if (reason == Tp.ConnectionStatusReason.NETWORK_ERROR ||
-                reason == Tp.ConnectionStatusReason.NONE_SPECIFIED) {
+            if (reason === Tp.ConnectionStatusReason.NETWORK_ERROR ||
+                reason === Tp.ConnectionStatusReason.NONE_SPECIFIED) {
                 if (this._retryServerRequest(account))
                     return;
             }
 
-            if (reason != Tp.ConnectionStatusReason.REQUESTED) {
+            if (reason !== Tp.ConnectionStatusReason.REQUESTED) {
                 let strReason = Object.keys(Tp.ConnectionStatusReason)[reason];
                 let name = account.display_name;
                 debug(`Account ${name} disconnected with reason ${strReason}`);
diff --git a/src/chatView.js b/src/chatView.js
index ccf714c..47b22fb 100644
--- a/src/chatView.js
+++ b/src/chatView.js
@@ -128,7 +128,7 @@ class TextView extends Gtk.TextView {
     }
 
     _onMarkSet(buffer, iter, mark) {
-        if (mark.name == 'indicator-line')
+        if (mark.name === 'indicator-line')
             this.queue_draw();
     }
 
@@ -163,7 +163,7 @@ const ButtonTag = GObject.registerClass({
     }
 
     set hover(hover) {
-        if (this._hover == hover)
+        if (this._hover === hover)
             return;
 
         this._hover = hover;
@@ -195,7 +195,7 @@ const ButtonTag = GObject.registerClass({
                 return;
 
             let button = this._gesture.get_current_button();
-            if (button == Gdk.BUTTON_SECONDARY)
+            if (button === Gdk.BUTTON_SECONDARY)
                 this.emit('popup-menu');
         });
         this._gesture.connect('released', (gesture, nPress) => {
@@ -203,7 +203,7 @@ const ButtonTag = GObject.registerClass({
                 return;
 
             let button = this._gesture.get_current_button();
-            if (button == Gdk.BUTTON_PRIMARY)
+            if (button === Gdk.BUTTON_PRIMARY)
                 this.emit('clicked');
         });
     }
@@ -258,7 +258,7 @@ const HoverFilterTag = GObject.registerClass({
 
     // eslint-disable-next-line camelcase
     set hover_opacity(value) {
-        if (this._hoverOpacity == value)
+        if (this._hoverOpacity === value)
             return;
         this._hoverOpacity = value;
         this.notify('hover-opacity');
@@ -307,7 +307,7 @@ var ChatView = GObject.registerClass({
         this.connect('screen-changed', this._updateIndent.bind(this));
         this.connect('scroll-event', this._onScroll.bind(this));
         this.connect('edge-reached', (w, pos) => {
-            if (pos == Gtk.PositionType.BOTTOM)
+            if (pos === Gtk.PositionType.BOTTOM)
                 this._autoscroll = true;
         });
 
@@ -348,7 +348,7 @@ var ChatView = GObject.registerClass({
         });
         this._updateMaxNickChars(this._room.account.nickname.length);
 
-        let isRoom = room.type == Tp.HandleType.ROOM;
+        let isRoom = room.type === Tp.HandleType.ROOM;
         let target = new Tpl.Entity({
             type: isRoom ? Tpl.EntityType.ROOM : Tpl.EntityType.CONTACT,
             identifier: room.channel_name,
@@ -503,7 +503,7 @@ var ChatView = GObject.registerClass({
         tags.forEach(tagProps => {
             let tag = tagTable.lookup(tagProps.name);
             for (let prop in tagProps) {
-                if (prop == 'name')
+                if (prop === 'name')
                     continue;
                 tag[prop] = tagProps[prop];
             }
@@ -590,8 +590,8 @@ var ChatView = GObject.registerClass({
         let { nick, messageType: type } = this._pendingLogs[0];
         let maxNum = this._pendingLogs.length - this._initialPending.length;
         for (let i = 0; i < maxNum; i++) {
-            if (this._pendingLogs[i].nick != nick ||
-                this._pendingLogs[i].messageType != type)
+            if (this._pendingLogs[i].nick !== nick ||
+                this._pendingLogs[i].messageType !== type)
                 return this._pendingLogs.splice(i);
         }
         return [];
@@ -604,10 +604,10 @@ var ChatView = GObject.registerClass({
         let numLogs = logs.length;
         let pos;
         for (pos = numLogs - pending.length; pos < numLogs; pos++) {
-            if (logs[pos].nick == firstPending.nick &&
-                logs[pos].text == firstPending.text &&
-                logs[pos].timestamp == firstPending.timestamp &&
-                logs[pos].messageType == firstPending.messageType)
+            if (logs[pos].nick === firstPending.nick &&
+                logs[pos].text === firstPending.text &&
+                logs[pos].timestamp === firstPending.timestamp &&
+                logs[pos].messageType === firstPending.messageType)
                 break;
         }
         // Remove entries that are also in pending (if any), then
@@ -635,7 +635,7 @@ var ChatView = GObject.registerClass({
         for (let i = 0; i < pending.length; i++) {
             this._insertMessage(iter, pending[i], state);
 
-            if (i == indicatorIndex)
+            if (i === indicatorIndex)
                 this._setIndicatorMark(iter);
 
             if (!iter.is_end() || i < pending.length - 1)
@@ -650,7 +650,7 @@ var ChatView = GObject.registerClass({
 
     // eslint-disable-next-line camelcase
     get can_drop() {
-        return this._channel != null;
+        return this._channel !== null;
     }
 
     _updateMaxNickChars(length) {
@@ -683,7 +683,7 @@ var ChatView = GObject.registerClass({
         if (!this._autoscroll)
             return;
 
-        if (this._pending.size == 0) {
+        if (this._pending.size === 0) {
             this._view.emit('move-cursor',
                 Gtk.MovementStep.BUFFER_ENDS, 1, false);
         } else {
@@ -695,7 +695,7 @@ var ChatView = GObject.registerClass({
 
     _onScroll(w, event) {
         let [hasDir, dir] = event.get_scroll_direction();
-        if (hasDir && dir != Gdk.ScrollDirection.UP)
+        if (hasDir && dir !== Gdk.ScrollDirection.UP)
             return Gdk.EVENT_PROPAGATE;
 
         let [hasDeltas, dx_, dy] = event.get_scroll_deltas();
@@ -722,10 +722,10 @@ var ChatView = GObject.registerClass({
             return Gdk.EVENT_STOP;
         }
 
-        if (keyval != Gdk.KEY_Up &&
-            keyval != Gdk.KEY_KP_Up &&
-            keyval != Gdk.KEY_Page_Up &&
-            keyval != Gdk.KEY_KP_Page_Up)
+        if (keyval !== Gdk.KEY_Up &&
+            keyval !== Gdk.KEY_KP_Up &&
+            keyval !== Gdk.KEY_Page_Up &&
+            keyval !== Gdk.KEY_KP_Page_Up)
             return Gdk.EVENT_PROPAGATE;
 
         this._autoscroll = false;
@@ -734,7 +734,7 @@ var ChatView = GObject.registerClass({
     }
 
     _fetchBacklog() {
-        if (this.vadjustment.value != 0 ||
+        if (this.vadjustment.value !== 0 ||
             this._logWalker.is_end())
             return Gdk.EVENT_PROPAGATE;
 
@@ -819,7 +819,7 @@ var ChatView = GObject.registerClass({
         let isHovering = hoveredButtonTags.length > 0;
         let wasHovering = this._hoveredButtonTags.length > 0;
 
-        if (isHovering != wasHovering) {
+        if (isHovering !== wasHovering) {
             let cursor = isHovering ? this._hoverCursor : null;
             this._view.get_window(Gtk.TextWindowType.TEXT).set_cursor(cursor);
         }
@@ -886,7 +886,7 @@ var ChatView = GObject.registerClass({
         this._needsIndicator = true;
 
         let pending = this._channel.dup_pending_messages();
-        if (pending.length == 0)
+        if (pending.length === 0)
             return;
 
         let rect = this._view.get_visible_rect();
@@ -916,7 +916,7 @@ var ChatView = GObject.registerClass({
     }
 
     _onChannelChanged() {
-        if (this._channel == this._room.channel)
+        if (this._channel === this._room.channel)
             return;
 
         // Pending IDs are invalidated by channel changes, so
@@ -1108,7 +1108,7 @@ var ChatView = GObject.registerClass({
         let baseDir = Pango.find_base_dir(headerText, -1);
         this._insertWithTags(iter, headerText, tags);
         this._insertWithTags(iter,
-            baseDir == Pango.Direction.LTR ? '\u25B6' : '\u25C0',
+            baseDir === Pango.Direction.LTR ? '\u25B6' : '\u25C0',
             tags.concat(headerArrowTag));
         this._insertWithTags(iter, '\u25BC', tags.concat(groupTag));
     }
@@ -1164,9 +1164,9 @@ var ChatView = GObject.registerClass({
         let format;
         let desktopSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.interface' });
         let clockFormat = desktopSettings.get_string('clock-format');
-        let hasAmPm = date.format('%p') != '';
+        let hasAmPm = date.format('%p') !== '';
 
-        if (clockFormat == '24h' || !hasAmPm) {
+        if (clockFormat === '24h' || !hasAmPm) {
             if (daysAgo < 1) { // today
                 /* Translators: Time in 24h format */
                 format = _('%H\u2236%M');
@@ -1180,7 +1180,7 @@ var ChatView = GObject.registerClass({
                  string in 24h format. i.e. "Monday, 14:30" */
                 // xgettext:no-c-format
                 format = _('%A, %H\u2236%M');
-            } else if (date.get_year() == now.get_year()) { // this year
+            } else if (date.get_year() === now.get_year()) { // this year
                 /* Translators: this is the month name and day number
                  followed by a time string in 24h format.
                  i.e. "May 25, 14:30" */
@@ -1208,7 +1208,7 @@ var ChatView = GObject.registerClass({
                  string in 12h format. i.e. "Monday, 2:30 pm" */
                 // xgettext:no-c-format
                 format = _('%A, %l\u2236%M %p');
-            } else if (date.get_year() == now.get_year()) { // this year
+            } else if (date.get_year() === now.get_year()) { // this year
                 /* Translators: this is the month name and day number
                  followed by a time string in 12h format.
                  i.e. "May 25, 2:30 pm" */
@@ -1234,16 +1234,16 @@ var ChatView = GObject.registerClass({
         let iter = this._view.buffer.get_end_iter();
         this._insertMessage(iter, message, this._state);
 
-        if (message.pendingId == undefined /* outgoing */ ||
-            this._app.isRoomFocused(this._room) && this._pending.size == 0)
+        if (message.pendingId === undefined /* outgoing */ ||
+            this._app.isRoomFocused(this._room) && this._pending.size === 0)
             this._channel.ack_message_async(tpMessage, null);
         else if (this._needsIndicator)
             this._setIndicatorMark(this._view.buffer.get_end_iter());
     }
 
     _insertMessage(iter, message, state) {
-        let isAction = message.messageType == Tp.ChannelTextMessageType.ACTION;
-        let needsGap = message.nick != state.lastNick || isAction;
+        let isAction = message.messageType === Tp.ChannelTextMessageType.ACTION;
+        let needsGap = message.nick !== state.lastNick || isAction;
         let highlight = this._room.should_highlight_message(
             message.nick, message.text);
 
@@ -1267,7 +1267,7 @@ var ChatView = GObject.registerClass({
             if (needsGap)
                 tags.push(this._lookupTag('gap'));
         } else {
-            if (state.lastNick != message.nick) {
+            if (state.lastNick !== message.nick) {
                 let nickTags = [this._lookupTag('nick')];
                 let nickTagName = this._getNickTagName(message.nick);
                 let nickTag = this._lookupTag(nickTagName);
@@ -1301,7 +1301,7 @@ var ChatView = GObject.registerClass({
             tags.push(this._lookupTag('message'));
         }
 
-        if (highlight && this._room.type != Tp.HandleType.CONTACT)
+        if (highlight && this._room.type !== Tp.HandleType.CONTACT)
             tags.push(this._lookupTag('highlight'));
 
         let params = this._room.account.dup_parameters_vardict().deep_unpack();
@@ -1310,7 +1310,7 @@ var ChatView = GObject.registerClass({
         let { text } = message;
 
         // mask identify passwords in private chats
-        if (this._room.type == Tp.HandleType.CONTACT) {
+        if (this._room.type === Tp.HandleType.CONTACT) {
             let [isIdentify, command_, username_, password] =
                 Polari.util_match_identify_message(text);
 
@@ -1344,8 +1344,8 @@ var ChatView = GObject.registerClass({
     }
 
     _onNickStatusChanged(baseNick, status) {
-        if (this._room.type == Tp.HandleType.CONTACT &&
-            status == Tp.ConnectionPresenceType.OFFLINE &&
+        if (this._room.type === Tp.HandleType.CONTACT &&
+            status === Tp.ConnectionPresenceType.OFFLINE &&
             this._room.channel) {
             this._room.channel.ack_all_pending_messages_async(channel => {
                 channel.close_async(null);
@@ -1362,7 +1362,7 @@ var ChatView = GObject.registerClass({
     }
 
     _updateNickTag(tag, status) {
-        if (status == Tp.ConnectionPresenceType.AVAILABLE)
+        if (status === Tp.ConnectionPresenceType.AVAILABLE)
             tag.foreground_rgba = this._activeNickColor;
         else
             tag.foreground_rgba = this._inactiveNickColor;
@@ -1435,7 +1435,7 @@ var ChatView = GObject.registerClass({
         let headerTag = this._lookupTag(`status-compressed${this._state.lastStatusGroup}`);
         if (headerTag && iter.ends_tag(headerTag))
             tags.push(headerTag);
-        if (iter.get_line_offset() != 0)
+        if (iter.get_line_offset() !== 0)
             this._insertWithTags(iter, '\n', tags);
     }
 
diff --git a/src/connections.js b/src/connections.js
index 0bb5fec..d5833a1 100644
--- a/src/connections.js
+++ b/src/connections.js
@@ -138,7 +138,7 @@ var ConnectionsList = GObject.registerClass({
 
     // eslint-disable-next-line camelcase
     set favorites_only(favsOnly) {
-        if (this._favoritesOnly == favsOnly)
+        if (this._favoritesOnly === favsOnly)
             return;
 
         this._favoritesOnly = favsOnly;
@@ -234,7 +234,7 @@ var ConnectionsList = GObject.registerClass({
         let isFavorite1 = this._networksManager.getNetworkIsFavorite(row1.id);
         let isFavorite2 = this._networksManager.getNetworkIsFavorite(row2.id);
 
-        if (isFavorite1 != isFavorite2)
+        if (isFavorite1 !== isFavorite2)
             return isFavorite1 ? -1 : 1;
 
         let name1 = this._networksManager.getNetworkName(row1.id);
@@ -308,12 +308,12 @@ var ConnectionDetails = GObject.registerClass({
     }
 
     setErrorHint(hint) {
-        if (hint == ErrorHint.SERVER)
+        if (hint === ErrorHint.SERVER)
             this._serverEntry.get_style_context().add_class('error');
         else
             this._serverEntry.get_style_context().remove_class('error');
 
-        if (hint == ErrorHint.NICK)
+        if (hint === ErrorHint.NICK)
             this._nickEntry.get_style_context().add_class('error');
         else
             this._nickEntry.get_style_context().remove_class('error');
@@ -377,10 +377,10 @@ var ConnectionDetails = GObject.registerClass({
         this._savedNick = params.account || '';
         this._savedRealname = params.fullname || '';
 
-        if (port != defaultPort)
+        if (port !== defaultPort)
             this._savedServer += `:${port}`;
 
-        if (this._savedServer != account.display_name)
+        if (this._savedServer !== account.display_name)
             this._savedName = account.display_name;
 
         this._serverEntry.text = this._savedServer;
@@ -392,11 +392,11 @@ var ConnectionDetails = GObject.registerClass({
 
     // eslint-disable-next-line camelcase
     get can_confirm() {
-        let paramsChanged = this._nameEntry.text != this._savedName ||
-                            this._serverEntry.text != this._savedServer ||
-                            this._nickEntry.text != this._savedNick ||
-                            this._realnameEntry.text != this._savedRealname ||
-                            this._sslCheckbox.active != this._savedSSL;
+        let paramsChanged = this._nameEntry.text !== this._savedName ||
+                            this._serverEntry.text !== this._savedServer ||
+                            this._nickEntry.text !== this._savedNick ||
+                            this._realnameEntry.text !== this._savedRealname ||
+                            this._sslCheckbox.active !== this._savedSSL;
 
         return this._serverEntry.get_text_length() > 0 &&
                this._nickEntry.get_text_length() > 0 &&
@@ -515,7 +515,7 @@ var ConnectionProperties = GObject.registerClass({
         });
 
         this.connect('response', (w, response) => {
-            if (response == Gtk.ResponseType.OK)
+            if (response === Gtk.ResponseType.OK)
                 this._details.save();
         });
         this.set_default_response(Gtk.ResponseType.OK);
@@ -534,8 +534,8 @@ var ConnectionProperties = GObject.registerClass({
         this._errorBox.hide();
         this._details.setErrorHint(ErrorHint.NONE);
 
-        if (status != Tp.ConnectionStatus.DISCONNECTED ||
-            reason == Tp.ConnectionStatusReason.REQUESTED)
+        if (status !== Tp.ConnectionStatus.DISCONNECTED ||
+            reason === Tp.ConnectionStatusReason.REQUESTED)
             return;
 
         switch (account.connection_error) {
diff --git a/src/entryArea.js b/src/entryArea.js
index 4f69417..ac05e07 100644
--- a/src/entryArea.js
+++ b/src/entryArea.js
@@ -141,7 +141,7 @@ var NickPopover = GObject.registerClass({
     }
 
     set nick(nick) {
-        if (this._nick == nick)
+        if (this._nick === nick)
             return;
 
         if (!this._nickEntry['is-focus'])
@@ -265,9 +265,10 @@ var EntryArea = GObject.registerClass({
         this._pasteBox.connect_after('key-press-event', (w, event) => {
             let [, keyval] = event.get_keyval();
             let [, mods] = event.get_state();
-            if (keyval == Gdk.KEY_Escape || keyval == Gdk.KEY_BackSpace ||
-                keyval == Gdk.KEY_Delete ||
-                keyval == Gdk.KEY_z && mods & Gdk.ModifierType.CONTROL_MASK) {
+            if (keyval === Gdk.KEY_Escape ||
+                keyval === Gdk.KEY_BackSpace ||
+                keyval === Gdk.KEY_Delete ||
+                keyval === Gdk.KEY_z && mods & Gdk.ModifierType.CONTROL_MASK) {
                 this._cancelButton.clicked();
                 return Gdk.EVENT_STOP;
             }
@@ -325,11 +326,11 @@ var EntryArea = GObject.registerClass({
             return Gdk.EVENT_PROPAGATE;
 
         let [, keyval] = event.get_keyval();
-        if (Gdk.keyval_to_unicode(keyval) == 0)
+        if (Gdk.keyval_to_unicode(keyval) === 0)
             return Gdk.EVENT_PROPAGATE;
 
         let [, state] = event.get_state();
-        if (state != 0 && state != Gdk.ModifierType.SHIFT_MASK)
+        if (state !== 0 && state !== Gdk.ModifierType.SHIFT_MASK)
             return Gdk.EVENT_PROPAGATE;
 
         let activationKeys = [
@@ -408,7 +409,7 @@ var EntryArea = GObject.registerClass({
     _onPasteClicked() {
         let title;
         let nick = this._room.channel.connection.self_contact.alias;
-        if (this._room.type == Tp.HandleType.ROOM)
+        if (this._room.type === Tp.HandleType.ROOM)
             /* translators: %s is a nick, #%s a channel */
             title = _('%s in #%s').format(nick, this._room.display_name);
         else
@@ -424,7 +425,7 @@ var EntryArea = GObject.registerClass({
             });
         } catch (e) {
             let type = typeof this._pasteContent;
-            if (type == 'object')
+            if (type === 'object')
                 type = this._pasteContent.toString();
             debug(`Failed to paste content of type ${type}`);
         }
diff --git a/src/initialSetup.js b/src/initialSetup.js
index 25d05ce..2c3ef0d 100644
--- a/src/initialSetup.js
+++ b/src/initialSetup.js
@@ -38,7 +38,7 @@ var InitialSetupWindow = GObject.registerClass({
             this._updateNextSensitivity.bind(this));
 
         this._nextButton.connect('clicked', () => {
-            if (this._page == SetupPage.CONNECTION) {
+            if (this._page === SetupPage.CONNECTION) {
                 this._connectionsList.activateSelected();
             } else {
                 this._joinRooms();
@@ -48,7 +48,7 @@ var InitialSetupWindow = GObject.registerClass({
         });
 
         this._prevButton.connect('clicked', () => {
-            if (this._page == SetupPage.ROOM) {
+            if (this._page === SetupPage.ROOM) {
                 this._setPage(SetupPage.CONNECTION);
                 this._unsetAccount();
             } else {
@@ -73,14 +73,14 @@ var InitialSetupWindow = GObject.registerClass({
     }
 
     _setPage(page) {
-        if (page == SetupPage.CONNECTION)
+        if (page === SetupPage.CONNECTION)
             this._contentStack.visible_child_name = 'connections';
-        else if (page == SetupPage.ROOM)
+        else if (page === SetupPage.ROOM)
             this._contentStack.visible_child_name = 'rooms';
         else
             this._contentStack.visible_child_name = 'offline-hint';
 
-        let isLastPage = page == SetupPage.ROOM;
+        let isLastPage = page === SetupPage.ROOM;
 
         this._prevButton.label = isLastPage ? _('_Back') : _('_Cancel');
         this._nextButton.label = isLastPage ? _('_Done') : _('_Next');
@@ -106,18 +106,18 @@ var InitialSetupWindow = GObject.registerClass({
     }
 
     get _page() {
-        if (this._contentStack.visible_child_name == 'rooms')
+        if (this._contentStack.visible_child_name === 'rooms')
             return SetupPage.ROOM;
-        else if (this._contentStack.visible_child_name == 'connections')
+        else if (this._contentStack.visible_child_name === 'connections')
             return SetupPage.CONNECTION;
         else
             return SetupPage.OFFLINE;
     }
 
     _updateNextSensitivity() {
-        let sensitive = this._page != SetupPage.OFFLINE;
+        let sensitive = this._page !== SetupPage.OFFLINE;
 
-        if (this._page == SetupPage.ROOM)
+        if (this._page === SetupPage.ROOM)
             sensitive = this._serverRoomList.can_join;
 
         this._nextButton.sensitive = sensitive;
@@ -131,7 +131,7 @@ var InitialSetupWindow = GObject.registerClass({
         let accountPath = this._currentAccount.get_object_path();
         let time = Utils.getTpEventTime();
         toJoinRooms.forEach(room => {
-            if (room[0] != '#')
+            if (room[0] !== '#')
                 room = `#${room}`;
 
             let app = Gio.Application.get_default();
diff --git a/src/ircParser.js b/src/ircParser.js
index 68ee461..c5c22a4 100644
--- a/src/ircParser.js
+++ b/src/ircParser.js
@@ -59,7 +59,7 @@ var IrcParser = class {
         if (!this._room || !this._room.channel || !text.length)
             return true;
 
-        if (text[0] != '/') {
+        if (text[0] !== '/') {
             this._sendText(text);
             return true;
         }
diff --git a/src/joinDialog.js b/src/joinDialog.js
index 3ef4195..8c1287d 100644
--- a/src/joinDialog.js
+++ b/src/joinDialog.js
@@ -68,7 +68,7 @@ var JoinDialog = GObject.registerClass({
             });
 
         this.connect('response', (w, response) => {
-            if (response == Gtk.ResponseType.OK)
+            if (response === Gtk.ResponseType.OK)
                 this._joinRoom();
             this.destroy();
         });
@@ -166,7 +166,7 @@ var JoinDialog = GObject.registerClass({
 
         let toJoinRooms = this._serverRoomList.selectedRooms;
         toJoinRooms.forEach(room => {
-            if (room[0] != '#')
+            if (room[0] !== '#')
                 room = `#${room}`;
 
             let app = Gio.Application.get_default();
@@ -200,7 +200,7 @@ var JoinDialog = GObject.registerClass({
     _updateCanJoin() {
         let sensitive = false;
 
-        if (this._page == DialogPage.MAIN) {
+        if (this._page === DialogPage.MAIN) {
             sensitive = this._connectionCombo.get_active() > -1  &&
                         this._serverRoomList.can_join;
         }
@@ -211,14 +211,14 @@ var JoinDialog = GObject.registerClass({
     }
 
     get _page() {
-        if (this._mainStack.visible_child_name == 'connection')
+        if (this._mainStack.visible_child_name === 'connection')
             return DialogPage.CONNECTION;
         else
             return DialogPage.MAIN;
     }
 
     _setPage(page) {
-        let isMain = page == DialogPage.MAIN;
+        let isMain = page === DialogPage.MAIN;
         let isAccountsEmpty = !this._hasAccounts;
 
         if (isMain)
diff --git a/src/mainWindow.js b/src/mainWindow.js
index e18dc2c..dccf327 100644
--- a/src/mainWindow.js
+++ b/src/mainWindow.js
@@ -42,7 +42,7 @@ var FixedSizeFrame = GObject.registerClass({
     }
 
     set height(height) {
-        if (height == this._height)
+        if (height === this._height)
             return;
         this._height = height;
         this.notify('height');
@@ -55,7 +55,7 @@ var FixedSizeFrame = GObject.registerClass({
     }
 
     set width(width) {
-        if (width == this._width)
+        if (width === this._width)
             return;
 
         this._width = width;
@@ -203,7 +203,7 @@ var MainWindow = GObject.registerClass({
         });
 
         let size = this._settings.get_value('window-size').deep_unpack();
-        if (size.length == 2)
+        if (size.length === 2)
             this.set_default_size(...size);
 
         if (this._settings.get_boolean('window-maximized'))
@@ -233,8 +233,8 @@ var MainWindow = GObject.registerClass({
     _onWindowStateEvent(widget, event) {
         let state = event.get_window().get_state();
 
-        this._isFullscreen = (state & Gdk.WindowState.FULLSCREEN) != 0;
-        this._isMaximized = (state & Gdk.WindowState.MAXIMIZED) != 0;
+        this._isFullscreen = (state & Gdk.WindowState.FULLSCREEN) !== 0;
+        this._isMaximized = (state & Gdk.WindowState.MAXIMIZED) !== 0;
     }
 
     _onSizeAllocate() {
@@ -278,7 +278,7 @@ var MainWindow = GObject.registerClass({
     }
 
     _filterFallbackAppMenu(layoutStr) {
-        return layoutStr.split(',').filter(s => s != 'menu').join(',');
+        return layoutStr.split(',').filter(s => s !== 'menu').join(',');
     }
 
     _updateDecorations() {
@@ -304,7 +304,7 @@ var MainWindow = GObject.registerClass({
 
     // eslint-disable-next-line camelcase
     set active_room(room) {
-        if (room == this._room)
+        if (room === this._room)
             return;
 
         if (this._room) {
@@ -318,7 +318,7 @@ var MainWindow = GObject.registerClass({
         this._membersChangedId = 0;
         this._channelChangedId = 0;
 
-        if (room && room.type == Tp.HandleType.ROOM)
+        if (room && room.type === Tp.HandleType.ROOM)
             this._lastActiveRoom = room;
         this._room = room;
 
@@ -368,7 +368,7 @@ var MainWindow = GObject.registerClass({
     }
 
     _onRoomRemoved(mgr, room) {
-        if (room == this._lastActiveRoom)
+        if (room === this._lastActiveRoom)
             this._lastActiveRoom = null;
     }
 
@@ -409,7 +409,7 @@ var MainWindow = GObject.registerClass({
             subtitle += GLib.markup_escape_text(this._room.topic.substr(pos), -1);
         }
 
-        if (this._subtitle != subtitle) {
+        if (this._subtitle !== subtitle) {
             this._subtitle = subtitle;
             this.notify('subtitle');
             this.notify('subtitle-visible');
diff --git a/src/networksManager.js b/src/networksManager.js
index d0b2462..d6daf55 100644
--- a/src/networksManager.js
+++ b/src/networksManager.js
@@ -105,7 +105,7 @@ var NetworksManager = class {
 
     findByServer(server) {
         let network = this._networks.find(n => {
-            return n.servers.some(s => s.address == server);
+            return n.servers.some(s => s.address === server);
         });
         return network ? network.id : null;
     }
diff --git a/src/pasteManager.js b/src/pasteManager.js
index 0741468..dd2493d 100644
--- a/src/pasteManager.js
+++ b/src/pasteManager.js
@@ -23,7 +23,7 @@ function _getTargetForContentType(contentType) {
 
 var PasteManager = class {
     pasteContent(content, title, callback) {
-        if (typeof content == 'string')
+        if (typeof content === 'string')
             Utils.gpaste(content, title, callback);
         else if (content instanceof GdkPixbuf.Pixbuf)
             Utils.imgurPaste(content, title, callback);
@@ -51,12 +51,12 @@ var PasteManager = class {
         let contentType = fileInfo.get_content_type();
         let targetType = _getTargetForContentType(contentType);
 
-        if (targetType == DndTargetType.TEXT) {
+        if (targetType === DndTargetType.TEXT) {
             file.load_contents_async(null, (f, res) => {
                 let [, contents] = f.load_contents_finish(res);
                 Utils.gpaste(contents.toString(), title, callback);
             });
-        } else if (targetType == DndTargetType.IMAGE) {
+        } else if (targetType === DndTargetType.IMAGE) {
             file.read_async(GLib.PRIORITY_DEFAULT, null, (f, res) => {
                 let stream = f.read_finish(res);
                 GdkPixbuf.Pixbuf.new_from_stream_async(stream, null, (s, r) => {
@@ -150,7 +150,7 @@ var DropTargetIface = GObject.registerClass({
 
 
     _onDragDataReceived(_widget, context, _x, _y, data, info, time) {
-        if (info == DndTargetType.URI_LIST) {
+        if (info === DndTargetType.URI_LIST) {
             let uris = data.get_uris();
             if (!uris) {
                 Gtk.drag_finish(context, false, false, time);
@@ -161,7 +161,7 @@ var DropTargetIface = GObject.registerClass({
             let file = Gio.File.new_for_uri(uris[0]);
             try {
                 this._lookupFileInfo(file, targetType => {
-                    let canHandle = targetType != 0;
+                    let canHandle = targetType !== 0;
                     if (canHandle)
                         this.emit('file-dropped', file);
                     Gtk.drag_finish(context, canHandle, false, time);
diff --git a/src/roomList.js b/src/roomList.js
index 580a530..103c39a 100644
--- a/src/roomList.js
+++ b/src/roomList.js
@@ -36,7 +36,7 @@ var RoomRow = GObject.registerClass({
         this._connectingTimeoutId = 0;
 
         this._icon.gicon = room.icon;
-        this._icon.visible = room.icon != null;
+        this._icon.visible = room.icon !== null;
 
         this._eventBox.connect('button-release-event',
             this._onButtonRelease.bind(this));
@@ -52,7 +52,7 @@ var RoomRow = GObject.registerClass({
 
         let connectionStatusChangedId = 0;
 
-        if (this._room.type == Tp.HandleType.ROOM) {
+        if (this._room.type === Tp.HandleType.ROOM) {
             connectionStatusChangedId =
                 this.account.connect('notify::connection-status',
                     this._onConnectionStatusChanged.bind(this));
@@ -107,7 +107,7 @@ var RoomRow = GObject.registerClass({
 
     _getConnectionStatus() {
         let presence = this.account.requested_presence_type;
-        if (presence == Tp.ConnectionPresenceType.OFFLINE)
+        if (presence === Tp.ConnectionPresenceType.OFFLINE)
             return Tp.ConnectionStatus.DISCONNECTED;
         return this.account.connection_status;
     }
@@ -115,7 +115,7 @@ var RoomRow = GObject.registerClass({
     _onConnectionStatusChanged() {
         let status = this._getConnectionStatus();
         // Show loading indicator if joining a room takes more than 3 seconds
-        if (status == Tp.ConnectionStatus.CONNECTED && !this._room.channel) {
+        if (status === Tp.ConnectionStatus.CONNECTED && !this._room.channel) {
             this._connectingTimeoutId = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 3, () => {
                 this._connectingTimeoutId = 0;
 
@@ -137,7 +137,7 @@ var RoomRow = GObject.registerClass({
         this._counter.opacity = nHighlights > 0 ? 1. : 0.;
 
         let context = this.get_style_context();
-        if (nPending == 0)
+        if (nPending === 0)
             context.add_class('inactive');
         else
             context.remove_class('inactive');
@@ -162,7 +162,7 @@ var RoomRow = GObject.registerClass({
 
     _onButtonRelease(w, event) {
         let [, button] = event.get_button();
-        if (button != Gdk.BUTTON_SECONDARY)
+        if (button !== Gdk.BUTTON_SECONDARY)
             return Gdk.EVENT_PROPAGATE;
 
         this._showPopover();
@@ -173,8 +173,8 @@ var RoomRow = GObject.registerClass({
     _onKeyPress(w, event) {
         let [, keyval] = event.get_keyval();
         let [, mods] = event.get_state();
-        if (keyval != Gdk.KEY_Menu &&
-            !(keyval == Gdk.KEY_F10 &&
+        if (keyval !== Gdk.KEY_Menu &&
+            !(keyval === Gdk.KEY_F10 &&
               mods & Gdk.ModifierType.SHIFT_MASK))
             return Gdk.EVENT_PROPAGATE;
 
@@ -186,7 +186,7 @@ var RoomRow = GObject.registerClass({
     _showPopover() {
         if (!this._popover) {
             let menu = new Gio.Menu();
-            let isRoom = this._room.type == Tp.HandleType.ROOM;
+            let isRoom = this._room.type === Tp.HandleType.ROOM;
             let label = isRoom ?  _('Leave chatroom') : _('End conversation');
             menu.append(label, `app.leave-room(("${this._room.id}", ""))`);
 
@@ -304,20 +304,20 @@ var RoomListHeader = GObject.registerClass({
 
     /* hack: Handle primary and secondary button interchangeably */
     vfunc_button_press_event(event) {
-        if (event.button == Gdk.BUTTON_SECONDARY)
+        if (event.button === Gdk.BUTTON_SECONDARY)
             event.button = Gdk.BUTTON_PRIMARY;
         return super.vfunc_button_press_event(event);
     }
 
     vfunc_button_release_event(event) {
-        if (event.button == Gdk.BUTTON_SECONDARY)
+        if (event.button === Gdk.BUTTON_SECONDARY)
             event.button = Gdk.BUTTON_PRIMARY;
         return super.vfunc_button_release_event(event);
     }
 
     _getConnectionStatus() {
         let presence = this._account.requested_presence_type;
-        if (presence == Tp.ConnectionPresenceType.OFFLINE)
+        if (presence === Tp.ConnectionPresenceType.OFFLINE)
             return Tp.ConnectionStatus.DISCONNECTED;
         return this._account.connection_status;
     }
@@ -326,16 +326,16 @@ var RoomListHeader = GObject.registerClass({
         let status = this._getConnectionStatus();
         let reason = this._account.connection_status_reason;
         let authError = Tp.error_get_dbus_name(Tp.Error.AUTHENTICATION_FAILED);
-        let isError = status == Tp.ConnectionStatus.DISCONNECTED &&
-                      reason != Tp.ConnectionStatusReason.REQUESTED;
-        let isAuth = isError && this._account.connection_error == authError;
+        let isError = status === Tp.ConnectionStatus.DISCONNECTED &&
+                      reason !== Tp.ConnectionStatusReason.REQUESTED;
+        let isAuth = isError && this._account.connection_error === authError;
 
         let child = 'default';
-        if (status == Tp.ConnectionStatus.CONNECTING)
+        if (status === Tp.ConnectionStatus.CONNECTING)
             child = 'connecting';
         else if (isError)
             child = isAuth ? 'auth' : 'error';
-        else if (status == Tp.ConnectionStatus.DISCONNECTED)
+        else if (status === Tp.ConnectionStatus.DISCONNECTED)
             child = 'disconnected';
 
         if (isError && this._spinner.active) {
@@ -350,7 +350,7 @@ var RoomListHeader = GObject.registerClass({
         }
 
         this._iconStack.visible_child_name = child;
-        this._spinner.active = child == 'connecting';
+        this._spinner.active = child === 'connecting';
         this._popoverTitle.visible = !isAuth;
 
         if (this._spinner.active)
@@ -370,7 +370,7 @@ var RoomListHeader = GObject.registerClass({
             /* Translators: This is an account name followed by a
                server address, e.g. "GNOME (irc.gnome.org)" */
             let fullTitle = _('%s (%s)').format(accountName, server);
-            this._popoverTitle.label = accountName == server ? accountName : fullTitle;
+            this._popoverTitle.label = accountName === server ? accountName : fullTitle;
             this._popoverStatus.label = `<sup>${this._getStatusLabel()}<${'/'}sup>`;
         } else {
             let styleContext = this._popoverStatus.get_style_context();
@@ -383,7 +383,7 @@ var RoomListHeader = GObject.registerClass({
 
     _onRequestedPresenceChanged() {
         let presence = this._account.requested_presence_type;
-        let offline = presence == Tp.ConnectionPresenceType.OFFLINE;
+        let offline = presence === Tp.ConnectionPresenceType.OFFLINE;
         this._popoverConnect.visible = offline;
         this._popoverDisconnect.visible = !offline;
         this._popoverReconnect.visible = !offline;
@@ -549,7 +549,7 @@ class RoomList extends Gtk.ListBox {
         if (!current)
             return;
 
-        let inc = direction == Gtk.DirectionType.UP ? -1 : 1;
+        let inc = direction === Gtk.DirectionType.UP ? -1 : 1;
         let index = this._rowToRoomIndex(current.get_index());
 
         let row = current;
@@ -564,13 +564,13 @@ class RoomList extends Gtk.ListBox {
     }
 
     _moveSelectionFromRow(row) {
-        if (this._roomManager.roomCount == 0)
+        if (this._roomManager.roomCount === 0)
             return;
 
         let toplevel = this.get_toplevel();
         let current = this._roomRows.get(toplevel.active_room.id);
 
-        if (current != row)
+        if (current !== row)
             return;
 
         let selected = this.get_selected_row();
@@ -578,15 +578,15 @@ class RoomList extends Gtk.ListBox {
 
         let index = this._rowToRoomIndex(row.get_index());
         this.select_row(row);
-        this._moveSelection(index == 0
+        this._moveSelection(index === 0
             ? Gtk.DirectionType.DOWN : Gtk.DirectionType.UP);
 
         let newSelected = this.get_selected_row();
-        if (newSelected != row)
+        if (newSelected !== row)
             newActive = newSelected.room;
         toplevel.active_room = newActive;
 
-        if (selected != row)
+        if (selected !== row)
             this.select_row(selected);
     }
 
@@ -651,7 +651,7 @@ class RoomList extends Gtk.ListBox {
         }
 
         let rows = [...this._roomRows.values()];
-        let hasRooms = rows.some(r => r.account == account);
+        let hasRooms = rows.some(r => r.account === account);
         this._placeholders.get(account).visible = !hasRooms;
     }
 
@@ -680,7 +680,7 @@ class RoomList extends Gtk.ListBox {
 
         let oldHeader = row.get_header();
 
-        if (beforeAccount == account) {
+        if (beforeAccount === account) {
             if (oldHeader)
                 oldHeader.destroy();
             return;
@@ -700,15 +700,15 @@ class RoomList extends Gtk.ListBox {
         let hasRooms1 = !this._placeholders.get(account1).visible;
         let hasRooms2 = !this._placeholders.get(account2).visible;
 
-        if (hasRooms1 != hasRooms2)
+        if (hasRooms1 !== hasRooms2)
             return hasRooms1 ? -1 : 1;
 
 
-        if (account1 != account2) {
+        if (account1 !== account2) {
             let displayName1 = account1.display_name;
             let displayName2 = account2.display_name;
 
-            if (displayName1 != displayName2)
+            if (displayName1 !== displayName2)
                 return displayName1.localeCompare(displayName2);
 
             // Different account with the same display name :-(
@@ -727,8 +727,8 @@ class RoomList extends Gtk.ListBox {
         if (!room2)
             return 1;
 
-        if (room1.type != room2.type)
-            return room1.type == Tp.HandleType.ROOM ? -1 : 1;
+        if (room1.type !== room2.type)
+            return room1.type === Tp.HandleType.ROOM ? -1 : 1;
 
         return room1.display_name.localeCompare(room2.display_name);
     }
diff --git a/src/roomManager.js b/src/roomManager.js
index e97177a..a328f1a 100644
--- a/src/roomManager.js
+++ b/src/roomManager.js
@@ -56,7 +56,7 @@ var RoomManager = class {
 
     lookupRoomByName(name, account) {
         return [...this._rooms.values()].find(room => {
-            return room.channel_name == name && room.account == account;
+            return room.channel_name === name && room.account === account;
         });
     }
 
@@ -105,7 +105,7 @@ var RoomManager = class {
         this._settings.get_value('saved-channel-list').deep_unpack().forEach(c => {
             for (let prop in c)
                 c[prop] = c[prop].deep_unpack();
-            if (!accountPath || c.account == accountPath)
+            if (!accountPath || c.account === accountPath)
                 this._ensureRoom(c.account, c.channel, Tp.HandleType.ROOM, 0);
         });
         this.emit('rooms-loaded');
@@ -113,7 +113,7 @@ var RoomManager = class {
 
     _removeRooms(accountPath) {
         for (let room of this._rooms.values()) {
-            if (!accountPath || room.account.object_path == accountPath)
+            if (!accountPath || room.account.object_path === accountPath)
                 this._removeRoom(room);
         }
     }
@@ -121,14 +121,14 @@ var RoomManager = class {
     _findChannelIndex(channels, accountPath, channelName) {
         let matchName = channelName.toLowerCase();
         return channels.findIndex(c => {
-            return c.account.deep_unpack() == accountPath &&
-                   c.channel.deep_unpack().toLowerCase() == matchName;
+            return c.account.deep_unpack() === accountPath &&
+                   c.channel.deep_unpack().toLowerCase() === matchName;
         });
     }
 
     _addSavedChannel(accountPath, channelName) {
         let channels = this._settings.get_value('saved-channel-list').deep_unpack();
-        if (this._findChannelIndex(channels, accountPath, channelName) != -1)
+        if (this._findChannelIndex(channels, accountPath, channelName) !== -1)
             return;
         channels.push({
             account: new GLib.Variant('s', accountPath),
diff --git a/src/roomStack.js b/src/roomStack.js
index fc8aebe..3f97ed6 100644
--- a/src/roomStack.js
+++ b/src/roomStack.js
@@ -116,7 +116,7 @@ class SavePasswordConfirmationBar extends MessageInfoBar {
     vfunc_response(response) {
         super.vfunc_response(response);
 
-        if (response == Gtk.ResponseType.ACCEPT)
+        if (response === Gtk.ResponseType.ACCEPT)
             return;
 
         let app = Gio.Application.get_default();
@@ -147,7 +147,7 @@ class ChannelErrorBar extends MessageInfoBar {
         this.connect('destroy', this._onDestroy.bind(this));
 
         this._identifyError = this._room.connect('notify::channel-error', () => {
-            if (this._room.channel_error == '') {
+            if (this._room.channel_error === '') {
                 this.revealed = false;
                 return;
             }
@@ -242,7 +242,7 @@ class RoomView extends Gtk.Overlay {
         let box = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL });
         this.add(box);
 
-        if (room.type == Tp.HandleType.CONTACT)
+        if (room.type === Tp.HandleType.CONTACT)
             this.add_overlay(new SavePasswordConfirmationBar(room));
 
         this.add_overlay(new ChannelErrorBar(room));
diff --git a/src/serverRoomManager.js b/src/serverRoomManager.js
index 4251c91..25a3ea1 100644
--- a/src/serverRoomManager.js
+++ b/src/serverRoomManager.js
@@ -42,15 +42,15 @@ var ServerRoomManager = class {
     isLoading(account) {
         let roomList = this._roomLists.get(account);
         if (!roomList)
-            return account.connection_status == Tp.ConnectionStatus.CONNECTING;
+            return account.connection_status === Tp.ConnectionStatus.CONNECTING;
         return roomList.list.listing;
     }
 
     _onAccountStatusChanged(mon, account) {
-        if (account.connection_status == Tp.ConnectionStatus.CONNECTING)
+        if (account.connection_status === Tp.ConnectionStatus.CONNECTING)
             this.emit('loading-changed', account);
 
-        if (account.connection_status != Tp.ConnectionStatus.CONNECTED)
+        if (account.connection_status !== Tp.ConnectionStatus.CONNECTED)
             return;
 
         if (this._roomLists.has(account))
@@ -102,7 +102,7 @@ const RoomListColumn = {
 };
 
 function _strBaseEqual(str1, str2) {
-    return str1.localeCompare(str2, {}, { sensitivity: 'base' }) == 0;
+    return str1.localeCompare(str2, {}, { sensitivity: 'base' }) === 0;
 }
 
 var ServerRoomList = GObject.registerClass({
@@ -160,7 +160,7 @@ var ServerRoomList = GObject.registerClass({
                 this.get_toplevel().response(Gtk.ResponseType.CANCEL);
         });
         this._filterEntry.connect('activate', () => {
-            if (this._filterEntry.text.trim().length == 0)
+            if (this._filterEntry.text.trim().length === 0)
                 return;
 
             let [selected, model_, iter] = this._list.get_selection().get_selected();
@@ -175,7 +175,7 @@ var ServerRoomList = GObject.registerClass({
         this._toggleRenderer.connect('toggled', (cell, pathStr) => {
             // For pointer devices, ::row-activated is emitted as well
             let dev = Gtk.get_current_event_device();
-            if (dev && dev.input_source == Gdk.InputSource.KEYBOARD)
+            if (dev && dev.input_source === Gdk.InputSource.KEYBOARD)
                 this._toggleChecked(Gtk.TreePath.new_from_string(pathStr));
         });
 
@@ -215,7 +215,7 @@ var ServerRoomList = GObject.registerClass({
     }
 
     setAccount(account) {
-        if (this._account == account)
+        if (this._account === account)
             return;
 
         this._account = account;
@@ -232,12 +232,12 @@ var ServerRoomList = GObject.registerClass({
     _isCustomRoomItem(iter) {
         let path = this._store.get_path(iter);
         let customPath = this._store.get_path(this._customRoomItem);
-        return path.compare(customPath) == 0;
+        return path.compare(customPath) === 0;
     }
 
     _updateCustomRoomName() {
         let newName = this._filterEntry.text.trim();
-        if (newName.search(/\s/) != -1)
+        if (newName.search(/\s/) !== -1)
             newName = '';
 
         if (newName) {
@@ -258,7 +258,7 @@ var ServerRoomList = GObject.registerClass({
     }
 
     _updateSelection() {
-        if (this._filterEntry.text.trim().length == 0)
+        if (this._filterEntry.text.trim().length === 0)
             return;
 
         let { model } = this._list;
@@ -280,7 +280,7 @@ var ServerRoomList = GObject.registerClass({
     }
 
     _onLoadingChanged(mgr, account) {
-        if (account != this._account)
+        if (account !== this._account)
             return;
 
         this._checkSpinner();
@@ -300,7 +300,7 @@ var ServerRoomList = GObject.registerClass({
         roomInfos.sort((info1, info2) => {
             let count1 = info1.get_members_count(null);
             let count2 = info2.get_members_count(null);
-            if (count1 != count2)
+            if (count1 !== count2)
                 return count2 - count1;
             return info1.get_name().localeCompare(info2.get_name());
         });
@@ -320,7 +320,7 @@ var ServerRoomList = GObject.registerClass({
                 let roomInfo = this._pendingInfos.shift();
 
                 let name = roomInfo.get_name();
-                if (name[0] == '#')
+                if (name[0] === '#')
                     name = name.substr(1, name.length);
 
                 if (_strBaseEqual(name, customName)) {
diff --git a/src/tabCompletion.js b/src/tabCompletion.js
index e0d4e23..f4011f3 100644
--- a/src/tabCompletion.js
+++ b/src/tabCompletion.js
@@ -125,8 +125,8 @@ var TabCompletion = class {
     _onKeyPress(w, event) {
         let [, keyval] = event.get_keyval();
 
-        if (this._key.length == 0) {
-            if (keyval == Gdk.KEY_Tab) {
+        if (this._key.length === 0) {
+            if (keyval === Gdk.KEY_Tab) {
                 this._start();
                 return Gdk.EVENT_STOP;
             }
@@ -147,15 +147,15 @@ var TabCompletion = class {
             return Gdk.EVENT_STOP;
         }
 
-        if (Gdk.keyval_to_unicode(keyval) != 0) {
+        if (Gdk.keyval_to_unicode(keyval) !== 0) {
             let popupShown = this._popup.visible;
             this._stop();
             // eat keys that would active the entry
             // when showing the popup
             return popupShown &&
-                   (keyval == Gdk.KEY_Return ||
-                    keyval == Gdk.KEY_KP_Enter ||
-                    keyval == Gdk.KEY_ISO_Enter);
+                   (keyval === Gdk.KEY_Return ||
+                    keyval === Gdk.KEY_KP_Enter ||
+                    keyval === Gdk.KEY_ISO_Enter);
         }
         return Gdk.EVENT_PROPAGATE;
     }
@@ -165,7 +165,7 @@ var TabCompletion = class {
 
         if (this._isCommand)
             return `${row._text} `;
-        if (this._startPos == 0 || this._isChained)
+        if (this._startPos === 0 || this._isChained)
             return `${row._text}: `;
         return row._text;
     }
@@ -176,7 +176,7 @@ var TabCompletion = class {
     }
 
     _filter(row) {
-        if (this._key.length == 0)
+        if (this._key.length === 0)
             return false;
         return row._casefoldedText.startsWith(this._key);
     }
@@ -206,12 +206,12 @@ var TabCompletion = class {
 
         this._isCommand = this._key.startsWith('/');
 
-        if (this._startPos == 0)
+        if (this._startPos === 0)
             this._endPos = -1;
 
         // Chain completions if the current completion directly follows a previous one,
         // except when one of them was for an IRC command
-        let previousCompletion = this._endPos == this._startPos;
+        let previousCompletion = this._endPos === this._startPos;
         this._isChained = previousCompletion && !this._isCommand && !this._previousWasCommand;
 
         this._list.invalidate_filter();
@@ -219,7 +219,7 @@ var TabCompletion = class {
         let visibleRows = this._list.get_children().filter(c => c.get_child_visible());
         let nVisibleRows = visibleRows.length;
 
-        if (nVisibleRows == 0)
+        if (nVisibleRows === 0)
             return;
 
         if (this._isChained)
@@ -234,7 +234,7 @@ var TabCompletion = class {
     _onKeynavFailed(w, dir) {
         if (this._inHandler)
             return Gdk.EVENT_PROPAGATE;
-        let count = dir == Gtk.DirectionType.DOWN ? -1 : 1;
+        let count = dir === Gtk.DirectionType.DOWN ? -1 : 1;
         this._inHandler = true;
         this._moveSelection(Gtk.MovementStep.BUFFER_ENDS, count);
         this._inHandler = false;
@@ -248,7 +248,7 @@ var TabCompletion = class {
     }
 
     _stop() {
-        if (this._key.length == 0)
+        if (this._key.length === 0)
             return;
 
         this._popup.hide();
@@ -260,7 +260,7 @@ var TabCompletion = class {
     }
 
     _cancel() {
-        if (this._key.length == 0)
+        if (this._key.length === 0)
             return;
         if (this._isChained)
             this._setPreviousCompletionChained(false);
diff --git a/src/telepathyClient.js b/src/telepathyClient.js
index 2e40de9..7731b4f 100644
--- a/src/telepathyClient.js
+++ b/src/telepathyClient.js
@@ -154,7 +154,7 @@ class TelepathyClient extends Tp.BaseClient {
             Gio.DBusSignalFlags.MATCH_ARG0_NAMESPACE,
             (_conn, _sender, _path, _iface, _signal, params) => {
                 let [name_, oldOwner_, newOwner] = params.deep_unpack();
-                this._shellHandlesPrivateChats = newOwner != '';
+                this._shellHandlesPrivateChats = newOwner !== '';
             });
 
         conn.call(
@@ -258,7 +258,7 @@ class TelepathyClient extends Tp.BaseClient {
     }
 
     _onAccountStatusChanged(mon, account) {
-        if (account.connection_status != Tp.ConnectionStatus.CONNECTED)
+        if (account.connection_status !== Tp.ConnectionStatus.CONNECTED)
             return;
 
         Utils.lookupIdentifyPassword(account, password => {
@@ -296,7 +296,7 @@ class TelepathyClient extends Tp.BaseClient {
 
     _connectRooms(account) {
         this._roomManager.rooms.forEach(room => {
-            if (!account || room.account == account)
+            if (!account || room.account === account)
                 this._connectRoom(room);
         });
     }
@@ -362,7 +362,7 @@ class TelepathyClient extends Tp.BaseClient {
                 let activeNick = room.channel.connection.self_contact.alias;
                 // Omit username parameter when it matches the default, to
                 // support NickServ bots that don't support the parameter at all
-                if (!alwaysSendUsername && activeNick == username)
+                if (!alwaysSendUsername && activeNick === username)
                     username = null;
                 room.send_identify_message_async(command, username, password, (r, res) => {
                     try {
@@ -492,12 +492,12 @@ class TelepathyClient extends Tp.BaseClient {
     _saveIdentifySettings(account, data) {
         let { settings } = account;
 
-        if (data.botname == 'NickServ')
+        if (data.botname === 'NickServ')
             settings.reset('identify-botname');
         else
             settings.set_string('identify-botname', data.botname);
 
-        if (data.command == 'identify')
+        if (data.command === 'identify')
             settings.reset('identify-command');
         else
             settings.set_string('identify-command', data.command);
@@ -524,11 +524,11 @@ class TelepathyClient extends Tp.BaseClient {
 
     _isAuthChannel(channel) {
         let channelType = channel.get_channel_type();
-        return channelType == Tp.IFACE_CHANNEL_TYPE_SERVER_AUTHENTICATION;
+        return channelType === Tp.IFACE_CHANNEL_TYPE_SERVER_AUTHENTICATION;
     }
 
     _processRequest(context, connection, channels, processChannel) {
-        if (connection.protocol_name != 'irc') {
+        if (connection.protocol_name !== 'irc') {
             let message = 'Not implementing non-IRC protocols';
             context.fail(new Tp.Error({
                 code: Tp.Error.NOT_IMPLEMENTED,
@@ -615,7 +615,7 @@ class TelepathyClient extends Tp.BaseClient {
         ];
 
         let actionName, paramFormat;
-        if (room.type == Tp.HandleType.ROOM) {
+        if (room.type === Tp.HandleType.ROOM) {
             actionName = 'app.join-room';
             paramFormat = '(ssu)';
         } else {
@@ -636,7 +636,7 @@ class TelepathyClient extends Tp.BaseClient {
             botname: room.channel.target_contact.alias,
             command,
             username: username || room.channel.connection.self_contact.alias,
-            usernameSupported: username != null,
+            usernameSupported: username !== null,
             password,
         };
         this._pendingBotPasswords.set(accountPath, data);
@@ -673,12 +673,12 @@ class TelepathyClient extends Tp.BaseClient {
         if (!room.should_highlight_message(nick, text))
             return;
 
-        if (this._shellHandlesPrivateChats && room.type == Tp.HandleType.CONTACT)
+        if (this._shellHandlesPrivateChats && room.type === Tp.HandleType.CONTACT)
             return;
 
         let summary;
 
-        if (room.type == Tp.HandleType.CONTACT) {
+        if (room.type === Tp.HandleType.CONTACT) {
             summary = '%s'.format(nick);
         } else {
             /* Translators: This is the title of the notification announcing a newly
diff --git a/src/userList.js b/src/userList.js
index 4d08f05..d439f8f 100644
--- a/src/userList.js
+++ b/src/userList.js
@@ -85,7 +85,7 @@ class UserListPopover extends Gtk.Popover {
             return;
 
         let room = this.get_toplevel().active_room;
-        if (!room || room.type != Tp.HandleType.ROOM)
+        if (!room || room.type !== Tp.HandleType.ROOM)
             return;
 
         this._userList = new UserList(room);
@@ -101,7 +101,7 @@ class UserListPopover extends Gtk.Popover {
         if (!this._userList)
             return;
 
-        let reveal = this._entry.text != '' ||
+        let reveal = this._entry.text !== '' ||
                      this._userList.numRows > FILTER_ENTRY_THRESHOLD;
         this._revealer.reveal_child = reveal;
     }
@@ -163,7 +163,7 @@ var UserDetails = GObject.registerClass({
 
     // eslint-disable-next-line camelcase
     set notifications_enabled(value) {
-        if (this._notificationsEnabled == value)
+        if (this._notificationsEnabled === value)
             return;
 
         this._notificationsEnabled = value;
@@ -174,7 +174,7 @@ var UserDetails = GObject.registerClass({
     }
 
     set user(user) {
-        if (this._user == user)
+        if (this._user === user)
             return;
 
         if (this._user)
@@ -193,8 +193,8 @@ var UserDetails = GObject.registerClass({
             this._expand();
 
         this._updateButtonVisibility();
-        this._notificationLabel.visible = this._user == null;
-        this._lastLabel.visible = this._user != null;
+        this._notificationLabel.visible = this._user === null;
+        this._lastLabel.visible = this._user !== null;
     }
 
     set nickname(nickname) {
@@ -212,7 +212,7 @@ var UserDetails = GObject.registerClass({
     }
 
     set expanded(v) {
-        if (v == this._expanded)
+        if (v === this._expanded)
             return;
 
         this._expanded = v;
@@ -297,9 +297,9 @@ var UserDetails = GObject.registerClass({
         let fn, last;
         let info = this._user.get_contact_info();
         for (let i = 0; i < info.length; i++) {
-            if (info[i].field_name == 'fn')
+            if (info[i].field_name === 'fn')
                 [fn] = info[i].field_value;
-            else if (info[i].field_name == 'x-idle-time')
+            else if (info[i].field_name === 'x-idle-time')
                 [last] = info[i].field_value;
         }
 
@@ -345,7 +345,7 @@ var UserDetails = GObject.registerClass({
             return;
         }
 
-        if (this._user == this._user.connection.self_contact) {
+        if (this._user === this._user.connection.self_contact) {
             this._messageButton.visible = false;
             this._messageButton.sensitive = true;
         } else {
@@ -392,10 +392,10 @@ var UserPopover = GObject.registerClass({
     }
 
     set nickname(nickname) {
-        if (this._nickname == nickname)
+        if (this._nickname === nickname)
             return;
 
-        if (nickname == null)
+        if (nickname === null)
             return;
 
         this._nickname = nickname;
@@ -409,7 +409,7 @@ var UserPopover = GObject.registerClass({
     }
 
     _setBasenick(basenick) {
-        if (this._basenick == basenick)
+        if (this._basenick === basenick)
             return;
 
         this._basenick = basenick;
@@ -448,15 +448,15 @@ var UserPopover = GObject.registerClass({
             this._nickname, this._room);
 
         let label;
-        if (status != roomStatus)
+        if (status !== roomStatus)
             label = _('Available in another room.');
-        else if (status == Tp.ConnectionPresenceType.AVAILABLE)
+        else if (status === Tp.ConnectionPresenceType.AVAILABLE)
             label = _('Online');
         else
             label = _('Offline');
         this._statusLabel.label = label;
 
-        this._nickLabel.sensitive = status == Tp.ConnectionPresenceType.AVAILABLE;
+        this._nickLabel.sensitive = status === Tp.ConnectionPresenceType.AVAILABLE;
     }
 
     _updateDetailsContact() {
@@ -718,7 +718,7 @@ class UserList extends Gtk.ScrolledWindow {
     }
 
     _setActiveRow(row) {
-        if (this._activeRow && this._activeRow != row)
+        if (this._activeRow && this._activeRow !== row)
             this._activeRow.expand = false;
         this._activeRow = row;
     }
diff --git a/src/userTracker.js b/src/userTracker.js
index adf10ef..da82ad8 100644
--- a/src/userTracker.js
+++ b/src/userTracker.js
@@ -91,7 +91,7 @@ const UserTracker = GObject.registerClass({
     }
 
     _onRoomAdded(roomManager, room) {
-        if (room.account != this._account)
+        if (room.account !== this._account)
             return;
 
         this._ensureRoomMappingForRoom(room);
@@ -141,7 +141,7 @@ const UserTracker = GObject.registerClass({
         }
 
         let members;
-        if (room.type == Tp.HandleType.ROOM)
+        if (room.type === Tp.HandleType.ROOM)
             members = room.channel.group_dup_members_contacts();
         else
             members = [room.channel.connection.self_contact, room.channel.target_contact];
@@ -184,7 +184,7 @@ const UserTracker = GObject.registerClass({
         let baseNick = Polari.util_get_basenick(member.alias);
         let roomHandlers = this._getRoomHandlers(room);
         for (let [, info] of roomHandlers) {
-            if (!info.nickName || info.nickName == baseNick)
+            if (!info.nickName || info.nickName === baseNick)
                 info.handler(baseNick, status);
         }
     }
@@ -201,16 +201,16 @@ const UserTracker = GObject.registerClass({
         let status = Tp.ConnectionPresenceType.AVAILABLE;
 
         let roomMap = this._getRoomContacts(room);
-        if (this._pushMember(roomMap, baseNick, member) == 1)
+        if (this._pushMember(roomMap, baseNick, member) === 1)
             this._runHandlers(room, member, status);
 
         // HACK: Telepathy doesn't notify on member changes for private chats,
         //       so approximate the online status in this case by not adding
         //       the contact to the global map, and removing it from the room
         //       map when the global count drops to 0 (see _untrackMember)
-        if (room.type == Tp.HandleType.ROOM) {
+        if (room.type === Tp.HandleType.ROOM) {
             let map = this._baseNickContacts;
-            if (this._pushMember(map, baseNick, member) == 1) {
+            if (this._pushMember(map, baseNick, member) === 1) {
                 this.emit(`status-changed::${baseNick}`, baseNick, status);
 
                 if (this._shouldNotifyNick(member.alias))
@@ -238,13 +238,13 @@ const UserTracker = GObject.registerClass({
 
         let roomMap = this._getRoomContacts(room);
         let [found, nContacts] = this._popMember(roomMap, baseNick, member);
-        if (found && nContacts == 0)
+        if (found && nContacts === 0)
             this._runHandlers(room, member, status);
 
         let map = this._baseNickContacts;
         [found, nContacts] = this._popMember(map, baseNick, member);
         if (found) {
-            if (nContacts == 0) {
+            if (nContacts === 0) {
                 this.emit(`status-changed::${baseNick}`, member.alias, status);
                 this._setNotifyActionEnabled(member.alias, true);
 
@@ -264,7 +264,7 @@ const UserTracker = GObject.registerClass({
         let baseNick = Polari.util_get_basenick(nickName);
 
         let contacts = this._baseNickContacts.get(baseNick) || [];
-        return contacts.length == 0
+        return contacts.length === 0
             ? Tp.ConnectionPresenceType.OFFLINE
             : Tp.ConnectionPresenceType.AVAILABLE;
     }
@@ -275,7 +275,7 @@ const UserTracker = GObject.registerClass({
         this._ensureRoomMappingForRoom(room);
 
         let contacts = this._getRoomContacts(room).get(baseNick) || [];
-        return contacts.length == 0
+        return contacts.length === 0
             ? Tp.ConnectionPresenceType.OFFLINE
             : Tp.ConnectionPresenceType.AVAILABLE;
     }
@@ -287,7 +287,7 @@ const UserTracker = GObject.registerClass({
         if (!contacts.length)
             return null;
 
-        return contacts.find(c => c.alias == nickName) || contacts[0];
+        return contacts.find(c => c.alias === nickName) || contacts[0];
     }
 
     watchRoomStatus(room, baseNick, callback) {
@@ -346,7 +346,7 @@ const UserTracker = GObject.registerClass({
 
         if (!this._app.lookup_action(name)) {
             let status = this.getNickStatus(nickName);
-            let enabled = status == Tp.ConnectionPresenceType.OFFLINE;
+            let enabled = status === Tp.ConnectionPresenceType.OFFLINE;
 
             let state = new GLib.Variant('b', false);
             let action = new Gio.SimpleAction({
diff --git a/src/utils.js b/src/utils.js
index b17baa9..db5f52e 100644
--- a/src/utils.js
+++ b/src/utils.js
@@ -95,7 +95,7 @@ function isFlatpakSandbox() {
 
 function getTpEventTime() {
     let time = Gtk.get_current_event_time();
-    if (time == 0)
+    if (time === 0)
         return GLib.MAXUINT32;
     return Tp.user_action_time_from_x11(time);
 }
@@ -192,9 +192,9 @@ function updateTerms(terms, str) {
     let normalized = str.trim().toLowerCase().replace(/\s+/g, ' ');
     let newTerms = normalized ? normalized.split(' ') : [];
 
-    let changed = newTerms.length != terms.length;
+    let changed = newTerms.length !== terms.length;
     for (let i = 0; i < terms.length && !changed; i++)
-        changed = terms[i] != newTerms[i];
+        changed = terms[i] !== newTerms[i];
 
     if (changed)
         terms.splice(0, terms.length, ...newTerms);
@@ -207,7 +207,7 @@ function _getGpasteExpire(callback) {
     let paramUrl = `${GPASTE_BASEURL}api/json/parameter/expire`;
     let message = Soup.form_request_new_from_hash('GET', paramUrl, {});
     session.queue_message(message, () => {
-        if (message.status_code != Soup.KnownStatusCode.OK) {
+        if (message.status_code !== Soup.KnownStatusCode.OK) {
             callback(false);
             return;
         }
@@ -232,7 +232,7 @@ function _getGpasteExpire(callback) {
 }
 
 function gpaste(text, title, callback) {
-    if (_gpasteExpire == undefined) {
+    if (_gpasteExpire === undefined) {
         _getGpasteExpire(success => {
             if (success)
                 gpaste(text, title, callback);
@@ -256,7 +256,7 @@ function gpaste(text, title, callback) {
     let createUrl = `${GPASTE_BASEURL}api/json/create`;
     let message = Soup.form_request_new_from_hash('POST', createUrl, params);
     session.queue_message(message, () => {
-        if (message.status_code != Soup.KnownStatusCode.OK) {
+        if (message.status_code !== Soup.KnownStatusCode.OK) {
             callback(null);
             return;
         }
@@ -293,7 +293,7 @@ function imgurPaste(pixbuf, title, callback) {
     let requestHeaders = message.request_headers;
     requestHeaders.append('Authorization', `Client-ID ${IMGUR_CLIENT_ID}`);
     session.queue_message(message, () => {
-        if (message.status_code != Soup.KnownStatusCode.OK) {
+        if (message.status_code !== Soup.KnownStatusCode.OK) {
             callback(null);
             return;
         }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]