# 2024년 6월 15일 작업일지

쉬는 날이지만 땡겨서 SWC 성능 개선 작업을 좀 했다.

### SWC ES AST 유틸리티 추가

* [https://github.com/swc-project/swc/pull/9054](https://github.com/swc-project/swc/pull/9054)
    

### SWC ES 렉서 성능 개선

* [https://github.com/swc-project/swc/pull/9056](https://github.com/swc-project/swc/pull/9056)
    

어제 했던 작업들과 마찬가지로 `raw` 를 저장하기 위해 했던 할당들을 없애는 PR이다.

### `SourceSlice` for SWC

* [https://github.com/swc-project/swc/pull/9055](https://github.com/swc-project/swc/pull/9055)
    

AST에서 `raw: Atom`을 전부 `raw: SourceSlice`로 바꿀 생각인데, `SourceSlice`는 할당을 하지 않는 문자열 타입이다. `SourceSlice` 는 입력으로 받은 소스코드를 `Lrc<String>`으로, 그 소스코드 중 어느 부분을 가리키는지 저장하는지를 `start: u32, end: u32`로 들고있다가 문자열로 접근을 하면 `&str` 처럼 작동한다.

근데 벤치마크 해보니까 성능 차이가 그리 크지 않아서 미뤘다. 나중에 토큰 타입 정리할 때 같이 작업할 생각이다.

### `@swc/core`@`v1.6.0` 배포

* [커밋](https://github.com/swc-project/swc/commit/13c2b2eef0cf0a764fba4ba33c58d57c070e55e0)
    

### `mdxjs-rs` 의 `swc_core` 업데이트

* [https://github.com/wooorm/mdxjs-rs/pull/47](https://github.com/wooorm/mdxjs-rs/pull/47)
    

### `swc/plugins`의 `swc_core` 업데이트

* [https://github.com/swc-project/plugins/pull/316](https://github.com/swc-project/plugins/pull/316)
