Skip to content

Commit b8c03d4

Browse files
committed
fix: unexpected asi generation with sequence expression
1 parent f46a03c commit b8c03d4

File tree

3 files changed

+27
-1
lines changed

3 files changed

+27
-1
lines changed

lib/javascript/JavascriptParser.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3096,11 +3096,13 @@ class JavascriptParser extends Parser {
30963096
currentStatement.expression === expression)
30973097
) {
30983098
const old = /** @type {StatementPathItem} */ (this.statementPath.pop());
3099+
const prev = this.prevStatement;
30993100
for (const expr of expression.expressions) {
31003101
this.statementPath.push(expr);
31013102
this.walkExpression(expr);
3102-
this.statementPath.pop();
3103+
this.prevStatement = this.statementPath.pop();
31033104
}
3105+
this.prevStatement = prev;
31043106
this.statementPath.push(old);
31053107
} else {
31063108
this.walkExpressions(expression.expressions);
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export const fn = (num) => {
2+
return num;
3+
};
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { fn } from "./a"
2+
3+
function d() {}
4+
5+
var num = 1
6+
d(), fn();
7+
8+
export const b = 2
9+
d(), fn();
10+
11+
export default (function Foo() {})
12+
d(), fn();
13+
14+
export const c = 3
15+
function foo() {
16+
d(), fn();
17+
}
18+
19+
it("should work", function() {
20+
expect(fn(num)).toBe(1);
21+
});

0 commit comments

Comments
 (0)