Skip to content

Commit

Permalink
Fix unsafe "instanceof" negations
Browse files Browse the repository at this point in the history
  • Loading branch information
janekptacijarabaci committed May 2, 2018
1 parent 61de1c8 commit 3442ae7
Show file tree
Hide file tree
Showing 17 changed files with 19 additions and 28 deletions.
3 changes: 3 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ module.exports = {
],
"rules": {
"mozilla/import-globals": "warn",

// No (!foo in bar) or (!object instanceof Class)
"no-unsafe-negation": "error",
},
"env": {
"es6": true
Expand Down
2 changes: 1 addition & 1 deletion devtools/server/child.js
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ try {
try {
m = require(module);

if (!setupChild in m) {
if (!(setupChild in m)) {
dumpn(`ERROR: module '${module}' does not export '${setupChild}'`);
return false;
}
Expand Down
2 changes: 1 addition & 1 deletion devtools/server/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -1040,7 +1040,7 @@ var DebuggerServer = {
try {
m = require(module);

if (!setupParent in m) {
if (!(setupParent in m)) {
dumpn(`ERROR: module '${module}' does not export '${setupParent}'`);
return false;
}
Expand Down
2 changes: 1 addition & 1 deletion mobile/android/chrome/content/InputWidgetHelper.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ var InputWidgetHelper = {
},

hasInputWidget: function(aElement) {
if (!aElement instanceof HTMLInputElement)
if (!(aElement instanceof HTMLInputElement))
return false;

let type = aElement.getAttribute('type');
Expand Down
3 changes: 0 additions & 3 deletions security/manager/.eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -131,9 +131,6 @@ module.exports = { // eslint-disable-line no-undef
// No reassigning native JS objects
"no-native-reassign": "error",

// No (!foo in bar)
"no-negated-in-lhs": "error",

// Nested ternary statements are confusing
"no-nested-ternary": "error",

Expand Down
4 changes: 2 additions & 2 deletions services/fxaccounts/FxAccountsProfileClient.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ this.FxAccountsProfileClient.prototype = {
try {
return (yield this._rawRequest(path, method, token));
} catch (ex) {
if (!ex instanceof FxAccountsProfileClientError || ex.code != 401) {
if (!(ex instanceof FxAccountsProfileClientError) || ex.code != 401) {
throw ex;
}
// If this object was instantiated with a token then we don't refresh it.
Expand All @@ -105,7 +105,7 @@ this.FxAccountsProfileClient.prototype = {
try {
return (yield this._rawRequest(path, method, token));
} catch (ex) {
if (!ex instanceof FxAccountsProfileClientError || ex.code != 401) {
if (!(ex instanceof FxAccountsProfileClientError) || ex.code != 401) {
throw ex;
}
log.info("Retry fetching the profile still returned a 401 - revoking our token and failing");
Expand Down
2 changes: 1 addition & 1 deletion services/fxaccounts/FxAccountsStorage.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -403,7 +403,7 @@ this.FxAccountsStorageManager.prototype = {
try {
yield this.secureStorage.set(this.cachedPlain.uid, toWriteSecure);
} catch (ex) {
if (!ex instanceof this.secureStorage.STORAGE_LOCKED) {
if (!(ex instanceof this.secureStorage.STORAGE_LOCKED)) {
throw ex;
}
// This shouldn't be possible as once it is unlocked it can't be
Expand Down
4 changes: 2 additions & 2 deletions services/sync/modules/record.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ WBORecord.prototype = {
// Get thyself from your URI, then deserialize.
// Set thine 'response' field.
fetch: function fetch(resource) {
if (!resource instanceof Resource) {
if (!(resource instanceof Resource)) {
throw new Error("First argument must be a Resource instance.");
}

Expand All @@ -56,7 +56,7 @@ WBORecord.prototype = {
},

upload: function upload(resource) {
if (!resource instanceof Resource) {
if (!(resource instanceof Resource)) {
throw new Error("First argument must be a Resource instance.");
}

Expand Down
2 changes: 1 addition & 1 deletion services/sync/modules/service.js
Original file line number Diff line number Diff line change
Expand Up @@ -455,7 +455,7 @@ Sync11Service.prototype = {
this.clientsEngine = new ClientEngine(this);

for (let name of engines) {
if (!name in ENGINE_MODULES) {
if (!(name in ENGINE_MODULES)) {
this._log.info("Do not know about engine: " + name);
continue;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -978,7 +978,7 @@ function browserAdditions (controller) {
}, "Timeout", timeout, aInterval);
}
catch (ex) {
if (!ex instanceof errors.TimeoutError) {
if (!(ex instanceof errors.TimeoutError)) {
throw ex;
}
timed_out = true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -659,7 +659,7 @@ Expect.prototype.waitFor = function Expect_waitFor(aCallback, aMessage, aTimeout
Assert.prototype.waitFor.apply(this, arguments);
}
catch (ex) {
if (!ex instanceof errors.AssertionError) {
if (!(ex instanceof errors.AssertionError)) {
throw ex;
}
message = ex.message;
Expand Down
3 changes: 0 additions & 3 deletions toolkit/.eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -111,9 +111,6 @@ module.exports = {
// No reassigning native JS objects
"no-native-reassign": "error",

// No (!foo in bar)
"no-negated-in-lhs": "error",

// Nested ternary statements are confusing
"no-nested-ternary": "error",

Expand Down
4 changes: 2 additions & 2 deletions toolkit/components/osfile/modules/osfile_unix_front.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -838,7 +838,7 @@
* implementation.
*/
File.DirectoryIterator.Entry.toMsg = function toMsg(value) {
if (!value instanceof File.DirectoryIterator.Entry) {
if (!(value instanceof File.DirectoryIterator.Entry)) {
throw new TypeError("parameter of " +
"File.DirectoryIterator.Entry.toMsg must be a " +
"File.DirectoryIterator.Entry");
Expand Down Expand Up @@ -905,7 +905,7 @@
* is asymmetric and returns an object with a different implementation.
*/
File.Info.toMsg = function toMsg(stat) {
if (!stat instanceof File.Info) {
if (!(stat instanceof File.Info)) {
throw new TypeError("parameter of File.Info.toMsg must be a File.Info");
}
let serialized = {};
Expand Down
4 changes: 2 additions & 2 deletions toolkit/components/osfile/modules/osfile_win_front.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -909,7 +909,7 @@
* implementation.
*/
File.DirectoryIterator.Entry.toMsg = function toMsg(value) {
if (!value instanceof File.DirectoryIterator.Entry) {
if (!(value instanceof File.DirectoryIterator.Entry)) {
throw new TypeError("parameter of " +
"File.DirectoryIterator.Entry.toMsg must be a " +
"File.DirectoryIterator.Entry");
Expand Down Expand Up @@ -958,7 +958,7 @@
* is asymmetric and returns an object with a different implementation.
*/
File.Info.toMsg = function toMsg(stat) {
if (!stat instanceof File.Info) {
if (!(stat instanceof File.Info)) {
throw new TypeError("parameter of File.Info.toMsg must be a File.Info");
}
let serialized = {};
Expand Down
3 changes: 0 additions & 3 deletions toolkit/components/reader/.eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -109,9 +109,6 @@ module.exports = {
// No reassigning native JS objects
"no-native-reassign": "error",

// No (!foo in bar)
"no-negated-in-lhs": "error",

// Nested ternary statements are confusing
"no-nested-ternary": "error",

Expand Down
3 changes: 0 additions & 3 deletions toolkit/components/webextensions/.eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -173,9 +173,6 @@ module.exports = { // eslint-disable-line no-undef
// No reassigning native JS objects
"no-native-reassign": "error",

// No (!foo in bar)
"no-negated-in-lhs": "error",

// Nested ternary statements are confusing
"no-nested-ternary": "error",

Expand Down
2 changes: 1 addition & 1 deletion toolkit/modules/Sqlite.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -995,7 +995,7 @@ function cloneStorageConnection(options) {
if (!source) {
throw new TypeError("connection not specified in clone options.");
}
if (!source instanceof Ci.mozIStorageAsyncConnection) {
if (!(source instanceof Ci.mozIStorageAsyncConnection)) {
throw new TypeError("Connection must be a valid Storage connection.");
}

Expand Down

0 comments on commit 3442ae7

Please sign in to comment.