Вердикт свипа (2026-07-23): STRONG. Цель: «артефакт + шов» уверенно ниже конкурентных 866 B, с квитанцией из #237.
- Feature-bitmask специализация шва: плагин видит все пониженные вызовы (planNanoLowering) → эмитит виртуальный модуль
\0lab-motion:runtime под профиль билда: нет string-селекторов → без querySelectorAll-ветки (~40 B), нет delay/stagger → без арифметики (~35 B), reduced статичен → без matchMedia-ветки (~45 B; иначе хойст в module-level MQL). Байты — физическое удаление веток внутри функции, недоступное tree-shaking. C4-сьют — снапшот-матрица по маскам.
- Erasure результата: статически доказанный отброшенный результат (ExpressionStatement-позиция) → executor без Promise.all/finished/NanoControls, только
animate + onfinish=commitStyles;cancel (−60…120 B шва, −2 alloc/элемент на бёрстах).
- Инлайн-порог: при count(lowered) ≤ 2 (cost-модель N×len(inline) < len(shim)+N×len(callsite)) инлайнить специализированный
el.animate({...},{...}) прямо в call-site — ~0 B шва. Лендинг с одним hero-вызовом: −250…330 B.
- Кросс-чанковый хойст артефактов
\0motion-artifacts (строка зависит только от (m,k,c)): честно — внутри одного чанка gzip-окно 32 KB дедупит почти бесплатно, настоящая дельта между чанками: −(K−1)×вес строки.
- Build-кэш
Map<springKey> в замыкании motionCompiler(): компиляция O(уникальных пружин), не O(вызовов). Дешёвый под-шаг, делать сразу: ключ LRU в compositor/cache.ts как (k/m, c/m) бит-в-бит вместо (m,k,c) — солвер использует только w и a; масс-эквивалентные конфиги становятся одним hit.
Связи: #221, #237, #232.
Вердикт свипа (2026-07-23): STRONG. Цель: «артефакт + шов» уверенно ниже конкурентных 866 B, с квитанцией из #237.
\0lab-motion:runtimeпод профиль билда: нет string-селекторов → без querySelectorAll-ветки (~40 B), нет delay/stagger → без арифметики (~35 B), reduced статичен → без matchMedia-ветки (~45 B; иначе хойст в module-level MQL). Байты — физическое удаление веток внутри функции, недоступное tree-shaking. C4-сьют — снапшот-матрица по маскам.animate + onfinish=commitStyles;cancel(−60…120 B шва, −2 alloc/элемент на бёрстах).el.animate({...},{...})прямо в call-site — ~0 B шва. Лендинг с одним hero-вызовом: −250…330 B.\0motion-artifacts(строка зависит только от (m,k,c)): честно — внутри одного чанка gzip-окно 32 KB дедупит почти бесплатно, настоящая дельта между чанками: −(K−1)×вес строки.Map<springKey>в замыкании motionCompiler(): компиляция O(уникальных пружин), не O(вызовов). Дешёвый под-шаг, делать сразу: ключ LRU в compositor/cache.ts как(k/m, c/m)бит-в-бит вместо(m,k,c)— солвер использует только w и a; масс-эквивалентные конфиги становятся одним hit.Связи: #221, #237, #232.