summaryrefslogtreecommitdiff
path: root/tools/node_modules/eslint/lib/linter/code-path-analysis
diff options
context:
space:
mode:
Diffstat (limited to 'tools/node_modules/eslint/lib/linter/code-path-analysis')
-rw-r--r--tools/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js62
-rw-r--r--tools/node_modules/eslint/lib/linter/code-path-analysis/code-path-segment.js42
-rw-r--r--tools/node_modules/eslint/lib/linter/code-path-analysis/code-path-state.js121
-rw-r--r--tools/node_modules/eslint/lib/linter/code-path-analysis/code-path.js21
-rw-r--r--tools/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js20
-rw-r--r--tools/node_modules/eslint/lib/linter/code-path-analysis/fork-context.js57
-rw-r--r--tools/node_modules/eslint/lib/linter/code-path-analysis/id-generator.js4
7 files changed, 124 insertions, 203 deletions
diff --git a/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js b/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js
index 821477aef9..6822ae2be0 100644
--- a/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js
+++ b/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js
@@ -22,8 +22,7 @@ const assert = require("assert"),
/**
* Checks whether or not a given node is a `case` node (not `default` node).
- *
- * @param {ASTNode} node - A `SwitchCase` node to check.
+ * @param {ASTNode} node A `SwitchCase` node to check.
* @returns {boolean} `true` if the node is a `case` node (not `default` node).
*/
function isCaseNode(node) {
@@ -33,8 +32,7 @@ function isCaseNode(node) {
/**
* Checks whether the given logical operator is taken into account for the code
* path analysis.
- *
- * @param {string} operator - The operator found in the LogicalExpression node
+ * @param {string} operator The operator found in the LogicalExpression node
* @returns {boolean} `true` if the operator is "&&" or "||"
*/
function isHandledLogicalOperator(operator) {
@@ -43,8 +41,7 @@ function isHandledLogicalOperator(operator) {
/**
* Gets the label if the parent node of a given node is a LabeledStatement.
- *
- * @param {ASTNode} node - A node to get.
+ * @param {ASTNode} node A node to get.
* @returns {string|null} The label or `null`.
*/
function getLabel(node) {
@@ -57,8 +54,7 @@ function getLabel(node) {
/**
* Checks whether or not a given logical expression node goes different path
* between the `true` case and the `false` case.
- *
- * @param {ASTNode} node - A node to check.
+ * @param {ASTNode} node A node to check.
* @returns {boolean} `true` if the node is a test of a choice statement.
*/
function isForkingByTrueOrFalse(node) {
@@ -86,8 +82,7 @@ function isForkingByTrueOrFalse(node) {
* This is used to detect infinity loops (e.g. `while (true) {}`).
* Statements preceded by an infinity loop are unreachable if the loop didn't
* have any `break` statement.
- *
- * @param {ASTNode} node - A node to get.
+ * @param {ASTNode} node A node to get.
* @returns {boolean|undefined} a boolean value if the node is a Literal node,
* otherwise `undefined`.
*/
@@ -102,8 +97,7 @@ function getBooleanValueIfSimpleConstant(node) {
* Checks that a given identifier node is a reference or not.
*
* This is used to detect the first throwable node in a `try` block.
- *
- * @param {ASTNode} node - An Identifier node to check.
+ * @param {ASTNode} node An Identifier node to check.
* @returns {boolean} `true` if the node is a reference.
*/
function isIdentifierReference(node) {
@@ -153,9 +147,8 @@ function isIdentifierReference(node) {
*
* In this process, both "onCodePathSegmentStart" and "onCodePathSegmentEnd"
* events are fired.
- *
- * @param {CodePathAnalyzer} analyzer - The instance.
- * @param {ASTNode} node - The current AST node.
+ * @param {CodePathAnalyzer} analyzer The instance.
+ * @param {ASTNode} node The current AST node.
* @returns {void}
*/
function forwardCurrentToHead(analyzer, node) {
@@ -211,9 +204,8 @@ function forwardCurrentToHead(analyzer, node) {
/**
* Updates the current segment with empty.
* This is called at the last of functions or the program.
- *
- * @param {CodePathAnalyzer} analyzer - The instance.
- * @param {ASTNode} node - The current AST node.
+ * @param {CodePathAnalyzer} analyzer The instance.
+ * @param {ASTNode} node The current AST node.
* @returns {void}
*/
function leaveFromCurrentSegment(analyzer, node) {
@@ -242,9 +234,8 @@ function leaveFromCurrentSegment(analyzer, node) {
*
* For example, if the node is `parent.consequent`, this creates a fork from the
* current path.
- *
- * @param {CodePathAnalyzer} analyzer - The instance.
- * @param {ASTNode} node - The current AST node.
+ * @param {CodePathAnalyzer} analyzer The instance.
+ * @param {ASTNode} node The current AST node.
* @returns {void}
*/
function preprocess(analyzer, node) {
@@ -352,9 +343,8 @@ function preprocess(analyzer, node) {
/**
* Updates the code path due to the type of a given node in entering.
- *
- * @param {CodePathAnalyzer} analyzer - The instance.
- * @param {ASTNode} node - The current AST node.
+ * @param {CodePathAnalyzer} analyzer The instance.
+ * @param {ASTNode} node The current AST node.
* @returns {void}
*/
function processCodePathToEnter(analyzer, node) {
@@ -449,9 +439,8 @@ function processCodePathToEnter(analyzer, node) {
/**
* Updates the code path due to the type of a given node in leaving.
- *
- * @param {CodePathAnalyzer} analyzer - The instance.
- * @param {ASTNode} node - The current AST node.
+ * @param {CodePathAnalyzer} analyzer The instance.
+ * @param {ASTNode} node The current AST node.
* @returns {void}
*/
function processCodePathToExit(analyzer, node) {
@@ -563,9 +552,8 @@ function processCodePathToExit(analyzer, node) {
/**
* Updates the code path to finalize the current code path.
- *
- * @param {CodePathAnalyzer} analyzer - The instance.
- * @param {ASTNode} node - The current AST node.
+ * @param {CodePathAnalyzer} analyzer The instance.
+ * @param {ASTNode} node The current AST node.
* @returns {void}
*/
function postprocess(analyzer, node) {
@@ -609,8 +597,9 @@ function postprocess(analyzer, node) {
*/
class CodePathAnalyzer {
+ // eslint-disable-next-line jsdoc/require-description
/**
- * @param {EventGenerator} eventGenerator - An event generator to wrap.
+ * @param {EventGenerator} eventGenerator An event generator to wrap.
*/
constructor(eventGenerator) {
this.original = eventGenerator;
@@ -624,8 +613,7 @@ class CodePathAnalyzer {
/**
* Does the process to enter a given AST node.
* This updates state of analysis and calls `enterNode` of the wrapped.
- *
- * @param {ASTNode} node - A node which is entering.
+ * @param {ASTNode} node A node which is entering.
* @returns {void}
*/
enterNode(node) {
@@ -651,8 +639,7 @@ class CodePathAnalyzer {
/**
* Does the process to leave a given AST node.
* This updates state of analysis and calls `leaveNode` of the wrapped.
- *
- * @param {ASTNode} node - A node which is leaving.
+ * @param {ASTNode} node A node which is leaving.
* @returns {void}
*/
leaveNode(node) {
@@ -676,9 +663,8 @@ class CodePathAnalyzer {
/**
* This is called on a code path looped.
* Then this raises a looped event.
- *
- * @param {CodePathSegment} fromSegment - A segment of prev.
- * @param {CodePathSegment} toSegment - A segment of next.
+ * @param {CodePathSegment} fromSegment A segment of prev.
+ * @param {CodePathSegment} toSegment A segment of next.
* @returns {void}
*/
onLooped(fromSegment, toSegment) {
diff --git a/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path-segment.js b/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path-segment.js
index 8145f92801..6b17b25c7f 100644
--- a/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path-segment.js
+++ b/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path-segment.js
@@ -17,8 +17,7 @@ const debug = require("./debug-helpers");
/**
* Checks whether or not a given segment is reachable.
- *
- * @param {CodePathSegment} segment - A segment to check.
+ * @param {CodePathSegment} segment A segment to check.
* @returns {boolean} `true` if the segment is reachable.
*/
function isReachable(segment) {
@@ -34,11 +33,12 @@ function isReachable(segment) {
*/
class CodePathSegment {
+ // eslint-disable-next-line jsdoc/require-description
/**
- * @param {string} id - An identifier.
- * @param {CodePathSegment[]} allPrevSegments - An array of the previous segments.
+ * @param {string} id An identifier.
+ * @param {CodePathSegment[]} allPrevSegments An array of the previous segments.
* This array includes unreachable segments.
- * @param {boolean} reachable - A flag which shows this is reachable.
+ * @param {boolean} reachable A flag which shows this is reachable.
*/
constructor(id, allPrevSegments, reachable) {
@@ -98,8 +98,7 @@ class CodePathSegment {
/**
* Checks a given previous segment is coming from the end of a loop.
- *
- * @param {CodePathSegment} segment - A previous segment to check.
+ * @param {CodePathSegment} segment A previous segment to check.
* @returns {boolean} `true` if the segment is coming from the end of a loop.
*/
isLoopedPrevSegment(segment) {
@@ -108,8 +107,7 @@ class CodePathSegment {
/**
* Creates the root segment.
- *
- * @param {string} id - An identifier.
+ * @param {string} id An identifier.
* @returns {CodePathSegment} The created segment.
*/
static newRoot(id) {
@@ -118,9 +116,8 @@ class CodePathSegment {
/**
* Creates a segment that follows given segments.
- *
- * @param {string} id - An identifier.
- * @param {CodePathSegment[]} allPrevSegments - An array of the previous segments.
+ * @param {string} id An identifier.
+ * @param {CodePathSegment[]} allPrevSegments An array of the previous segments.
* @returns {CodePathSegment} The created segment.
*/
static newNext(id, allPrevSegments) {
@@ -133,9 +130,8 @@ class CodePathSegment {
/**
* Creates an unreachable segment that follows given segments.
- *
- * @param {string} id - An identifier.
- * @param {CodePathSegment[]} allPrevSegments - An array of the previous segments.
+ * @param {string} id An identifier.
+ * @param {CodePathSegment[]} allPrevSegments An array of the previous segments.
* @returns {CodePathSegment} The created segment.
*/
static newUnreachable(id, allPrevSegments) {
@@ -154,9 +150,8 @@ class CodePathSegment {
* Creates a segment that follows given segments.
* This factory method does not connect with `allPrevSegments`.
* But this inherits `reachable` flag.
- *
- * @param {string} id - An identifier.
- * @param {CodePathSegment[]} allPrevSegments - An array of the previous segments.
+ * @param {string} id An identifier.
+ * @param {CodePathSegment[]} allPrevSegments An array of the previous segments.
* @returns {CodePathSegment} The created segment.
*/
static newDisconnected(id, allPrevSegments) {
@@ -167,8 +162,7 @@ class CodePathSegment {
* Makes a given segment being used.
*
* And this function registers the segment into the previous segments as a next.
- *
- * @param {CodePathSegment} segment - A segment to mark.
+ * @param {CodePathSegment} segment A segment to mark.
* @returns {void}
*/
static markUsed(segment) {
@@ -195,9 +189,8 @@ class CodePathSegment {
/**
* Marks a previous segment as looped.
- *
- * @param {CodePathSegment} segment - A segment.
- * @param {CodePathSegment} prevSegment - A previous segment to mark.
+ * @param {CodePathSegment} segment A segment.
+ * @param {CodePathSegment} prevSegment A previous segment to mark.
* @returns {void}
*/
static markPrevSegmentAsLooped(segment, prevSegment) {
@@ -206,8 +199,7 @@ class CodePathSegment {
/**
* Replaces unused segments with the previous segments of each unused segment.
- *
- * @param {CodePathSegment[]} segments - An array of segments to replace.
+ * @param {CodePathSegment[]} segments An array of segments to replace.
* @returns {CodePathSegment[]} The replaced array.
*/
static flattenUnusedSegments(segments) {
diff --git a/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path-state.js b/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path-state.js
index 57da10fa91..75de1bc6ce 100644
--- a/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path-state.js
+++ b/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path-state.js
@@ -22,11 +22,10 @@ const CodePathSegment = require("./code-path-segment"),
* array as well.
*
* This adds only reachable and used segments.
- *
- * @param {CodePathSegment[]} dest - A destination array (`returnedSegments` or `thrownSegments`).
- * @param {CodePathSegment[]} others - Another destination array (`returnedSegments` or `thrownSegments`).
- * @param {CodePathSegment[]} all - The unified destination array (`finalSegments`).
- * @param {CodePathSegment[]} segments - Segments to add.
+ * @param {CodePathSegment[]} dest A destination array (`returnedSegments` or `thrownSegments`).
+ * @param {CodePathSegment[]} others Another destination array (`returnedSegments` or `thrownSegments`).
+ * @param {CodePathSegment[]} all The unified destination array (`finalSegments`).
+ * @param {CodePathSegment[]} segments Segments to add.
* @returns {void}
*/
function addToReturnedOrThrown(dest, others, all, segments) {
@@ -42,9 +41,8 @@ function addToReturnedOrThrown(dest, others, all, segments) {
/**
* Gets a loop-context for a `continue` statement.
- *
- * @param {CodePathState} state - A state to get.
- * @param {string} label - The label of a `continue` statement.
+ * @param {CodePathState} state A state to get.
+ * @param {string} label The label of a `continue` statement.
* @returns {LoopContext} A loop-context for a `continue` statement.
*/
function getContinueContext(state, label) {
@@ -67,9 +65,8 @@ function getContinueContext(state, label) {
/**
* Gets a context for a `break` statement.
- *
- * @param {CodePathState} state - A state to get.
- * @param {string} label - The label of a `break` statement.
+ * @param {CodePathState} state A state to get.
+ * @param {string} label The label of a `break` statement.
* @returns {LoopContext|SwitchContext} A context for a `break` statement.
*/
function getBreakContext(state, label) {
@@ -88,8 +85,7 @@ function getBreakContext(state, label) {
/**
* Gets a context for a `return` statement.
- *
- * @param {CodePathState} state - A state to get.
+ * @param {CodePathState} state A state to get.
* @returns {TryContext|CodePathState} A context for a `return` statement.
*/
function getReturnContext(state) {
@@ -107,8 +103,7 @@ function getReturnContext(state) {
/**
* Gets a context for a `throw` statement.
- *
- * @param {CodePathState} state - A state to get.
+ * @param {CodePathState} state A state to get.
* @returns {TryContext|CodePathState} A context for a `throw` statement.
*/
function getThrowContext(state) {
@@ -128,9 +123,8 @@ function getThrowContext(state) {
/**
* Removes a given element from a given array.
- *
- * @param {any[]} xs - An array to remove the specific element.
- * @param {any} x - An element to be removed.
+ * @param {any[]} xs An array to remove the specific element.
+ * @param {any} x An element to be removed.
* @returns {void}
*/
function remove(xs, x) {
@@ -143,9 +137,8 @@ function remove(xs, x) {
* This is used in a process for switch statements.
* If there is the "default" chunk before other cases, the order is different
* between node's and running's.
- *
- * @param {CodePathSegment[]} prevSegments - Forward segments to disconnect.
- * @param {CodePathSegment[]} nextSegments - Backward segments to disconnect.
+ * @param {CodePathSegment[]} prevSegments Forward segments to disconnect.
+ * @param {CodePathSegment[]} nextSegments Backward segments to disconnect.
* @returns {void}
*/
function removeConnection(prevSegments, nextSegments) {
@@ -162,10 +155,9 @@ function removeConnection(prevSegments, nextSegments) {
/**
* Creates looping path.
- *
- * @param {CodePathState} state - The instance.
- * @param {CodePathSegment[]} unflattenedFromSegments - Segments which are source.
- * @param {CodePathSegment[]} unflattenedToSegments - Segments which are destination.
+ * @param {CodePathState} state The instance.
+ * @param {CodePathSegment[]} unflattenedFromSegments Segments which are source.
+ * @param {CodePathSegment[]} unflattenedToSegments Segments which are destination.
* @returns {void}
*/
function makeLooped(state, unflattenedFromSegments, unflattenedToSegments) {
@@ -200,10 +192,9 @@ function makeLooped(state, unflattenedFromSegments, unflattenedToSegments) {
*
* - Adds `false` paths to paths which are leaving from the loop.
* - Sets `true` paths to paths which go to the body.
- *
- * @param {LoopContext} context - A loop context to modify.
- * @param {ChoiceContext} choiceContext - A choice context of this loop.
- * @param {CodePathSegment[]} head - The current head paths.
+ * @param {LoopContext} context A loop context to modify.
+ * @param {ChoiceContext} choiceContext A choice context of this loop.
+ * @param {CodePathSegment[]} head The current head paths.
* @returns {void}
*/
function finalizeTestSegmentsOfFor(context, choiceContext, head) {
@@ -227,10 +218,11 @@ function finalizeTestSegmentsOfFor(context, choiceContext, head) {
*/
class CodePathState {
+ // eslint-disable-next-line jsdoc/require-description
/**
- * @param {IdGenerator} idGenerator - An id generator to generate id for code
+ * @param {IdGenerator} idGenerator An id generator to generate id for code
* path segments.
- * @param {Function} onLooped - A callback function to notify looping.
+ * @param {Function} onLooped A callback function to notify looping.
*/
constructor(idGenerator, onLooped) {
this.idGenerator = idGenerator;
@@ -275,8 +267,7 @@ class CodePathState {
/**
* Creates and stacks new forking context.
- *
- * @param {boolean} forkLeavingPath - A flag which shows being in a
+ * @param {boolean} forkLeavingPath A flag which shows being in a
* "finally" block.
* @returns {ForkContext} The created context.
*/
@@ -313,7 +304,6 @@ class CodePathState {
/**
* Creates a bypass path.
* This is used for such as IfStatement which does not have "else" chunk.
- *
* @returns {void}
*/
forkBypassPath() {
@@ -346,12 +336,11 @@ class CodePathState {
* a -> foo();
* a -> b -> foo();
* a -> b -> bar();
- *
- * @param {string} kind - A kind string.
+ * @param {string} kind A kind string.
* If the new context is LogicalExpression's, this is `"&&"` or `"||"`.
* If it's IfStatement's or ConditionalExpression's, this is `"test"`.
* Otherwise, this is `"loop"`.
- * @param {boolean} isForkingAsResult - A flag that shows that goes different
+ * @param {boolean} isForkingAsResult A flag that shows that goes different
* paths between `true` and `false`.
* @returns {void}
*/
@@ -368,7 +357,6 @@ class CodePathState {
/**
* Pops the last choice context and finalizes it.
- *
* @returns {ChoiceContext} The popped context.
*/
popChoiceContext() {
@@ -456,7 +444,6 @@ class CodePathState {
/**
* Makes a code path segment of the right-hand operand of a logical
* expression.
- *
* @returns {void}
*/
makeLogicalRight() {
@@ -500,7 +487,6 @@ class CodePathState {
/**
* Makes a code path segment of the `if` block.
- *
* @returns {void}
*/
makeIfConsequent() {
@@ -527,7 +513,6 @@ class CodePathState {
/**
* Makes a code path segment of the `else` block.
- *
* @returns {void}
*/
makeIfAlternate() {
@@ -554,10 +539,9 @@ class CodePathState {
/**
* Creates a context object of SwitchStatement and stacks it.
- *
- * @param {boolean} hasCase - `true` if the switch statement has one or more
+ * @param {boolean} hasCase `true` if the switch statement has one or more
* case parts.
- * @param {string|null} label - The label text.
+ * @param {string|null} label The label text.
* @returns {void}
*/
pushSwitchContext(hasCase, label) {
@@ -581,7 +565,6 @@ class CodePathState {
* - Creates the next code path segment from `context.brokenForkContext`.
* - If the last `SwitchCase` node is not a `default` part, creates a path
* to the `default` body.
- *
* @returns {void}
*/
popSwitchContext() {
@@ -655,9 +638,8 @@ class CodePathState {
/**
* Makes a code path segment for a `SwitchCase` node.
- *
- * @param {boolean} isEmpty - `true` if the body is empty.
- * @param {boolean} isDefault - `true` if the body is the default case.
+ * @param {boolean} isEmpty `true` if the body is empty.
+ * @param {boolean} isDefault `true` if the body is the default case.
* @returns {void}
*/
makeSwitchCaseBody(isEmpty, isDefault) {
@@ -706,8 +688,7 @@ class CodePathState {
/**
* Creates a context object of TryStatement and stacks it.
- *
- * @param {boolean} hasFinalizer - `true` if the try statement has a
+ * @param {boolean} hasFinalizer `true` if the try statement has a
* `finally` block.
* @returns {void}
*/
@@ -729,7 +710,6 @@ class CodePathState {
/**
* Pops the last context of TryStatement and finalizes it.
- *
* @returns {void}
*/
popTryContext() {
@@ -785,7 +765,6 @@ class CodePathState {
/**
* Makes a code path segment for a `catch` block.
- *
* @returns {void}
*/
makeCatchBlock() {
@@ -814,7 +793,6 @@ class CodePathState {
* In the `finally` block, parallel paths are created. The parallel paths
* are used as leaving-paths. The leaving-paths are paths from `return`
* statements and `throw` statements in a `try` block or a `catch` block.
- *
* @returns {void}
*/
makeFinallyBlock() {
@@ -874,7 +852,6 @@ class CodePathState {
/**
* Makes a code path segment from the first throwable node to the `catch`
* block or the `finally` block.
- *
* @returns {void}
*/
makeFirstThrowablePathInTryBlock() {
@@ -903,11 +880,10 @@ class CodePathState {
/**
* Creates a context object of a loop statement and stacks it.
- *
- * @param {string} type - The type of the node which was triggered. One of
+ * @param {string} type The type of the node which was triggered. One of
* `WhileStatement`, `DoWhileStatement`, `ForStatement`, `ForInStatement`,
* and `ForStatement`.
- * @param {string|null} label - A label of the node which was triggered.
+ * @param {string|null} label A label of the node which was triggered.
* @returns {void}
*/
pushLoopContext(type, label) {
@@ -979,7 +955,6 @@ class CodePathState {
/**
* Pops the last context of a loop statement and finalizes it.
- *
* @returns {void}
*/
popLoopContext() {
@@ -1051,8 +1026,7 @@ class CodePathState {
/**
* Makes a code path segment for the test part of a WhileStatement.
- *
- * @param {boolean|undefined} test - The test value (only when constant).
+ * @param {boolean|undefined} test The test value (only when constant).
* @returns {void}
*/
makeWhileTest(test) {
@@ -1068,7 +1042,6 @@ class CodePathState {
/**
* Makes a code path segment for the body part of a WhileStatement.
- *
* @returns {void}
*/
makeWhileBody() {
@@ -1090,7 +1063,6 @@ class CodePathState {
/**
* Makes a code path segment for the body part of a DoWhileStatement.
- *
* @returns {void}
*/
makeDoWhileBody() {
@@ -1105,8 +1077,7 @@ class CodePathState {
/**
* Makes a code path segment for the test part of a DoWhileStatement.
- *
- * @param {boolean|undefined} test - The test value (only when constant).
+ * @param {boolean|undefined} test The test value (only when constant).
* @returns {void}
*/
makeDoWhileTest(test) {
@@ -1126,8 +1097,7 @@ class CodePathState {
/**
* Makes a code path segment for the test part of a ForStatement.
- *
- * @param {boolean|undefined} test - The test value (only when constant).
+ * @param {boolean|undefined} test The test value (only when constant).
* @returns {void}
*/
makeForTest(test) {
@@ -1145,7 +1115,6 @@ class CodePathState {
/**
* Makes a code path segment for the update part of a ForStatement.
- *
* @returns {void}
*/
makeForUpdate() {
@@ -1173,7 +1142,6 @@ class CodePathState {
/**
* Makes a code path segment for the body part of a ForStatement.
- *
* @returns {void}
*/
makeForBody() {
@@ -1227,7 +1195,6 @@ class CodePathState {
/**
* Makes a code path segment for the left part of a ForInStatement and a
* ForOfStatement.
- *
* @returns {void}
*/
makeForInOfLeft() {
@@ -1244,7 +1211,6 @@ class CodePathState {
/**
* Makes a code path segment for the right part of a ForInStatement and a
* ForOfStatement.
- *
* @returns {void}
*/
makeForInOfRight() {
@@ -1263,7 +1229,6 @@ class CodePathState {
/**
* Makes a code path segment for the body part of a ForInStatement and a
* ForOfStatement.
- *
* @returns {void}
*/
makeForInOfBody() {
@@ -1288,10 +1253,9 @@ class CodePathState {
/**
* Creates new context for BreakStatement.
- *
- * @param {boolean} breakable - The flag to indicate it can break by
+ * @param {boolean} breakable The flag to indicate it can break by
* an unlabeled BreakStatement.
- * @param {string|null} label - The label of this context.
+ * @param {string|null} label The label of this context.
* @returns {Object} The new context.
*/
pushBreakContext(breakable, label) {
@@ -1306,7 +1270,6 @@ class CodePathState {
/**
* Removes the top item of the break context stack.
- *
* @returns {Object} The removed context.
*/
popBreakContext() {
@@ -1333,8 +1296,7 @@ class CodePathState {
*
* It registers the head segment to a context of `break`.
* It makes new unreachable segment, then it set the head with the segment.
- *
- * @param {string} label - A label of the break statement.
+ * @param {string} label A label of the break statement.
* @returns {void}
*/
makeBreak(label) {
@@ -1359,8 +1321,7 @@ class CodePathState {
*
* It makes a looping path.
* It makes new unreachable segment, then it set the head with the segment.
- *
- * @param {string} label - A label of the continue statement.
+ * @param {string} label A label of the continue statement.
* @returns {void}
*/
makeContinue(label) {
@@ -1395,7 +1356,6 @@ class CodePathState {
*
* It registers the head segment to a context of `return`.
* It makes new unreachable segment, then it set the head with the segment.
- *
* @returns {void}
*/
makeReturn() {
@@ -1412,7 +1372,6 @@ class CodePathState {
*
* It registers the head segment to a context of `throw`.
* It makes new unreachable segment, then it set the head with the segment.
- *
* @returns {void}
*/
makeThrow() {
diff --git a/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path.js b/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path.js
index cb26ea18a3..49b37c6b22 100644
--- a/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path.js
+++ b/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path.js
@@ -21,10 +21,11 @@ const IdGenerator = require("./id-generator");
*/
class CodePath {
+ // eslint-disable-next-line jsdoc/require-description
/**
- * @param {string} id - An identifier.
- * @param {CodePath|null} upper - The code path of the upper function scope.
- * @param {Function} onLooped - A callback function to notify looping.
+ * @param {string} id An identifier.
+ * @param {CodePath|null} upper The code path of the upper function scope.
+ * @param {Function} onLooped A callback function to notify looping.
*/
constructor(id, upper, onLooped) {
@@ -62,8 +63,7 @@ class CodePath {
/**
* Gets the state of a given code path.
- *
- * @param {CodePath} codePath - A code path to get.
+ * @param {CodePath} codePath A code path to get.
* @returns {CodePathState} The state of the code path.
*/
static getState(codePath) {
@@ -126,11 +126,10 @@ class CodePath {
*
* - `controller.skip()` - Skip the following segments in this branch.
* - `controller.break()` - Skip all following segments.
- *
- * @param {Object} [options] - Omittable.
- * @param {CodePathSegment} [options.first] - The first segment to traverse.
- * @param {CodePathSegment} [options.last] - The last segment to traverse.
- * @param {Function} callback - A callback function.
+ * @param {Object} [options] Omittable.
+ * @param {CodePathSegment} [options.first] The first segment to traverse.
+ * @param {CodePathSegment} [options.last] The last segment to traverse.
+ * @param {Function} callback A callback function.
* @returns {void}
*/
traverseSegments(options, callback) {
@@ -171,7 +170,7 @@ class CodePath {
/**
* Checks a given previous segment has been visited.
- * @param {CodePathSegment} prevSegment - A previous segment to check.
+ * @param {CodePathSegment} prevSegment A previous segment to check.
* @returns {boolean} `true` if the segment has been visited.
*/
function isVisited(prevSegment) {
diff --git a/tools/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js b/tools/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js
index 2ca6dbc1e5..35a4cb2dac 100644
--- a/tools/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js
+++ b/tools/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js
@@ -17,7 +17,7 @@ const debug = require("debug")("eslint:code-path");
/**
* Gets id of a given segment.
- * @param {CodePathSegment} segment - A segment to get.
+ * @param {CodePathSegment} segment A segment to get.
* @returns {string} Id of the segment.
*/
/* istanbul ignore next */
@@ -39,18 +39,16 @@ module.exports = {
/**
* Dumps given objects.
- *
- * @param {...any} args - objects to dump.
+ * @param {...any} args objects to dump.
* @returns {void}
*/
dump: debug,
/**
* Dumps the current analyzing state.
- *
- * @param {ASTNode} node - A node to dump.
- * @param {CodePathState} state - A state to dump.
- * @param {boolean} leaving - A flag whether or not it's leaving
+ * @param {ASTNode} node A node to dump.
+ * @param {CodePathState} state A state to dump.
+ * @param {boolean} leaving A flag whether or not it's leaving
* @returns {void}
*/
dumpState: !debug.enabled ? debug : /* istanbul ignore next */ function(node, state, leaving) {
@@ -73,8 +71,7 @@ module.exports = {
/**
* Dumps a DOT code of a given code path.
* The DOT code can be visialized with Graphvis.
- *
- * @param {CodePath} codePath - A code path to dump.
+ * @param {CodePath} codePath A code path to dump.
* @returns {void}
* @see http://www.graphviz.org
* @see http://www.webgraphviz.com
@@ -139,9 +136,8 @@ module.exports = {
/**
* Makes a DOT code of a given code path.
* The DOT code can be visialized with Graphvis.
- *
- * @param {CodePath} codePath - A code path to make DOT.
- * @param {Object} traceMap - Optional. A map to check whether or not segments had been done.
+ * @param {CodePath} codePath A code path to make DOT.
+ * @param {Object} traceMap Optional. A map to check whether or not segments had been done.
* @returns {string} A DOT code of the code path.
*/
makeDotArrows(codePath, traceMap) {
diff --git a/tools/node_modules/eslint/lib/linter/code-path-analysis/fork-context.js b/tools/node_modules/eslint/lib/linter/code-path-analysis/fork-context.js
index 939ed2d0d9..eb1d2de5a7 100644
--- a/tools/node_modules/eslint/lib/linter/code-path-analysis/fork-context.js
+++ b/tools/node_modules/eslint/lib/linter/code-path-analysis/fork-context.js
@@ -22,8 +22,7 @@ const assert = require("assert"),
/**
* Gets whether or not a given segment is reachable.
- *
- * @param {CodePathSegment} segment - A segment to get.
+ * @param {CodePathSegment} segment A segment to get.
* @returns {boolean} `true` if the segment is reachable.
*/
function isReachable(segment) {
@@ -36,11 +35,10 @@ function isReachable(segment) {
* When `context.segmentsList` is `[[a, b], [c, d], [e, f]]`, `begin` is `0`, and
* `end` is `-1`, this creates `[g, h]`. This `g` is from `a`, `c`, and `e`.
* This `h` is from `b`, `d`, and `f`.
- *
- * @param {ForkContext} context - An instance.
- * @param {number} begin - The first index of the previous segments.
- * @param {number} end - The last index of the previous segments.
- * @param {Function} create - A factory function of new segments.
+ * @param {ForkContext} context An instance.
+ * @param {number} begin The first index of the previous segments.
+ * @param {number} end The last index of the previous segments.
+ * @param {Function} create A factory function of new segments.
* @returns {CodePathSegment[]} New segments.
*/
function makeSegments(context, begin, end, create) {
@@ -69,9 +67,8 @@ function makeSegments(context, begin, end, create) {
* control statement (such as `break`, `continue`) from the `finally` block, the
* destination's segments may be half of the source segments. In that case, this
* merges segments.
- *
- * @param {ForkContext} context - An instance.
- * @param {CodePathSegment[]} segments - Segments to merge.
+ * @param {ForkContext} context An instance.
+ * @param {CodePathSegment[]} segments Segments to merge.
* @returns {CodePathSegment[]} The merged segments.
*/
function mergeExtraSegments(context, segments) {
@@ -100,10 +97,11 @@ function mergeExtraSegments(context, segments) {
*/
class ForkContext {
+ // eslint-disable-next-line jsdoc/require-description
/**
- * @param {IdGenerator} idGenerator - An identifier generator for segments.
- * @param {ForkContext|null} upper - An upper fork context.
- * @param {number} count - A number of parallel segments.
+ * @param {IdGenerator} idGenerator An identifier generator for segments.
+ * @param {ForkContext|null} upper An upper fork context.
+ * @param {number} count A number of parallel segments.
*/
constructor(idGenerator, upper, count) {
this.idGenerator = idGenerator;
@@ -142,9 +140,8 @@ class ForkContext {
/**
* Creates new segments from this context.
- *
- * @param {number} begin - The first index of previous segments.
- * @param {number} end - The last index of previous segments.
+ * @param {number} begin The first index of previous segments.
+ * @param {number} end The last index of previous segments.
* @returns {CodePathSegment[]} New segments.
*/
makeNext(begin, end) {
@@ -154,9 +151,8 @@ class ForkContext {
/**
* Creates new segments from this context.
* The new segments is always unreachable.
- *
- * @param {number} begin - The first index of previous segments.
- * @param {number} end - The last index of previous segments.
+ * @param {number} begin The first index of previous segments.
+ * @param {number} end The last index of previous segments.
* @returns {CodePathSegment[]} New segments.
*/
makeUnreachable(begin, end) {
@@ -167,9 +163,8 @@ class ForkContext {
* Creates new segments from this context.
* The new segments don't have connections for previous segments.
* But these inherit the reachable flag from this context.
- *
- * @param {number} begin - The first index of previous segments.
- * @param {number} end - The last index of previous segments.
+ * @param {number} begin The first index of previous segments.
+ * @param {number} end The last index of previous segments.
* @returns {CodePathSegment[]} New segments.
*/
makeDisconnected(begin, end) {
@@ -179,8 +174,7 @@ class ForkContext {
/**
* Adds segments into this context.
* The added segments become the head.
- *
- * @param {CodePathSegment[]} segments - Segments to add.
+ * @param {CodePathSegment[]} segments Segments to add.
* @returns {void}
*/
add(segments) {
@@ -192,8 +186,7 @@ class ForkContext {
/**
* Replaces the head segments with given segments.
* The current head segments are removed.
- *
- * @param {CodePathSegment[]} segments - Segments to add.
+ * @param {CodePathSegment[]} segments Segments to add.
* @returns {void}
*/
replaceHead(segments) {
@@ -204,8 +197,7 @@ class ForkContext {
/**
* Adds all segments of a given fork context into this context.
- *
- * @param {ForkContext} context - A fork context to add.
+ * @param {ForkContext} context A fork context to add.
* @returns {void}
*/
addAll(context) {
@@ -220,7 +212,6 @@ class ForkContext {
/**
* Clears all secments in this context.
- *
* @returns {void}
*/
clear() {
@@ -229,8 +220,7 @@ class ForkContext {
/**
* Creates the root fork context.
- *
- * @param {IdGenerator} idGenerator - An identifier generator for segments.
+ * @param {IdGenerator} idGenerator An identifier generator for segments.
* @returns {ForkContext} New fork context.
*/
static newRoot(idGenerator) {
@@ -243,9 +233,8 @@ class ForkContext {
/**
* Creates an empty fork context preceded by a given context.
- *
- * @param {ForkContext} parentContext - The parent fork context.
- * @param {boolean} forkLeavingPath - A flag which shows inside of `finally` block.
+ * @param {ForkContext} parentContext The parent fork context.
+ * @param {boolean} forkLeavingPath A flag which shows inside of `finally` block.
* @returns {ForkContext} New fork context.
*/
static newEmpty(parentContext, forkLeavingPath) {
diff --git a/tools/node_modules/eslint/lib/linter/code-path-analysis/id-generator.js b/tools/node_modules/eslint/lib/linter/code-path-analysis/id-generator.js
index 062058ddc1..4cb2e0e3d8 100644
--- a/tools/node_modules/eslint/lib/linter/code-path-analysis/id-generator.js
+++ b/tools/node_modules/eslint/lib/linter/code-path-analysis/id-generator.js
@@ -18,8 +18,9 @@
*/
class IdGenerator {
+ // eslint-disable-next-line jsdoc/require-description
/**
- * @param {string} prefix - Optional. A prefix of generated ids.
+ * @param {string} prefix Optional. A prefix of generated ids.
*/
constructor(prefix) {
this.prefix = String(prefix);
@@ -28,7 +29,6 @@ class IdGenerator {
/**
* Generates id.
- *
* @returns {string} A generated id.
*/
next() {