2026-04-02

요약 (AI 작성)

ZTS에서 fixpoint 관련 수정과 Producer-Consumer 패턴 전환, jsx-dev 모드 지원 등 핵심 작업을 수행했습니다. RN 호환 Flow 파싱 2차 개선(static variance, const generic, match expression, typed arrow)을 완료하고, Flow match expression을 if-else IIFE로 변환하는 codegen을 구현했습니다. ES5 타겟에서 async/await state machine 직접 변환, class lowering, destructuring 등 대규모 ES5 다운레벨링을 진행하고, --rn-platform=ios|android CLI 옵션을 추가했습니다. Suji에서는 CEF IPC, DevTools, 키보드 단축키, macOS 메뉴바, E2E 테스트 24개, 크로스 플랫폼 빌드, 핫 리로드, Node.js 백엔드, Windows 빌드 지원 등 대규모 기능을 구현했습니다.

커밋

ohah/zts

ohah/suji

PR (해당일 생성/머지)

repo#상태제목
ohah/zts#639mergedfix(test): ES5 RN 번들 테스트 yield 오탐 수정
ohah/zts#638mergedrefactor(linker): CJS preamble PreambleWriter 구조체 추출
ohah/zts#637mergedfix(codegen): export default self-reference 재선언 방지 (hermesc 0 에러)
ohah/zts#636mergedfix(linker): CJS preamble 변수 scope 충돌 수정 (hermesc 9→1)
ohah/zts#635mergedrefactor(codegen): emitJSXText 중복 제거
ohah/zts#634mergedchore(test): hermes-compiler 최신 버전으로 업그레이드
ohah/zts#633mergedfix(codegen): JSX 텍스트 줄바꿈 이스케이프
ohah/zts#632mergedrefactor(flow): match 주석 정리 + 통합 테스트
ohah/zts#631mergedfix(flow): match expression → if-else IIFE 변환
ohah/zts#630mergedfix(jsx): JSX member expression <Foo.Bar> 파싱
ohah/zts#629mergedtest(integration): hermesc 구문 검증 테스트 추가
ohah/zts#628mergedtest(transformer): generator for-of 테스트 보강
ohah/zts#627mergedfix(transformer): generator for-of yield state machine 변환
ohah/zts#626mergedrefactor(codegen): emitImportSpecifierRename 헬퍼 추출
ohah/zts#625mergedfix(codegen): CJS import { X as Y } → { X: Y } 변환
ohah/zts#624mergedfix(flow): JSX+Flow () => body generic arrow 감지 (에러 0)
ohah/zts#623mergedfix(flow): nullable return type + ternary typed arrow (에러 41→1)
ohah/zts#622mergedfix(flow): Babel 방식 paren/function type 파싱 (에러 6→3)
ohah/zts#621mergedrefactor(flow): parseMatchExpression 중복 제거
ohah/zts#620mergedfix(flow): RN 호환 Flow 파싱 2차 개선 (에러 146→60)
ohah/zts#619mergedchore(test): Metro 비교 threshold 100%로 상향
ohah/zts#618mergedfix(transformer): catch 파라미터 var 호이스팅 누락 수정
ohah/zts#617mergedfix(flow): RN 호환 Flow 파싱 개선 (449→577 모듈)
ohah/zts#616mergedfeat(cli): --rn-platform=ios|android 옵션 추가
ohah/zts#615mergedfix(transformer): ES5 try/catch return await 값 유실 수정
ohah/suji#4mergedAdd Node.js backend (libnode embedding + IPC)
ohah/zts#612mergedtest(integration): RN ES5 다운레벨링 CI 회귀 테스트 추가
ohah/zts#611mergedtest(transformer): ES5 async/generator 테스트 커버리지 확대 + do-while yield 수정
ohah/zts#610mergedfix(transformer,codegen): destructuring default parameter + tryRewriteRequire 크래시 수정
ohah/suji#3mergedAdd backend hot reload (file watcher + dylib reload)
ohah/zts#609mergedfix(transformer): ES5 class async method가 state machine으로 변환되지 않는 버그 수정
ohah/suji#2mergedStep 8: Cross-platform build (macOS + Linux)
ohah/zts#608mergedfix(transformer): yield 추출 temp 변수 + member expression 크래시 + expression 핸들러 추가
ohah/suji#1mergedAdd suji:// custom protocol, remove webview.h, add CI
ohah/zts#607mergedfix(transformer): state machine에서 조건식/표현식 내부의 yield/await 추출
ohah/zts#606mergedfix(transformer): generator/async state machine에서 destructuring var 호이스팅 수정
ohah/zts#605mergedfix(transformer): ES5 타겟에서 async/await → state machine 직접 변환
ohah/zts#604mergedfix(transformer): ES5 class computed key bracket notation 수정
ohah/zts#603mergedfix(transformer): export default class + ES5 + CJS에서 빈 값 출력 수정
ohah/zts#602mergedfix(codegen): CJS re-export에서 default 예약어 식별자 출력 버그 수정
ohah/zts#601mergedfix(codegen): destructuring 문자열 키를 bracket notation으로 출력
ohah/zts#600mergedfix(codegen): 템플릿 리터럴 줄바꿈 이스케이프 누락 수정
ohah/zts#599mergedrefactor: 테스트 패키지를 packages/ → tests/로 이동
ohah/zts#598mergedfix(watch): --watch-json 초기 빌드 NDJSON 프로토콜 준수