mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-11-03 07:54:40 +08:00
The analysis exceeded its 20M-step budget on the Hono fixture (32.5 s) and on moment 2.30 (60 s, two files), so it reported no facts for them. - Widening: a value node holding more than 32 atoms (merged code that every value flows through, such as moment's utilities) becomes ⊤. Its values escape, so the facts stay sound, and later atoms escape instead of multiplying constraints. SCRIPTC_SHAPE_WIDEN sets the limit. - A member a string, number or boolean prototype lacks reads undefined instead of creating a builtin atom per name (Hono's request and route objects meet strings in shared helpers). - Members of builtin instances (`RegExp.instance`) no longer chain into static builtin paths. - Symbol resolution is memoized per identifier. Hono: 1.16M steps in 2.4 s with complete facts (55 constant objects). moment: 115k steps in 0.4 s. zod 3 and the namespace benchmark are unchanged (same steps and overlay annotations). SCRIPTC_DEBUG_SHAPES_PROFILE prints where the solver's steps go. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>