2026-04-14

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

요약 (AI 작성)

zntc는 호환성 기반을 넓히는 작업으로 시작했습니다. kangax compat-table 실측값으로 compat.zig를 검증·생성하는 스크립트(#1268), 번들의 __async 중복 주입 수정과 browserslist 지원(#1269, #1270), .d.ts 생성(#1271)을 병합했고, bungae처럼 로컬 경로로 쓰는 쪽에서 설치가 깨지지 않게 browserslist를 optional 의존성으로 돌렸습니다(#1273). private 클래스 다운레벨링은 constructor 중복 출력, standalone 메서드 함수 안 this.#field, class 보존 경로의 static #field와 static block 누락을 고치고(#1276~#1281), #x in obj brand check 다운레벨링을 추가했습니다(#1284).

React Native는 --platform=react-native가 Hermes 미지원 기능 표를 강제로 적용하게 한 뒤(#1285), 화살표 함수와 let/const 다운레벨을 차례로 더하고 결국 RN 프리셋을 ES5 매트릭스로 넓혔습니다(#1300, #1301, #1304). 그 과정에서 for-of/for-in 구조 분해에 void 0 초기화가 붙던 문제(#1303), __generator의 sent()가 throw를 다시 던지지 않아 rejected Promise가 값으로 풀리던 문제(#1307), re-export getter가 canonical 로컬 이름을 쓰지 않던 문제(#1313), __esm 안 호이스팅 함수의 소스맵 매핑(#1316), --minify CLI 크래시를 낸 arena 해제 순서(#1289)를 고쳤습니다. webpack UMD 번들의 복구 가능한 파서 에러로 모듈을 건너뛰던 문제도 바로잡고(#1293), 앞서 넣은 require 참조 보호는 중복 안전망이라 되돌렸습니다(#1294).

AST와 번들러 내부도 크게 손봤습니다. 화살표 함수 매개변수를 formal_parameters 노드로 정규화하고(#1287), 이를 함수·메서드 전체로 넓혀 매개변수 레이아웃과 헬퍼 시그니처를 NodeList로 통일했으며(#1324, #1326, #1327), 변수 선언 종류를 매직 넘버에서 enum으로 바꿨습니다(#1318). barrel 모듈의 default re-export가 같은 이름의 named export를 덮던 문제는 직접 커밋한 수정을 되돌린 뒤, 번들러 전용 심볼 테이블을 도입하는 단계적 리팩터링 안에서 다뤘습니다. 심볼 테이블 타입(#1329), 바인딩의 심볼 필드(#1330), 심볼 기반 _default getter(#1331), 문자열 기반 re-export 체인 해석 제거(#1332), CJS emit 분리(#1334), 심볼 참조 횟수 수집(#1336)까지 병합됐고, 합성 default를 시맨틱 공간으로 옮기는 PoC #1339는 이날 PR이 열렸습니다.

bungae는 Metro와 같은 transformer.babelTransformerPath 설정과 Babel 플러그인 자동 감지를 추가하고, 비동기 transformer 처리와 터미널 raw 모드 복구를 고쳤습니다.

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

커밋

ohah/bungae

ohah/zntc

PR (해당일 생성/머지)

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

저장소PR해당일 활동상태대상 브랜치제목
ohah/zntc#1339생성mergedmainrefactor(bundler): Phase 4e-2b PoC — synthetic_default를 semantic 공간으로 이전
ohah/zntc#1337생성 · 병합mergedmainchore(bundler): /simplify Phase 4d 후속 — export_map O(1) lookup
ohah/zntc#1336생성 · 병합mergedmainrefactor(bundler): Phase 4d — Symbol.ref_count 수집 시작 (#1328)
ohah/zntc#1335생성 · 병합mergedmainchore(bundler): /simplify Phase 4a 후속 — dead code 제거 (#1328)
ohah/zntc#1334생성 · 병합mergedmainrefactor(bundler): Phase 4a — cjs_wrap 분리 + _default 판정 symbol table 단일화 (#1328)
ohah/zntc#1333생성 · 병합mergedmainchore(bundler): /simplify Phase 3b+3c 후속 — 헬퍼 중복 제거 + 문서 정정
ohah/zntc#1332생성 · 병합mergedmainrefactor(bundler): Phase 3b+3c — symbol-ref 기반 re-export 체인 + 문자열 resolveExportChain 제거 (#1328)
ohah/zntc#1331생성 · 병합mergedmainrefactor(bundler): Phase 3a — symbol table 기반 _default getter + #1321/Platform.js 회귀 fix (#1328)
ohah/zntc#1330생성 · 병합mergedmainrefactor(bundler): Phase 2 — Import/ExportBinding.symbol 필드 추가 (#1328)
ohah/zntc#1329생성 · 병합mergedmainrefactor(bundler): Phase 1 — SymbolTable 타입 + Module 통합 (#1328)
ohah/zntc#1327생성 · 병합mergedmainfix(napi): FunctionInfo params NodeList 시그니처 반영
ohah/zntc#1326생성 · 병합mergedmainrefactor(params): Phase 3 — params 헬퍼 시그니처 NodeList 로 통일
ohah/zntc#1324생성 · 병합mergedmainrefactor(ast): Phase 2 — function/method params formal_parameters 노드로 정규화
ohah/zntc#1322생성 · 병합mergedmainrefactor(ast): function params 정규화 prep — Ast.functionParams 헬퍼 + TODO 마커
ohah/zntc#1320생성 · 병합mergedmainrefactor(ast): /simplify — variableDeclarationKind inline + dead bound 제거
ohah/zntc#1319생성 · 병합mergedmainrefactor(ast): /simplify — variable kind enum 후속 정리
ohah/zntc#1318생성 · 병합mergedmainrefactor(ast): variable_declaration kind를 typed enum으로 추출
ohah/zntc#1317생성 · 병합mergedmainrefactor(ast): #1283 후 cover grammar 잔재 dead 분기 제거
ohah/zntc#1316생성 · 병합mergedmainfix(bundler): #1315 hoisted function bodies in __esm factory keep sourcemap mappings
ohah/zntc#1314생성 · 병합mergedmainchore: update stale RN-preset comments after #1306/#1312 fixes
ohah/zntc#1313생성 · 병합mergedmainfix(bundler): #1312 re-export getter resolves to canonical local name
ohah/zntc#1308생성 · 병합mergedmainfix(semantic): arrow param shadowing missed formal_parameters (effect TDZ)
ohah/zntc#1307생성 · 병합mergedmainfix(bundler): #1306 __generator sent() re-throws on throw op
ohah/zntc#1305생성 · 병합mergedmainrefactor: /simplify — transformer destructuring 분기 통합 + 주석/오타 정리
ohah/zntc#1304생성 · 병합mergedmainrefactor(bundler): RN preset을 ES5 매트릭스로 확장 (필드별 명시 작성)
ohah/zntc#1303생성 · 병합mergedmainfix(transformer): #1302 for-of destructuring + block_scoping void 0 init 추가 안 함
ohah/zntc#1301생성 · 병합mergedmainfix(bundler): #1299 RN preset에 block_scoping (let/const → var) 추가
ohah/zntc#1300생성 · 병합mergedmainfix(bundler): #1299 RN preset에 arrow → function 다운레벨 추가
ohah/zntc#1296생성 · 병합mergedmainrefactor: /simplify — arrow params wrap helper + codegen listSep
ohah/zntc#1294생성 · 병합mergedmainrevert: #1292 tree_shake require 참조 보호 (중복 안전망 제거)
ohah/zntc#1293생성 · 병합mergedmainfix(bundler): #1291 recoverable parser error는 모듈 스킵하지 않음
ohah/zntc#1292생성 · 병합mergedmainfix(bundler): #1291 require()로 참조되는 모듈을 tree-shake에서 보호
ohah/zntc#1289생성 · 병합mergedmainfix(transpile): arena-owned 리소스 defer-order segfault (CLI --minify 크래시)
ohah/zntc#1287생성 · 병합mergedmainfix(parser): #1283 arrow function params를 formal_parameters로 정규화
ohah/zntc#1286생성 · 병합mergedmainrefactor: /simplify — RN preset + #x in obj 중복 제거
ohah/zntc#1285생성 · 병합mergedmainfeat(bundler): --platform=react-native → Hermes unsupported matrix 강제 오버라이드
ohah/zntc#1284생성 · 병합mergedmainfeat(transformer): #x in obj Ergonomic Brand Check 다운레벨링
ohah/zntc#1282생성 · 병합mergedmainrefactor: /simplify — private var name + descriptor object literal 공용화
ohah/zntc#1281생성 · 병합mergedmainfix(transformer): #1278-3 private member + static block 공존 시 static block 누락
ohah/zntc#1280생성 · 병합mergedmainfeat(transformer): #1278-2 static #field 다운레벨링 (class 보존 경로)
ohah/zntc#1279생성 · 병합mergedmainfix(transformer): #1278-1 standalone _method_fn 내부 this.#field 미변환
ohah/zntc#1276생성 · 병합mergedmainfix(transformer): #1275 private class 다운레벨 시 constructor 중복 emit 수정
ohah/zntc#1273생성 · 병합mergedmainfix(core): browserslist를 optional로 전환 + Bun 정적 resolve 회피
ohah/zntc#1272생성 · 병합mergedmainrefactor: /simplify #1271 — HookResult alias + lcss 정리
ohah/zntc#1271생성 · 병합mergedmainfeat(core): TypeScript declaration(.d.ts) 생성 + browserslist build 엣지 테스트
ohah/zntc#1270생성 · 병합mergedmainrefactor: /simplify follow-up + build API browserslist 구현
ohah/zntc#1269병합mergedmainfix(bundle): __async 중복 emit + feat(compat): browserslist 지원
ohah/zntc#1268병합mergedmainfeat(compat): kangax compat-table 기반 생성기 추가 + tree-shake 크기 벤치