2026-04-06

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

요약 (AI 작성)

zntc는 구조 개편과 ES5 다운레벨링 마무리를 함께 진행했습니다. 파서와 트랜스포머가 따로 쓰던 old/new AST를 하나의 append-only AST로 합쳤고(#775), ES2015 매개변수 lowering을 별도 2차 패스로 옮겼으며(#777), 모든 태그의 데이터 레이아웃을 한 표에 등록하고 comptime으로 검증하는 노드 레이아웃 인프라를 들였습니다. 이 과정에서 object_property·export default·JSX fragment 등의 레이아웃 오분류(#791, #792)와 클래스 접근자 변환의 dangling pointer 크래시(#793)가 드러나 고쳐졌습니다.

ES5 변환에는 tagged template, new.target(#781), for 루프 let/const 클로저 캡처를 위한 _loop 함수 추출, 블록 단위 let/const 이름 격리와 그 구조 분해 지원(#797, #801), using/await using과 --sourcemap-debug-ids(#822)가 추가됐습니다. let을 var로 바꿀 때 = void 0 초기화가 빠져 RN Fabric 레이아웃이 깨지던 문제(#818), 클래스 필드 화살표 함수의 _this 캡처(#819), 템플릿 보간식과 spread new의 괄호(#795, #796), __rest의 Symbol 프로퍼티 복사(#817)도 고쳤습니다. kangax compat-table 러너를 CI에 붙여 ES5 다운레벨링 99%를 기록했고(#815), 트랜스파일러로는 통과할 수 없는 항목을 스킵해 ES5 타깃 237개를 모두 통과했으며, SWC와 실행 결과를 비교하는 테스트도 CI에 넣었습니다(#820).

번들러는 RN 실행 안정화를 이어 갔습니다. 런타임 헬퍼 __copyProps·__toCommonJS를 Rolldown과 같은 방식으로 바꿔 non-enumerable getter를 살리고(#805), RN 엔트리 모듈도 __esm으로 감싸 초기화 순서를 보장하며 IIFE 래핑을 없앴습니다(#806, #807). namespace 인라인 객체를 getter로 만들어 live binding을 보존하고(#810), ESM default re-export의 __toESM 누락(#813), 자기 자신을 require하는 경우와 --shim-missing-exports(#814), top-level await 모듈의 async 래핑(#780), 번들 소스맵의 sourcesContent와 preamble 오프셋(#804)을 처리했습니다.

bungae는 prod 빌드에서 에셋 파일을 출력 디렉터리로 복사하고 플랫폼별 스케일을 거르며 WebP/BMP 치수도 읽게 했고, global을 덮어쓰지 않도록 __BUNGAE_GLOBAL__로 치환하고 폴리필용 폴백을 두었습니다. suji는 윈도우 기능의 설계 결정(메인 윈도우 개념 제거, 이벤트 콜백의 preventDefault 등)과 테스트 계획을 문서로 정리했습니다. ohah.github.io에는 ZTS 개발기 3-9·3-10과 3월 28일부터의 오늘의 커밋 페이지가 추가됐습니다.

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

커밋

ohah/bungae

ohah/ohah.github.io

ohah/suji

ohah/zntc

PR (해당일 생성/머지)

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

저장소PR해당일 활동상태대상 브랜치제목
ohah/zntc#824생성 · 병합mergedmaindocs(ROADMAP): 완료 항목 반영 + 번들러 인프라 미구현 테이블
ohah/zntc#823생성 · 병합mergedmainchore: bun.lock 업데이트 (SWC 의존성)
ohah/zntc#822생성 · 병합mergedmainfeat: sourcemapDebugIds + using/await using 다운레벨링
ohah/zntc#821생성 · 병합mergedmaindocs: 세션 성과 반영 + CLI 옵션 업데이트
ohah/zntc#820생성 · 병합mergedmainfeat(test): ZTS vs SWC ES 다운레벨링 비교 테스트 + CI
ohah/zntc#819생성 · 병합mergedmainfix(transformer): class field arrow function _this 캡처 누락 수정
ohah/zntc#818생성 · 병합mergedmainfix(transformer): let → var 변환 시 = void 0 초기화 누락 — RN Fabric 레이아웃 수정
ohah/zntc#817생성 · 병합mergedmainfix(runtime): __rest Symbol 프로퍼티 복사 누락 수정
ohah/zntc#816생성 · 병합mergedmainrefactor: /simplify 리뷰 반영 — super this 헬퍼 추출 + Symbol 안전성
ohah/zntc#815생성 · 병합mergedmainfeat(transformer): kangax compat-table 테스트 + ES5 다운레벨링 99%
ohah/zntc#814생성 · 병합mergedmainfix(linker): self-require 자기참조 방지 + shimMissingExports + RN 프리셋 개선
ohah/zntc#813생성 · 병합mergedmainfix(linker): ESM default re-export에서 __toESM 누락 수정 (#812)
ohah/zntc#811생성 · 병합mergedmainfix(linker): namespace getter 예약어 따옴표 + 테스트
ohah/zntc#810생성 · 병합mergedmainfix(linker): namespace 인라인 객체 getter로 변환 (live binding 보존)
ohah/zntc#809생성 · 병합mergedmainrefactor: /simplify 리뷰 반영 — 매직 넘버, 테스트 수정
ohah/zntc#808생성 · 병합mergedmainfix(bundler): 런타임 헬퍼 ES5 호환 + 주석 위치 수정
ohah/zntc#807생성 · 병합mergedmainfix(bundler): RN 플랫폼에서 IIFE 래핑 제거
ohah/zntc#806생성 · 병합mergedmainfix(bundler): RN 엔트리 __esm 래핑으로 초기화 순서 보장 (Rolldown 호환)
ohah/zntc#805생성 · 병합mergedmainfix(bundler): 런타임 헬퍼 Rolldown 호환 수정 (__copyProps, __toCommonJS)
ohah/zntc#804생성 · 병합mergedmainfix(sourcemap): 번들 소스맵에 sourcesContent 추가 및 preamble 오프셋 수정
ohah/zntc#803생성 · 병합mergedmainfix(semantic): Flow component syntax body의 symbol_id 미설정 수정
ohah/zntc#802생성 · 병합mergedmainfix(codegen): export default identifier mangling 시 할당문 누락 수정
ohah/zntc#801생성 · 병합mergedmainfix(transformer): block scoping destructuring 지원 + simplify 리뷰 반영 (#800)
ohah/zntc#798생성 · 병합mergedmainrefactor: /simplify 리뷰 반영 — block scoping 정리
ohah/zntc#797생성 · 병합mergedmainfeat(transformer): block scoping 블록 단위 let/const 스코프 격리 (#784)
ohah/zntc#796생성 · 병합mergedmainfix(transformer): spread in new expression 괄호 누락 수정 (#783)
ohah/zntc#795생성 · 병합mergedmainfix(transformer): template literal 보간 표현식 괄호 추가 (#782)
ohah/zntc#794생성 · 병합mergedmainrefactor: /simplify 리뷰 반영 — dangling pointer 수정 정리
ohah/zntc#793생성 · 병합mergedmainfix(transformer): class accessor extra_data dangling pointer 크래시 수정 (#788)
ohah/zntc#792생성 · 병합mergedmainfix(ast): export_default_declaration, jsx_fragment 레이아웃 오분류 수정
ohah/zntc#791생성 · 병합mergedmainfix(ast): object_property 노드 레이아웃 오분류 수정 (#790)
ohah/zntc#789생성 · 병합mergedmainfix(transformer): block scoping 재귀→��복 변환 + AST 오분류 수정 (#788)
ohah/zntc#781생성 · 병합mergedmainfeat(transformer): ES2015 테스트 보강 + new.target + for-of 버그 수정
ohah/zntc#780생성 · 병합mergedmainfix(bundler): TLA async 누락 수정 + 문서 현행화
ohah/zntc#778생성 · 병합mergedmaintest: template literal 스냅샷 업데이트
ohah/zntc#777생성 · 병합mergedmainrefactor: ES2015 params lowering 2-pass 전환 (Phase 4)
ohah/zntc#776생성closed기능 브랜치: refactor/single-astrefactor: ES2015 params lowering 2-pass 전환 (Phase 4)
ohah/zntc#775병합mergedmainrefactor: old_ast/new_ast 분리 → 단일 AST (append-only) 통합