diff --git a/.changeset/sweet-pumas-prove.md b/.changeset/sweet-pumas-prove.md new file mode 100644 index 000000000000..df1a0e7a7bc5 --- /dev/null +++ b/.changeset/sweet-pumas-prove.md @@ -0,0 +1,6 @@ +--- +swc_core: patch +swc_ecma_parser: patch +--- + +perf(es/parser): Remove `start` in `State` diff --git a/crates/swc_ecma_parser/src/lexer/mod.rs b/crates/swc_ecma_parser/src/lexer/mod.rs index f6928a95e3a1..2bf454fbe387 100644 --- a/crates/swc_ecma_parser/src/lexer/mod.rs +++ b/crates/swc_ecma_parser/src/lexer/mod.rs @@ -1212,7 +1212,7 @@ impl<'a> Lexer<'a> { } fn read_int_u32(&mut self, len: u8) -> LexResult> { - let start = self.state().start(); + let start = self.cur_pos(); let mut count = 0; let v = self.read_digits::<_, Option, RADIX>( diff --git a/crates/swc_ecma_parser/src/lexer/state.rs b/crates/swc_ecma_parser/src/lexer/state.rs index 9aa83a0964ca..befe021df7cd 100644 --- a/crates/swc_ecma_parser/src/lexer/state.rs +++ b/crates/swc_ecma_parser/src/lexer/state.rs @@ -34,7 +34,6 @@ pub struct State { /// TODO: Remove this field. is_first: bool, pub next_regexp: Option, - pub start: BytePos, pub prev_hi: BytePos, pub(super) token_value: Option, @@ -392,14 +391,6 @@ impl Lexer<'_> { return Ok(Token::Eof); } - // println!( - // "\tContext: ({:?}) {:?}", - // self.input.cur().unwrap(), - // self.state.context.0 - // ); - - self.state.start = *start; - self.read_token() } @@ -499,8 +490,6 @@ impl Lexer<'_> { value: value.into(), }); - self.state.start = start; - Ok(Token::JSXText) } @@ -587,7 +576,6 @@ impl State { had_line_break: false, is_first: true, next_regexp: None, - start: BytePos(0), prev_hi: start_pos, token_value: None, token_type: None, @@ -625,11 +613,6 @@ impl State { self.prev_hi } - #[inline(always)] - pub fn start(&self) -> BytePos { - self.start - } - pub fn can_have_trailing_line_comment(&self) -> bool { let Some(t) = self.token_type() else { return true;