Skip to content

Commit

Permalink
Fix: no-cond-assign had needed double parens in for (fixes #4023)
Browse files Browse the repository at this point in the history
  • Loading branch information
mysticatea committed Oct 6, 2015
1 parent 45389f9 commit 781785e
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
8 changes: 7 additions & 1 deletion lib/rules/no-cond-assign.js
Expand Up @@ -80,7 +80,13 @@ module.exports = function(context) {
* @returns {void}
*/
function testForAssign(node) {
if (node.test && (node.test.type === "AssignmentExpression") && !isParenthesisedTwice(node.test)) {
if (node.test &&
(node.test.type === "AssignmentExpression") &&
(node.type === "ForStatement" ?
!isParenthesised(node.test) :
!isParenthesisedTwice(node.test)
)
) {
// must match JSHint's error message
context.report({
node: node,
Expand Down
4 changes: 4 additions & 0 deletions tests/lib/rules/no-cond-assign.js
Expand Up @@ -27,10 +27,14 @@ ruleTester.run("no-cond-assign", rule, {
"if ((someNode = someNode.parentNode) !== null) { }",
{ code: "if ((someNode = someNode.parentNode) !== null) { }", options: ["except-parens"] },
"if ((a = b));",
"while ((a = b));",
"do {} while ((a = b));",
"for (;(a = b););",
"for (;;) {}",
"if (someNode || (someNode = parentNode)) { }",
"while (someNode || (someNode = parentNode)) { }",
"do { } while (someNode || (someNode = parentNode));",
"for (;someNode || (someNode = parentNode););",
"if ((function(node) { return (node = parentNode); })(someNode)) { }",
{ code: "x = 0;", options: ["always"] }
],
Expand Down

0 comments on commit 781785e

Please sign in to comment.