MCPcopy
hub / github.com/webpack/webpack / walkSequenceExpression

Method walkSequenceExpression

lib/javascript/JavascriptParser.js:3747–3780  ·  view source on GitHub ↗

* Walk sequence expression. * @param {SequenceExpression} expression the sequence

(expression)

Source from the content-addressed store, hash-verified

3745 * @param {SequenceExpression} expression the sequence
3746 */
3747 walkSequenceExpression(expression) {
3748 if (!expression.expressions) return;
3749 // We treat sequence expressions like statements when they are one statement level
3750 // This has some benefits for optimizations that only work on statement level
3751 const currentStatement =
3752 /** @type {StatementPath} */
3753 (this.statementPath)[
3754 /** @type {StatementPath} */
3755 (this.statementPath).length - 1
3756 ];
3757 if (
3758 currentStatement === expression ||
3759 (currentStatement.type === "ExpressionStatement" &&
3760 currentStatement.expression === expression)
3761 ) {
3762 const old =
3763 /** @type {StatementPathItem} */
3764 (/** @type {StatementPath} */ (this.statementPath).pop());
3765 const prev = this.prevStatement;
3766 for (const expr of expression.expressions) {
3767 /** @type {StatementPath} */
3768 (this.statementPath).push(expr);
3769 this.walkExpression(expr);
3770 this.prevStatement =
3771 /** @type {StatementPath} */
3772 (this.statementPath).pop();
3773 }
3774 this.prevStatement = prev;
3775 /** @type {StatementPath} */
3776 (this.statementPath).push(old);
3777 } else {
3778 this.walkExpressions(expression.expressions);
3779 }
3780 }
3781
3782 /**
3783 * Walk update expression.

Callers 1

walkExpressionMethod · 0.95

Calls 4

walkExpressionMethod · 0.95
walkExpressionsMethod · 0.95
popMethod · 0.80
pushMethod · 0.45

Tested by

no test coverage detected