2026-04-11

날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.

요약 (AI 작성)

zntc는 TC39 Stage 3 데코레이터 변환을 하루 안에 구현했습니다. 기존 experimental 데코레이터와 별도로 TypeScript 5.0+/Babel/SWC와 같은 __esDecorate·__runInitializers 출력을 내고, access 프로퍼티, 필드별 initializer, auto-accessor의 private backing field 변환, class expression, Symbol.metadata, private 필드·getter·setter·메서드 데코레이터까지 다뤘습니다(#1075). 식 평가와 적용을 분리해 TC39 스펙의 평가 순서를 따르게 했고, Babel 2023-11 conformance 테스트 46개를 포팅했으며, MobX 6 @computed getter가 실패하던 initializer 누락을 고친 뒤(#1077) MobX 스모크 테스트를 붙였습니다.

CSS 번들링 1단계로 Zig 네이티브 @import 추출기와 인라이닝, Lightning CSS minify를 넣고(#1080) 순환 import·미디어 쿼리 등 엣지 케이스와 Emotion·styled-components 스모크 테스트를 추가했습니다(#1081, #1083). Vite의 esbuild transform을 ZTS로 바꾸는 vite-plugin-zts(#1085, #1087), --certfile/--keyfile HTTPS dev 서버(#1068), import.meta.glob의 eager·import 옵션(#1071), UMD/AMD 포맷의 external 의존성 처리(#1070)도 들어왔습니다. scope hoisting 쪽은 모듈별 namespace 변수 이름으로 충돌을 막고(#1072), TS enum이 __esm 팩토리 안에 갇히던 버그(#1073), 순환 참조 init 순서(#1093)를 고쳤으며, Rolldown의 strictExecutionOrder에 해당하는 옵션과 팩토리가 throw해도 다른 모듈로 번지지 않게 하는 복구를 넣었습니다(#1078).

후반에는 Zig 네이티브 AST 플러그인 인터페이스와 Reanimated worklet 변환을 만들고(#1088), 문자열 기반 플러그인과 AST 플러그인을 하나로 합쳐 NAPI에 연결했으며(#1090), workletTransform 옵션을 NAPI에 노출했습니다(#1098). 이어 node_modules의 reanimated/worklets 적용 범위, 식 위치 worklet의 IIFE factory, initData 코드를 Codegen으로 생성, ES5 매개변수 변환 뒤 directive 탐색, rest 매개변수와 런타임 헬퍼 처리(#1099~#1106)를 차례로 고쳤습니다. [...map.values()]가 concat으로 바뀌어 iterator가 깨지던 ES5 spread 문제는 __toConsumableArray 헬퍼로 해결했습니다(#1096).

bungae는 이 변경들을 따라 ZTS 서브모듈을 여덟 차례 올리고 workletTransform을 켰습니다.

공개 커밋 91개, 해당일 생성 또는 병합된 PR 33개를 정리했습니다. PR 생성 32개·병합 33개는 같은 PR이 양쪽에 포함될 수 있습니다.

커밋

ohah/bungae

ohah/zntc

PR (해당일 생성/머지)

상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.

저장소PR해당일 활동상태대상 브랜치제목
ohah/zntc#1106생성 · 병합mergedmainfix(worklet): rest params, runtime helpers, and TS types in closure
ohah/zntc#1105생성 · 병합mergedmainfix(worklet): find directive after ES5 params transform
ohah/zntc#1103생성 · 병합mergedmainfix(worklet): use Codegen for initData.code instead of raw source
ohah/zntc#1101생성 · 병합mergedmainfeat(worklet): IIFE factory for function_expression worklets
ohah/zntc#1100생성 · 병합mergedmainfix(worklet): skip function_expression to avoid syntax error
ohah/zntc#1099생성 · 병합mergedmainfix(worklet): apply worklet transform to reanimated/worklets in node_modules
ohah/zntc#1098생성 · 병합mergedmainfeat(napi): add workletTransform option to NAPI build
ohah/zntc#1097생성 · 병합mergedmainfix: spread array literal optimization + gitignore dist
ohah/zntc#1096생성 · 병합mergedmainfix(es2015): spread iterator with __toConsumableArray helper
ohah/zntc#1094생성 · 병합mergedmainchore: add postinstall script for automatic zig build
ohah/zntc#1093생성 · 병합mergedmainfix(emitter): resolve circular ref init order in __esm factory
ohah/zntc#1090생성 · 병합mergedmainfeat: NAPI AST plugin bridge + Plugin unification
ohah/zntc#1089생성 · 병합mergedmainstyle: zig fmt worklet.zig
ohah/zntc#1088생성 · 병합mergedmainfeat: AST plugin system + Reanimated worklet native transform
ohah/zntc#1087생성 · 병합mergedmainfix(vite-plugin): Vite 8 호환 — esbuild: false 조건부 적용
ohah/zntc#1086생성 · 병합mergedmainfix(test): CI 소스맵 테스트 환경 차이 수정
ohah/zntc#1085생성 · 병합mergedmainfeat: vite-plugin-zts — Vite esbuild transform을 ZTS로 교체
ohah/zntc#1084생성 · 병합mergedmaindocs: CSS 번들링 관련 문서 5개 업데이트
ohah/zntc#1083생성 · 병합mergedmaintest(css): Emotion + Styled-Components + 네이티브 CSS 스모크 테스트
ohah/zntc#1081생성 · 병합mergedmaintest(css): CSS 번들링 엣지 케이스 9개 추가 (총 26개)
ohah/zntc#1080생성 · 병합mergedmainfeat(bundler): CSS 번들링 Phase 1 — @import 인라이닝 + Lightning CSS minify
ohah/zntc#1079생성 · 병합mergedmaindocs: Stage 3 decorators 완료로 로드맵 업데이트
ohah/zntc#1078생성 · 병합mergedmainfeat(emitter): strict execution order로 scope hoisting init 순서 보장
ohah/zntc#1077생성 · 병합mergedmainfix(decorator): @computed getter — Stage 3 initializer 체이닝 구현
ohah/zntc#1075생성 · 병합mergedmainfeat(decorator): TC39 Stage 3 decorator 변환 구현
ohah/zntc#1074생성 · 병합mergedmainfix(codegen): restore indent_level guard for esm_var_assign_only
ohah/zntc#1073생성 · 병합mergedmainfix(emitter): scope hoisting에서 TS enum이 __esm factory 안에 갇히는 버그 수정
ohah/zntc#1072생성 · 병합mergedmainfix(linker): scope hoisting에서 namespace 변수명 충돌 수정
ohah/zntc#1071생성 · 병합mergedmainfeat(bundler): import.meta.glob eager/import 옵션 지원
ohah/zntc#1070생성 · 병합mergedmainfix(emitter): UMD/AMD 포맷 external 의존성 올바르게 처리
ohah/zntc#1069생성 · 병합mergedmaindocs: ROADMAP HTTPS dev server 완료 표시
ohah/zntc#1068생성 · 병합mergedmainfeat(server): HTTPS dev server 지원 (--certfile / --keyfile)
ohah/zntc#1067병합mergedmainfix(emitter): dev 모드 ESM import binding을 namespace 접근 패턴으로 변경