diff --git a/crates/oxc_parser/src/js/class.rs b/crates/oxc_parser/src/js/class.rs index da7b13665..1e6a67602 100644 --- a/crates/oxc_parser/src/js/class.rs +++ b/crates/oxc_parser/src/js/class.rs @@ -200,7 +200,9 @@ impl<'a> Parser<'a> { // async ... if key_name.is_none() && self.at(Kind::Async) && !self.peek_at(Kind::Question) { - if self.peek_kind().is_class_element_name_start() || self.peek_at(Kind::Star) { + if !self.peek_token().is_on_new_line + && (self.peek_kind().is_class_element_name_start() || self.peek_at(Kind::Star)) + { self.bump(Kind::Async); r#async = true; } else { diff --git a/tasks/coverage/misc/pass/swc-8253.js b/tasks/coverage/misc/pass/swc-8253.js index 3c7e10a9d..c95838f26 100644 --- a/tasks/coverage/misc/pass/swc-8253.js +++ b/tasks/coverage/misc/pass/swc-8253.js @@ -1,6 +1,9 @@ class C { + async async foo() {} static + static + static bar() {} }