구형 브라우저 호환은 babel 하나가 아니다 — 문법·폴리필·조건 로드·스모크의 다층 계약
5년 넘은 구형 브라우저에서 앱이 통째로 죽는 버그를 고치며 배운 것 — 여러 기능이 동시에 죽으면 하이드레이션을 의심하고, 문법 다운레벨과 런타임 폴리필을 분리하고, 폴리필은 feature-detect로 옛 브라우저에만 로드하고, 스모크는 실제 인터랙션을 실행한다
- 여러 UI 기능이 동시에 죽으면 개별 버그가 아니라 하이드레이션/번들 파싱 같은 공통 근본원인을 먼저 의심한다
- 문법 다운레벨(babel)과 런타임 API(폴리필)는 별개 층이다 — 트랜스파일러는 문법은 바꿔도 없는 함수는 만들지 않는다