Page MenuHomeWildfire Games

Fix some style issues noticed by our linter
ClosedPublic

Authored by Imarok on Jun 1 2017, 4:51 PM.

Details

Summary

Fixes most issues noticed by our linter in js files of most parts of binaries/data/mods/public/gui/. Especially not fixing session/ and not fixing missing default cases for switch case (Is this really needed?).

Test Plan

Test everything works as before.

Diff Detail

Repository
rP 0 A.D. Public Repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
Vulcan added a comment.Jul 7 2017, 6:27 PM

Build is green

Updating workspaces.
Build (release)...
Build (debug)...
Running release tests...
Running cxxtest tests (306 tests)..................................................................................................................................................................................................................................................................................................................OK!
Running debug tests...
Running cxxtest tests (306 tests)..................................................................................................................................................................................................................................................................................................................OK!
Checking XML files...

http://jw:8080/job/phabricator/1714/ for more details.

Vulcan added a comment.Jul 7 2017, 6:29 PM
Executing section Default...
Executing section Source...
Executing section JS...

binaries/data/mods/public/gui/credits/credits.js
|  42| »   »   button.onPress·=·(i·=>·function()·{selectPanel(i);})(i);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/gui/credits/credits.js
|  42| »   »   button.onPress·=·(i·=>·function()·{selectPanel(i);})(i);
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/common/color.js
|  85| »   »   switch·(max)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/common/color.js
| 131| »   if·(s·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.js
| 151| »   while·(true)
|    | [NORMAL] ESLintBear (no-constant-condition):
|    | Unexpected constant condition.

binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.js
| 190| »   »   »   »   for·(let·guid·in·g_PlayerAssignments)
|    | [MAJOR] JSHintBear:
|    | Let declaration not directly within block.

binaries/data/mods/public/gui/structree/draw.js
| 379| »   »   Engine.GetGUIObjectByName("trainer["·+·t·+·"]_row").size·=·"4·100%-24"·+·"·100%-4·100%";
|    | [NORMAL] ESLintBear (no-useless-concat):
|    | Unexpected string concatenation of literals.

binaries/data/mods/public/gui/structree/draw.js
| 235| »   Engine.GetGUIObjectByName("display_trainers").hidden·=·t·==·0;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection_panels.js
|  60| »   »   »   switch·(data.item)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/selection_panels.js
|  74| »   »   switch·(data.item)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/selection_panels.js
| 346| »   »   »   tooltip·+=·"\n"·+·"[color=\"red\"]"·+·translate(formationInfo.tooltip)·+·"[/color]";
|    | [NORMAL] ESLintBear (no-useless-concat):
|    | Unexpected string concatenation of literals.

binaries/data/mods/public/gui/session/selection_panels.js
| 767| »   »   »   »   »   »   switch·(entity.check)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/selection_panels.js
| 995| »   »   »   »   "[/font]"·+·"·"·+·getEntityNamesFormatted(template),
|    | [NORMAL] ESLintBear (no-useless-concat):
|    | Unexpected string concatenation of literals.

binaries/data/mods/public/gui/session/selection_panels.js
| 283| »   »   if·(!technologyEnabled·||·limits.canBeAddedCount·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection_panels.js
| 441| »   »   »   »   »   "callback":·function(item)·{·lockGate(item.locked);·}
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/selection_panels.js
| 447| »   »   »   »   »   "callback":·function(item)·{·lockGate(item.locked);·}
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/selection_panels.js
| 495| »   »   »   if·(state.pack.progress·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection_panels.js
| 629| »   »   if·(data.i·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection_panels.js
| 671| »   »   »   »   tech·=>·tech·!=·null·&&·!ret.some(
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with 'null'.

binaries/data/mods/public/gui/session/selection_panels.js
| 671| »   »   »   »   tech·=>·tech·!=·null·&&·!ret.some(
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/selection_panels.js
| 684| »   »   »   »   ret·=·ret.concat(filteredTechs.map(tech·=>·({
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/selection_panels.js
| 717| »   »   pair.hidden·=·data.item.tech.pair·==·null;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with 'null'.

binaries/data/mods/public/gui/session/selection_panels.js
| 752| »   »   »   ].map(func·=>·func(template));
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/selection_panels.js
| 798| »   »   »   button.onPress·=·function()·{
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/selection_panels.js
| 807| »   »   »   »   button.onMouseEnter·=·function()·{
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/selection_panels.js
| 810| »   »   »   »   button.onMouseLeave·=·function()·{
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/selection_panels.js
|1027| »   »   if·(!technologyEnabled·||·limits.canBeAddedCount·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection_panels.js
|1133| »   »   »   if·(progress·||·!technologyEnabled·||·limits.canBeAddedCount·==·0·&&
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/functions_utility.js
| 191| »   }·catch·(e)·{
|    | [NORMAL] ESLintBear (no-empty):
|    | Empty block statement.

binaries/data/mods/public/gui/common/functions_utility.js
| 155| »   »   if·(word.toLowerCase().indexOf(lastWord.toLowerCase())·!=·0)
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/civinfo/civinfo.js
|  24| »   return·'[font="sans-bold-'·+·(size·+·6)·+·'"]'·+·str[0]·+·'[/font]'·+·'[font="sans-bold-'·+·size·+·'"]'·+·str.substring(1)·+·'[/font]';
|    | [NORMAL] ESLintBear (no-useless-concat):
|    | Unexpected string concatenation of literals.

binaries/data/mods/public/gui/summary/counters.js
| 229| »   »   »   »   if·(w·==·0·||·w·==·6)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/summary/counters.js
| 239| »   »   »   if·(w·!=·0·&&·w·!=·6)
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/summary/counters.js
| 463| »   »   »   if·(w·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/msgbox/msgbox.js
|  52| »   switch·(captions.length)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/msgbox/msgbox.js
|  45| »   »   if·(i·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/manual/manual.js
|  16| »   »   »   »   openURL(url);
|    | [MAJOR] ESLintBear:
|    | Parsing error: Unexpected token openURL

binaries/data/mods/public/gui/manual/manual.js
|  15| »   »   »   return·function()
|    | [NORMAL] JSHintBear:
|    | 'function closure expressions' is only available in Mozilla JavaScript extensions (use moz option).

binaries/data/mods/public/gui/summary/layout.js
| 283| »   »   if·(rowPlayerObjectWidth·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/options/options.js
| 116| »   »   onUpdate·=·function(key,·keyRenderer,·inverted)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'key' is already declared in the upper scope.

binaries/data/mods/public/gui/options/options.js
| 116| »   »   onUpdate·=·function(key,·keyRenderer,·inverted)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'keyRenderer' is already declared in the upper scope.

binaries/data/mods/public/gui/options/options.js
| 116| »   »

http://jw:8080/job/phabricator_lint/300/ for more details.

bb added a comment.Jul 7 2017, 9:59 PM

Good to avoid input.js, IIRC I have some outdated patch for that somewhere, might need to dig it up in a bit...

binaries/data/mods/public/gui/session/session.js: line 1007, col 130, Missing semicolon.

binaries/data/mods/public/gui/common/tooltips.js: line 287, col 11, Missing semicolon.

binaries/data/mods/public/gui/civinfo/civinfo.js
24 ↗(On Diff #2849)

braces indeed seem a clean approach

binaries/data/mods/public/gui/common/color.js
124 ↗(On Diff #2849)

the whitespaces in these fraction are unnecessary to me.

138 ↗(On Diff #2849)

same here

binaries/data/mods/public/gui/common/functions_utility.js
123 ↗(On Diff #2849)

(not gonna nit-pick about caps and periods, since that is out of scope)

125 ↗(On Diff #2849)

--i will be ugly so correct violation of coding conventions

145 ↗(On Diff #2849)

blame people committing => remove hunk

46 ↗(On Diff #2482)

return Math.sign(+lowerX - +lowerY); ?

binaries/data/mods/public/gui/common/music.js
58 ↗(On Diff #2849)

All those caps should be removed some time, but better put that in a separate diff

134 ↗(On Diff #2849)

let

binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.js
177 ↗(On Diff #2849)

notice break is correct here since we are in a loop

188 ↗(On Diff #2849)

nuke newline while at it

binaries/data/mods/public/gui/locale/locale_advanced.js
85 ↗(On Diff #2849)

arrow function candidate imo

binaries/data/mods/public/gui/session/menu.js
1033 ↗(On Diff #2849)

trailling comma

binaries/data/mods/public/gui/session/selection.js
29 ↗(On Diff #2849)

missing whitespace

binaries/data/mods/public/gui/session/selection_panels.js
262 ↗(On Diff #2849)

arrow function not worth here I guess

447 ↗(On Diff #2849)

perhaps arrow function, maybe not

more of them down, idc what happens with them as long as it is consistent.

binaries/data/mods/public/gui/session/unit_commands.js
189 ↗(On Diff #2849)

bad style here, an assignment inside and if. declare state in the loop as let

binaries/data/mods/public/gui/summary/summary.js
152 ↗(On Diff #2482)

not that that really matters, since the returned value is never used, perhaps better style though to not return it.

(In some cases one could just fix the linter.)

binaries/data/mods/public/gui/common/functions_utility.js
125 ↗(On Diff #2849)

At least I consider i++ (or i--) only a violation in case we don't care about the return value, so this isn't a violation, but cares about the return value.

binaries/data/mods/public/gui/credits/credits.js
73 ↗(On Diff #2849)

I'd keep those parens. Mostly because it makes future modifications easier to grasp, and because it isn't just some sequence of if and for with only a single statement within.

binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.js
177 ↗(On Diff #2849)

We are in a switch :P

binaries/data/mods/public/gui/lobby/lobby.js
591 ↗(On Diff #2849)

Can we keep the specific case and make the default case emit a warning?

Or just nuke the linter message.

binaries/data/mods/public/gui/session/unit_commands.js
189 ↗(On Diff #2849)

It is within () to silence warnings, though maybe I am somewhat used to languages where an assignment in a condition isn't uncommon.

binaries/data/mods/public/gui/summary/summary.js
152 ↗(On Diff #2482)

We could still keep it on a single line. Or at least put the opening { on the same line as the =>.

Imarok added a comment.Jul 8 2017, 2:45 PM
In D585#28636, @leper wrote:

(In some cases one could just fix the linter.)

Sure, do you have any cases?
(Be aware, that I already proposed some changes to the linter used by Vulcan in D213)

Sure, do you have any cases?

Removing braces when the enclosed thing is some control flow construct that has multiple distinct code paths (as opposed to a an if(foo){bar;} else ;) seems strange as it doesn't make the code nicer to read.
Also the additional case thing (which falls through into the default case) seems like it makes the code and the supported values easier to grasp, though in that case I'd go with listing the possibly few explicit cases and not having a default (or having a default that warns.
(Apart from that the changes you posted in a few other diffs/forum posts seem useful.)

(Be aware, that I already proposed some changes to the linter used by Vulcan in D213)

Would be nice if more than one person could actually fix those things. A linter that is using rules many people disagree with isn't that helpful, thanks for working on this.

binaries/data/mods/public/gui/session/selection_panels.js
500 ↗(On Diff #2849)

I'm not sure if this change helps with readability, especially not if at some point in the future someone comes along and manages to butcher the indentation.

Imarok marked 10 inline comments as done.Jul 18 2017, 1:05 AM
Imarok added inline comments.
binaries/data/mods/public/gui/session/menu.js
1033 ↗(On Diff #2849)

afaik we have no clear line regarding trailing commas.

Imarok updated this revision to Diff 2925.Jul 18 2017, 1:05 AM

Add some more fixes. FIx inline comments.

Build is green

Updating workspaces.
Build (release)...
Build (debug)...
Running release tests...
Running cxxtest tests (306 tests)..................................................................................................................................................................................................................................................................................................................OK!
Running debug tests...
Running cxxtest tests (306 tests)..................................................................................................................................................................................................................................................................................................................OK!
Checking XML files...

http://jw:8080/job/phabricator/1752/ for more details.

Executing section Default...
Executing section Source...
Executing section JS...

binaries/data/mods/public/gui/manual/manual.js
|  16| »   »   »   »   openURL(url);
|    | [MAJOR] ESLintBear:
|    | Parsing error: Unexpected token openURL

binaries/data/mods/public/gui/manual/manual.js
|  15| »   »   »   return·function()
|    | [NORMAL] JSHintBear:
|    | 'function closure expressions' is only available in Mozilla JavaScript extensions (use moz option).

binaries/data/mods/public/gui/options/options.js
| 116| »   »   onUpdate·=·function(key,·keyRenderer,·inverted)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'key' is already declared in the upper scope.

binaries/data/mods/public/gui/options/options.js
| 116| »   »   onUpdate·=·function(key,·keyRenderer,·inverted)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'keyRenderer' is already declared in the upper scope.

binaries/data/mods/public/gui/options/options.js
| 116| »   »   onUpdate·=·function(key,·keyRenderer,·inverted)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'inverted' is already declared in the upper scope.

binaries/data/mods/public/gui/options/options.js
| 160| »   »   onUpdate·=·function(key,·callbackFunction,·minvalue,·maxvalue)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'key' is already declared in the upper scope.

binaries/data/mods/public/gui/options/options.js
| 160| »   »   onUpdate·=·function(key,·callbackFunction,·minvalue,·maxvalue)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'callbackFunction' is already declared in the upper scope.

binaries/data/mods/public/gui/options/options.js
| 160| »   »   onUpdate·=·function(key,·callbackFunction,·minvalue,·maxvalue)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'minvalue' is already declared in the upper scope.

binaries/data/mods/public/gui/options/options.js
| 160| »   »   onUpdate·=·function(key,·callbackFunction,·minvalue,·maxvalue)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'maxvalue' is already declared in the upper scope.

binaries/data/mods/public/gui/options/options.js
| 219| »   »   onUpdate·=·function(key,·functionBody,·minval,·maxval)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'key' is already declared in the upper scope.

binaries/data/mods/public/gui/options/options.js
| 219| »   »   onUpdate·=·function(key,·functionBody,·minval,·maxval)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'functionBody' is already declared in the upper scope.

binaries/data/mods/public/gui/options/options.js
| 219| »   »   onUpdate·=·function(key,·functionBody,·minval,·maxval)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'minval' is already declared in the upper scope.

binaries/data/mods/public/gui/options/options.js
| 219| »   »   onUpdate·=·function(key,·functionBody,·minval,·maxval)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'maxval' is already declared in the upper scope.

binaries/data/mods/public/gui/options/options.js
| 264| »   »   onUpdate·=·function(key)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'key' is already declared in the upper scope.

binaries/data/mods/public/gui/options/options.js
| 254| »   »   »   »   control.list·=·option.parameters.list.map(e·=>·translate(e.label));
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/pregame/mainmenu.js
| 186| »   if·(submenu.hidden·==·false)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with 'false'.

binaries/data/mods/public/gui/summary/counters.js
| 229| »   »   »   »   if·(w·==·0·||·w·==·6)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/summary/counters.js
| 239| »   »   »   if·(w·!=·0·&&·w·!=·6)
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/summary/counters.js
| 463| »   »   »   if·(w·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.
|    | [NORMAL] ESLintBear (no-multi-spaces):
|    | Multiple spaces found before '"status"'.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/gui/lobby/lobby.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/gui/lobby/lobby.js
|  41|  41|  * The playerlist will be assembled using these values.
|  42|  42|  */
|  43|  43| const g_PlayerStatuses = {
|  44|    |-	"available": { "color": "0 219 0",     "status": translate("Online") },
|    |  44|+	"available": { "color": "0 219 0", "status": translate("Online") },
|  45|  45| 	"away":      { "color": "229 76 13",   "status": translate("Away") },
|  46|  46| 	"playing":   { "color": "200 0 0",     "status": translate("Busy") },
|  47|  47| 	"offline":   { "color": "0 0 0",       "status": translate("Offline") },
|    | [NORMAL] ESLintBear (no-multi-spaces):
|    | Multiple spaces found before '"status"'.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/gui/lobby/lobby.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/gui/lobby/lobby.js
|  42|  42|  */
|  43|  43| const g_PlayerStatuses = {
|  44|  44| 	"available": { "color": "0 219 0",     "status": translate("Online") },
|  45|    |-	"away":      { "color": "229 76 13",   "status": translate("Away") },
|    |  45|+	"away":      { "color": "229 76 13", "status": translate("Away") },
|  46|  46| 	"playing":   { "color": "200 0 0",     "status": translate("Busy") },
|  47|  47| 	"offline":   { "color": "0 0 0",       "status": translate("Offline") },
|  48|  48| 	"unknown":   { "color": "178 178 178", "status": translateWithContext("lobby presence", "Unknown") }
|    | [NORMAL] ESLintBear (no-multi-spaces):
|    | Multiple spaces found before '"status"'.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/gui/lobby/lobby.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/gui/lobby/lobby.js
|  43|  43| const g_PlayerStatuses = {
|  44|  44| 	"available": { "color": "0 219 0",     "status": translate("Online") },
|  45|  45| 	"away":      { "color": "229 76 13",   "status": translate("Away") },
|  46|    |-	"playing":   { "color": "200 0 0",     "status": translate("Busy") },
|    |  46|+	"playing":   { "color": "200 0 0", "status": translate("Busy") },
|  47|  47| 	"offline":   { "color": "0 0 0",       "status": translate("Offline") },
|  48|  48| 	"unknown":   { "color": "178 178 178", "status": translateWithContext("lobby presence", "Unknown") }
|  49|  49| };
|    | [NORMAL] ESLintBear (no-multi-spaces):
|    | Multiple spaces found before '"status"'.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/gui/lobby/lobby.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/gui/lobby/lobby.js
|  44|  44| 	"available": { "color": "0 219 0",     "status": translate("Online") },
|  45|  45| 	"away":      { "color": "229 76 13",   "status": translate("Away") },
|  46|  46| 	"playing":   { "color": "200 0 0",     "status": translate("Busy") },
|  47|    |-	"offline":   { "color": "0 0 0",       "status": translate("Offline") },
|    |  47|+	"offline":   { "color": "0 0 0", "status": translate("Offline") },
|  48|  48| 	"unknown":   { "color": "178 178 178", "status": translateWithContext("lobby presence", "Unknown") }
|  49|  49| };
|  50|  50| 

binaries/data/mods/public/gui/lobby/lobby.js
| 893| »   »   switch·(sortBy)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/lobby/lobby.js
|1132| »   while·(true)
|    | [NORMAL] ESLintBear (no-constant-condition):
|    | Unexpected constant condition.

binaries/data/mods/public/gui/lobby/lobby.js
|1271| »   »   switch·(command)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/lobby/lobby.js
| 452| »   if·(mapSizeFilter.selected·!=·0·&&
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/lobby/lobby.js
| 456| »   if·(playersNumberFilter.selected·!=·0·&&
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/lobby/lobby.js
| 460| »   if·(mapTypeFilter.selected·!=·0·&&
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/lobby/lobby.js
|1152| »   »   if·(msg.type·==·"chat"·&&·Engine.LobbyGetMucMessageCount()·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/credits/credits.js
|  42| »   »   button.onPress·=·(i·=>·function()·{selectPanel(i);})(i);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/gui/credits/credits.js
|  42| »   »   button.onPress·=·(i·=>·function()·{selectPanel(i);})(i);
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/common/settings.js
| 173| »   »   "Title":·timeout·==·0·?·translateWithContext("ceasefire",·"No·ceasefire")·:
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/settings.js
| 224| »   if·(victoryConditions.some(vc·=>·vc·==·undefined))
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with 'undefined'.

binaries/data/mods/public/gui/civinfo/civinfo.js
|  24| »   return·'[font="sans-bold-'·+·(size·+·6)·+·'"]'·+·str[0]·+·'[/font]'·+·'[font="sans-bold-'·+·size·+·'"]'·+·str.substring(1)·+·'[/font]';
|    | [NORMAL] ESLintBear (no-useless-concat):
|    | Unexpected string concatenation of literals.

binaries/data/mods/public/gui/common/tooltips.js
| 606| »   »   '[/color][/font]'·+·"·"·+
|    | [NORMAL] ESLintBear (no-useless-concat):
|    | Unexpected string concatenation of literals.

binaries/data/mods/public/gui/common/tooltips.js
| 439| »   »   let·[rate,·count]·=·types.reduce((sum,·t)·=>·{
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/common/tooltips.js
| 618| »   if·(walk·==·0·&&·run·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/tooltips.js
| 618| »   if·(walk·==·0·&&·run·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection.js
|  86| »   if·(this.groups[key]·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection.js
| 300| »   »   ················g_ViewedPlayer·==·-1·&&·entState.player·==·0;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection.js
| 318| »   »   if·(!quiet·&&·(controlsPlayer(owner)·||·g_IsObserver·||·owner·==·0))
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/summary/layout.js
| 283| »   »   if·(rowPlayerObjectWidth·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/replaymenu/replay_filters.js
| 188| »   »   switch·(sortKey)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/replaymenu/replay_filters.js
| 116| »   »   if·(index·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/unit_commands.js
| 144| »   »   »   ····g_SelectionPanels[guiName].conflictsWith.some(p·=>·g_SelectionPanels[p].used))
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/msgbox/msgbox.js
|  52| »   switch·(captions.length)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/msgbox/msgbox.js
|  45| »   »   if·(i·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/savedgames/load.js
|  34| »   »   switch·(sortKey)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/selection_panels.js
|  60| »   »   »   switch·(data.item)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/selection_panels.js
|  74| »   »   switch·(data.item)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/selection_panels.js
| 346| »   »   »   tooltip·+=·"\n"·+·"[color=\"red\"]"·+·translate(formationInfo.tooltip)·+·"[/color]";
|    | [NORMAL] ESLintBear (no-useless-concat):
|    | Unexpected string concatenation of literals.

binaries/data/mods/public/gui/session/selection_panels.js
| 769| »   »   »   »   »   »   switch·(entity.check)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/selection_panels.js
| 997| »   »   »   »   "[/font]"·+·"·"·+·getEntityNamesFormatted(template),
|    | [NORMAL] ESLintBear (no-useless-concat):
|    | Unexpected string concatenation of literals.

binaries/data/mods/public/gui/session/selection_panels.js
| 283| »   »   if·(!technologyEnabled·||·limits.canBeAddedCount·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection_panels.js
| 441| »   »   »   »   »   "callback":·function(item)·{·lockGate(item.locked);·}
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/selection_panels.js
| 447| »   »   »   »   »   "callback":·function(item)·{·lockGate(item.locked);·}
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/selection_panels.js
| 495| »   »   »   if·(state.pack.progress·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection_panels.js
| 631| »   »   if·(data.i·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection_panels.js
| 673| »   »   »   »   tech·=>·tech·!=·null·&&·!ret.some(
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with 'null'.

binaries/data/mods/public/gui/session/selection_panels.js
| 673| »   »   »   »   tech·=>·tech·!=·null·&&·!ret.some(
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/selection_panels.js
| 686| »   »   »   »   ret·=·ret.concat(filteredTechs.map(tech·=>·({
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/selection_panels.js
| 719| »   »   pair.hidden·=·data.item.tech.pair·==·null;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with 'null'.

binaries/data/mods/public/gui/session/selection_panels.js
| 754| »   »   »   ].map(func·=>·func(template));
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/selection_panels.js
| 800| »   »   »   button.onPress·=·function()·{
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/selection_panels.js
| 809| »   »   »   »   button.onMouseEnter·=·function()·{
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/selection_panels.js
| 812| »   »   »   »   button.onMouseLeave·=·function()·{
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/selection_panels.js
|1029| »   »   if·(!technologyEnabled·||·limits.canBeAddedCount·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection_panels.js
|1135| »   »   »   if·(progress·||·!technologyEnabled·||·limits.canBeAddedCount·==·0·&&
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection_panels_helpers.js
|  92| »   if·(trainEntLimit·==·undefined)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with 'undefined'.

binaries/data/mods/public/gui/session/messages.js
| 615| »   while·(true)
|    | [NORMAL] ESLintBear (no-constant-condition):
|    | Unexpected constant condition.

binaries/data/mods/public/gui/session/messages.js
| 496| »   let·cheatCode·=·Object.keys(g_Cheats).find(code·=>·text.indexOf(code)·==·0);
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/messages.js
| 873| »   if·(chatAddressee.selected·>·0·&&·(text.indexOf("/")·!=·0·||·text.indexOf("/me·")·==·0))
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/session/messages.js
| 873| »   if·(chatAddressee.selected·>·0·&&·(text.indexOf("/")·!=·0·||·text.indexOf("/me·")·==·0))
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/messages.js
|1087| »   let·isMe·=·msg.text.indexOf("/me·")·==·0;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/messages.js
|1091| »   isMe·=·msg.text.indexOf("/me·")·==·0;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/messages.js
|1209| »   »   if·(text.indexOf(pName·+·"·")·==·0·&&·pName.length·>·match.length)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/gamedescription.js
| 396| »   »   "label":·"[color=\""·+·g_DescriptionHighlight·+·"\"]"·+·title.label·+·":"·+·"[/color]",
|    | [NORMAL] ESLintBear (no-useless-concat):
|    | Unexpected string concatenation of literals.

binaries/data/mods/public/gui/common/gamedescription.js
|  89| »   »   if·(playerData·==·null·||·playerData.Civ·&&·playerData.Civ·==·"gaia")
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with 'null'.

binaries/data/mods/public/gui/common/gamedescription.js
|  94| »   »   let·isAI·=·playerData.AI·&&·playerData.AI·!=·"";
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with ''.

binaries/data/mods/public/gui/common/gamedescription.js
| 311| »   »   »   »   g_GameAttributes.settings.Ceasefire·==·0·?
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/color.js
|  85| »   »   switch·(max)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/common/color.js
| 131| »   if·(s·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection_details.js
| 360| »   »   »   capturePoints·=·entState.capturePoints.map((v,·i)·=>·v·+·capturePoints[i]);
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/selection_details.js
| 432| »   »   »   »   res·=>·totalCarrying[res]·!=·0).map(
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/session/selection_details.js
| 441| »   »   »   »   res·=>·totalLoot[res]·!=·0).map(
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/session/selection_details.js
| 468| »   if·(entStates.length·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/gamesetup/gamesetup.js
| 695| »   »   »   let·pData·=·playerData.find(pData·=>·sameColor(g_PlayerColorPickerList[selectedIdx],·pData.Color));
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'pData' is already declared in the upper scope.

binaries/data/mods/public/gui/gamesetup/gamesetup.js
|1600| »   while·(g_IsNetworked)
|    | [NORMAL] ESLintBear (no-unmodified-loop-condition):
|    | 'g_IsNetworked' is not modified in this loop.

binaries/data/mods/public/gui/gamesetup/gamesetup.js
|2053| »   »   for·(let·guid·in·g_PlayerAssignments)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'guid' is already declared in the upper scope.

binaries/data/mods/public/gui/gamesetup/gamesetup.js
|2053| »   »   for·(let·guid·in·g_PlayerAssignments)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'guid' is already declared in the upper scope.

binaries/data/mods/public/gui/gamesetup/gamesetup.js
| 946| »   g_IsTutorial·=·attribs.tutorial·&&·attribs.tutorial·==·true;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with 'true'.

binaries/data/mods/public/gui/gamesetup/gamesetup.js
|1582| »   if·(g_LoadingState·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/gamesetup/gamesetup.js
|1633| »   »   if·(playerData.some((pData,·j)·=>·i·!=·j·&&·sameColor(playerData[i].Color,·pData.Color)))
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/gamesetup/gamesetup.js
|1634| »   »   »   playerData[i].Color·=·g_PlayerColorPickerList.find(color·=>·playerData.every(pData·=>·!sameColor(color,·pData.Color)));
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/gamesetup/gamesetup.js
|1811| »   »   »   chosenCiv·=·pickRandom(Object.keys(g_CivData).filter(civ·=>·g_CivData[civ].Culture·==·culture));
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/gamesetup/gamesetup.js
|1825| »   »   let·usedName·=·g_GameAttributes.settings.PlayerData.filter(pData·=>·pData.Name·&&·pData.Name.indexOf(chosenName)·!==·-1).length;
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/gamesetup/gamesetup.js
|2265| »   if·(g_GameStanzaTimer·!=·undefined)
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with 'undefined'.

binaries/data/mods/public/gui/gamesetup/gamesetup.js
|2305| »   if·(g_GameStanzaTimer·!=·undefined)
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with 'undefined'.

binaries/data/mods/public/gui/common/functions_civinfo.js
|  25| »   »   »   if·(data[prop]·==·undefined)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with 'undefined'.

binaries/data/mods/public/gui/session/unit_actions.js
| 574| »   »   »   switch·(tradingDetails.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/unit_actions.js
|1047| »   »   »   »   "tooltip":·colorizeHotkey("%(hotkey)s"·+·"·",·"session.unload")·+
|    | [NORMAL] ESLintBear (no-useless-concat):
|    | Unexpected string concatenation of literals.

binaries/data/mods/public/gui/session/unit_actions.js
|1065| »   »   »   »   »   »   colorizeHotkey("%(hotkey)s"·+·"·",·"session.kill")·+
|    | [NORMAL] ESLintBear (no-useless-concat):
|    | Unexpected string concatenation of literals.

binaries/data/mods/public/gui/session/unit_actions.js
|1104| »   »   »   »   "tooltip":·colorizeHotkey("%(hotkey)s"·+·"·",·"session.stop")·+
|    | [NORMAL] ESLintBear (no-useless-concat):
|    | Unexpected string concatenation of literals.

binaries/data/mods/public/gui/session/unit_actions.js
|1123| »   »   »   »   "tooltip":·colorizeHotkey("%(hotkey)s"·+·"·",·"session.garrison")·+
|    | [NORMAL] ESLintBear (no-useless-concat):
|    | Unexpected string concatenation of literals.

binaries/data/mods/public/gui/session/unit_actions.js
|1164| »   »   »   »   "tooltip":·colorizeHotkey("%(hotkey)s"·+·"·",·"session.repair")·+
|    | [NORMAL] ESLintBear (no-useless-concat):
|    | Unexpected string concatenation of literals.

binaries/data/mods/public/gui/session/unit_actions.js
|1183| »   »   »   »   "tooltip":·colorizeHotkey("%(hotkey)s"·+·"·",·"camera.rallypointfocus")·+
|    | [NORMAL] ESLintBear (no-useless-concat):
|    | Unexpected string concatenation of literals.

binaries/data/mods/public/gui/session/unit_actions.js
|1218| »   »   »   »   "tooltip":·colorizeHotkey("%(hotkey)s"·+·"·",·"session.backtowork")·+
|    | [NORMAL] ESLintBear (no-useless-concat):
|    | Unexpected string concatenation of literals.

binaries/data/mods/public/gui/session/unit_actions.js
|1237| »   »   »   »   "tooltip":·colorizeHotkey("%(hotkey)s"·+·"·",·"session.guard")·+
|    | [NORMAL] ESLintBear (no-useless-concat):
|    | Unexpected string concatenation of literals.

binaries/data/mods/public/gui/session/unit_actions.js
|1290| »   »   »   »   "tooltip":·colorizeHotkey("%(hotkey)s"·+·"·",·"session.patrol")·+
|    | [NORMAL] ESLintBear (no-useless-concat):
|    | Unexpected string concatenation of literals.

binaries/data/mods/public/gui/session/unit_actions.js
|1365| »   »   »   »   "tooltip":·colorizeHotkey("%(hotkey)s"·+·"·",·"session.unload")·+
|    | [NORMAL] ESLintBear (no-useless-concat):
|    | Unexpected string concatenation of literals.

binaries/data/mods/public/gui/session/unit_actions.js
| 598| »   »   »   »   if·(tradingDetails.gain.traderGain·==·0)·//·markets·too·close
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/unit_actions.js
|1407| »   »   if·(player·==·"Gaia"·&&·targetState.player·==·0·||
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/session.js
| 416| »   »   colorizeHotkey("%(hotkey)s"·+·"·",·"selection.idleworker")·+
|    | [NORMAL] ESLintBear (no-useless-concat):
|    | Unexpected string concatenation of literals.

binaries/data/mods/public/gui/session/session.js
| 436| »   »   let·panelEnt·=·g_PanelEntities.find(panelEnt·=>·panelEnt.slot·!==·undefined·&&·panelEnt.slot·==·slot);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'panelEnt' is already declared in the upper scope.

binaries/data/mods/public/gui/session/session.js
| 447| »   »   let·panelEnt·=·g_PanelEntities.find(panelEnt·=>·panelEnt.slot·!==·undefined·&&·panelEnt.slot·==·slot);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'panelEnt' is already declared in the upper scope.

binaries/data/mods/public/gui/session/session.js
| 983| »   »   let·panelEnt·=·g_PanelEntities.find(panelEnt·=>·ent·==·panelEnt.ent);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'panelEnt' is already declared in the upper scope.

binaries/data/mods/public/gui/session/session.js
|1012| »   let·getPanelEntNameTooltip·=·panelEntState·=>·"[font=\"sans-bold-16\"]"·+·template.name.specific·+·"[/font]";
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'panelEntState' is already declared in the upper scope.

binaries/data/mods/public/gui/session/session.js
|1087| »   »   button.onpress·=·(function(i)·{·return·function()·{·performGroup((Engine.HotkeyIsPressed("selection.add")·?·"add"·:·"select"),·i);·};·})(i);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/gui/session/session.js
|1088| »   »   button.ondoublepress·=·(function(i)·{·return·function()·{·performGroup("snap",·i);·};·})(i);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/gui/session/session.js
|1089| »   »   button.onpressright·=·(function(i)·{·return·function()·{·performGroup("breakUp",·i);·};·})(i);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/gui/session/session.js
| 847| »   »   i·==·0·||
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/session.js
| 849| »   »   g_GameAttributes.settings.PlayerData[i].AI·!=·"");
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with ''.

binaries/data/mods/public/gui/session/session.js
| 959| »   if·(direction·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/session.js
| 983| »   »   let·panelEnt·=·g_PanelEntities.find(panelEnt·=>·ent·==·panelEnt.ent);
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/session.js
|1086| »   »   button.hidden·=·g_Groups.groups[i].getTotalCount()·==·0;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/session.js
|1087| »   »   button.onpress·=·(function(i)·{·return·function()·{·performGroup((Engine.HotkeyIsPressed("selection.add")·?·"add"·:·"select"),·i);·};·})(i);
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/session.js
|1088| »   »   button.ondoublepress·=·(function(i)·{·return·function()·{·performGroup("snap",·i);·};·})(i);
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/session.js
|1089| »   »   button.onpressright·=·(function(i)·{·return·function()·{·performGroup("breakUp",·i);·};·})(i);
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/session.js
|1094| »   »   »   let·icon·=·GetTemplateData(GetEntityState(g_Groups.groups[i].getEntsGrouped().reduce((pre,·cur)·=>·{
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/session.js
|1147| »   »   if·(player·!=·0·&&
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/session/session.js
|1239| »   »   button.onpress·=·(function(e)·{·return·function()·{·selectAndMoveTo(e);·};·})(researchStarted[tech].researcher);
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/session.js
|1432| »   »   if·(+playerID·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/locale/locale_advanced.js
|  15| »   »   if·(lang·!=·""·&&·languageListData.indexOf(lang)·==·-1)
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with ''.

binaries/data/mods/public/gui/locale/locale_advanced.js
|  28| »   »   if·(country·!=·""·&&·countryListData.indexOf(country)·==·-1)
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with ''.

binaries/data/mods/public/gui/locale/locale_advanced.js
|  42| »   if·(currentLocaleCountry·!=·"")
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with ''.

binaries/data/mods/public/gui/locale/locale_advanced.js
|  73| »   if·(scriptInput.caption·!=·"")
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with ''.

binaries/data/mods/public/gui/common/colorFades.js
|  64| »   »   »   "justStopAtExternCall":·duration·==·0,
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/colorFades.js
| 186| »   if·(data.tickCounter·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/colorFades.js
| 193| »   »   if·(data.tickCounter·%·g_FadeAttackUnit.blinkingChangeInterval·!=·0)
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/common/colorFades.js
| 196| »   »   rgb.g·=·rgb.g·==·0·?·255·:·0;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/colorFades.js
| 209| »   »   if·(rgb.o·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/structree/draw.js
| 379| »   »   Engine.GetGUIObjectByName("trainer["·+·t·+·"]_row").size·=·"4·100%-24"·+·"·100%-4·100%";
|    | [NORMAL] ESLintBear (no-useless-concat):
|    | Unexpected string concatenation of literals.

binaries/data/mods/public/gui/structree/draw.js
| 235| »   Engine.GetGUIObjectByName("display_trainers").hidden·=·t·==·0;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/functions_utility.js
| 191| »   }·catch·(e)·{
|    | [NORMAL] ESLintBear (no-empty):
|    | Empty block statement.

binaries/data/mods/public/gui/common/functions_utility.js
| 155| »   »   if·(word.toLowerCase().indexOf(lastWord.toLowerCase())·!=·0)
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/session/menu.js
| 441| »   »   button.onPress·=·(function(player,·stance)·{·return·function()·{
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'stance' is already declared in the upper scope.

binaries/data/mods/public/gui/session/menu.js
| 473| »   »   button.onPress·=·(function(i,·resCode,·button)·{
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/gui/session/menu.js
| 473| »   »   button.onPress·=·(function(i,·resCode,·button)·{
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'resCode' is already declared in the upper scope.

binaries/data/mods/public/gui/session/menu.js
| 473| »   »   button.onPress·=·(function(i,·resCode,·button)·{
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'button' is already declared in the upper scope.

binaries/data/mods/public/gui/session/menu.js
| 516| »   button.onPress·=·(function(i)·{·return·function()·{
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/gui/session/menu.js
| 572| »   button.onPress·=·(function(i)·{·return·function()·{
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/gui/session/menu.js
| 382| »   »   let·hasAllies·=·g_Players.filter(player·=>·player.isMutualAlly[g_ViewedPlayer]).length·>·1;
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/menu.js
| 441| »   »   button.onPress·=·(function(player,·stance)·{·return·function()·{
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/menu.js
| 473| »   »   button.onPress·=·(function(i,·resCode,·button)·{
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/menu.js
| 613| »   »   »   button[res].up.hidden·=·!controlsPlayer(g_ViewedPlayer)·||·res·==·currTradeSelection·||·proba[res]·==·100·||·proba[currTradeSelection]·==·0;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/menu.js
| 614| »   »   »   button[res].dn.hidden·=·!controlsPlayer(g_ViewedPlayer)·||·res·==·currTradeSelection·||·proba[res]·==·0·||·proba[currTradeSelection]·==·100;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/menu.js
| 663| »   »   buttonResource.onPress·=·(resource·=>·{
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/menu.js
| 678| »   »   buttonUp.onPress·=·(resource·=>·{
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/menu.js
| 688| »   »   buttonDn.onPress·=·(resource·=>·{
|    | [NORMAL] JSHintBear:
|    | Don't make functions within a loop.

binaries/data/mods/public/gui/session/menu.js
|1021| »   »   »   »   g_IsObserver·||·player·==·0·||·player·==·g_ViewedPlayer·||
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/lobby/prelobby.js
| 162| »   »   switch(message.level)·{
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/lobby/prelobby.js
| 220| »   switch(page)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/lobby/prelobby.js
| 154| »   while·((message·=·Engine.LobbyGuiPollMessage())·!=·undefined)
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with 'undefined'.

binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.js
| 151| »   while·(true)
|    | [NORMAL] ESLintBear (no-constant-condition):
|    | Unexpected constant condition.
Executing section XML GUI...
Executing section Python...
Executing section Perl...

http://jw:8080/job/phabricator_lint/322/ for more details.

bb requested changes to this revision.Jul 29 2017, 6:57 PM

I start quoting the "some" in the diff header, so more of a correctness check than a completeness

binaries/data/mods/public/gui/common/color.js
120 ↗(On Diff #2925)

imo fix the linter here, when we have such clear fractions there the spaces are not required imo and don't make the code more readable.

binaries/data/mods/public/gui/common/functions_utility.js
125 ↗(On Diff #2925)

i-- correct here

192 ↗(On Diff #2925)

catch empty so remove?

binaries/data/mods/public/gui/common/gamedescription.js
348 ↗(On Diff #2925)

trailling comma

399–400 ↗(On Diff #2925)

looks like the same as title.value && translateWithContext("gamesetup option", "disabled")

binaries/data/mods/public/gui/gamesetup/gamesetup.js
2053 ↗(On Diff #2925)

guid already declared message here doesn't seem a false positive

binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.js
204 ↗(On Diff #2925)

why these braces?

binaries/data/mods/public/gui/lobby/lobby.js
187–197 ↗(On Diff #2925)

I liked the old way better here, fix linter imo

592 ↗(On Diff #2925)

should be obvious, just fixing linter is enough

binaries/data/mods/public/gui/options/options.js
259 ↗(On Diff #2925)

why braces?

binaries/data/mods/public/gui/session/selection.js
267 ↗(On Diff #2925)

why not return?

binaries/data/mods/public/gui/session/selection_details.js
418–421 ↗(On Diff #2925)

wrong indentation now, move back to the old situation, only perhaps move the { a line down

binaries/data/mods/public/gui/session/session.js
285 ↗(On Diff #2925)

else if?

436 ↗(On Diff #2925)

inside the find rename panelEnt -> ent

447 ↗(On Diff #2925)

same here

983 ↗(On Diff #2925)

another

binaries/data/mods/public/gui/summary/counters.js
41 ↗(On Diff #2925)

as this function will be removed in another patch, nuke hunk

binaries/data/mods/public/gui/summary/summary.js
424–434 ↗(On Diff #2925)
if (foo)
     foo();
else if (bar)
     bar();
else if  (baz)
    baz();
...
else
    else();

so this indentation is not making things easier, keep the old one.

This revision now requires changes to proceed.Jul 29 2017, 6:57 PM
elexis added a subscriber: elexis.Sep 9 2017, 5:58 PM
elexis added inline comments.
binaries/data/mods/public/gui/lobby/lobby.js
187–197 ↗(On Diff #2925)

The left side is the equivalent of if-else if-else if-else.
the right side the equivalent of if else { if else { if else }.
meh, left is nicely aligned, idc

Itms added a subscriber: Itms.Oct 12 2017, 4:01 PM

You should now have slightly different results with the new version of the linting patch. Hope it fixes the false positives, especially regarding indentation.

binaries/data/mods/public/gui/common/color.js
120 ↗(On Diff #2925)

The new linter should not complain about this anymore.

binaries/data/mods/public/gui/lobby/lobby.js
187–197 ↗(On Diff #2925)

In this situation the linter (at least the latest version) is not able to fix automatically, but it should accept the correct way of doing it with smart tabs.

Imarok updated this revision to Diff 3901.Oct 20 2017, 5:56 PM
Imarok marked 19 inline comments as done.

Rebase and fix bb's remarks.

Build is green

Updating workspaces...
Build (release)...
Build (debug)...
Running release tests...
Running cxxtest tests (307 tests)...................................................................................................................................................................................................................................................................................................................OK!
Running debug tests...
Running cxxtest tests (307 tests)...................................................................................................................................................................................................................................................................................................................OK!
Checking XML files...

http://jenkins-master:8080/job/phabricator/2129/ for more details.

Executing section Default...
Executing section Source...
Executing section JS...

binaries/data/mods/public/gui/msgbox/msgbox.js
|  45| »   »   if·(i·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/pregame/mainmenu.js
| 181| »   if·(submenu.hidden·==·false)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with 'false'.

binaries/data/mods/public/gui/prelobby/prelobby.js
| 157| »   while·((message·=·Engine.LobbyGuiPollNewMessage())·!=·undefined)
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with 'undefined'.

binaries/data/mods/public/gui/session/messages.js
| 490| »   let·cheatCode·=·Object.keys(g_Cheats).find(code·=>·text.indexOf(code)·==·0);
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/messages.js
| 870| »   if·(chatAddressee.selected·>·0·&&·(text.indexOf("/")·!=·0·||·text.indexOf("/me·")·==·0))
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/session/messages.js
| 870| »   if·(chatAddressee.selected·>·0·&&·(text.indexOf("/")·!=·0·||·text.indexOf("/me·")·==·0))
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/messages.js
|1084| »   let·isMe·=·msg.text.indexOf("/me·")·==·0;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/messages.js
|1088| »   isMe·=·msg.text.indexOf("/me·")·==·0;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/messages.js
|1206| »   »   if·(text.indexOf(pName·+·"·")·==·0·&&·pName.length·>·match.length)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/unit_actions.js
| 572| »   »   »   »   if·(tradingDetails.gain.traderGain·==·0)·//·markets·too·close
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/unit_actions.js
|1375| »   »   if·(player·==·"Gaia"·&&·targetState.player·==·0·||
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/functions_civinfo.js
|  26| »   »   »   if·(data[prop]·==·undefined)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with 'undefined'.

binaries/data/mods/public/gui/common/settings.js
| 180| »   »   "Title":·timeout·==·0·?·translateWithContext("ceasefire",·"No·ceasefire")·:
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/settings.js
| 243| »   if·(victoryConditions.some(vc·=>·vc·==·undefined))
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with 'undefined'.

binaries/data/mods/public/gui/common/colorFades.js
|  64| »   »   »   "justStopAtExternCall":·duration·==·0,
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/colorFades.js
| 186| »   if·(data.tickCounter·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/colorFades.js
| 193| »   »   if·(data.tickCounter·%·g_FadeAttackUnit.blinkingChangeInterval·!=·0)
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/common/colorFades.js
| 196| »   »   rgb.g·=·rgb.g·==·0·?·255·:·0;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/colorFades.js
| 209| »   »   if·(rgb.o·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/gamedescription.js
|  89| »   »   if·(playerData·==·null·||·playerData.Civ·&&·playerData.Civ·==·"gaia")
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with 'null'.

binaries/data/mods/public/gui/common/gamedescription.js
|  94| »   »   let·isAI·=·playerData.AI·&&·playerData.AI·!=·"";
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with ''.

binaries/data/mods/public/gui/common/gamedescription.js
| 311| »   »   »   »   g_GameAttributes.settings.Ceasefire·==·0·?
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection.js
|  86| »   if·(this.groups[key]·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection.js
| 300| »   »   ················g_ViewedPlayer·==·-1·&&·entState.player·==·0;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection.js
| 318| »   »   if·(!quiet·&&·(controlsPlayer(owner)·||·g_IsObserver·||·owner·==·0))
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/lobby/lobby.js
| 499| »   if·(mapSizeFilter.selected·!=·0·&&
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/lobby/lobby.js
| 503| »   if·(playersNumberFilter.selected·!=·0·&&
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/lobby/lobby.js
| 507| »   if·(mapTypeFilter.selected·!=·0·&&
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/lobby/lobby.js
| 637| »   »   case·'name':
|    | [NORMAL] JSHintBear:
|    | Expected a 'break' statement before 'default'.

binaries/data/mods/public/gui/common/functions_utility.js
| 159| »   »   if·(word.toLowerCase().indexOf(lastWord.toLowerCase())·!=·0)
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.js
| 189| »   »   »   »   for·(let·guid·in·g_PlayerAssignments)
|    | [MAJOR] JSHintBear:
|    | Let declaration not directly within block.

binaries/data/mods/public/gui/manual/manual.js
|  15| »   »   »   return·function()
|    | [NORMAL] JSHintBear:
|    | 'function closure expressions' is only available in Mozilla JavaScript extensions (use moz option).

binaries/data/mods/public/gui/session/session.js
| 838| »   »   i·==·0·||
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/session.js
| 840| »   »   g_GameAttributes.settings.PlayerData[i].AI·!=·"");
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with ''.

binaries/data/mods/public/gui/session/session.js
| 950| »   if·(direction·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/session.js
|1079| »   »   button.hidden·=·g_Groups.groups[i].getTotalCount()·==·0;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/session.js
|1140| »   »   if·(player·!=·0·&&
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/session/session.js
|1425| »   »   if·(+playerID·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/summary/layout.js
| 294| »   »   if·(rowPlayerObjectWidth·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/color.js
| 131| »   if·(s·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection_panels_helpers.js
|  92| »   if·(trainEntLimit·==·undefined)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with 'undefined'.

binaries/data/mods/public/gui/gamesetup/gamesetup.js
|1666| »   if·(g_LoadingState·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection_details.js
| 436| »   »   »   »   res·=>·totalCarrying[res]·!=·0).map(
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/session/selection_details.js
| 445| »   »   »   »   res·=>·totalLoot[res]·!=·0).map(
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/session/selection_details.js
| 472| »   if·(entStates.length·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/tooltips.js
| 614| »   if·(walk·==·0·&&·run·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/tooltips.js
| 614| »   if·(walk·==·0·&&·run·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/replaymenu/replay_filters.js
| 116| »   »   if·(index·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/locale/locale_advanced.js
|  15| »   »   if·(lang·!=·""·&&·languageListData.indexOf(lang)·==·-1)
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with ''.

binaries/data/mods/public/gui/locale/locale_advanced.js
|  28| »   »   if·(country·!=·""·&&·countryListData.indexOf(country)·==·-1)
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with ''.

binaries/data/mods/public/gui/locale/locale_advanced.js
|  42| »   if·(currentLocaleCountry·!=·"")
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with ''.

binaries/data/mods/public/gui/locale/locale_advanced.js
|  73| »   if·(scriptInput.caption·!=·"")
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with ''.

binaries/data/mods/public/gui/session/menu.js
| 642| »   »   »   button[res].up.hidden·=·!controlsPlayer(g_ViewedPlayer)·||·res·==·currTradeSelection·||·proba[res]·==·100·||·proba[currTradeSelection]·==·0;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/menu.js
| 643| »   »   »   button[res].dn.hidden·=·!controlsPlayer(g_ViewedPlayer)·||·res·==·currTradeSelection·||·proba[res]·==·0·||·proba[currTradeSelection]·==·100;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/menu.js
|1068| »   »   »   »   g_IsObserver·||·player·==·0·||·player·==·g_ViewedPlayer·||
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection_panels.js
| 282| »   »   if·(!technologyEnabled·||·limits.canBeAddedCount·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection_panels.js
| 494| »   »   »   if·(state.pack.progress·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection_panels.js
| 635| »   »   if·(data.i·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection_panels.js
| 678| »   »   »   »   tech·=>·tech·!=·null·&&·!ret.some(
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with 'null'.

binaries/data/mods/public/gui/session/selection_panels.js
| 724| »   »   pair.hidden·=·data.item.tech.pair·==·null;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with 'null'.

binaries/data/mods/public/gui/session/selection_panels.js
|1034| »   »   if·(!technologyEnabled·||·limits.canBeAddedCount·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection_panels.js
|1132| »   »   »   if·(progress·||·!technologyEnabled·||·limits.canBeAddedCount·==·0·&&
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.
Executing section XML GUI...

http://jenkins-master:8080/job/phabricator_lint/600/ for more details.

bb added a comment.Oct 20 2017, 6:46 PM

the structree directory should stay removed I guess, but the changes there should be ported ofc

binaries/data/mods/public/gui/common/music.js
24 ↗(On Diff #3901)

(sortof a contradiction, shouting PEACE :P)

binaries/data/mods/public/gui/lobby/lobby.js
450 ↗(On Diff #3901)

why create an array and reverse it, instead of creating the reverse?

binaries/data/mods/public/gui/session/selection_details.js
421 ↗(On Diff #3901)

are you sure this is the convention we use? not against it but never saw it before

Imarok updated this revision to Diff 3916.Oct 21 2017, 4:23 PM
Imarok marked 3 inline comments as done.

Apply bb remark

binaries/data/mods/public/gui/common/functions_utility.js
192 ↗(On Diff #2925)

Doesn't try always need a catch block?

binaries/data/mods/public/gui/common/music.js
24 ↗(On Diff #3901)

sure, but I want to change as less code as needed...

binaries/data/mods/public/gui/options/options.js
259 ↗(On Diff #2925)

To scope the variable

binaries/data/mods/public/gui/session/selection_details.js
421 ↗(On Diff #3901)

You proposed that...
Afaik the only convention we have regarding braces is: brace on newline (for functions and if/else/while/for)

Build is green

Updating workspaces...
FCollada/FCDocument/FCDLibrary.cpp: In instantiation of ‘void LibraryExport() [with T = FCDAnimation]’:
FCollada/FCDocument/FCDLibrary.cpp:149:30:   required from here
FCollada/FCDocument/FCDLibrary.cpp:141:11: warning: variable ‘cptr’ set but not used [-Wunused-but-set-variable]
  const T* cptr = ((const FCDLibrary<T>*)l1)->GetEntity(0);
           ^
FCollada/FCDocument/FCDLibrary.cpp: In instantiation of ‘void LibraryExport() [with T = FCDAnimationClip]’:
FCollada/FCDocument/FCDLibrary.cpp:150:34:   required from here
FCollada/FCDocument/FCDLibrary.cpp:141:11: warning: variable ‘cptr’ set but not used [-Wunused-but-set-variable]
FCollada/FCDocument/FCDLibrary.cpp: In instantiation of ‘void LibraryExport() [with T = FCDCamera]’:
FCollada/FCDocument/FCDLibrary.cpp:151:27:   required from here
FCollada/FCDocument/FCDLibrary.cpp:141:11: warning: variable ‘cptr’ set but not used [-Wunused-but-set-variable]
FCollada/FCDocument/FCDLibrary.cpp: In instantiation of ‘void LibraryExport() [with T = FCDController]’:
FCollada/FCDocument/FCDLibrary.cpp:152:31:   required from here
FCollada/FCDocument/FCDLibrary.cpp:141:11: warning: variable ‘cptr’ set but not used [-Wunused-but-set-variable]
FCollada/FCDocument/FCDLibrary.cpp: In instantiation of ‘void LibraryExport() [with T = FCDEffect]’:
FCollada/FCDocument/FCDLibrary.cpp:153:27:   required from here
FCollada/FCDocument/FCDLibrary.cpp:141:11: warning: variable ‘cptr’ set but not used [-Wunused-but-set-variable]
FCollada/FCDocument/FCDLibrary.cpp: In instantiation of ‘void LibraryExport() [with T = FCDEmitter]’:
FCollada/FCDocument/FCDLibrary.cpp:154:28:   required from here
FCollada/FCDocument/FCDLibrary.cpp:141:11: warning: variable ‘cptr’ set but not used [-Wunused-but-set-variable]
FCollada/FCDocument/FCDLibrary.cpp: In instantiation of ‘void LibraryExport() [with T = FCDForceField]’:
FCollada/FCDocument/FCDLibrary.cpp:155:31:   required from here
FCollada/FCDocument/FCDLibrary.cpp:141:11: warning: variable ‘cptr’ set but not used [-Wunused-but-set-variable]
FCollada/FCDocument/FCDLibrary.cpp: In instantiation of ‘void LibraryExport() [with T = FCDGeometry]’:
FCollada/FCDocument/FCDLibrary.cpp:156:29:   required from here
FCollada/FCDocument/FCDLibrary.cpp:141:11: warning: variable ‘cptr’ set but not used [-Wunused-but-set-variable]
FCollada/FCDocument/FCDLibrary.cpp: In instantiation of ‘void LibraryExport() [with T = FCDImage]’:
FCollada/FCDocument/FCDLibrary.cpp:157:26:   required from here
FCollada/FCDocument/FCDLibrary.cpp:141:11: warning: variable ‘cptr’ set but not used [-Wunused-but-set-variable]
FCollada/FCDocument/FCDLibrary.cpp: In instantiation of ‘void LibraryExport() [with T = FCDLight]’:
FCollada/FCDocument/FCDLibrary.cpp:158:26:   required from here
FCollada/FCDocument/FCDLibrary.cpp:141:11: warning: variable ‘cptr’ set but not used [-Wunused-but-set-variable]
FCollada/FCDocument/FCDLibrary.cpp: In instantiation of ‘void LibraryExport() [with T = FCDMaterial]’:
FCollada/FCDocument/FCDLibrary.cpp:159:29:   required from here
FCollada/FCDocument/FCDLibrary.cpp:141:11: warning: variable ‘cptr’ set but not used [-Wunused-but-set-variable]
FCollada/FCDocument/FCDLibrary.cpp: In instantiation of ‘void LibraryExport() [with T = FCDSceneNode]’:
FCollada/FCDocument/FCDLibrary.cpp:160:30:   required from here
FCollada/FCDocument/FCDLibrary.cpp:141:11: warning: variable ‘cptr’ set but not used [-Wunused-but-set-variable]
FCollada/FCDocument/FCDLibrary.cpp: In instantiation of ‘void LibraryExport() [with T = FCDPhysicsModel]’:
FCollada/FCDocument/FCDLibrary.cpp:161:33:   required from here
FCollada/FCDocument/FCDLibrary.cpp:141:11: warning: variable ‘cptr’ set but not used [-Wunused-but-set-variable]
FCollada/FCDocument/FCDLibrary.cpp: In instantiation of ‘void LibraryExport() [with T = FCDPhysicsMaterial]’:
FCollada/FCDocument/FCDLibrary.cpp:162:36:   required from here
FCollada/FCDocument/FCDLibrary.cpp:141:11: warning: variable ‘cptr’ set but not used [-Wunused-but-set-variable]
FCollada/FCDocument/FCDLibrary.cpp: In instantiation of ‘void LibraryExport() [with T = FCDPhysicsScene]’:
FCollada/FCDocument/FCDLibrary.cpp:163:33:   required from here
FCollada/FCDocument/FCDLibrary.cpp:141:11: warning: variable ‘cptr’ set but not used [-Wunused-but-set-variable]
In file included from FCollada/FUtils/FUSemaphore.cpp:10:0:
FCollada/FUtils/FUSemaphore.h:36:2: warning: #warning "FUSemaphore: Semaphore not implemented for non Windows" [-Wcpp]
 #warning "FUSemaphore: Semaphore not implemented for non Windows"
  ^
FCollada/FUtils/FUStringConversion.cpp: In function ‘void TrickLinkerFUStringConversion()’:
FCollada/FUtils/FUStringConversion.cpp:281:8: warning: variable ‘f’ set but not used [-Wunused-but-set-variable]
  float f = FUStringConversion::ToFloat(&c);
        ^
FCollada/FUtils/FUStringConversion.cpp:283:7: warning: variable ‘b’ set but not used [-Wunused-but-set-variable]
  bool b = FUStringConversion::ToBoolean(c);
       ^
FCollada/FUtils/FUStringConversion.cpp:285:8: warning: variable ‘i32’ set but not used [-Wunused-but-set-variable]
  int32 i32 = FUStringConversion::ToInt32(&c);
        ^
FCollada/FUtils/FUStringConversion.cpp:287:9: warning: variable ‘u32’ set but not used [-Wunused-but-set-variable]
  uint32 u32 = FUStringConversion::ToUInt32(&c);
         ^
In file included from FCollada/FUtils/FUThread.cpp:10:0:
FCollada/FUtils/FUThread.h:30:2: warning: #warning "Threads not yet implemented for non Windows." [-Wcpp]
 #warning "Threads not yet implemented for non Windows."
  ^
FCollada/FCDocument/FCDAnimationCurve.cpp: In member function ‘float FCDAnimationCurve::Evaluate(float) const’:
FCollada/FCDocument/FCDAnimationCurve.cpp:396:13: warning: ‘inTangent.FMVector2::<anonymous>.FMVector2::<anonymous union>::x’ may be used uninitialized in this function [-Wmaybe-uninitialized]
   FMVector2 inTangent;
             ^
FCollada/FCDocument/FCDAnimationCurve.cpp:396:13: warning: ‘inTangent.FMVector2::<anonymous>.FMVector2::<anonymous union>::y’ may be used uninitialized in this function [-Wmaybe-uninitialized]
FCollada/FCDocument/FCDLibrary.cpp: In instantiation of ‘void LibraryExport() [with T = FCDAnimation]’:
FCollada/FCDocument/FCDLibrary.cpp:149:30:   required from here
FCollada/FCDocument/FCDLibrary.cpp:141:11: warning: variable ‘cptr’ set but not used [-Wunused-but-set-variable]
  const T* cptr = ((const FCDLibrary<T>*)l1)->GetEntity(0);
           ^
FCollada/FCDocument/FCDLibrary.cpp: In instantiation of ‘void LibraryExport() [with T = FCDAnimationClip]’:
FCollada/FCDocument/FCDLibrary.cpp:150:34:   required from here
FCollada/FCDocument/FCDLibrary.cpp:141:11: warning: variable ‘cptr’ set but not used [-Wunused-but-set-variable]
FCollada/FCDocument/FCDLibrary.cpp: In instantiation of ‘void LibraryExport() [with T = FCDCamera]’:
FCollada/FCDocument/FCDLibrary.cpp:151:27:   required from here
FCollada/FCDocument/FCDLibrary.cpp:141:11: warning: variable ‘cptr’ set but not used [-Wunused-but-set-variable]
FCollada/FCDocument/FCDLibrary.cpp: In instantiation of ‘void LibraryExport() [with T = FCDController]’:
FCollada/FCDocument/FCDLibrary.cpp:152:31:   required from here
FCollada/FCDocument/FCDLibrary.cpp:141:11: warning: variable ‘cptr’ set but not used [-Wunused-but-set-variable]
FCollada/FCDocument/FCDLibrary.cpp: In instantiation of ‘void LibraryExport() [with T = FCDEffect]’:
FCollada/FCDocument/FCDLibrary.cpp:153:27:   required from here
FCollada/FCDocument/FCDLibrary.cpp:141:11: warning: variable ‘cptr’ set but not used [-Wunused-but-set-variable]
FCollada/FCDocument/FCDLibrary.cpp: In instantiation of ‘void LibraryExport() [with T = FCDEmitter]’:
FCollada/FCDocument/FCDLibrary.cpp:154:28:   required from here
FCollada/FCDocument/FCDLibrary.cpp:141:11: warning: variable ‘cptr’ set but not used [-Wunused-but-set-variable]
FCollada/FCDocument/FCDLibrary.cpp: In instantiation of ‘void LibraryExport() [with T = FCDForceField]’:
FCollada/FCDocument/FC

http://jenkins-master:8080/job/phabricator/2137/ for more details.

Imarok updated this revision to Diff 3919.Oct 21 2017, 5:56 PM

Fix gamedescritpion oversight

Executing section Default...
Executing section Source...
Executing section JS...

binaries/data/mods/public/gui/session/selection_panels_helpers.js
|  92| »   if·(trainEntLimit·==·undefined)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with 'undefined'.

binaries/data/mods/public/gui/pregame/mainmenu.js
| 181| »   if·(submenu.hidden·==·false)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with 'false'.

binaries/data/mods/public/gui/common/functions_utility.js
| 159| »   »   if·(word.toLowerCase().indexOf(lastWord.toLowerCase())·!=·0)
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/session/unit_actions.js
| 572| »   »   »   »   if·(tradingDetails.gain.traderGain·==·0)·//·markets·too·close
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/unit_actions.js
|1375| »   »   if·(player·==·"Gaia"·&&·targetState.player·==·0·||
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/gamedescription.js
|  89| »   »   if·(playerData·==·null·||·playerData.Civ·&&·playerData.Civ·==·"gaia")
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with 'null'.

binaries/data/mods/public/gui/common/gamedescription.js
|  94| »   »   let·isAI·=·playerData.AI·&&·playerData.AI·!=·"";
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with ''.

binaries/data/mods/public/gui/common/gamedescription.js
| 311| »   »   »   »   g_GameAttributes.settings.Ceasefire·==·0·?
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection.js
|  86| »   if·(this.groups[key]·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection.js
| 300| »   »   ················g_ViewedPlayer·==·-1·&&·entState.player·==·0;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection.js
| 318| »   »   if·(!quiet·&&·(controlsPlayer(owner)·||·g_IsObserver·||·owner·==·0))
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/locale/locale_advanced.js
|  15| »   »   if·(lang·!=·""·&&·languageListData.indexOf(lang)·==·-1)
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with ''.

binaries/data/mods/public/gui/locale/locale_advanced.js
|  28| »   »   if·(country·!=·""·&&·countryListData.indexOf(country)·==·-1)
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with ''.

binaries/data/mods/public/gui/locale/locale_advanced.js
|  42| »   if·(currentLocaleCountry·!=·"")
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with ''.

binaries/data/mods/public/gui/locale/locale_advanced.js
|  73| »   if·(scriptInput.caption·!=·"")
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with ''.

binaries/data/mods/public/gui/common/functions_civinfo.js
|  26| »   »   »   if·(data[prop]·==·undefined)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with 'undefined'.

binaries/data/mods/public/gui/common/tooltips.js
| 614| »   if·(walk·==·0·&&·run·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/tooltips.js
| 614| »   if·(walk·==·0·&&·run·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/summary/layout.js
| 294| »   »   if·(rowPlayerObjectWidth·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/colorFades.js
|  64| »   »   »   "justStopAtExternCall":·duration·==·0,
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/colorFades.js
| 186| »   if·(data.tickCounter·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/colorFades.js
| 193| »   »   if�

http://jenkins-master:8080/job/phabricator_lint/608/ for more details.

Build is green

Updating workspaces...
Build (release)...
Build (debug)...
Running release tests...
Running cxxtest tests (307 tests)...................................................................................................................................................................................................................................................................................................................OK!
Running debug tests...
Running cxxtest tests (307 tests)...................................................................................................................................................................................................................................................................................................................OK!
Checking XML files...

http://jenkins-master:8080/job/phabricator/2139/ for more details.

Executing section Default...
Executing section Source...
Executing section JS...

binaries/data/mods/public/gui/replaymenu/replay_filters.js
| 116| »   »   if·(index·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/unit_actions.js
| 572| »   »   »   »   if·(tradingDetails.gain.traderGain·==·0)·//·markets·too·close
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/unit_actions.js
|1375| »   »   if·(player·==·"Gaia"·&&·targetState.player·==·0·||
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/tooltips.js
| 614| »   if·(walk·==·0·&&·run·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/tooltips.js
| 614| »   if·(walk·==·0·&&·run·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/colorFades.js
|  64| »   »   »   "justStopAtExternCall":·duration·==·0,
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/colorFades.js
| 186| »   if·(data.tickCounter·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/colorFades.js
| 193| »   »   if·(data.tickCounter·%·g_FadeAttackUnit.blinkingChangeInterval·!=·0)
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/common/colorFades.js
| 196| »   »   rgb.g·=·rgb.g·==·0·?·255·:·0;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/colorFades.js
| 209| »   »   if·(rgb.o·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection_details.js
| 436| »   »   »   »   res·=>·totalCarrying[res]·!=·0).map(
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/session/selection_details.js
| 445| »   »   »   »   res·=>·totalLoot[res]·!=·0).map(
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/session/selection_details.js
| 472| »   if·(entStates.length·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection_panels.js
| 282| »   »   if·(!technologyEnabled·||·limits.canBeAddedCount·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection_panels.js
| 494| »   »   »   if·(state.pack.progress·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection_panels.js
| 635| »   »   if·(data.i·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection_panels.js
| 678| »   »   »   »   tech·=>·tech·!=·null·&&·!ret.some(
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with 'null'.

binaries/data/mods/public/gui/session/selection_panels.js
| 724| »   »   pair.hidden·=·data.item.tech.pair·==·null;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with 'null'.

binaries/data/mods/public/gui/session/selection_panels.js
|1034| »   »   if·(!technologyEnabled·||·limits.canBeAddedCount·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/selection_panels.js
|1132| »   »   »   if·(progress·||·!technologyEnabled·||·limits.canBeAddedCount·==·0·&&
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/functions_civinfo.js
|  26| »   »   »   if·(data[prop]·==·undefined)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with 'undefined'.

binaries/data/mods/public/gui/msgbox/msgbox.js
|  45| »   »   if·(i·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/color.js
| 131| »   if·(s·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/common/gamedescription.js
|  89| »   »   if·(playerData·==·null·||·playerData.Civ·&&·playerData.Civ·==·"gaia")
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with 'null'.

binaries/data/mods/public/gui/common/gamedescription.js
|  94| »   »   let·isAI·=·playerData.AI·&&·playerData.AI·!=·"";
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with ''.

binaries/data/mods/public/gui/common/gamedescription.js
| 311| »   »   »   »   g_GameAttributes.settings.Ceasefire·==·0·?
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/messages.js
| 490| »   let·cheatCode·=·Object.keys(g_Cheats).find(code·=>·text.indexOf(code)·==·0);
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/messages.js
| 870| »   if·(chatAddressee.selected·>·0·&&·(text.indexOf("/")·!=·0·||·text.indexOf("/me·")·==·0))
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/session/messages.js
| 870| »   if·(chatAddressee.selected·>·0·&&·(text.indexOf("/")·!=·0·||·text.indexOf("/me·")·==·0))
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/messages.js
|1084| »   let·isMe·=·msg.text.indexOf("/me·")·==·0;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/messages.js
|1088| »   isMe·=·msg.text.indexOf("/me·")·==·0;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/messages.js
|1206| »   »   if·(text.indexOf(pName·+·"·")·==·0·&&·pName.length·>·match.length)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/pregame/mainmenu.js
| 181| »   if·(submenu.hidden·==·false)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with 'false'.

binaries/data/mods/public/gui/summary/layout.js
| 294| »   »   if·(rowPlayerObjectWidth·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/session.js
| 838| »   »   i·==·0·||
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/session.js
| 840| »   »   g_GameAttributes.settings.PlayerData[i].AI·!=·"");
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with ''.

binaries/data/mods/public/gui/session/session.js
| 950| »   if·(direction·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/session.js
|1079| »   »   button.hidden·=·g_Groups.groups[i].getTotalCount()·==·0;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/session.js
|1140| »   »   if·(player·!=·0·&&
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.

binaries/data/mods/public/gui/session/session.js
|1425| »   »   if·(+playerID·==·0)
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/menu.js
| 642| »   »   »   button[res].up.hidden·=·!controlsPlayer(g_ViewedPlayer)·||·res·==·currTradeSelection·||·proba[res]·==·100·||·proba[currTradeSelection]·==·0;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/menu.js
| 643| »   »   »   button[res].dn.hidden·=·!controlsPlayer(g_ViewedPlayer)·||·res·==·currTradeSelection·||·proba[res]·==·0·||·proba[currTradeSelection]·==·100;
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0'.

binaries/data/mods/public/gui/session/menu.js
|1068| »   »   »   »   g_IsObserver·||·player·==·0·||·player·==·g_ViewedPlayer·||
|    | [NORMAL] JSHintBear:
|    | Use '===' to compare with '0

http://jenkins-master:8080/job/phabricator_lint/610/ for more details.

bb accepted this revision.Oct 21 2017, 6:08 PM

bblint stops complaining

binaries/data/mods/public/gui/session/selection_details.js
421 ↗(On Diff #3901)

ic

This revision is now accepted and ready to land.Oct 21 2017, 6:08 PM
This revision was automatically updated to reflect the committed changes.