diff --git a/crates/oxc_parser/src/lexer/mod.rs b/crates/oxc_parser/src/lexer/mod.rs index a25e39ffb..60e8d7ef0 100644 --- a/crates/oxc_parser/src/lexer/mod.rs +++ b/crates/oxc_parser/src/lexer/mod.rs @@ -483,7 +483,8 @@ impl<'a> Lexer<'a> { } let remaining = self.remaining().as_bytes(); - let state = SkipWhitespace::new(self.current.token.is_on_new_line).simd(remaining); + let mut state = SkipWhitespace::new(self.current.token.is_on_new_line); + state.simd(remaining); // SAFETY: offset is computed to the boundary self.current.chars = @@ -512,7 +513,8 @@ impl<'a> Lexer<'a> { fn skip_multi_line_comment(&mut self) -> Kind { let remaining = self.remaining().as_bytes(); let newline = self.current.token.is_on_new_line; - let state = SkipMultilineComment::new(newline, remaining).simd(); + let mut state = SkipMultilineComment::new(newline, remaining); + state.simd(); // SAFETY: offset is computed to the boundary self.current.chars = diff --git a/crates/oxc_parser/src/lexer/simd.rs b/crates/oxc_parser/src/lexer/simd.rs index 8df552cb3..41b607a77 100644 --- a/crates/oxc_parser/src/lexer/simd.rs +++ b/crates/oxc_parser/src/lexer/simd.rs @@ -38,7 +38,7 @@ impl SkipWhitespace { } } - pub fn simd(mut self, bytes: &[u8]) -> Self { + pub fn simd(&mut self, bytes: &[u8]) -> &Self { let (chunks, remainder) = bytes.as_chunks::(); for chunk in chunks { @@ -119,7 +119,7 @@ impl<'a> SkipMultilineComment<'a> { } } - pub fn simd(mut self) -> Self { + pub fn simd(&mut self) -> &Self { let (chunks, remainder) = self.remaining.as_chunks::(); for chunk in chunks {