# 일본 한달살이 23일차 (5월 20일)

컨디션이 매우 안 좋았다.

아침은 대충 초밥 먹었다.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1716192939056/7c9bc578-d27d-443e-af5a-255a68f8105d.png align="center")

점심을 늦게 먹었는데, 회를 먹었다.

> 참치와 우니는 가격에 비례해서 맛있어진다.

란 말을 최근에 누가 했었는데 맞는 말 같다. 저녁은 간단하게 두부하고 삼각김밥 먹었다.

## 작업 일지

### SWC Relay 플러그인 버그 수정

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

Relay와 서버 액션을 같이 썼을 때 에러나는 현상을 고쳤다.

### next.js: Stage 3 데코레이터 지원

* [https://github.com/vercel/next.js/pull/65963](https://github.com/vercel/next.js/pull/65963)
    

데코레이터 버전을 지정할 수 있게 바꿨다.

### 터보팩 Tree shaking PR

* [https://github.com/vercel/turbo/pull/7986](https://github.com/vercel/turbo/pull/7986)
    

리뷰 받을 때 팀원분이 테케 추가해주셔서 그것을 고치기 위해 작업했다.

`EcmascriptModuleContent::new` 가 잘못된 값으로 호출되고 있었고, 관련 코드에 로깅을 추가했다.

```rust

#[turbo_tasks::value_impl]
impl EcmascriptChunkItem for EcmascriptModulePartChunkItem {
    #[turbo_tasks::function]
    fn content(self: Vc<Self>) -> Vc<EcmascriptChunkItemContent> {
        panic!("content() should never be called");
    }

    #[turbo_tasks::function]
    async fn content_with_async_module_info(
        self: Vc<Self>,
        async_module_info: Option<Vc<AsyncModuleInfo>>,
    ) -> Result<Vc<EcmascriptChunkItemContent>> {
        let this = self.await?;
        let module = this.module.await?;

        let split_data = split_module(module.full_module);
        let parsed = part_of_module(split_data, module.part);

        let analyze = this.module.analyze().await?;
        let async_module_options = analyze.async_module.module_options(async_module_info);
        vdbg!(async_module_options, module.part, analyze.async_module);

        let module_type_result = *module.full_module.determine_module_type().await?;

        let content = EcmascriptModuleContent::new(
            parsed,
            module.full_module.ident(),
            module_type_result.module_type,
            this.chunking_context,
            analyze.references,
            analyze.code_generation,
            analyze.async_module,
            analyze.source_map,
            analyze.exports,
            async_module_info,
        );

        Ok(EcmascriptChunkItemContent::new(
            content,
            this.chunking_context,
            module.full_module.await?.options,
            async_module_options,
        ))
    }

    #[turbo_tasks::function]
    fn chunking_context(&self) -> Vc<Box<dyn ChunkingContext>> {
        self.chunking_context
    }
}
```

다른 `ModulePart`는 작동하는데 `ModulePart::ModuleEvaluation`에 대해 위의 `vdbg!`가 실행되지 않고 있었다. 여러가지 삽질을 했지만 해결하지 못했다.

### next.js 이슈 triage

* [https://github.com/swc-project/swc/issues/8960](https://github.com/swc-project/swc/issues/8960)
    

canary 버전 업데이트하고 재현 시도했는데 실패했다.
