diff --git a/crates/rspack_plugin_javascript/src/visitors/dependency/parser/walk.rs b/crates/rspack_plugin_javascript/src/visitors/dependency/parser/walk.rs index fac07d5f3c27..9f2c22cbfe17 100644 --- a/crates/rspack_plugin_javascript/src/visitors/dependency/parser/walk.rs +++ b/crates/rspack_plugin_javascript/src/visitors/dependency/parser/walk.rs @@ -541,7 +541,7 @@ impl<'parser> JavascriptParser<'parser> { let was_top_level = self.top_level_scope; self.top_level_scope = TopLevelScope::False; if let Some(body) = &getter.body { - self.walk_block_statement(body); + self.walk_statement(Statement::Block(body)); } self.top_level_scope = was_top_level; } @@ -550,7 +550,7 @@ impl<'parser> JavascriptParser<'parser> { let was_top_level = self.top_level_scope; self.top_level_scope = TopLevelScope::False; if let Some(body) = &setter.body { - self.walk_block_statement(body); + self.walk_statement(Statement::Block(body)); } self.top_level_scope = was_top_level; } @@ -1349,9 +1349,9 @@ impl<'parser> JavascriptParser<'parser> { if let Some(body) = &ctor.body { this.detect_mode(&body.stmts); let prev = this.prev_statement; - this.pre_walk_block_statement(body); + this.pre_walk_statement(Statement::Block(body)); this.prev_statement = prev; - this.walk_block_statement(body); + this.walk_statement(Statement::Block(body)); } }); diff --git a/packages/rspack-test-tools/tests/normalCases/parsing/ctor-import-asi/index.js b/packages/rspack-test-tools/tests/normalCases/parsing/ctor-import-asi/index.js new file mode 100644 index 000000000000..a7fa647a28d0 --- /dev/null +++ b/packages/rspack-test-tools/tests/normalCases/parsing/ctor-import-asi/index.js @@ -0,0 +1,17 @@ +import { destroyMaybe as i } from "./util.js"; +class j { + constructor() { + // should automatically insert semicolon + this.ground = 1 + } + destroy() { + i(), + i(); + return 1; + } +} + +it("methods after the ctor should not insert unexpected semicolon", () => { + expect(new j().destroy()).toBe(1); +}); + diff --git a/packages/rspack-test-tools/tests/normalCases/parsing/ctor-import-asi/util.js b/packages/rspack-test-tools/tests/normalCases/parsing/ctor-import-asi/util.js new file mode 100644 index 000000000000..428fe010383f --- /dev/null +++ b/packages/rspack-test-tools/tests/normalCases/parsing/ctor-import-asi/util.js @@ -0,0 +1,3 @@ +export function destroyMaybe(i) { + return i; +}