Update ESLint to 7.19.0
DISABLE_THIRD_PARTY_CHECK=NPM update
R=jacktfranklin@chromium.org
Bug: none
Change-Id: I6bc8fd7e6f416ceae5e849ba3c4061887b940f07
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2692306
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Auto-Submit: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
diff --git a/node_modules/eslint/lib/rules/prefer-const.js b/node_modules/eslint/lib/rules/prefer-const.js
index 439a4db..f6e79e7 100644
--- a/node_modules/eslint/lib/rules/prefer-const.js
+++ b/node_modules/eslint/lib/rules/prefer-const.js
@@ -5,6 +5,11 @@
"use strict";
+//------------------------------------------------------------------------------
+// Requirements
+//------------------------------------------------------------------------------
+
+const FixTracker = require("./utils/fix-tracker");
const astUtils = require("./utils/ast-utils");
//------------------------------------------------------------------------------
@@ -451,10 +456,18 @@
messageId: "useConst",
data: node,
fix: shouldFix
- ? fixer => fixer.replaceText(
- sourceCode.getFirstToken(varDeclParent, t => t.value === varDeclParent.kind),
- "const"
- )
+ ? fixer => {
+ const letKeywordToken = sourceCode.getFirstToken(varDeclParent, t => t.value === varDeclParent.kind);
+
+ /**
+ * Extend the replacement range to the whole declaration,
+ * in order to prevent other fixes in the same pass
+ * https://github.com/eslint/eslint/issues/13899
+ */
+ return new FixTracker(fixer, sourceCode)
+ .retainRange(varDeclParent.range)
+ .replaceTextRange(letKeywordToken.range, "const");
+ }
: null
});
});