2026-05-15
요약 (AI 작성)
ohah 블로그에서는 CRD(CRUD) 글 작성 크론 스크립트의 맞춤법 교정 작업을 완료했으며, 오늘자 커밋 기록을 정리했다. zntc 프로젝트에서는 메인 브랜치에 다수의 기능 개선과 버그 수정이 병행되었다. 특히 minify 최적화 단계를 진행하며 모듈 수준의 dead store elision, IIFE collapse, pure compound expression inline 등을 적용해 번들 크기를 획기적으로 줄였고, namespace handling과 tree-shaking 관련 버그를 수정했다. 또한 parser에서 contextual keyword와 modifier 지원을 개선했고, astro 모듈의 echarts lazy-loading과 JSDoc 샘플 정리를 진행했다. RN asset emitter의 메타데이터 할당 최적화와 mangle 레포트 기능 개선도 함께 이루어졌다.
커밋
ohah/ohah.github.io
- docs: add 2026-05-14 daily activity summary
- docs: update CRON_CRD_WRITE.md - 2026-05-16 20:30 KST completion logged
- docs(cron): complete CRD write spelling check 2026-05-16 20:30 KST (craby/development-3.mdx)
- docs: cron crd-write entry (2026-05-15 23:00 KST)
ohah/zntc
- fix(parser): support
using/await usingdeclarations in for-statement header - chore(scripts): audit treats TS2356 as syntax-equivalent
- fix(parser): tryReinterpretAsTypedArrow rolls back ParseError without propagating
- fix(parser): clear in_decorator inside parenthesized expression
- refactor(parser): extract SpeculationCheckpoint struct for save/rollback boilerplate
- refactor(astro): single echarts-setup module — union register, dedup imports
- perf(emitter): elide CJS wrapper module name string in minify mode
- docs(astro): fix audit findings — WASM scope, vite link, RN flag split, intro links, chart re-render
- perf(bundler): namespace inline elide for tree-shaken re-exports (root cause)
- refactor(rn-asset): collapse emitAssetRegistryCall args into input struct + drop dead hash
- fix(mangle): defer mangling until tree-shake to stop dead bindings wasting short-name pool
- refactor(rn-asset): emit follow-up — borrow escape + arena for temp rel + doc
- chore(scripts): audit treats TS2405/TS2499/TS2500 as syntax-equivalent
- chore(scripts): audit detects await-as-identifier patterns as policy_strict
- fix(parser): reject literal keyword as labeled break/continue label + comment cleanup
- chore(rn-asset): drop legacy projectRoot walk helpers
- refactor(rn-asset): expose AssetRegistry metadata as bundler API
- fix(mangle): statement-level reachability guard for UMD libs + namespace getter dead-export skip
- feat(minify): inline single-use pure compound expressions
- feat(minify): IIFE collapse —
(()=>X)()→ X (arrow + zero-arg) - refactor(rn-asset): tighten metadata wire-up after simplify follow-up
- perf(rn-asset): emit directly into metadata allocator, drop clone step
- feat(mangle-report): nested stats + ZNTC_DEBUG=mangle_dump
- fix(parser): handle computed key in stage3 accessor decorator transform
- chore(scripts): audit adds TS2427/TS5076 + Duplicate parameter as spec-strict
- fix(parser): rescan
/as regex at start of if/while/for/with body - chore(scripts): audit detects "use strict" in non-simple params as policy_strict
- chore(scripts): audit treats TS2660 as syntax-equivalent
- fix(parser): accept contextual keyword as labeled break/continue label
- fix(parser): isModifierTerminator includes
<for contextual modifiers as method names - test(parser): add regression guard for ternary parenthesized arrow speculation
- feat(mangler): mangle_audit category — Phase A/B base54 1-char skip 측정
- feat(compat): map opera/op_mob to Chromium in parseBrowserslistEntry
- feat(mangler): Phase B reserved 를 모듈 단위로 좁힘 (rxjs -3.7%)
- feat(core): lazy auto-init for native API — match esbuild/swc UX
- fix(astro): preserve landing code-example indent; clean up JSDoc samples
- refactor(astro): consolidate brand hex tokens to single source
- fix(astro): unblock SSR by lazy-loading echarts; mermaid + benchmark share dark hook
- feat(minify): paren-elimination at statement-root for pure compound inline
- test(minify): dead-brace unwrap regression guards
- perf(bundler): namespace getter minify-whitespace tokens
- test(minify): cover esm_var_assign_only mode + drop probe-file reference
- refactor(codegen): allow var unwrap in non-esm-wrap mode (root cause guard)
- refactor(codegen): collapse dead-branch
kind != varcheck in tryUnwrapStandaloneBlock - perf(codegen): unwrap declaration-free standalone block at program-root
- style(rn-asset): apply oxfmt formatting