From dadc8927820576c60b48bcbc7d5a9056a6279d30 Mon Sep 17 00:00:00 2001 From: Milos Djermanovic Date: Sat, 1 Feb 2020 01:13:07 +0100 Subject: [PATCH] Fix: operator-assignment crash on adjacent division assignment (#12844) --- lib/rules/operator-assignment.js | 2 +- tests/lib/rules/operator-assignment.js | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/rules/operator-assignment.js b/lib/rules/operator-assignment.js index b19ba0d02e1..c35d23e2a92 100644 --- a/lib/rules/operator-assignment.js +++ b/lib/rules/operator-assignment.js @@ -219,7 +219,7 @@ module.exports = { if ( operatorToken.range[1] === firstRightToken.range[0] && - !astUtils.canTokensBeAdjacent(newOperator, firstRightToken) + !astUtils.canTokensBeAdjacent({ type: "Punctuator", value: newOperator }, firstRightToken) ) { rightTextPrefix = " "; // foo+=+bar -> foo= foo+ +bar } diff --git a/tests/lib/rules/operator-assignment.js b/tests/lib/rules/operator-assignment.js index 4c6819c2703..b7174b9ee72 100644 --- a/tests/lib/rules/operator-assignment.js +++ b/tests/lib/rules/operator-assignment.js @@ -358,6 +358,11 @@ ruleTester.run("operator-assignment", rule, { output: "foo= foo+-bar", // tokens can be adjacent options: ["never"], errors: UNEXPECTED_OPERATOR_ASSIGNMENT + }, { + code: "foo/=bar", + output: "foo= foo/bar", // tokens can be adjacent + options: ["never"], + errors: UNEXPECTED_OPERATOR_ASSIGNMENT }, { code: "foo+=+bar", output: "foo= foo+ +bar", // tokens cannot be adjacent, insert a space between