@scriptc/compiler 0.2.6 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (588) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +7 -18
  2. package/dist/backend/cycle-analysis.d.ts +21 -9
  3. package/dist/backend/cycle-analysis.js +139 -67
  4. package/dist/backend/cycle-analysis.js.map +1 -1
  5. package/dist/backend/cycle-analysis.test.js +283 -3
  6. package/dist/backend/cycle-analysis.test.js.map +1 -1
  7. package/dist/backend/cycle-mutability.d.ts +39 -0
  8. package/dist/backend/cycle-mutability.js +205 -0
  9. package/dist/backend/cycle-mutability.js.map +1 -0
  10. package/dist/backend/link-plan-core.d.ts +2 -1
  11. package/dist/backend/link-plan-core.js +15 -3
  12. package/dist/backend/link-plan-core.js.map +1 -1
  13. package/dist/backend/link-plan.d.ts +2 -1
  14. package/dist/backend/link-plan.js.map +1 -1
  15. package/dist/backend/llvm/alloc.d.ts +43 -0
  16. package/dist/backend/llvm/alloc.js +246 -0
  17. package/dist/backend/llvm/alloc.js.map +1 -0
  18. package/dist/backend/llvm/alloc.test.d.ts +1 -0
  19. package/dist/backend/llvm/alloc.test.js +102 -0
  20. package/dist/backend/llvm/alloc.test.js.map +1 -0
  21. package/dist/backend/llvm/blocks.d.ts +9 -0
  22. package/dist/backend/llvm/blocks.js +9 -0
  23. package/dist/backend/llvm/blocks.js.map +1 -1
  24. package/dist/backend/llvm/borrowed-receivers.d.ts +7 -0
  25. package/dist/backend/llvm/borrowed-receivers.js +39 -0
  26. package/dist/backend/llvm/borrowed-receivers.js.map +1 -1
  27. package/dist/backend/llvm/call-lifetimes.d.ts +18 -3
  28. package/dist/backend/llvm/call-lifetimes.js +54 -19
  29. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  30. package/dist/backend/llvm/call-lifetimes.test.js +178 -3
  31. package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
  32. package/dist/backend/llvm/checked-narrows.d.ts +24 -0
  33. package/dist/backend/llvm/checked-narrows.js +108 -0
  34. package/dist/backend/llvm/checked-narrows.js.map +1 -0
  35. package/dist/backend/llvm/checked-narrows.test.d.ts +1 -0
  36. package/dist/backend/llvm/checked-narrows.test.js +208 -0
  37. package/dist/backend/llvm/checked-narrows.test.js.map +1 -0
  38. package/dist/backend/llvm/classes.d.ts +16 -1
  39. package/dist/backend/llvm/classes.js +60 -49
  40. package/dist/backend/llvm/classes.js.map +1 -1
  41. package/dist/backend/llvm/classes.test.js +68 -6
  42. package/dist/backend/llvm/classes.test.js.map +1 -1
  43. package/dist/backend/llvm/common.d.ts +13 -0
  44. package/dist/backend/llvm/common.js +30 -0
  45. package/dist/backend/llvm/common.js.map +1 -1
  46. package/dist/backend/llvm/constant-callbacks.d.ts +19 -3
  47. package/dist/backend/llvm/constant-callbacks.js +289 -52
  48. package/dist/backend/llvm/constant-callbacks.js.map +1 -1
  49. package/dist/backend/llvm/constant-callbacks.test.js +140 -3
  50. package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
  51. package/dist/backend/llvm/debug-info.d.ts +6 -2
  52. package/dist/backend/llvm/debug-info.js +11 -1
  53. package/dist/backend/llvm/debug-info.js.map +1 -1
  54. package/dist/backend/llvm/dense-array-access.d.ts +29 -0
  55. package/dist/backend/llvm/dense-array-access.js +335 -0
  56. package/dist/backend/llvm/dense-array-access.js.map +1 -0
  57. package/dist/backend/llvm/dense-array-access.test.d.ts +1 -0
  58. package/dist/backend/llvm/dense-array-access.test.js +238 -0
  59. package/dist/backend/llvm/dense-array-access.test.js.map +1 -0
  60. package/dist/backend/llvm/dyn.d.ts +38 -0
  61. package/dist/backend/llvm/dyn.js +213 -14
  62. package/dist/backend/llvm/dyn.js.map +1 -1
  63. package/dist/backend/llvm/emitter.d.ts +308 -15
  64. package/dist/backend/llvm/emitter.js +1788 -206
  65. package/dist/backend/llvm/emitter.js.map +1 -1
  66. package/dist/backend/llvm/emitter.test.js +89 -7
  67. package/dist/backend/llvm/emitter.test.js.map +1 -1
  68. package/dist/backend/llvm/expr-async.js +62 -8
  69. package/dist/backend/llvm/expr-async.js.map +1 -1
  70. package/dist/backend/llvm/expr-async.test.d.ts +1 -0
  71. package/dist/backend/llvm/expr-async.test.js +62 -0
  72. package/dist/backend/llvm/expr-async.test.js.map +1 -0
  73. package/dist/backend/llvm/expr-bytes.d.ts +1 -1
  74. package/dist/backend/llvm/expr-bytes.js +85 -8
  75. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  76. package/dist/backend/llvm/expr-callbacks.js +29 -21
  77. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  78. package/dist/backend/llvm/expr-calls.d.ts +5 -0
  79. package/dist/backend/llvm/expr-calls.js +118 -15
  80. package/dist/backend/llvm/expr-calls.js.map +1 -1
  81. package/dist/backend/llvm/expr-containers.d.ts +7 -1
  82. package/dist/backend/llvm/expr-containers.js +246 -32
  83. package/dist/backend/llvm/expr-containers.js.map +1 -1
  84. package/dist/backend/llvm/expr-control.js +113 -8
  85. package/dist/backend/llvm/expr-control.js.map +1 -1
  86. package/dist/backend/llvm/expr-dispatch.js +2 -0
  87. package/dist/backend/llvm/expr-dispatch.js.map +1 -1
  88. package/dist/backend/llvm/expr-dynamic.js +244 -44
  89. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  90. package/dist/backend/llvm/expr-island.js +3 -8
  91. package/dist/backend/llvm/expr-island.js.map +1 -1
  92. package/dist/backend/llvm/expr-primitives.d.ts +1 -1
  93. package/dist/backend/llvm/expr-primitives.js +93 -36
  94. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  95. package/dist/backend/llvm/expr-primitives.test.js +51 -3
  96. package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
  97. package/dist/backend/llvm/expr-records.js +31 -17
  98. package/dist/backend/llvm/expr-records.js.map +1 -1
  99. package/dist/backend/llvm/expr-stream-bridges.js +96 -29
  100. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  101. package/dist/backend/llvm/expr-stream-bridges.test.js +1 -1
  102. package/dist/backend/llvm/expr-stream-callbacks.js +6 -3
  103. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  104. package/dist/backend/llvm/integer-remainder.d.ts +11 -0
  105. package/dist/backend/llvm/integer-remainder.js +91 -0
  106. package/dist/backend/llvm/integer-remainder.js.map +1 -1
  107. package/dist/backend/llvm/layouts.d.ts +3 -1
  108. package/dist/backend/llvm/layouts.js +3 -2
  109. package/dist/backend/llvm/layouts.js.map +1 -1
  110. package/dist/backend/llvm/lazy-captures.d.ts +16 -0
  111. package/dist/backend/llvm/lazy-captures.js +96 -0
  112. package/dist/backend/llvm/lazy-captures.js.map +1 -0
  113. package/dist/backend/llvm/lazy-captures.test.d.ts +1 -0
  114. package/dist/backend/llvm/lazy-captures.test.js +78 -0
  115. package/dist/backend/llvm/lazy-captures.test.js.map +1 -0
  116. package/dist/backend/llvm/lib-abi.js +10 -0
  117. package/dist/backend/llvm/lib-abi.js.map +1 -1
  118. package/dist/backend/llvm/lib-filesystem.js +10 -15
  119. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  120. package/dist/backend/llvm/lib-process.js +8 -8
  121. package/dist/backend/llvm/lib-process.js.map +1 -1
  122. package/dist/backend/llvm/lib-shared.js +1 -0
  123. package/dist/backend/llvm/lib-shared.js.map +1 -1
  124. package/dist/backend/llvm/local-array-reads.d.ts +5 -1
  125. package/dist/backend/llvm/local-array-reads.js +147 -26
  126. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  127. package/dist/backend/llvm/local-array-reads.test.js +85 -4
  128. package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
  129. package/dist/backend/llvm/local-union-storage.d.ts +5 -1
  130. package/dist/backend/llvm/local-union-storage.js +54 -8
  131. package/dist/backend/llvm/local-union-storage.js.map +1 -1
  132. package/dist/backend/llvm/local-union-storage.test.js +94 -6
  133. package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
  134. package/dist/backend/llvm/map-number-lookup.d.ts +18 -0
  135. package/dist/backend/llvm/map-number-lookup.js +62 -0
  136. package/dist/backend/llvm/map-number-lookup.js.map +1 -0
  137. package/dist/backend/llvm/map-read-lifetimes.d.ts +6 -0
  138. package/dist/backend/llvm/map-read-lifetimes.js +24 -3
  139. package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
  140. package/dist/backend/llvm/map-read-lifetimes.test.js +39 -20
  141. package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
  142. package/dist/backend/llvm/nullable-fields.d.ts +28 -0
  143. package/dist/backend/llvm/nullable-fields.js +45 -0
  144. package/dist/backend/llvm/nullable-fields.js.map +1 -0
  145. package/dist/backend/llvm/nullable-fields.test.d.ts +1 -0
  146. package/dist/backend/llvm/nullable-fields.test.js +48 -0
  147. package/dist/backend/llvm/nullable-fields.test.js.map +1 -0
  148. package/dist/backend/llvm/nullable-unions.d.ts +68 -0
  149. package/dist/backend/llvm/nullable-unions.js +132 -0
  150. package/dist/backend/llvm/nullable-unions.js.map +1 -0
  151. package/dist/backend/llvm/publish.d.ts +58 -0
  152. package/dist/backend/llvm/publish.js +286 -0
  153. package/dist/backend/llvm/publish.js.map +1 -0
  154. package/dist/backend/llvm/rebound-parameters.d.ts +12 -0
  155. package/dist/backend/llvm/rebound-parameters.js +72 -0
  156. package/dist/backend/llvm/rebound-parameters.js.map +1 -0
  157. package/dist/backend/llvm/rebound-parameters.test.d.ts +1 -0
  158. package/dist/backend/llvm/rebound-parameters.test.js +67 -0
  159. package/dist/backend/llvm/rebound-parameters.test.js.map +1 -0
  160. package/dist/backend/llvm/reference-effects.d.ts +18 -2
  161. package/dist/backend/llvm/reference-effects.js +106 -16
  162. package/dist/backend/llvm/reference-effects.js.map +1 -1
  163. package/dist/backend/llvm/reference-effects.test.js +52 -1
  164. package/dist/backend/llvm/reference-effects.test.js.map +1 -1
  165. package/dist/backend/llvm/serialized-ir-emission.test.d.ts +1 -0
  166. package/dist/backend/llvm/serialized-ir-emission.test.js +52 -0
  167. package/dist/backend/llvm/serialized-ir-emission.test.js.map +1 -0
  168. package/dist/backend/llvm/shapes.d.ts +104 -9
  169. package/dist/backend/llvm/shapes.js +356 -46
  170. package/dist/backend/llvm/shapes.js.map +1 -1
  171. package/dist/backend/llvm/shapes.test.js +139 -5
  172. package/dist/backend/llvm/shapes.test.js.map +1 -1
  173. package/dist/backend/llvm/stack-callbacks.js +2 -3
  174. package/dist/backend/llvm/stack-callbacks.js.map +1 -1
  175. package/dist/backend/llvm/stack-captures.d.ts +3 -1
  176. package/dist/backend/llvm/stack-captures.js +5 -3
  177. package/dist/backend/llvm/stack-captures.js.map +1 -1
  178. package/dist/backend/llvm/stack-unions.test.js +43 -3
  179. package/dist/backend/llvm/stack-unions.test.js.map +1 -1
  180. package/dist/backend/llvm/string-construction.d.ts +10 -0
  181. package/dist/backend/llvm/string-construction.js +42 -0
  182. package/dist/backend/llvm/string-construction.js.map +1 -1
  183. package/dist/backend/llvm/string-construction.test.js +1 -1
  184. package/dist/backend/llvm/string-key-hash.d.ts +15 -0
  185. package/dist/backend/llvm/string-key-hash.js +76 -0
  186. package/dist/backend/llvm/string-key-hash.js.map +1 -0
  187. package/dist/backend/llvm/string-key-hash.test.d.ts +1 -0
  188. package/dist/backend/llvm/string-key-hash.test.js +45 -0
  189. package/dist/backend/llvm/string-key-hash.test.js.map +1 -0
  190. package/dist/backend/llvm/string-lifetimes.test.js +65 -15
  191. package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
  192. package/dist/backend/llvm/string-reads.d.ts +7 -0
  193. package/dist/backend/llvm/string-reads.js +76 -0
  194. package/dist/backend/llvm/string-reads.js.map +1 -0
  195. package/dist/backend/llvm/switch-dispatch.js +1 -1
  196. package/dist/backend/llvm/switch-dispatch.js.map +1 -1
  197. package/dist/backend/llvm/switch-dispatch.test.js +3 -3
  198. package/dist/backend/llvm/switch-dispatch.test.js.map +1 -1
  199. package/dist/backend/llvm/test-boxed-unions.d.ts +5 -0
  200. package/dist/backend/llvm/test-boxed-unions.js +13 -0
  201. package/dist/backend/llvm/test-boxed-unions.js.map +1 -0
  202. package/dist/backend/llvm/union-repr.d.ts +15 -0
  203. package/dist/backend/llvm/union-repr.js +89 -0
  204. package/dist/backend/llvm/union-repr.js.map +1 -0
  205. package/dist/backend/llvm/virtual-borrows.d.ts +31 -0
  206. package/dist/backend/llvm/virtual-borrows.js +82 -0
  207. package/dist/backend/llvm/virtual-borrows.js.map +1 -0
  208. package/dist/backend/llvm/walk-borrows.d.ts +43 -0
  209. package/dist/backend/llvm/walk-borrows.js +150 -0
  210. package/dist/backend/llvm/walk-borrows.js.map +1 -0
  211. package/dist/backend/llvm/walk-borrows.test.d.ts +1 -0
  212. package/dist/backend/llvm/walk-borrows.test.js +119 -0
  213. package/dist/backend/llvm/walk-borrows.test.js.map +1 -0
  214. package/dist/backend/llvm/walkers.d.ts +5 -1
  215. package/dist/backend/llvm/walkers.js +24 -21
  216. package/dist/backend/llvm/walkers.js.map +1 -1
  217. package/dist/backend/may-throw.d.ts +29 -1
  218. package/dist/backend/may-throw.js +349 -3
  219. package/dist/backend/may-throw.js.map +1 -1
  220. package/dist/backend/may-throw.test.js +114 -2
  221. package/dist/backend/may-throw.test.js.map +1 -1
  222. package/dist/backend/native/cache-warm.d.ts +2 -1
  223. package/dist/backend/native/cache-warm.js.map +1 -1
  224. package/dist/backend/native/contracts.d.ts +3 -2
  225. package/dist/backend/native/contracts.js.map +1 -1
  226. package/dist/backend/native/runtime-inputs.d.ts +1 -1
  227. package/dist/backend/native/runtime-inputs.js +2 -0
  228. package/dist/backend/native/runtime-inputs.js.map +1 -1
  229. package/dist/backend/native-codegen-core.d.ts +7 -4
  230. package/dist/backend/native-codegen-core.js +14 -9
  231. package/dist/backend/native-codegen-core.js.map +1 -1
  232. package/dist/backend/native-codegen.d.ts +9 -0
  233. package/dist/backend/native-codegen.js +53 -2
  234. package/dist/backend/native-codegen.js.map +1 -1
  235. package/dist/backend/native-codegen.test.js +64 -10
  236. package/dist/backend/native-codegen.test.js.map +1 -1
  237. package/dist/backend/native-link-info-core.d.ts +3 -2
  238. package/dist/backend/native-link-info-core.js.map +1 -1
  239. package/dist/backend/native-link-info.d.ts +2 -1
  240. package/dist/backend/native-link-info.js.map +1 -1
  241. package/dist/backend/native-link-info.test.js +2 -2
  242. package/dist/backend/native-link-info.test.js.map +1 -1
  243. package/dist/backend/native-tools.d.ts +5 -1
  244. package/dist/backend/native-tools.js +3 -1
  245. package/dist/backend/native-tools.js.map +1 -1
  246. package/dist/backend/optimization.d.ts +25 -0
  247. package/dist/backend/optimization.js +21 -0
  248. package/dist/backend/optimization.js.map +1 -0
  249. package/dist/backend/optimization.test.d.ts +1 -0
  250. package/dist/backend/optimization.test.js +24 -0
  251. package/dist/backend/optimization.test.js.map +1 -0
  252. package/dist/backend/publication.d.ts +28 -0
  253. package/dist/backend/publication.js +155 -0
  254. package/dist/backend/publication.js.map +1 -0
  255. package/dist/backend/publication.test.d.ts +1 -0
  256. package/dist/backend/publication.test.js +72 -0
  257. package/dist/backend/publication.test.js.map +1 -0
  258. package/dist/backend/runtime-abi.d.ts +2 -2
  259. package/dist/backend/runtime-abi.js +2 -2
  260. package/dist/backend/runtime-pack-core.d.ts +15 -4
  261. package/dist/backend/runtime-pack-core.js +23 -12
  262. package/dist/backend/runtime-pack-core.js.map +1 -1
  263. package/dist/backend/runtime-pack-native.d.ts +7 -3
  264. package/dist/backend/runtime-pack-native.js +0 -3
  265. package/dist/backend/runtime-pack-native.js.map +1 -1
  266. package/dist/backend/runtime-pack-targets.test.js +1 -1
  267. package/dist/backend/runtime-pack.d.ts +20 -2
  268. package/dist/backend/runtime-pack.js +23 -0
  269. package/dist/backend/runtime-pack.js.map +1 -1
  270. package/dist/backend/runtime-pack.test.js +115 -2
  271. package/dist/backend/runtime-pack.test.js.map +1 -1
  272. package/dist/backend/target-diagnostics.test.js +1 -1
  273. package/dist/backend/targets.d.ts +2 -1
  274. package/dist/backend/targets.js +1 -1
  275. package/dist/backend/targets.js.map +1 -1
  276. package/dist/cli/command.js +75 -11
  277. package/dist/cli/command.js.map +1 -1
  278. package/dist/cli/host.d.ts +2 -1
  279. package/dist/cli/usage.d.ts +4 -1
  280. package/dist/cli/usage.js +13 -3
  281. package/dist/cli/usage.js.map +1 -1
  282. package/dist/compile-types.d.ts +17 -5
  283. package/dist/coverage/report.d.ts +25 -2
  284. package/dist/coverage/report.js +161 -33
  285. package/dist/coverage/report.js.map +1 -1
  286. package/dist/coverage/verdict-cache.d.ts +63 -0
  287. package/dist/coverage/verdict-cache.js +193 -0
  288. package/dist/coverage/verdict-cache.js.map +1 -0
  289. package/dist/coverage/verdict-cache.test.d.ts +1 -0
  290. package/dist/coverage/verdict-cache.test.js +52 -0
  291. package/dist/coverage/verdict-cache.test.js.map +1 -0
  292. package/dist/coverage/verdict-semantic.d.ts +2 -0
  293. package/dist/coverage/verdict-semantic.js +24 -0
  294. package/dist/coverage/verdict-semantic.js.map +1 -0
  295. package/dist/coverage/verdict-startup.d.ts +15 -0
  296. package/dist/coverage/verdict-startup.js +66 -0
  297. package/dist/coverage/verdict-startup.js.map +1 -0
  298. package/dist/diagnostics/diagnostic.d.ts +29 -1
  299. package/dist/diagnostics/diagnostic.js +84 -12
  300. package/dist/diagnostics/diagnostic.js.map +1 -1
  301. package/dist/diagnostics/envelope.d.ts +130 -0
  302. package/dist/diagnostics/envelope.js +257 -0
  303. package/dist/diagnostics/envelope.js.map +1 -0
  304. package/dist/diagnostics/envelope.test.d.ts +1 -0
  305. package/dist/diagnostics/envelope.test.js +91 -0
  306. package/dist/diagnostics/envelope.test.js.map +1 -0
  307. package/dist/diagnostics/render.d.ts +3 -0
  308. package/dist/diagnostics/render.js +13 -2
  309. package/dist/diagnostics/render.js.map +1 -1
  310. package/dist/executable/executable-cache.d.ts +2 -2
  311. package/dist/executable/executable-cache.js +7 -4
  312. package/dist/executable/executable-cache.js.map +1 -1
  313. package/dist/executable/executable-cache.test.js +20 -0
  314. package/dist/executable/executable-cache.test.js.map +1 -1
  315. package/dist/executable/prepare.d.ts +4 -0
  316. package/dist/executable/prepare.js +7 -1
  317. package/dist/executable/prepare.js.map +1 -1
  318. package/dist/frontend/analysis.js +1 -0
  319. package/dist/frontend/analysis.js.map +1 -1
  320. package/dist/frontend/lowering/abstract-equality.js +5 -49
  321. package/dist/frontend/lowering/abstract-equality.js.map +1 -1
  322. package/dist/frontend/lowering/array-values.d.ts +30 -0
  323. package/dist/frontend/lowering/array-values.js +246 -1
  324. package/dist/frontend/lowering/array-values.js.map +1 -1
  325. package/dist/frontend/lowering/builtins/errors.js +17 -2
  326. package/dist/frontend/lowering/builtins/errors.js.map +1 -1
  327. package/dist/frontend/lowering/builtins/numbers.js +29 -1
  328. package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
  329. package/dist/frontend/lowering/builtins/process.d.ts +10 -17
  330. package/dist/frontend/lowering/builtins/process.js +66 -29
  331. package/dist/frontend/lowering/builtins/process.js.map +1 -1
  332. package/dist/frontend/lowering/builtins/workers.js +4 -2
  333. package/dist/frontend/lowering/builtins/workers.js.map +1 -1
  334. package/dist/frontend/lowering/caught-value-dispatch.d.ts +11 -0
  335. package/dist/frontend/lowering/caught-value-dispatch.js +87 -0
  336. package/dist/frontend/lowering/caught-value-dispatch.js.map +1 -0
  337. package/dist/frontend/lowering/class-assertions.d.ts +12 -0
  338. package/dist/frontend/lowering/class-assertions.js +229 -5
  339. package/dist/frontend/lowering/class-assertions.js.map +1 -1
  340. package/dist/frontend/lowering/class-callbacks.d.ts +3 -3
  341. package/dist/frontend/lowering/class-callbacks.js +18 -5
  342. package/dist/frontend/lowering/class-callbacks.js.map +1 -1
  343. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +1 -0
  344. package/dist/frontend/lowering/class-dynamic-dispatch.js +12 -6
  345. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  346. package/dist/frontend/lowering/class-method-mutations.d.ts +5 -0
  347. package/dist/frontend/lowering/class-method-mutations.js +472 -0
  348. package/dist/frontend/lowering/class-method-mutations.js.map +1 -0
  349. package/dist/frontend/lowering/class-method-values.js +25 -5
  350. package/dist/frontend/lowering/class-method-values.js.map +1 -1
  351. package/dist/frontend/lowering/class-prototypes.js +8 -2
  352. package/dist/frontend/lowering/class-prototypes.js.map +1 -1
  353. package/dist/frontend/lowering/class-unions.d.ts +16 -0
  354. package/dist/frontend/lowering/class-unions.js +127 -0
  355. package/dist/frontend/lowering/class-unions.js.map +1 -0
  356. package/dist/frontend/lowering/coercions/builders.js +8 -1
  357. package/dist/frontend/lowering/coercions/builders.js.map +1 -1
  358. package/dist/frontend/lowering/coercions/function-adapters.js +2 -0
  359. package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
  360. package/dist/frontend/lowering/coercions/identity.d.ts +7 -0
  361. package/dist/frontend/lowering/coercions/identity.js +26 -0
  362. package/dist/frontend/lowering/coercions/identity.js.map +1 -0
  363. package/dist/frontend/lowering/coercions/state.d.ts +6 -0
  364. package/dist/frontend/lowering/coercions/state.js +2 -0
  365. package/dist/frontend/lowering/coercions/state.js.map +1 -1
  366. package/dist/frontend/lowering/coercions/structural.js +9 -6
  367. package/dist/frontend/lowering/coercions/structural.js.map +1 -1
  368. package/dist/frontend/lowering/coercions/unions.d.ts +8 -0
  369. package/dist/frontend/lowering/coercions/unions.js +67 -2
  370. package/dist/frontend/lowering/coercions/unions.js.map +1 -1
  371. package/dist/frontend/lowering/collation-repertoire.d.ts +1 -0
  372. package/dist/frontend/lowering/collation-repertoire.js +19 -0
  373. package/dist/frontend/lowering/collation-repertoire.js.map +1 -0
  374. package/dist/frontend/lowering/collection-narrowing.d.ts +6 -0
  375. package/dist/frontend/lowering/collection-narrowing.js +31 -0
  376. package/dist/frontend/lowering/collection-narrowing.js.map +1 -0
  377. package/dist/frontend/lowering/construction-escapes.d.ts +38 -0
  378. package/dist/frontend/lowering/construction-escapes.js +146 -0
  379. package/dist/frontend/lowering/construction-escapes.js.map +1 -0
  380. package/dist/frontend/lowering/construction-escapes.test.d.ts +1 -0
  381. package/dist/frontend/lowering/construction-escapes.test.js +150 -0
  382. package/dist/frontend/lowering/construction-escapes.test.js.map +1 -0
  383. package/dist/frontend/lowering/containers/array-callback-call.d.ts +7 -0
  384. package/dist/frontend/lowering/containers/array-callback-call.js +52 -0
  385. package/dist/frontend/lowering/containers/array-callback-call.js.map +1 -0
  386. package/dist/frontend/lowering/containers/array-callbacks.d.ts +1 -1
  387. package/dist/frontend/lowering/containers/array-callbacks.js +416 -65
  388. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  389. package/dist/frontend/lowering/containers/array-concat.d.ts +7 -0
  390. package/dist/frontend/lowering/containers/array-concat.js +130 -0
  391. package/dist/frontend/lowering/containers/array-concat.js.map +1 -0
  392. package/dist/frontend/lowering/containers/array-construction.d.ts +2 -0
  393. package/dist/frontend/lowering/containers/array-construction.js +110 -5
  394. package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
  395. package/dist/frontend/lowering/containers/array-methods.d.ts +1 -11
  396. package/dist/frontend/lowering/containers/array-methods.js +274 -144
  397. package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
  398. package/dist/frontend/lowering/containers/callback-arguments.js +43 -1
  399. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
  400. package/dist/frontend/lowering/containers/collection-methods.js +10 -1
  401. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
  402. package/dist/frontend/lowering/containers/indexed-objects.js +56 -70
  403. package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
  404. package/dist/frontend/lowering/containers/string-and-regexp.js +7 -63
  405. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  406. package/dist/frontend/lowering/cycle-initialization.d.ts +46 -0
  407. package/dist/frontend/lowering/cycle-initialization.js +303 -0
  408. package/dist/frontend/lowering/cycle-initialization.js.map +1 -0
  409. package/dist/frontend/lowering/divergences.d.ts +9 -0
  410. package/dist/frontend/lowering/divergences.js +630 -0
  411. package/dist/frontend/lowering/divergences.js.map +1 -0
  412. package/dist/frontend/lowering/expressions/evaluation-safety.js +4 -0
  413. package/dist/frontend/lowering/expressions/evaluation-safety.js.map +1 -1
  414. package/dist/frontend/lowering/expressions/object-literals.js +178 -34
  415. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  416. package/dist/frontend/lowering/expressions/union-field-write.d.ts +4 -4
  417. package/dist/frontend/lowering/expressions/union-field-write.js +54 -44
  418. package/dist/frontend/lowering/expressions/union-field-write.js.map +1 -1
  419. package/dist/frontend/lowering/iterator-adapters.d.ts +20 -0
  420. package/dist/frontend/lowering/iterator-adapters.js +605 -0
  421. package/dist/frontend/lowering/iterator-adapters.js.map +1 -0
  422. package/dist/frontend/lowering/lower-array-sort.d.ts +1 -1
  423. package/dist/frontend/lowering/lower-array-sort.js +44 -5
  424. package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
  425. package/dist/frontend/lowering/lower-array-sort.test.d.ts +1 -0
  426. package/dist/frontend/lowering/lower-array-sort.test.js +31 -0
  427. package/dist/frontend/lowering/lower-array-sort.test.js.map +1 -0
  428. package/dist/frontend/lowering/lower-assert.js +7 -0
  429. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  430. package/dist/frontend/lowering/lower-builtin-values.js +1 -0
  431. package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
  432. package/dist/frontend/lowering/lower-calls.d.ts +8 -3
  433. package/dist/frontend/lowering/lower-calls.js +388 -278
  434. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  435. package/dist/frontend/lowering/lower-classes.d.ts +6 -0
  436. package/dist/frontend/lowering/lower-classes.js +117 -65
  437. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  438. package/dist/frontend/lowering/lower-exprs.d.ts +22 -2
  439. package/dist/frontend/lowering/lower-exprs.js +811 -254
  440. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  441. package/dist/frontend/lowering/lower-functions.js +32 -19
  442. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  443. package/dist/frontend/lowering/lower-generators.d.ts +19 -13
  444. package/dist/frontend/lowering/lower-generators.js +67 -44
  445. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  446. package/dist/frontend/lowering/lower-inspect.js +29 -4
  447. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  448. package/dist/frontend/lowering/lower-island.d.ts +1 -1
  449. package/dist/frontend/lowering/lower-island.js +24 -7
  450. package/dist/frontend/lowering/lower-island.js.map +1 -1
  451. package/dist/frontend/lowering/lower-modules.js +100 -3
  452. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  453. package/dist/frontend/lowering/lower-stmts.js +82 -64
  454. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  455. package/dist/frontend/lowering/lowerer.d.ts +115 -2
  456. package/dist/frontend/lowering/lowerer.js +1266 -88
  457. package/dist/frontend/lowering/lowerer.js.map +1 -1
  458. package/dist/frontend/lowering/native-ffi.js +3 -1
  459. package/dist/frontend/lowering/native-ffi.js.map +1 -1
  460. package/dist/frontend/lowering/runtime-optional-bounds.d.ts +19 -0
  461. package/dist/frontend/lowering/runtime-optional-bounds.js +354 -0
  462. package/dist/frontend/lowering/runtime-optional-bounds.js.map +1 -0
  463. package/dist/frontend/lowering/runtime-optional-bounds.test.d.ts +1 -0
  464. package/dist/frontend/lowering/runtime-optional-bounds.test.js +66 -0
  465. package/dist/frontend/lowering/runtime-optional-bounds.test.js.map +1 -0
  466. package/dist/frontend/lowering/runtime-optional-elements.d.ts +117 -0
  467. package/dist/frontend/lowering/runtime-optional-elements.js +738 -0
  468. package/dist/frontend/lowering/runtime-optional-elements.js.map +1 -0
  469. package/dist/frontend/lowering/runtime-optional-guards.d.ts +36 -0
  470. package/dist/frontend/lowering/runtime-optional-guards.js +375 -0
  471. package/dist/frontend/lowering/runtime-optional-guards.js.map +1 -0
  472. package/dist/frontend/lowering/runtime-optional-guards.test.d.ts +1 -0
  473. package/dist/frontend/lowering/runtime-optional-guards.test.js +92 -0
  474. package/dist/frontend/lowering/runtime-optional-guards.test.js.map +1 -0
  475. package/dist/frontend/lowering/runtime-optional-ownership.d.ts +63 -0
  476. package/dist/frontend/lowering/runtime-optional-ownership.js +382 -0
  477. package/dist/frontend/lowering/runtime-optional-ownership.js.map +1 -0
  478. package/dist/frontend/lowering/runtime-optional-provenance.d.ts +16 -0
  479. package/dist/frontend/lowering/runtime-optional-provenance.js +41 -0
  480. package/dist/frontend/lowering/runtime-optional-provenance.js.map +1 -0
  481. package/dist/frontend/lowering/sanitize-class-types.test.js +2 -2
  482. package/dist/frontend/lowering/strict-equality.d.ts +9 -0
  483. package/dist/frontend/lowering/strict-equality.js +116 -0
  484. package/dist/frontend/lowering/strict-equality.js.map +1 -0
  485. package/dist/frontend/lowering/string-index-bounds.d.ts +36 -0
  486. package/dist/frontend/lowering/string-index-bounds.js +537 -0
  487. package/dist/frontend/lowering/string-index-bounds.js.map +1 -0
  488. package/dist/frontend/lowering/string-index-bounds.test.d.ts +1 -0
  489. package/dist/frontend/lowering/string-index-bounds.test.js +223 -0
  490. package/dist/frontend/lowering/string-index-bounds.test.js.map +1 -0
  491. package/dist/frontend/lowering/surfaces.js +3 -0
  492. package/dist/frontend/lowering/surfaces.js.map +1 -1
  493. package/dist/frontend/lowering/union-comparison.d.ts +5 -0
  494. package/dist/frontend/lowering/union-comparison.js +47 -0
  495. package/dist/frontend/lowering/union-comparison.js.map +1 -0
  496. package/dist/frontend/lowering/union-narrow.d.ts +2 -0
  497. package/dist/frontend/lowering/union-narrow.js +10 -6
  498. package/dist/frontend/lowering/union-narrow.js.map +1 -1
  499. package/dist/frontend/program-analysis.d.ts +10 -0
  500. package/dist/frontend/program-analysis.js +7 -0
  501. package/dist/frontend/program-analysis.js.map +1 -1
  502. package/dist/frontend/program.d.ts +63 -2
  503. package/dist/frontend/program.js +1038 -61
  504. package/dist/frontend/program.js.map +1 -1
  505. package/dist/frontend/program.test.js +122 -6
  506. package/dist/frontend/program.test.js.map +1 -1
  507. package/dist/frontend/resolve.d.ts +6 -0
  508. package/dist/frontend/resolve.js +14 -0
  509. package/dist/frontend/resolve.js.map +1 -1
  510. package/dist/frontend/threads-import.d.ts +5 -0
  511. package/dist/frontend/threads-import.js +21 -0
  512. package/dist/frontend/threads-import.js.map +1 -0
  513. package/dist/frontend/type-mapper.d.ts +4 -1
  514. package/dist/frontend/type-mapper.js +161 -20
  515. package/dist/frontend/type-mapper.js.map +1 -1
  516. package/dist/frontend/type-mapper.test.js +15 -3
  517. package/dist/frontend/type-mapper.test.js.map +1 -1
  518. package/dist/frontend/worker-target.d.ts +4 -0
  519. package/dist/frontend/worker-target.js +8 -1
  520. package/dist/frontend/worker-target.js.map +1 -1
  521. package/dist/index.d.ts +6 -1
  522. package/dist/index.js +70 -16
  523. package/dist/index.js.map +1 -1
  524. package/dist/ir/analysis.d.ts +3 -1
  525. package/dist/ir/analysis.js +4 -0
  526. package/dist/ir/analysis.js.map +1 -1
  527. package/dist/ir/build.d.ts +5 -0
  528. package/dist/ir/build.js +7 -0
  529. package/dist/ir/build.js.map +1 -1
  530. package/dist/ir/builtin-signatures.d.ts +1 -1
  531. package/dist/ir/builtin-signatures.js +5 -3
  532. package/dist/ir/builtin-signatures.js.map +1 -1
  533. package/dist/ir/constant-tables.test.js +1 -1
  534. package/dist/ir/initializer-bindings.test.js +1 -1
  535. package/dist/ir/int32-slots.d.ts +72 -0
  536. package/dist/ir/int32-slots.js +837 -0
  537. package/dist/ir/int32-slots.js.map +1 -0
  538. package/dist/ir/int32-slots.test.d.ts +1 -0
  539. package/dist/ir/int32-slots.test.js +222 -0
  540. package/dist/ir/int32-slots.test.js.map +1 -0
  541. package/dist/ir/integer-ranges.d.ts +19 -3
  542. package/dist/ir/integer-ranges.js +168 -23
  543. package/dist/ir/integer-ranges.js.map +1 -1
  544. package/dist/ir/integer-ranges.test.js +74 -2
  545. package/dist/ir/integer-ranges.test.js.map +1 -1
  546. package/dist/ir/ir.d.ts +101 -20
  547. package/dist/ir/ir.js +20 -6
  548. package/dist/ir/ir.js.map +1 -1
  549. package/dist/ir/scalar-records.test.js +1 -1
  550. package/dist/ir/serialize.d.ts +1 -1
  551. package/dist/ir/serialize.js +3 -3
  552. package/dist/ir/serialize.js.map +1 -1
  553. package/dist/ir/traverse.js +8 -0
  554. package/dist/ir/traverse.js.map +1 -1
  555. package/dist/ir/validate.js +139 -22
  556. package/dist/ir/validate.js.map +1 -1
  557. package/dist/ir/validate.test.js +308 -8
  558. package/dist/ir/validate.test.js.map +1 -1
  559. package/dist/library/fence-eval.test.js +1 -1
  560. package/dist/library/int-infer.test.js +4 -4
  561. package/dist/library/library-cache.test.js +5 -5
  562. package/dist/library/library-profile.d.ts +2 -1
  563. package/dist/library/library-profile.js +4 -3
  564. package/dist/library/library-profile.js.map +1 -1
  565. package/dist/native/cache.d.ts +3 -0
  566. package/dist/native/cache.js +49 -1
  567. package/dist/native/cache.js.map +1 -1
  568. package/dist/native/cache.test.js +21 -1
  569. package/dist/native/cache.test.js.map +1 -1
  570. package/dist/native/cli.js +1 -1
  571. package/dist/native/cli.js.map +1 -1
  572. package/dist/native/compiler.d.ts +5 -0
  573. package/dist/native/compiler.js +51 -4
  574. package/dist/native/compiler.js.map +1 -1
  575. package/dist/native/compiler.test.js +2 -2
  576. package/dist/native/library.d.ts +2 -1
  577. package/dist/native/library.js.map +1 -1
  578. package/dist/native/prepare.d.ts +4 -0
  579. package/dist/native/prepare.js +28 -3
  580. package/dist/native/prepare.js.map +1 -1
  581. package/dist/native/sanitizer.d.ts +3 -2
  582. package/dist/native/sanitizer.js +3 -13
  583. package/dist/native/sanitizer.js.map +1 -1
  584. package/dist/startup-cache.d.ts +2 -0
  585. package/dist/startup-cache.js +2 -0
  586. package/dist/startup-cache.js.map +1 -1
  587. package/package.json +20 -20
  588. package/surface-manifest.json +8 -2
@@ -0,0 +1,52 @@
1
+ import { mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
2
+ import { tmpdir } from "node:os";
3
+ import { join } from "node:path";
4
+ import { afterAll, expect, test } from "vitest";
5
+ import { analyze } from "../index.js";
6
+ import { analyzeWithVerdictCache } from "./verdict-cache.js";
7
+ import { commentOnlyReplay } from "./verdict-semantic.js";
8
+ const dir = mkdtempSync(join(tmpdir(), "scriptc-verdict-"));
9
+ afterAll(() => rmSync(dir, { recursive: true, force: true }));
10
+ test("unchanged and comment-only reruns replay the verdict; code edits relower", () => {
11
+ const entry = join(dir, "main.ts");
12
+ const program = `const pairs: [number, number][] = [[1, 2]];\nconst [[a, b]] = pairs;\nconsole.log(a + b);\nconst { length } = [1, 2] as number[];\nconsole.log(length);\n`;
13
+ writeFileSync(entry, program);
14
+ const entries = new Map();
15
+ const store = {
16
+ read: (k) => entries.get(k) ?? null,
17
+ write: (k, t) => void entries.set(k, t),
18
+ };
19
+ let lowered = 0;
20
+ const run = () => {
21
+ const { result, outcome } = analyzeWithVerdictCache(entry, {}, {
22
+ store,
23
+ identity: "test",
24
+ platform: process.platform,
25
+ semanticReplay: commentOnlyReplay,
26
+ }, () => {
27
+ lowered++;
28
+ return analyze(entry);
29
+ });
30
+ return { ...result, cache: outcome };
31
+ };
32
+ const first = run();
33
+ expect(first.cache).toBe("miss");
34
+ const blockerStart = first.coverage.diagnostics[0]?.loc.start;
35
+ expect(blockerStart).toBeDefined();
36
+ const second = run();
37
+ expect(second.cache).toBe("hit");
38
+ expect(lowered).toBe(1);
39
+ expect(second.coverage).toEqual(first.coverage);
40
+ // A comment edit shifts every location by the inserted text.
41
+ const prefix = "// a note about the pairs\n";
42
+ writeFileSync(entry, prefix + program);
43
+ const third = run();
44
+ expect(third.cache).toBe("semantic-hit");
45
+ expect(lowered).toBe(1);
46
+ expect(third.coverage.diagnostics[0].loc.start).toBe(blockerStart + prefix.length);
47
+ expect(third.sourceTexts.get(entry)).toBe(readFileSync(entry, "utf8"));
48
+ writeFileSync(entry, prefix + program + "console.log(1);\n");
49
+ expect(run().cache).toBe("miss");
50
+ expect(lowered).toBe(2);
51
+ });
52
+ //# sourceMappingURL=verdict-cache.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verdict-cache.test.js","sourceRoot":"","sources":["../../src/coverage/verdict-cache.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { SemanticReplay } from "./verdict-cache.js";
2
+ export declare const commentOnlyReplay: SemanticReplay;
@@ -0,0 +1,24 @@
1
+ /* The Node frontend's semantic replay for the coverage verdict cache: an
2
+ * entry whose only changed inputs are TypeScript sources with the same
3
+ * tokens (comment-only edits) is reused, with its reported locations moved
4
+ * to the edited text. */
5
+ import { frontendInputsSemanticallyMatch } from "../frontend/input-tracker.js";
6
+ import { rebaseSourceLocations, semanticallyEqualSource } from "../library/semantic-source.js";
7
+ export const commentOnlyReplay = (probes, sources, coverage) => {
8
+ const previous = new Map();
9
+ for (const source of sources)
10
+ previous.set(source.path, source.text);
11
+ const match = frontendInputsSemanticallyMatch(probes, previous, semanticallyEqualSource);
12
+ if (match === null || match.changed.length === 0)
13
+ return null;
14
+ const current = new Map(previous);
15
+ for (const [path, text] of match.currentSources)
16
+ current.set(path, text);
17
+ const rebased = rebaseSourceLocations(structuredClone(coverage), previous, current);
18
+ return {
19
+ probes: match.snapshot,
20
+ sources: [...current].map(([path, text]) => ({ path, text })),
21
+ coverage: rebased,
22
+ };
23
+ };
24
+ //# sourceMappingURL=verdict-semantic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verdict-semantic.js","sourceRoot":"","sources":["../../src/coverage/verdict-semantic.ts"],"names":[],"mappings":"AAAA;;;yBAGyB;AACzB,OAAO,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAG/F,MAAM,CAAC,MAAM,iBAAiB,GAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;IAC7E,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,KAAK,MAAM,MAAM,IAAI,OAAO;QAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,+BAA+B,CAAC,MAAM,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IACzF,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9D,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,cAAc;QAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,qBAAqB,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpF,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,QAAQ;QACtB,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,QAAQ,EAAE,OAAO;KAClB,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { AnalyzeOptions, AnalyzeResult } from "../compile-types.js";
2
+ /** The coverage cache directory under the build cache root, or null when
3
+ * caching is disabled or unavailable. */
4
+ export declare function coverageCacheDirectory(): Promise<string | null>;
5
+ /** The compiler package's content digest for coverage verdict keys. The
6
+ * digest hashes every byte of the package; a stat-only proof of the files
7
+ * it covered (inode, size, times) lets an unchanged installation reuse it
8
+ * without rereading the package. `hashIfStale` false answers null instead
9
+ * of hashing (the bootstrap then loads the full compiler). */
10
+ export declare function coverageCompilerIdentity(directory: string, hashIfStale?: boolean): Promise<{
11
+ digest: string;
12
+ } | null>;
13
+ /** An exact verdict-cache hit for `scriptc coverage`, or null (the caller
14
+ * then runs the full analysis, which also handles comment-only edits). */
15
+ export declare function readCoverageVerdict(entry: string, opts: AnalyzeOptions): Promise<AnalyzeResult | null>;
@@ -0,0 +1,66 @@
1
+ /* The startup-sized half of the coverage verdict cache: the compiler
2
+ * identity proof and an exact-hit replay, importable by the CLI bootstrap
3
+ * without loading the lowering graph. */
4
+ import { mkdir, readFile, rename, writeFile } from "node:fs/promises";
5
+ import { join, resolve } from "node:path";
6
+ import { prepareBuildCacheRoot, resolveBuildCacheRoot } from "../backend/build-cache.js";
7
+ import { configuredTargetPlatform } from "../backend/native-toolchain.js";
8
+ import { compilerImplementationDependenciesStillMatch, compilerImplementationIdentity, compilerImplementationRoot, } from "../library/compiler-self-identity.js";
9
+ import { replayVerdict, fileVerdictStore } from "./verdict-cache.js";
10
+ /** The coverage cache directory under the build cache root, or null when
11
+ * caching is disabled or unavailable. */
12
+ export async function coverageCacheDirectory() {
13
+ const root = await prepareBuildCacheRoot(resolveBuildCacheRoot());
14
+ return root === null ? null : join(root, "coverage-v1");
15
+ }
16
+ /** The compiler package's content digest for coverage verdict keys. The
17
+ * digest hashes every byte of the package; a stat-only proof of the files
18
+ * it covered (inode, size, times) lets an unchanged installation reuse it
19
+ * without rereading the package. `hashIfStale` false answers null instead
20
+ * of hashing (the bootstrap then loads the full compiler). */
21
+ export async function coverageCompilerIdentity(directory, hashIfStale = true) {
22
+ const proofPath = join(directory, "compiler-identity.json");
23
+ try {
24
+ const proof = JSON.parse(await readFile(proofPath, "utf8"));
25
+ if (proof.root === compilerImplementationRoot() &&
26
+ /^[0-9a-f]{64}$/.test(proof.digest) &&
27
+ (await compilerImplementationDependenciesStillMatch(proof.dependencies)))
28
+ return { digest: proof.digest };
29
+ }
30
+ catch {
31
+ // No proof yet, or an unreadable one.
32
+ }
33
+ if (!hashIfStale)
34
+ return null;
35
+ const identity = await compilerImplementationIdentity(true);
36
+ try {
37
+ await mkdir(directory, { recursive: true, mode: 0o700 });
38
+ const stage = `${proofPath}.${process.pid}.tmp`;
39
+ await writeFile(stage, JSON.stringify({
40
+ root: compilerImplementationRoot(),
41
+ digest: identity.digest,
42
+ dependencies: identity.dependencies,
43
+ }));
44
+ await rename(stage, proofPath);
45
+ }
46
+ catch {
47
+ // The proof is an optimization; the digest stands without it.
48
+ }
49
+ return { digest: identity.digest };
50
+ }
51
+ /** An exact verdict-cache hit for `scriptc coverage`, or null (the caller
52
+ * then runs the full analysis, which also handles comment-only edits). */
53
+ export async function readCoverageVerdict(entry, opts) {
54
+ const directory = await coverageCacheDirectory();
55
+ if (directory === null)
56
+ return null;
57
+ const identity = await coverageCompilerIdentity(directory, false);
58
+ if (identity === null)
59
+ return null;
60
+ return replayVerdict(resolve(entry), opts, {
61
+ store: fileVerdictStore(directory),
62
+ identity: identity.digest,
63
+ platform: configuredTargetPlatform(),
64
+ });
65
+ }
66
+ //# sourceMappingURL=verdict-startup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verdict-startup.js","sourceRoot":"","sources":["../../src/coverage/verdict-startup.ts"],"names":[],"mappings":"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"}
@@ -12,11 +12,39 @@ export interface ScrDiagnostic {
12
12
  * recognizably the profile's. Only library-mode refusals carry one —
13
13
  * the text always arrives prefixed `from the '<profile name>' profile:`. */
14
14
  note?: string;
15
+ /** SC0001 only: the TypeScript error comes from scriptc's own type world
16
+ * (its fixed library set, the bundled Node fallback types, or globals it
17
+ * does not declare) rather than from the project's own configuration —
18
+ * the error may not reproduce under the project's tsc. Machine-readable
19
+ * output reports these under the "environment" category. */
20
+ typeWorld?: boolean;
15
21
  }
16
22
  /** SC3002–SC3004 — native-helper target, installation, and execution
17
23
  * failures. These are ordinary build diagnostics: a missing optional package
18
24
  * or malformed LLVM input must never surface as an internal compiler error. */
19
25
  export declare function nativeCodegenDiag(code: "SC3002" | "SC3003" | "SC3004", message: string, file: string): ScrDiagnostic;
26
+ /** SC6001 — a value passed to (or declared as) a narrower record type is
27
+ * copied field by field, and the program then writes through or compares
28
+ * the copy: under Node it is the same object, so the write would be
29
+ * visible to the original and `===` would be true. */
30
+ export declare function widthCopyDivergenceDiag(sourceType: string, targetType: string, use: "write" | "compare", useText: string, site: "call" | "declaration", loc: SrcLoc): ScrDiagnostic;
31
+ /** SC6002 — an object literal whose written key order differs from the
32
+ * order its declared type compiles to, for a type the program observes
33
+ * (JSON.stringify, Object.keys/values/entries, for-in, console output). */
34
+ export declare function keyOrderDivergenceDiag(typeText: string, nodeOrder: string, nativeOrder: string, detail: "reordered" | "added-later", loc: SrcLoc): ScrDiagnostic;
35
+ /** SC6003 — one-argument localeCompare over text outside the root-locale
36
+ * collation table the runtime carries: those characters compare by code
37
+ * point natively, where Node applies full ICU collation. */
38
+ export declare function localeCompareDivergenceDiag(text: string, loc: SrcLoc): ScrDiagnostic;
39
+ /** SC6004 — a call passes an instance of one class where the callee casts
40
+ * that parameter to an unrelated class: Node reads the members
41
+ * structurally, while scriptc checks class casts at runtime and throws a
42
+ * TypeError when the cast executes. */
43
+ export declare function unrelatedClassCastDivergenceDiag(source: string, target: string, loc: SrcLoc): ScrDiagnostic;
44
+ /** SC6005 — a Date string literal outside the grammar the native parser
45
+ * accepts (ISO 8601 with an explicit offset, date-only forms, and the
46
+ * certificate-time shape): Node parses many more forms. */
47
+ export declare function dateLiteralDivergenceDiag(text: string, loc: SrcLoc): ScrDiagnostic;
20
48
  /** SC5001 — the outbound native-FFI manifest is malformed or unreadable. */
21
49
  export declare function ffiProfileDiag(detail: string, profilePath: string): ScrDiagnostic;
22
50
  /** SC5002 — a manifest binding must resolve to a signature-only ambient
@@ -195,7 +223,7 @@ export declare function requiresDynamicDiag(feature: string, loc: SrcLoc): ScrDi
195
223
  * name the construct: the call RUNS under --dynamic (the engine executes
196
224
  * it with JS-exact semantics); without the flag each use site reports the
197
225
  * choice instead of ICEing or failing at link time. */
198
- export declare function requiresDynamicApiDiag(feature: string, loc: SrcLoc): ScrDiagnostic;
226
+ export declare function requiresDynamicApiDiag(feature: string, loc: SrcLoc, hint?: string): ScrDiagnostic;
199
227
  /** An npm package import in a static build. The package's shipped JS has
200
228
  * exactly one execution home — the embedded engine — so the import itself
201
229
  * "requires" (SC2010's voice); its own code so the coverage report can
@@ -11,6 +11,75 @@ export function nativeCodegenDiag(code, message, file) {
11
11
  : {}),
12
12
  };
13
13
  }
14
+ /* ── SC6xxx: divergences from Node (warnings) ─────────────────────────── */
15
+ /** SC6001 — a value passed to (or declared as) a narrower record type is
16
+ * copied field by field, and the program then writes through or compares
17
+ * the copy: under Node it is the same object, so the write would be
18
+ * visible to the original and `===` would be true. */
19
+ export function widthCopyDivergenceDiag(sourceType, targetType, use, useText, site, loc) {
20
+ const how = site === "call"
21
+ ? `passing a '${sourceType}' where '${targetType}' is expected`
22
+ : `storing a '${sourceType}' in a '${targetType}' binding`;
23
+ const effect = use === "write"
24
+ ? `the write to '${useText}' updates only the copy, while under Node it updates the original object`
25
+ : `'${useText}' compares the copy, which is never the original object, while under Node it is the same object`;
26
+ return {
27
+ code: "SC6001",
28
+ message: `${how} copies the object (a narrower record shape compiles as a field copy): ${effect}`,
29
+ loc,
30
+ hint: `declare the parameter or binding with the value's full type ('${sourceType}'), or make the shape a class — class instances keep their identity when passed as a base class`,
31
+ };
32
+ }
33
+ /** SC6002 — an object literal whose written key order differs from the
34
+ * order its declared type compiles to, for a type the program observes
35
+ * (JSON.stringify, Object.keys/values/entries, for-in, console output). */
36
+ export function keyOrderDivergenceDiag(typeText, nodeOrder, nativeOrder, detail, loc) {
37
+ return {
38
+ code: "SC6002",
39
+ message: detail === "reordered"
40
+ ? `this object's keys enumerate as '${nativeOrder}' natively (the declaration order of '${typeText}') but as '${nodeOrder}' under Node (insertion order), and the program observes the order (JSON.stringify, Object.keys, for-in or console output)`
41
+ : `a property this object leaves out is assigned later: under Node its keys then enumerate as '${nodeOrder}' (insertion order), natively as '${nativeOrder}' (the declaration order of '${typeText}'), and the program observes the order`,
42
+ loc,
43
+ hint: detail === "reordered"
44
+ ? `write the properties in the declaration order of '${typeText}' (or reorder the declaration to match how objects are built)`
45
+ : `initialize the property in the literal (for example with undefined), or declare it after the properties the literal sets`,
46
+ };
47
+ }
48
+ /** SC6003 — one-argument localeCompare over text outside the root-locale
49
+ * collation table the runtime carries: those characters compare by code
50
+ * point natively, where Node applies full ICU collation. */
51
+ export function localeCompareDivergenceDiag(text, loc) {
52
+ const shown = text.length > 24 ? `${text.slice(0, 21)}...` : text;
53
+ return {
54
+ code: "SC6003",
55
+ message: `localeCompare over '${shown}' compares characters outside the built-in collation (Latin letters, digits, punctuation and symbols) by code point natively, while Node applies ICU's full collation`,
56
+ loc,
57
+ hint: "results agree with Node for Latin-script text; for other scripts compare explicitly (for example by code point with < and >) so both runtimes agree",
58
+ };
59
+ }
60
+ /** SC6004 — a call passes an instance of one class where the callee casts
61
+ * that parameter to an unrelated class: Node reads the members
62
+ * structurally, while scriptc checks class casts at runtime and throws a
63
+ * TypeError when the cast executes. */
64
+ export function unrelatedClassCastDivergenceDiag(source, target, loc) {
65
+ return {
66
+ code: "SC6004",
67
+ message: `this '${source}' reaches a cast to the unrelated class '${target}' in the callee: natively the checked cast throws a TypeError when it executes, while Node reads the members structurally`,
68
+ loc,
69
+ hint: `narrow with 'instanceof ${target}' before casting, or cast to a base class or interface both classes share`,
70
+ };
71
+ }
72
+ /** SC6005 — a Date string literal outside the grammar the native parser
73
+ * accepts (ISO 8601 with an explicit offset, date-only forms, and the
74
+ * certificate-time shape): Node parses many more forms. */
75
+ export function dateLiteralDivergenceDiag(text, loc) {
76
+ return {
77
+ code: "SC6005",
78
+ message: `the date string '${text}' parses to an invalid date (NaN) natively, while Node accepts it (the native parser takes ISO 8601 date-times with an explicit offset, such as '2024-01-02T03:04:05Z', and date-only forms)`,
79
+ loc,
80
+ hint: "write the date in ISO 8601 with an explicit offset ('Z' or '+HH:MM'), or build it from numbers with Date.UTC",
81
+ };
82
+ }
14
83
  /* ── SC5xxx: native FFI ───────────────────────────────────────────────── */
15
84
  /** SC5001 — the outbound native-FFI manifest is malformed or unreadable. */
16
85
  export function ffiProfileDiag(detail, profilePath) {
@@ -100,17 +169,19 @@ export const UNSUPPORTED = {
100
169
  hint: "export declarations directly: export function f() {}",
101
170
  },
102
171
  SC1015: { feature: "dynamic import()", milestone: "M4" },
103
- // Benign cycles are ADMITTED (Node runs them as cache hits): cycles of
104
- // ES modules whose top levels are declaration-only and whose
105
- // cycle-crossing bindings are used only inside function bodies (mutual
106
- // recursion, cross-module class references), plus closing edges that
107
- // bind nothing readable. SC1016 remains for exactly the cycles where
108
- // Node's partial initialization is observable — the message names the
109
- // offending binding or top-level statement.
172
+ // ES-module cycles are ADMITTED and evaluate in Node's order: module
173
+ // bodies run depth-first, function declarations are callable from the
174
+ // start, and let/const bindings that can be read before their
175
+ // declaration carry an initialization check (Node's TDZ ReferenceError).
176
+ // SC1016 remains for the shapes without an exact representation —
177
+ // CommonJS members, top-level await, default-export expressions,
178
+ // namespace imports or re-exports of cycle members, and var or class
179
+ // bindings reachable before their declaration ran. The message names
180
+ // the offending construct.
110
181
  SC1016: {
111
182
  feature: "circular imports",
112
183
  milestone: "later",
113
- hint: "cycles of ES modules with declaration-only top levels whose cycle-crossing bindings are only used inside function bodies compile as-is; move the named top-level read or call into a function body (or break the named edge) so nothing runs during the cycle's init window",
184
+ hint: "ES-module cycles of let/const/function bindings compile as-is; rewrite the named construct (a named import instead of a namespace, a const instead of a default-export expression or var, a class declared before the code that can reach it) or break the named edge",
114
185
  },
115
186
  // Class DECLARATIONS shipped; SC1020's remaining use is class expressions.
116
187
  SC1020: { feature: "class expressions", milestone: "later" },
@@ -625,13 +696,14 @@ export function requiresDynamicDiag(feature, loc) {
625
696
  * name the construct: the call RUNS under --dynamic (the engine executes
626
697
  * it with JS-exact semantics); without the flag each use site reports the
627
698
  * choice instead of ICEing or failing at link time. */
628
- export function requiresDynamicApiDiag(feature, loc) {
699
+ export function requiresDynamicApiDiag(feature, loc, hint) {
629
700
  return {
630
701
  code: "SC2012",
631
702
  message: `${feature} runs in the embedded dynamic engine, which this build does not include`,
632
703
  loc,
633
704
  milestone: "M4",
634
- hint: "build with --dynamic to run this call in the embedded engine (adds ~620KB to the binary); static builds never include it",
705
+ hint: hint ??
706
+ "build with --dynamic to run this call in the embedded engine (adds ~620KB to the binary); static builds never include it",
635
707
  };
636
708
  }
637
709
  /** An npm package import in a static build. The package's shipped JS has
@@ -644,7 +716,7 @@ export function requiresDynamicImportDiag(pkg, loc) {
644
716
  message: `importing '${pkg}' requires the embedded dynamic engine, which this build does not include — the package's implementation runs there`,
645
717
  loc,
646
718
  milestone: "M4",
647
- hint: "build with --dynamic to run npm package code in the embedded engine (adds ~620KB to the binary); static builds never include it",
719
+ hint: "build with --dynamic to run npm package code in the embedded engine (adds ~620KB to the binary), or try --npm-static auto to compile eligible packages' JavaScript statically; static builds never include the engine",
648
720
  };
649
721
  }
650
722
  /** A USE SITE of a value whose type the package's .d.ts declares, in a
@@ -656,7 +728,7 @@ export function requiresDynamicPackageDiag(pkg, loc) {
656
728
  message: `values from the '${pkg}' package run in the embedded dynamic engine, which this build does not include`,
657
729
  loc,
658
730
  milestone: "M4",
659
- hint: "build with --dynamic to run npm package code in the embedded engine (adds ~620KB to the binary); static builds never include it",
731
+ hint: "build with --dynamic to run npm package code in the embedded engine (adds ~620KB to the binary), or try --npm-static auto to compile eligible packages' JavaScript statically; static builds never include the engine",
660
732
  };
661
733
  }
662
734
  /** Building the embedded npm runtime graph failed — the package's entry
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../../src/diagnostics/diagnostic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../../src/diagnostics/diagnostic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ import type { ScrDiagnostic } from "./diagnostic.js";
2
+ export declare const DIAGNOSTICS_SCHEMA = "scriptc-diagnostics";
3
+ export declare const DIAGNOSTICS_SCHEMA_VERSION = 1;
4
+ /** What kind of problem a diagnostic reports, independent of its code band:
5
+ * - invalid-source: the program itself is wrong (TypeScript errors, bad JSON modules)
6
+ * - unsupported: valid TypeScript/JavaScript scriptc cannot compile yet
7
+ * - dynamic-only: compiles when the build embeds the dynamic engine (--dynamic)
8
+ * - divergence: compiles, but the native program behaves differently from Node
9
+ * - environment: project configuration, scriptc's type world, toolchain or target
10
+ * - internal: a compiler bug */
11
+ export type DiagnosticCategory = "invalid-source" | "unsupported" | "dynamic-only" | "divergence" | "environment" | "internal";
12
+ /** Where the diagnostic was found:
13
+ * - preflight: before lowering (type checking, configuration, module graph)
14
+ * - reached: code the entry path reaches (fails a build)
15
+ * - unreached: code nothing on the entry path reaches (cannot fail a build)
16
+ * - deferred: a JavaScript statement that compiles to a throw of this
17
+ * diagnostic when it executes */
18
+ export type DiagnosticScope = "preflight" | "reached" | "unreached" | "deferred";
19
+ export interface SourcePosition {
20
+ file: string;
21
+ /** 1-based line and UTF-16 column. */
22
+ line: number;
23
+ column: number;
24
+ }
25
+ export interface LocatedDiagnostic extends SourcePosition {
26
+ code: string;
27
+ category: DiagnosticCategory;
28
+ severity: "error" | "warning";
29
+ scope: DiagnosticScope;
30
+ endLine: number;
31
+ endColumn: number;
32
+ /** 0-based UTF-16 offsets into the file. */
33
+ start: number;
34
+ end: number;
35
+ message: string;
36
+ /** Always present: the diagnostic's own hint, or the code family's. */
37
+ hint: string;
38
+ /** The id of the root-cause group this site belongs to. */
39
+ group: string;
40
+ }
41
+ export interface DiagnosticGroup {
42
+ id: string;
43
+ code: string;
44
+ category: DiagnosticCategory;
45
+ severity: "error" | "warning";
46
+ scope: DiagnosticScope;
47
+ /** The message with per-instantiation type arguments collapsed. */
48
+ message: string;
49
+ hint: string;
50
+ count: number;
51
+ /** The first site in source order: the place to start fixing. */
52
+ primary: SourcePosition;
53
+ /** Every site in source order (primary included). */
54
+ sites: SourcePosition[];
55
+ }
56
+ export interface DiagnosticsEnvelope {
57
+ schema: typeof DIAGNOSTICS_SCHEMA;
58
+ schemaVersion: typeof DIAGNOSTICS_SCHEMA_VERSION;
59
+ compilerVersion: string;
60
+ command: "coverage" | "build";
61
+ entry: string;
62
+ /** coverage: no reached blockers (and, with --fail-on=divergences, no
63
+ * divergences); build: an artifact was produced. */
64
+ success: boolean;
65
+ /** How far the command got: "preflight" when it stopped there,
66
+ * "compile" when blockers remain, "native" when native code generation
67
+ * or linking failed, "complete" otherwise. */
68
+ phase: "preflight" | "compile" | "native" | "complete";
69
+ stats?: {
70
+ statementsTotal: number;
71
+ statementsStatic: number;
72
+ statementsDynamic: number;
73
+ statementsFailed: number;
74
+ functionsSkipped: number;
75
+ percentStatic: number;
76
+ };
77
+ /** build only: the produced artifact path. */
78
+ artifact?: string;
79
+ groups: DiagnosticGroup[];
80
+ diagnostics: LocatedDiagnostic[];
81
+ }
82
+ /** Codes whose construct RUNS under --dynamic (the embedded engine). */
83
+ export declare const DYNAMIC_CAPABLE_CODES: ReadonlySet<string>;
84
+ /** The divergence band: compiles, but the program can behave differently
85
+ * from Node. Warnings, never build failures. */
86
+ export declare function isDivergenceCode(code: string): boolean;
87
+ export declare function categoryOf(diag: ScrDiagnostic): DiagnosticCategory;
88
+ /** Code-family guidance for diagnostics whose construct site has no
89
+ * specific hint: every group the report prints and every envelope entry
90
+ * carries one. */
91
+ export declare function hintOf(diag: ScrDiagnostic): string;
92
+ /** The root-cause text of a message: type arguments of instantiated generic
93
+ * types collapse to `<…>`, so every instantiation of one uncompilable
94
+ * declaration lands in one group. Component fences (SC2009) group on the
95
+ * named component alone — the outer container type repeats per use. */
96
+ export declare function rootCauseMessage(diag: ScrDiagnostic): string;
97
+ export declare function groupId(diag: ScrDiagnostic, scope: DiagnosticScope): string;
98
+ /** Offset → line/column over a source text, with the line table cached
99
+ * per file. Files missing from the analysis' sources are read from disk;
100
+ * a file that cannot be read reports line 1 with the raw offset as column. */
101
+ export declare class SourceLocator {
102
+ private readonly sources;
103
+ private readonly lineStarts;
104
+ constructor(sources?: ReadonlyMap<string, string>);
105
+ private starts;
106
+ position(file: string, offset: number): {
107
+ line: number;
108
+ column: number;
109
+ };
110
+ }
111
+ export declare function locateDiagnostic(diag: ScrDiagnostic, scope: DiagnosticScope, locator: SourceLocator): LocatedDiagnostic;
112
+ /** Root-cause groups over located diagnostics, in input order of first
113
+ * appearance; sites inside each group are in source order. */
114
+ export declare function groupDiagnostics(diags: readonly ScrDiagnostic[], scope: DiagnosticScope, locator: SourceLocator): {
115
+ located: LocatedDiagnostic[];
116
+ groups: DiagnosticGroup[];
117
+ };
118
+ export declare function comparePositions(a: SourcePosition, b: SourcePosition): number;
119
+ /** The versioned machine-readable form of a build's outcome
120
+ * (`scriptc build --print=diagnostics`). Build diagnostics are all reached
121
+ * (or preflight) errors; divergence warnings ride along on success. */
122
+ export declare function buildEnvelope(opts: {
123
+ compilerVersion: string;
124
+ entry: string;
125
+ ok: boolean;
126
+ artifact?: string;
127
+ diagnostics: readonly ScrDiagnostic[];
128
+ warnings?: readonly ScrDiagnostic[];
129
+ sourceTexts?: ReadonlyMap<string, string>;
130
+ }): DiagnosticsEnvelope;