mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-11-08 08:44:37 +08:00
A native frontend cache entry stores the input's LLVM text after its metadata, with an empty placeholder in the input itself. The placeholder was an empty string where NativeExecutableInput declares an array of parts. Under Node the reader's cast of the parsed entry is not checked, but the native compiler checks it, so every read threw "expected array at $.input.llvm, got string". The reader treated that as a miss: no native build ever reused its frontend output, and an unchanged rebuild ran the frontend, lowering and LLVM emission again. The placeholder is now an empty array, and the cache test checks the stored member types.