Comparing version 8.41.0 to 8.42.0
@@ -594,3 +594,3 @@ /** | ||
let message; | ||
const isInNodeModules = baseDir && path.relative(baseDir, filePath).startsWith("node_modules"); | ||
const isInNodeModules = baseDir && path.dirname(path.relative(baseDir, filePath)).split(path.sep).includes("node_modules"); | ||
@@ -597,0 +597,0 @@ if (isInNodeModules) { |
@@ -112,3 +112,3 @@ /** | ||
if (codePath.thrownSegments.length > 0) { | ||
text += "thrown[label=\"✘\",shape=circle,width=0.3,height=0.3,fixedsize];\n"; | ||
text += "thrown[label=\"✘\",shape=circle,width=0.3,height=0.3,fixedsize=true];\n"; | ||
} | ||
@@ -115,0 +115,0 @@ |
@@ -103,3 +103,3 @@ /** | ||
/** | ||
* Checks identifier or literal nodes for errors that we are choosing to ignore and calls the relevant methods to remove the errors | ||
* Checks literal nodes for errors that we are choosing to ignore and calls the relevant methods to remove the errors | ||
* @param {ASTNode} node to check for matching errors. | ||
@@ -109,3 +109,3 @@ * @returns {void} | ||
*/ | ||
function removeInvalidNodeErrorsInIdentifierOrLiteral(node) { | ||
function removeInvalidNodeErrorsInLiteral(node) { | ||
const shouldCheckStrings = skipStrings && (typeof node.value === "string"); | ||
@@ -242,4 +242,3 @@ const shouldCheckRegExps = skipRegExps && Boolean(node.regex); | ||
nodes.Identifier = removeInvalidNodeErrorsInIdentifierOrLiteral; | ||
nodes.Literal = removeInvalidNodeErrorsInIdentifierOrLiteral; | ||
nodes.Literal = removeInvalidNodeErrorsInLiteral; | ||
nodes.TemplateElement = skipTemplates ? removeInvalidNodeErrorsInTemplateLiteral : noop; | ||
@@ -246,0 +245,0 @@ nodes["Program:exit"] = function() { |
@@ -85,3 +85,2 @@ /** | ||
const segmentInfoMap = new WeakMap(); | ||
const usedUnreachableSegments = new WeakSet(); | ||
const sourceCode = context.sourceCode; | ||
@@ -156,5 +155,6 @@ let scopeInfo = null; | ||
* @param {CodePathSegment} segment The segment to get return statements. | ||
* @param {Set<CodePathSegment>} usedUnreachableSegments A set of segments that have already been traversed in this call. | ||
* @returns {void} | ||
*/ | ||
function markReturnStatementsOnSegmentAsUsed(segment) { | ||
function markReturnStatementsOnSegmentAsUsed(segment, usedUnreachableSegments) { | ||
if (!segment.reachable) { | ||
@@ -165,3 +165,3 @@ usedUnreachableSegments.add(segment); | ||
.filter(prevSegment => !usedUnreachableSegments.has(prevSegment)) | ||
.forEach(markReturnStatementsOnSegmentAsUsed); | ||
.forEach(prevSegment => markReturnStatementsOnSegmentAsUsed(prevSegment, usedUnreachableSegments)); | ||
return; | ||
@@ -172,6 +172,25 @@ } | ||
for (const node of info.uselessReturns) { | ||
info.uselessReturns = info.uselessReturns.filter(node => { | ||
if (scopeInfo.traversedTryBlockStatements && scopeInfo.traversedTryBlockStatements.length > 0) { | ||
const returnInitialRange = node.range[0]; | ||
const returnFinalRange = node.range[1]; | ||
const areBlocksInRange = scopeInfo.traversedTryBlockStatements.some(tryBlockStatement => { | ||
const blockInitialRange = tryBlockStatement.range[0]; | ||
const blockFinalRange = tryBlockStatement.range[1]; | ||
return ( | ||
returnInitialRange >= blockInitialRange && | ||
returnFinalRange <= blockFinalRange | ||
); | ||
}); | ||
if (areBlocksInRange) { | ||
return true; | ||
} | ||
} | ||
remove(scopeInfo.uselessReturns, node); | ||
} | ||
info.uselessReturns = []; | ||
return false; | ||
}); | ||
} | ||
@@ -195,3 +214,3 @@ | ||
.currentSegments | ||
.forEach(markReturnStatementsOnSegmentAsUsed); | ||
.forEach(segment => markReturnStatementsOnSegmentAsUsed(segment, new Set())); | ||
} | ||
@@ -210,2 +229,3 @@ | ||
uselessReturns: [], | ||
traversedTryBlockStatements: [], | ||
codePath | ||
@@ -284,2 +304,10 @@ }; | ||
"TryStatement > BlockStatement.block:exit"(node) { | ||
scopeInfo.traversedTryBlockStatements.push(node); | ||
}, | ||
"TryStatement:exit"() { | ||
scopeInfo.traversedTryBlockStatements.pop(); | ||
}, | ||
/* | ||
@@ -286,0 +314,0 @@ * Registers for all statement nodes except FunctionDeclaration, BlockStatement, BreakStatement. |
{ | ||
"name": "eslint", | ||
"version": "8.41.0", | ||
"version": "8.42.0", | ||
"author": "Nicholas C. Zakas <nicholas+npm@nczconsulting.com>", | ||
@@ -66,4 +66,4 @@ "description": "An AST-based pattern checker for JavaScript.", | ||
"@eslint/eslintrc": "^2.0.3", | ||
"@eslint/js": "8.41.0", | ||
"@humanwhocodes/config-array": "^0.11.8", | ||
"@eslint/js": "8.42.0", | ||
"@humanwhocodes/config-array": "^0.11.10", | ||
"@humanwhocodes/module-importer": "^1.0.1", | ||
@@ -70,0 +70,0 @@ "@nodelib/fs.walk": "^1.2.8", |
@@ -287,3 +287,3 @@ [![npm version](https://img.shields.io/npm/v/eslint.svg)](https://www.npmjs.com/package/eslint) | ||
<p><a href="https://sentry.io"><img src="https://avatars.githubusercontent.com/u/1396951?v=4" alt="Sentry" height="64"></a> <a href="https://liftoff.io/"><img src="https://images.opencollective.com/liftoff/5c4fa84/logo.png" alt="Liftoff" height="64"></a> <a href="https://americanexpress.io"><img src="https://avatars.githubusercontent.com/u/3853301?v=4" alt="American Express" height="64"></a></p><h3>Bronze Sponsors</h3> | ||
<p><a href="https://www.vedonlyontibonukset.com/pitkavetovihjeet"><img src="https://images.opencollective.com/pitkavetovihjeet/0131f1d/logo.png" alt="Ilmaiset Pitkävetovihjeet" height="32"></a> <a href="https://paydaysay.com/"><img src="https://images.opencollective.com/payday-say-organization/9cd2467/logo.png" alt="PayDay Say" height="32"></a> <a href="https://themeisle.com"><img src="https://images.opencollective.com/themeisle/d5592fe/logo.png" alt="ThemeIsle" height="32"></a> <a href="https://nx.dev"><img src="https://images.opencollective.com/nx/0efbe42/logo.png" alt="Nx (by Nrwl)" height="32"></a> <a href="https://www.crosswordsolver.org/anagram-solver/"><img src="https://images.opencollective.com/anagram-solver/2666271/logo.png" alt="Anagram Solver" height="32"></a> <a href="https://icons8.com"><img src="https://images.opencollective.com/icons8/7fa1641/logo.png" alt="Icons8: free icons, photos, illustrations, and music" height="32"></a> <a href="https://discord.com"><img src="https://images.opencollective.com/discordapp/f9645d9/logo.png" alt="Discord" height="32"></a> <a href="https://transloadit.com/"><img src="https://avatars.githubusercontent.com/u/125754?v=4" alt="Transloadit" height="32"></a> <a href="https://www.ignitionapp.com"><img src="https://avatars.githubusercontent.com/u/5753491?v=4" alt="Ignition" height="32"></a> <a href="https://herocoders.com"><img src="https://avatars.githubusercontent.com/u/37549774?v=4" alt="HeroCoders" height="32"></a> <a href="https://quickbookstoolhub.com"><img src="https://avatars.githubusercontent.com/u/95090305?u=e5bc398ef775c9ed19f955c675cdc1fb6abf01df&v=4" alt="QuickBooks Tool hub" height="32"></a></p> | ||
<p><a href="#"><img src="https://images.opencollective.com/king-billy-slots1/c30c2aa/avatar.png" alt="King Billy Slots" height="32"></a> <a href="https://themeisle.com"><img src="https://images.opencollective.com/themeisle/d5592fe/logo.png" alt="ThemeIsle" height="32"></a> <a href="https://nx.dev"><img src="https://images.opencollective.com/nx/0efbe42/logo.png" alt="Nx (by Nrwl)" height="32"></a> <a href="https://www.crosswordsolver.org/anagram-solver/"><img src="https://images.opencollective.com/anagram-solver/2666271/logo.png" alt="Anagram Solver" height="32"></a> <a href="https://icons8.com"><img src="https://images.opencollective.com/icons8/7fa1641/logo.png" alt="Icons8: free icons, photos, illustrations, and music" height="32"></a> <a href="https://discord.com"><img src="https://images.opencollective.com/discordapp/f9645d9/logo.png" alt="Discord" height="32"></a> <a href="https://transloadit.com/"><img src="https://avatars.githubusercontent.com/u/125754?v=4" alt="Transloadit" height="32"></a> <a href="https://www.ignitionapp.com"><img src="https://avatars.githubusercontent.com/u/5753491?v=4" alt="Ignition" height="32"></a> <a href="https://herocoders.com"><img src="https://avatars.githubusercontent.com/u/37549774?v=4" alt="HeroCoders" height="32"></a> <a href="https://quickbookstoolhub.com"><img src="https://avatars.githubusercontent.com/u/95090305?u=e5bc398ef775c9ed19f955c675cdc1fb6abf01df&v=4" alt="QuickBooks Tool hub" height="32"></a></p> | ||
<!--sponsorsend--> | ||
@@ -290,0 +290,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
2884115
68246
3
5
1
29
+ Added@eslint/js@8.42.0(transitive)
- Removed@eslint/js@8.41.0(transitive)
Updated@eslint/js@8.42.0