mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-11-03 07:54:40 +08:00
Three JavaScript lowering bugs threw a checked conversion where Node answers: - concat with a checked-dynamic argument lowered it as an element, so an array argument threw. The argument now spreads when it is an array at run time and is appended otherwise. - `let c; while ((c = str[i++]) !== "]" && c)`: the checker types c from the index read, without the undefined a read past the end answers. Evolving-let inference ignores index-read writes, and reads of a JS `let x;` statement binding keep the actual value. - Strict equality on a flow-narrowed dynamic JS name compares unchecked. npm cases concat-dynamic-args and evolving-let-index match Node. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>