MCPcopy
hub / github.com/webpack/webpack / walkIfStatement

Method walkIfStatement

lib/javascript/JavascriptParser.js:2446–2476  ·  view source on GitHub ↗

* Processes the provided statement. * @param {IfStatement} statement if statement

(statement)

Source from the content-addressed store, hash-verified

2444 * @param {IfStatement} statement if statement
2445 */
2446 walkIfStatement(statement) {
2447 const result = this.hooks.statementIf.call(statement);
2448 if (result === undefined) {
2449 const guard = this.hooks.collectGuards.call(statement.test);
2450 this.walkExpression(statement.test);
2451 this.walkGuardedBranch(guard ? guard.consequent : undefined, () =>
2452 this.walkNestedStatement(statement.consequent)
2453 );
2454
2455 const consequentTerminated = this.scope.terminated;
2456 this.scope.terminated = undefined;
2457
2458 if (statement.alternate) {
2459 const alternate = statement.alternate;
2460 this.walkGuardedBranch(guard ? guard.alternate : undefined, () =>
2461 this.walkNestedStatement(alternate)
2462 );
2463 }
2464
2465 const alternateTerminated = this.scope.terminated;
2466
2467 this.scope.terminated =
2468 consequentTerminated && alternateTerminated
2469 ? alternateTerminated
2470 : undefined;
2471 } else if (result) {
2472 this.walkNestedStatement(statement.consequent);
2473 } else if (statement.alternate) {
2474 this.walkNestedStatement(statement.alternate);
2475 }
2476 }
2477
2478 /**
2479 * Pre walk labeled statement.

Callers 1

walkStatementMethod · 0.95

Calls 4

walkExpressionMethod · 0.95
walkGuardedBranchMethod · 0.95
walkNestedStatementMethod · 0.95
callMethod · 0.45

Tested by

no test coverage detected