2026-04-04

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

요약 (AI 작성)

zntc는 React Native 번들을 Hermes에서 실제로 돌리며 나온 런타임 오류를 계속 고쳤습니다. __esm 래퍼 안 클래스 선언 호이스팅(#694), Flow covariant·contravariant 클래스 프로퍼티 스트리핑(#695), IIFE 안 Object.defineProperty가 바깥 변수를 가리키던 문제(#696)를 병합했고, Hermes의 for-in이 반복마다 새 바인딩을 만들지 않아 __copyProps가 마지막 키만 잡던 문제를 forEach로 우회했습니다(#698). 여러 ESM 모듈의 _default 합성 변수가 충돌해 ErrorUtils 등이 덮어써지던 버그(#704), dev 모드에서 폴리필·banner가 빠지던 버그(#703), CJS 엔트리 자동 호출·hoisted var 중복·re-export default 할당 누락(#708~#710)도 수정했습니다.

ES5 클래스 변환은 React.Component 같은 표현식 super class(#701), 같은 이름 클래스가 여러 모듈에 있을 때 _super 매개변수로 부모를 격리하는 처리(#719), getter/setter의 configurable: true(#721), __callSuper와 Reflect.construct로 Error·Map 같은 네이티브 클래스 상속 지원(#722, #723), this를 _this로 바꾸는 범위 수정(#729, #730)으로 보강됐습니다. dev 번들링에서 extra_data 재할당 뒤 낡은 슬라이스를 읽어 죽던 문제(#724)와 optional chaining 변환 결과의 괄호 누락(#733)도 고쳤습니다.

번들러 rename이 코드 곳곳에 반영되지 않던 문제도 정리했습니다. ES5 구조 분해 키와 shorthand 확장(#700, #712), CJS export 바인딩(#717), JSX classic 모드의 React 변수와 태그 이름, JSX 멤버 식의 왼쪽 식별자(#726, #728, #731)가 대상입니다. 이 밖에 export type만 있는 CJS 모듈을 ESM으로 오판하던 버그(#713), 로더 없는 에셋의 조용한 실패를 빌드 에러로 바꾸고 RN 프리셋 에셋 확장자를 Metro 기본값 전체로 넓힌 작업(#714), JSON named export(#715), 래핑 모듈의 export *(#716), default와 named를 함께 쓰는 import(#718), Flow component 파라미터의 props 구조 분해 변환(#727)이 들어왔습니다.

bungae는 ZTS 서브프로세스 플러그인으로 에셋 파일을 AssetRegistry.registerAsset() 코드로 바꾸는 RN 에셋 플러그인을 추가해 이미지 치수 추출과 @2x/@3x 변형 탐색을 넣었고, AssetRegistry를 가상 모듈로 제공하며, dev 모드에서 process.env.NODE_ENV를 development로 define하도록 고쳤습니다.

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

커밋

ohah/bungae

ohah/zntc

PR (해당일 생성/머지)

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

저장소PR해당일 활동상태대상 브랜치제목
ohah/zntc#733생성 · 병합mergedmainfix(transformer): optional chaining 변환 시 괄호 추가 (#732)
ohah/zntc#731생성 · 병합mergedmainfix(semantic): jsx_member_expression left side symbol 등록
ohah/zntc#730생성 · 병합mergedmainfix(transformer): super_call_this_alias를 field init에서만 활성화
ohah/zntc#729생성 · 병합mergedmainfix(transformer): ES5 this→_this 치환 두 가지 버그 수정
ohah/zntc#728생성 · 병합mergedmainfix(codegen): JSX 태그 이름에 번들러 rename 반영
ohah/zntc#727생성 · 병합mergedmainfix(transformer): Flow component 파라미터를 props destructuring으로 변환
ohah/zntc#726생성 · 병합mergedmainfix(codegen): JSX classic 모드에서 번들러 리네이밍된 React 변수 반영
ohah/zntc#724생성 · 병합mergedmainfix(transformer): dev 모드 번들링 크래시 수정 (extra_data dangling pointer)
ohah/zntc#723생성 · 병합mergedmainfix(transformer): __callSuper + instance fields를 _this에 초기화
ohah/zntc#722생성 · 병합mergedmainfeat(transformer): __callSuper + Reflect.construct로 네이티브 클래스 extends 지원
ohah/zntc#721생성 · 병합mergedmainfix(transformer): ES5 class getter/setter에 configurable: true 추가
ohah/zntc#719생성 · 병합mergedmainfix(transformer): ES5 class super() IIFE _super 스코프 격리
ohah/zntc#718생성 · 병합mergedmainfix(codegen): import Default, { named } 동시 사용 시 default 바인딩 누락 수정
ohah/zntc#717생성 · 병합mergedmainfix(codegen): CJS export binding에서 linker rename 반영
ohah/zntc#716생성 · 병합mergedmainfix(bundler): ESM 래핑 모듈의 export * from (re_export_all) 지원
ohah/zntc#715생성 · 병합mergedmainfix(bundler): JSON 모듈 named export 지원
ohah/zntc#714생성 · 병합mergedmainfix(bundler): loader 미설정 에셋 silent failure + RN 프리셋 기본 로더
ohah/zntc#713생성 · 병합mergedmainfix(parser): export type/interface가 CJS 모듈을 ESM으로 잘못 판별하는 버그 수정
ohah/zntc#712생성 · 병합mergedmainfix(codegen): ES2015 shorthand 확장 시 object property key rename 버그 수정
ohah/zntc#711생성 · 병합mergedmainrefactor(emitter): /simplify 리뷰 반영
ohah/zntc#710생성 · 병합mergedmainfix(emitter): __esm re-export default 할당 누락 (#705)
ohah/zntc#709생성 · 병합mergedmainfix(emitter): hoisted var 중복 선언 수정 (#706)
ohah/zntc#708생성 · 병합mergedmainfix(emitter): CJS 엔트리 자동 호출 (#707)
ohah/zntc#704생성 · 병합mergedmainfix(linker): _default 합성 변수 충돌으로 ESM default export 덮어쓰기 버그
ohah/zntc#703생성 · 병합mergedmainfix(bundler): dev mode에서 polyfill/banner 번들 누락
ohah/zntc#702생성 · 병합mergedmainfix(test): CI hermes-runtime 테스트 의존성 수정
ohah/zntc#701생성 · 병합mergedmainfix(transformer): 표현식 super class ES5 변환 누락 (React.Component 등)
ohah/zntc#700생성 · 병합mergedmainfix(transformer): ES5 destructuring 프로퍼티 키 리네이밍 버그
ohah/zntc#699생성 · 병합mergedmainrefactor: Hermes 테스트 유틸리티 정리
ohah/zntc#698생성 · 병합mergedmainfix(runtime): Hermes for-in 클로저 캡처 버그 워크어라운드
ohah/zntc#697생성 · 병합mergedmaintest: IIFE prototype + Flow covariant + ESM class 호이스팅 회귀 테스트
ohah/zntc#696생성 · 병합mergedmainfix(transformer): IIFE 내부 prototype 참조가 외부 변수를 사용하는 버그
ohah/zntc#695생성 · 병합mergedmainfix(flow): covariant 클래스 프로퍼티 타입 스트리핑 누락
ohah/zntc#694병합mergedmainfix(bundler): __esm 래퍼 내 class 선언 호이스팅 누락 수정