diff --git a/crates/oxc_parser/src/js/function.rs b/crates/oxc_parser/src/js/function.rs index 946848c0e9b32..2b78eb84115ea 100644 --- a/crates/oxc_parser/src/js/function.rs +++ b/crates/oxc_parser/src/js/function.rs @@ -201,7 +201,7 @@ impl<'a, C: Config> ParserImpl<'a, C> { None }; - if (modifiers.accessibility().is_some() + if (modifiers.contains_accessibility() || modifiers.contains_readonly() || modifiers.contains_override()) && !pattern.is_binding_identifier() diff --git a/crates/oxc_parser/src/modifiers.rs b/crates/oxc_parser/src/modifiers.rs index ed8a5631bdbcf..be4452bdb61a9 100644 --- a/crates/oxc_parser/src/modifiers.rs +++ b/crates/oxc_parser/src/modifiers.rs @@ -153,6 +153,15 @@ mod modifiers { self.kinds.contains(ModifierKind::Override) } + #[inline] + pub fn contains_accessibility(&self) -> bool { + self.kinds.intersects(ModifierKinds::new([ + ModifierKind::Private, + ModifierKind::Protected, + ModifierKind::Public, + ])) + } + #[inline] pub fn accessibility(&self) -> Option { self.kinds.accessibility()