2026-03-26

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

요약 (AI 작성)

zntc는 이날 ES5 타깃 다운레벨링을 거의 하루 만에 쌓아 올렸습니다. __async 런타임 헬퍼 자동 주입(#401)과 CLAUDE.md를 BUNDLER·PLUGINS·HMR 문서로 나누는 정리(#402)에 이어, ES5 타깃과 런타임 헬퍼 구조를 깔고(#404) 템플릿 리터럴, 단축·계산된 프로퍼티, 기본값·rest 매개변수, spread, 화살표 함수, for-of, 구조 분해, let·const, 클래스를 차례로 ES5 코드로 바꾸는 PR을 병합했습니다(#405부터 #414까지). generator는 상태 머신으로 바꾸고 변수 호이스팅, yield*, try 블록 안의 yield, 레이블 continue와 switch 안의 yield까지 다뤘으며(#416부터 #422까지), 클래스의 extends·super·getter와 setter, #field를 WeakMap으로 바꾸는 private 멤버 변환도 넣었습니다. 저녁에는 다운레벨링 스모크·유닛·통합 테스트를 더하고(#424부터 #426까지) private field가 여럿인 클래스의 패닉을 고쳤습니다(#427).

번들러 쪽은 namespace import의 프로퍼티 추적과 문장 단위 트리 셰이킹을 넣고(#428, #429), generator 무한 루프와 async 변환 오류를 고치면서 번들 크기 비교 대시보드를 추가했습니다(#430). 밤에는 generator 죽은 코드 제거(#433), ES2018 object rest와 private field 증감 연산(#434), useDefineForClassFields=false의 static 필드(#435), 매개변수 데코레이터와 ES5 타깃 데코레이터(#438)를 병합했고, TSC 적합성 테스트를 데코레이터 73개, 다운레벨링 230개, ES6·클래스·enum·generator 등 1,877개 추가했습니다(#439, #440). 서브패스 package.json 해석과 module 필드의 ESM 파싱 수정(#441)도 들어왔습니다.

bungae에는 zts 기반 번들러 뼈대와 이전 계획을 담은 #39가 열렸고 병합되지 않았습니다. 블로그 저장소에는 맞춤법 크론의 상태 갱신 커밋과 3월 26일 오늘의 커밋 요약 작성이 올라왔습니다.

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

커밋

ohah/ohah.github.io

ohah/zntc

PR (해당일 생성/머지)

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

저장소PR해당일 활동상태대상 브랜치제목
ohah/bungae#39생성openmainfeat: add zts-bundler scaffold and migration plan
ohah/zntc#441생성 · 병합mergedmainfix(resolver): 서브패스 package.json resolve + module 필드 ESM 파싱
ohah/zntc#440생성 · 병합mergedmaintest: TSC ES6/classes/enums/generators/expressions 적합성 테스트 1,877개 추가
ohah/zntc#439생성 · 병합mergedmaintest: TSC ES downlevel 적합성 테스트 230개 추가
ohah/zntc#438생성 · 병합mergedmainfeat(transformer): parameter decorator + decorator ES5 target (#437, #436)
ohah/zntc#435생성 · 병합mergedmainfix(transformer): useDefineForClassFields=false static field 변환
ohah/zntc#434생성 · 병합mergedmainfix(transformer): ES2018 object rest + private field mutation
ohah/zntc#433생성 · 병합mergedmainfix(transformer): generator dead code 제거
ohah/zntc#430생성 · 병합mergedmainfeat: generator/async 수정 + statement shaker 개선 + 사이즈 대시보드
ohah/zntc#429생성 · 병합mergedmainfeat(bundler): statement shaker 개선 + generator while 수정
ohah/zntc#428생성 · 병합mergedmainfeat(bundler): namespace import 프로퍼티 추적 + 다운레벨링 테스트 53개
ohah/zntc#427생성 · 병합mergedmainfix: 복수 private field 클래스 패닉 수정 (dangling slice)
ohah/zntc#426생성 · 병합mergedmaintest: 통합 테스트 10개 + 스모크 3개 추가
ohah/zntc#425생성 · 병합mergedmaintest: ES2015~ES2022 다운레벨링 유닛 테스트 27개 추가
ohah/zntc#424생성 · 병합mergedmaintest: 다운레벨링 스모크 테스트 15개 + --filter 옵션
ohah/zntc#423생성 · 병합mergedmainfix(es2015): class 메서드 내 arrow this 캡처 + getter/setter 쌍 합침
ohah/zntc#422생성 · 병합mergedmainfeat(es2015): generator switch yield + class private members
ohah/zntc#421생성 · 병합mergedmainfix(es2015): generator labeled continue가 for update를 건너뛰는 버그 수정
ohah/zntc#420생성 · 병합mergedmainfeat(es2015): arrow this 캡처, class extends/super/getter/setter/expression, destructuring rest, generator labeled break
ohah/zntc#419생성 · 병합mergedmainfeat(es2015): generator try/catch/finally 안의 yield 지원
ohah/zntc#418생성 · 병합mergedmainfeat(es2015): generator yield* + do-while 지원
ohah/zntc#417생성 · 병합mergedmainfeat(es2015): generator 변수 호이스팅
ohah/zntc#416생성 · 병합mergedmainfeat(es2015): generator function → 상태 머신
ohah/zntc#415생성 · 병합mergedmainfix(es2015): assignment destructuring + spread in new 누락 수정
ohah/zntc#414생성 · 병합mergedmainfeat(es2015): class → function + prototype assignment
ohah/zntc#413생성 · 병합mergedmainfeat(es2015): let/const → var
ohah/zntc#412생성 · 병합mergedmainfeat(es2015): destructuring → 개별 변수 선언
ohah/zntc#411생성 · 병합mergedmainfeat(es2015): for-of → index-based for loop
ohah/zntc#410생성 · 병합mergedmainfeat(es2015): arrow function → function expression
ohah/zntc#409생성 · 병합mergedmainfeat(es2015): spread → .apply() / [].concat()
ohah/zntc#408생성 · 병합mergedmainfeat(es2015): default/rest parameters → body 문 삽입
ohah/zntc#407생성 · 병합mergedmainfeat(es2015): computed property → sequence expression
ohah/zntc#406생성 · 병합mergedmainfeat(es2015): shorthand property → full form
ohah/zntc#405생성 · 병합mergedmainfeat(es2015): template literal → string concatenation
ohah/zntc#404생성 · 병합mergedmainfeat(es2015): 사전 작업 — es5 타겟, RuntimeHelpers, 기능별 스텁
ohah/zntc#403생성 · 병합mergedmainfix(es2022): static block 내 this → 클래스 이름 치환
ohah/zntc#402생성 · 병합mergedmaindocs: CLAUDE.md 구조 분리 — BUNDLER.md, PLUGINS.md, HMR.md
ohah/zntc#401생성 · 병합mergedmainfix(bundler): __async 런타임 헬퍼 자동 주입