@scriptc/compiler 0.4.5 → 0.4.6

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 (1200) hide show
  1. package/ambient/node-fallback/assert-strict.d.ts +47 -0
  2. package/ambient/node-fallback/assert.d.ts +86 -0
  3. package/ambient/node-fallback/async_hooks.d.ts +41 -0
  4. package/ambient/node-fallback/buffer.d.ts +23 -0
  5. package/ambient/node-fallback/child_process.d.ts +242 -0
  6. package/ambient/node-fallback/cluster.d.ts +17 -0
  7. package/ambient/node-fallback/constants.d.ts +15 -0
  8. package/ambient/node-fallback/crypto.d.ts +837 -0
  9. package/ambient/node-fallback/dgram.d.ts +58 -0
  10. package/ambient/node-fallback/diagnostics_channel.d.ts +87 -0
  11. package/ambient/node-fallback/dns-promises.d.ts +27 -0
  12. package/ambient/node-fallback/dns.d.ts +65 -0
  13. package/ambient/node-fallback/events.d.ts +60 -0
  14. package/ambient/node-fallback/fs-promises.d.ts +225 -0
  15. package/ambient/node-fallback/fs.d.ts +641 -0
  16. package/ambient/node-fallback/graceful-fs.d.ts +9 -0
  17. package/ambient/node-fallback/http.d.ts +326 -0
  18. package/ambient/node-fallback/http2.d.ts +816 -0
  19. package/ambient/node-fallback/https.d.ts +59 -0
  20. package/ambient/node-fallback/module.d.ts +10 -0
  21. package/ambient/node-fallback/net.d.ts +374 -0
  22. package/ambient/node-fallback/os.d.ts +288 -0
  23. package/ambient/node-fallback/path-posix.d.ts +22 -0
  24. package/ambient/node-fallback/path-win32.d.ts +22 -0
  25. package/ambient/node-fallback/path.d.ts +55 -0
  26. package/ambient/node-fallback/process.d.ts +11 -0
  27. package/ambient/node-fallback/punycode.d.ts +18 -0
  28. package/ambient/node-fallback/querystring.d.ts +55 -0
  29. package/ambient/node-fallback/stream-consumers.d.ts +21 -0
  30. package/ambient/node-fallback/stream-promises.d.ts +28 -0
  31. package/ambient/node-fallback/stream-web.d.ts +36 -0
  32. package/ambient/node-fallback/stream.d.ts +644 -0
  33. package/ambient/node-fallback/string_decoder.d.ts +20 -0
  34. package/ambient/node-fallback/test.d.ts +236 -0
  35. package/ambient/node-fallback/timers-promises.d.ts +31 -0
  36. package/ambient/node-fallback/timers.d.ts +28 -0
  37. package/ambient/node-fallback/tls.d.ts +169 -0
  38. package/ambient/node-fallback/url.d.ts +95 -0
  39. package/ambient/node-fallback/util-types.d.ts +50 -0
  40. package/ambient/node-fallback/util.d.ts +416 -0
  41. package/ambient/node-fallback/v8.d.ts +43 -0
  42. package/ambient/node-fallback/worker_threads.d.ts +113 -0
  43. package/ambient/node-fallback/zlib.d.ts +422 -0
  44. package/ambient/scriptc-node-fallback.d.ts +224 -6688
  45. package/dist/backend/cycle-analysis.js +4 -0
  46. package/dist/backend/cycle-analysis.js.map +1 -1
  47. package/dist/backend/executable-features.d.ts +1 -1
  48. package/dist/backend/executable-features.js +15 -2
  49. package/dist/backend/executable-features.js.map +1 -1
  50. package/dist/backend/huge-text.d.ts +16 -0
  51. package/dist/backend/huge-text.js +103 -0
  52. package/dist/backend/huge-text.js.map +1 -0
  53. package/dist/backend/huge-text.test.d.ts +1 -0
  54. package/dist/backend/huge-text.test.js +73 -0
  55. package/dist/backend/huge-text.test.js.map +1 -0
  56. package/dist/backend/library-pack.js +1 -1
  57. package/dist/backend/library-pack.js.map +1 -1
  58. package/dist/backend/link-plan-core.d.ts +10 -0
  59. package/dist/backend/link-plan-core.js +14 -2
  60. package/dist/backend/link-plan-core.js.map +1 -1
  61. package/dist/backend/link-plan-core.test.d.ts +1 -0
  62. package/dist/backend/link-plan-core.test.js +20 -0
  63. package/dist/backend/link-plan-core.test.js.map +1 -0
  64. package/dist/backend/link-plan.d.ts +8 -0
  65. package/dist/backend/link-plan.js +7 -0
  66. package/dist/backend/link-plan.js.map +1 -1
  67. package/dist/backend/linker.js +37 -14
  68. package/dist/backend/linker.js.map +1 -1
  69. package/dist/backend/lld.d.ts +13 -0
  70. package/dist/backend/lld.js +18 -1
  71. package/dist/backend/lld.js.map +1 -1
  72. package/dist/backend/lld.test.js +7 -1
  73. package/dist/backend/lld.test.js.map +1 -1
  74. package/dist/backend/llvm/alloc.d.ts +2 -0
  75. package/dist/backend/llvm/alloc.js +1 -1
  76. package/dist/backend/llvm/alloc.js.map +1 -1
  77. package/dist/backend/llvm/arenas.d.ts +78 -0
  78. package/dist/backend/llvm/arenas.js +313 -0
  79. package/dist/backend/llvm/arenas.js.map +1 -0
  80. package/dist/backend/llvm/arenas.test.d.ts +1 -0
  81. package/dist/backend/llvm/arenas.test.js +140 -0
  82. package/dist/backend/llvm/arenas.test.js.map +1 -0
  83. package/dist/backend/llvm/blocks.d.ts +11 -1
  84. package/dist/backend/llvm/blocks.js +23 -5
  85. package/dist/backend/llvm/blocks.js.map +1 -1
  86. package/dist/backend/llvm/bytes-headers.d.ts +19 -0
  87. package/dist/backend/llvm/bytes-headers.js +55 -0
  88. package/dist/backend/llvm/bytes-headers.js.map +1 -0
  89. package/dist/backend/llvm/bytes-loop-versions.d.ts +4 -3
  90. package/dist/backend/llvm/bytes-loop-versions.js +42 -7
  91. package/dist/backend/llvm/bytes-loop-versions.js.map +1 -1
  92. package/dist/backend/llvm/bytes-loop-versions.test.js +39 -4
  93. package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -1
  94. package/dist/backend/llvm/call-lifetimes.d.ts +5 -0
  95. package/dist/backend/llvm/call-lifetimes.js +43 -8
  96. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  97. package/dist/backend/llvm/call-lifetimes.test.js +26 -0
  98. package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
  99. package/dist/backend/llvm/checked-narrows.d.ts +3 -0
  100. package/dist/backend/llvm/checked-narrows.js +8 -1
  101. package/dist/backend/llvm/checked-narrows.js.map +1 -1
  102. package/dist/backend/llvm/class-unions.d.ts +21 -0
  103. package/dist/backend/llvm/class-unions.js +141 -0
  104. package/dist/backend/llvm/class-unions.js.map +1 -0
  105. package/dist/backend/llvm/class-unions.test.d.ts +1 -0
  106. package/dist/backend/llvm/class-unions.test.js +137 -0
  107. package/dist/backend/llvm/class-unions.test.js.map +1 -0
  108. package/dist/backend/llvm/classes.d.ts +46 -8
  109. package/dist/backend/llvm/classes.js +259 -32
  110. package/dist/backend/llvm/classes.js.map +1 -1
  111. package/dist/backend/llvm/classes.test.js +4 -0
  112. package/dist/backend/llvm/classes.test.js.map +1 -1
  113. package/dist/backend/llvm/common.d.ts +23 -0
  114. package/dist/backend/llvm/common.js +34 -0
  115. package/dist/backend/llvm/common.js.map +1 -1
  116. package/dist/backend/llvm/constant-callbacks.test.js +39 -0
  117. package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
  118. package/dist/backend/llvm/constant-choices.d.ts +32 -0
  119. package/dist/backend/llvm/constant-choices.js +209 -0
  120. package/dist/backend/llvm/constant-choices.js.map +1 -0
  121. package/dist/backend/llvm/constant-choices.test.d.ts +1 -0
  122. package/dist/backend/llvm/constant-choices.test.js +94 -0
  123. package/dist/backend/llvm/constant-choices.test.js.map +1 -0
  124. package/dist/backend/llvm/counted-loops.d.ts +14 -2
  125. package/dist/backend/llvm/counted-loops.js +60 -7
  126. package/dist/backend/llvm/counted-loops.js.map +1 -1
  127. package/dist/backend/llvm/counted-loops.test.d.ts +1 -0
  128. package/dist/backend/llvm/counted-loops.test.js +34 -0
  129. package/dist/backend/llvm/counted-loops.test.js.map +1 -0
  130. package/dist/backend/llvm/cpu-dispatch.d.ts +26 -0
  131. package/dist/backend/llvm/cpu-dispatch.js +279 -0
  132. package/dist/backend/llvm/cpu-dispatch.js.map +1 -0
  133. package/dist/backend/llvm/dense-array-access.d.ts +13 -2
  134. package/dist/backend/llvm/dense-array-access.js +60 -6
  135. package/dist/backend/llvm/dense-array-access.js.map +1 -1
  136. package/dist/backend/llvm/dyn-handle-tags.test.js +40 -14
  137. package/dist/backend/llvm/dyn-handle-tags.test.js.map +1 -1
  138. package/dist/backend/llvm/dyn.d.ts +28 -2
  139. package/dist/backend/llvm/dyn.js +176 -27
  140. package/dist/backend/llvm/dyn.js.map +1 -1
  141. package/dist/backend/llvm/emit-function.js +25 -3
  142. package/dist/backend/llvm/emit-function.js.map +1 -1
  143. package/dist/backend/llvm/emit-journal.d.ts +1 -0
  144. package/dist/backend/llvm/emit-journal.js.map +1 -1
  145. package/dist/backend/llvm/emit-module.d.ts +5 -3
  146. package/dist/backend/llvm/emit-module.js +362 -74
  147. package/dist/backend/llvm/emit-module.js.map +1 -1
  148. package/dist/backend/llvm/emit-statements.js +327 -59
  149. package/dist/backend/llvm/emit-statements.js.map +1 -1
  150. package/dist/backend/llvm/emitter.d.ts +223 -33
  151. package/dist/backend/llvm/emitter.js +713 -100
  152. package/dist/backend/llvm/emitter.js.map +1 -1
  153. package/dist/backend/llvm/emitter.test.js +20 -1
  154. package/dist/backend/llvm/emitter.test.js.map +1 -1
  155. package/dist/backend/llvm/expr-async.js +32 -6
  156. package/dist/backend/llvm/expr-async.js.map +1 -1
  157. package/dist/backend/llvm/expr-bytes.d.ts +9 -1
  158. package/dist/backend/llvm/expr-bytes.js +105 -9
  159. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  160. package/dist/backend/llvm/expr-callbacks.d.ts +1 -1
  161. package/dist/backend/llvm/expr-callbacks.js +29 -22
  162. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  163. package/dist/backend/llvm/expr-calls.d.ts +0 -4
  164. package/dist/backend/llvm/expr-calls.js +116 -14
  165. package/dist/backend/llvm/expr-calls.js.map +1 -1
  166. package/dist/backend/llvm/expr-containers.js +77 -12
  167. package/dist/backend/llvm/expr-containers.js.map +1 -1
  168. package/dist/backend/llvm/expr-context.d.ts +22 -0
  169. package/dist/backend/llvm/expr-control.d.ts +4 -0
  170. package/dist/backend/llvm/expr-control.js +485 -426
  171. package/dist/backend/llvm/expr-control.js.map +1 -1
  172. package/dist/backend/llvm/expr-dispatch.js +4 -0
  173. package/dist/backend/llvm/expr-dispatch.js.map +1 -1
  174. package/dist/backend/llvm/expr-dynamic.js +3 -3
  175. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  176. package/dist/backend/llvm/expr-primitives.d.ts +6 -0
  177. package/dist/backend/llvm/expr-primitives.js +119 -58
  178. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  179. package/dist/backend/llvm/expr-primitives.test.js +11 -2
  180. package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
  181. package/dist/backend/llvm/expr-records.d.ts +36 -4
  182. package/dist/backend/llvm/expr-records.js +249 -37
  183. package/dist/backend/llvm/expr-records.js.map +1 -1
  184. package/dist/backend/llvm/expr-stream-bridges.js +124 -7
  185. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  186. package/dist/backend/llvm/expr-stream-bridges.test.js +1 -1
  187. package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -1
  188. package/dist/backend/llvm/expr-stream-callbacks.js +13 -14
  189. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  190. package/dist/backend/llvm/frame-escapes.d.ts +11 -0
  191. package/dist/backend/llvm/frame-escapes.js +219 -0
  192. package/dist/backend/llvm/frame-escapes.js.map +1 -0
  193. package/dist/backend/llvm/function-layout.d.ts +15 -0
  194. package/dist/backend/llvm/function-layout.js +40 -0
  195. package/dist/backend/llvm/function-layout.js.map +1 -0
  196. package/dist/backend/llvm/heap-census.d.ts +34 -0
  197. package/dist/backend/llvm/heap-census.js +163 -0
  198. package/dist/backend/llvm/heap-census.js.map +1 -0
  199. package/dist/backend/llvm/inline-arrays.d.ts +41 -0
  200. package/dist/backend/llvm/inline-arrays.js +195 -0
  201. package/dist/backend/llvm/inline-arrays.js.map +1 -0
  202. package/dist/backend/llvm/int32-kind-loops.js +2 -0
  203. package/dist/backend/llvm/int32-kind-loops.js.map +1 -1
  204. package/dist/backend/llvm/integer-clones.d.ts +32 -5
  205. package/dist/backend/llvm/integer-clones.js +237 -44
  206. package/dist/backend/llvm/integer-clones.js.map +1 -1
  207. package/dist/backend/llvm/integer-clones.test.js +120 -0
  208. package/dist/backend/llvm/integer-clones.test.js.map +1 -1
  209. package/dist/backend/llvm/iterative-teardown.test.d.ts +1 -0
  210. package/dist/backend/llvm/iterative-teardown.test.js +62 -0
  211. package/dist/backend/llvm/iterative-teardown.test.js.map +1 -0
  212. package/dist/backend/llvm/js-ic.js +246 -62
  213. package/dist/backend/llvm/js-ic.js.map +1 -1
  214. package/dist/backend/llvm/lib-connect.js +1 -1
  215. package/dist/backend/llvm/lib-connect.js.map +1 -1
  216. package/dist/backend/llvm/lib-datagram.js +2 -2
  217. package/dist/backend/llvm/lib-datagram.js.map +1 -1
  218. package/dist/backend/llvm/lib-dispatch.js +153 -16
  219. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  220. package/dist/backend/llvm/lib-filesystem.d.ts +8 -0
  221. package/dist/backend/llvm/lib-filesystem.js +48 -4
  222. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  223. package/dist/backend/llvm/lib-http2.js +4 -3
  224. package/dist/backend/llvm/lib-http2.js.map +1 -1
  225. package/dist/backend/llvm/lib-lookup.js +1 -1
  226. package/dist/backend/llvm/lib-lookup.js.map +1 -1
  227. package/dist/backend/llvm/lib-network.js +15 -1
  228. package/dist/backend/llvm/lib-network.js.map +1 -1
  229. package/dist/backend/llvm/lib-process.js +32 -8
  230. package/dist/backend/llvm/lib-process.js.map +1 -1
  231. package/dist/backend/llvm/lib-shared.d.ts +3 -0
  232. package/dist/backend/llvm/lib-shared.js +191 -28
  233. package/dist/backend/llvm/lib-shared.js.map +1 -1
  234. package/dist/backend/llvm/lib-stream.js +1 -1
  235. package/dist/backend/llvm/lib-stream.js.map +1 -1
  236. package/dist/backend/llvm/local-array-reads.js +15 -1
  237. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  238. package/dist/backend/llvm/local-array-reads.test.js +1 -1
  239. package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
  240. package/dist/backend/llvm/local-extents.d.ts +22 -0
  241. package/dist/backend/llvm/local-extents.js +102 -0
  242. package/dist/backend/llvm/local-extents.js.map +1 -1
  243. package/dist/backend/llvm/local-union-storage.js +15 -2
  244. package/dist/backend/llvm/local-union-storage.js.map +1 -1
  245. package/dist/backend/llvm/local-union-storage.test.js +1 -1
  246. package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
  247. package/dist/backend/llvm/loop-callees.d.ts +21 -0
  248. package/dist/backend/llvm/loop-callees.js +119 -0
  249. package/dist/backend/llvm/loop-callees.js.map +1 -0
  250. package/dist/backend/llvm/loop-callees.test.d.ts +1 -0
  251. package/dist/backend/llvm/loop-callees.test.js +65 -0
  252. package/dist/backend/llvm/loop-callees.test.js.map +1 -0
  253. package/dist/backend/llvm/loop-entry-versions.d.ts +17 -0
  254. package/dist/backend/llvm/loop-entry-versions.js +185 -0
  255. package/dist/backend/llvm/loop-entry-versions.js.map +1 -0
  256. package/dist/backend/llvm/map-number-lookup.js.map +1 -1
  257. package/dist/backend/llvm/map-number-lookup.test.js +13 -4
  258. package/dist/backend/llvm/map-number-lookup.test.js.map +1 -1
  259. package/dist/backend/llvm/map-read-lifetimes.d.ts +11 -0
  260. package/dist/backend/llvm/map-read-lifetimes.js +51 -1
  261. package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
  262. package/dist/backend/llvm/map-read-lifetimes.test.js +6 -3
  263. package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
  264. package/dist/backend/llvm/nullable-unions.d.ts +67 -10
  265. package/dist/backend/llvm/nullable-unions.js +218 -22
  266. package/dist/backend/llvm/nullable-unions.js.map +1 -1
  267. package/dist/backend/llvm/nullable-unions.test.js +124 -1
  268. package/dist/backend/llvm/nullable-unions.test.js.map +1 -1
  269. package/dist/backend/llvm/periodic-guards.d.ts +16 -0
  270. package/dist/backend/llvm/periodic-guards.js +91 -0
  271. package/dist/backend/llvm/periodic-guards.js.map +1 -0
  272. package/dist/backend/llvm/periodic-guards.test.d.ts +1 -0
  273. package/dist/backend/llvm/periodic-guards.test.js +64 -0
  274. package/dist/backend/llvm/periodic-guards.test.js.map +1 -0
  275. package/dist/backend/llvm/publish.d.ts +12 -2
  276. package/dist/backend/llvm/publish.js +15 -8
  277. package/dist/backend/llvm/publish.js.map +1 -1
  278. package/dist/backend/llvm/rebound-parameters.d.ts +4 -1
  279. package/dist/backend/llvm/rebound-parameters.js +17 -1
  280. package/dist/backend/llvm/rebound-parameters.js.map +1 -1
  281. package/dist/backend/llvm/receivers.d.ts +7 -0
  282. package/dist/backend/llvm/receivers.js +77 -10
  283. package/dist/backend/llvm/receivers.js.map +1 -1
  284. package/dist/backend/llvm/record-union-keys.test.js +29 -0
  285. package/dist/backend/llvm/record-union-keys.test.js.map +1 -1
  286. package/dist/backend/llvm/record-views.d.ts +29 -0
  287. package/dist/backend/llvm/record-views.js +249 -0
  288. package/dist/backend/llvm/record-views.js.map +1 -0
  289. package/dist/backend/llvm/record-views.test.d.ts +1 -0
  290. package/dist/backend/llvm/record-views.test.js +118 -0
  291. package/dist/backend/llvm/record-views.test.js.map +1 -0
  292. package/dist/backend/llvm/reference-writes.js +21 -0
  293. package/dist/backend/llvm/reference-writes.js.map +1 -1
  294. package/dist/backend/llvm/reference-writes.test.js +42 -0
  295. package/dist/backend/llvm/reference-writes.test.js.map +1 -1
  296. package/dist/backend/llvm/regex-matchers.d.ts +5 -1
  297. package/dist/backend/llvm/regex-matchers.js +173 -21
  298. package/dist/backend/llvm/regex-matchers.js.map +1 -1
  299. package/dist/backend/llvm/regex-matchers.test.js +39 -1
  300. package/dist/backend/llvm/regex-matchers.test.js.map +1 -1
  301. package/dist/backend/llvm/region-groups.d.ts +67 -0
  302. package/dist/backend/llvm/region-groups.js +1719 -0
  303. package/dist/backend/llvm/region-groups.js.map +1 -0
  304. package/dist/backend/llvm/region-groups.test.d.ts +1 -0
  305. package/dist/backend/llvm/region-groups.test.js +197 -0
  306. package/dist/backend/llvm/region-groups.test.js.map +1 -0
  307. package/dist/backend/llvm/region-ir.d.ts +31 -0
  308. package/dist/backend/llvm/region-ir.js +256 -0
  309. package/dist/backend/llvm/region-ir.js.map +1 -0
  310. package/dist/backend/llvm/region-sites.d.ts +20 -0
  311. package/dist/backend/llvm/region-sites.js +327 -0
  312. package/dist/backend/llvm/region-sites.js.map +1 -0
  313. package/dist/backend/llvm/region-sites.test.d.ts +1 -0
  314. package/dist/backend/llvm/region-sites.test.js +216 -0
  315. package/dist/backend/llvm/region-sites.test.js.map +1 -0
  316. package/dist/backend/llvm/repr-report.d.ts +9 -0
  317. package/dist/backend/llvm/repr-report.js +143 -0
  318. package/dist/backend/llvm/repr-report.js.map +1 -0
  319. package/dist/backend/llvm/repr-report.test.d.ts +1 -0
  320. package/dist/backend/llvm/repr-report.test.js +62 -0
  321. package/dist/backend/llvm/repr-report.test.js.map +1 -0
  322. package/dist/backend/llvm/runtime-registries.test.d.ts +1 -0
  323. package/dist/backend/llvm/runtime-registries.test.js +88 -0
  324. package/dist/backend/llvm/runtime-registries.test.js.map +1 -0
  325. package/dist/backend/llvm/serialized-ir-emission.test.js +1 -0
  326. package/dist/backend/llvm/serialized-ir-emission.test.js.map +1 -1
  327. package/dist/backend/llvm/shape-union-tags.test.d.ts +1 -0
  328. package/dist/backend/llvm/shape-union-tags.test.js +75 -0
  329. package/dist/backend/llvm/shape-union-tags.test.js.map +1 -0
  330. package/dist/backend/llvm/shapes.d.ts +60 -10
  331. package/dist/backend/llvm/shapes.js +233 -51
  332. package/dist/backend/llvm/shapes.js.map +1 -1
  333. package/dist/backend/llvm/shapes.test.js +37 -18
  334. package/dist/backend/llvm/shapes.test.js.map +1 -1
  335. package/dist/backend/llvm/speculative-integers.d.ts +3 -0
  336. package/dist/backend/llvm/speculative-integers.js +20 -8
  337. package/dist/backend/llvm/speculative-integers.js.map +1 -1
  338. package/dist/backend/llvm/split.js +6 -1
  339. package/dist/backend/llvm/split.js.map +1 -1
  340. package/dist/backend/llvm/split.test.js +23 -0
  341. package/dist/backend/llvm/split.test.js.map +1 -1
  342. package/dist/backend/llvm/stack-callbacks.js +4 -2
  343. package/dist/backend/llvm/stack-callbacks.js.map +1 -1
  344. package/dist/backend/llvm/stack-objects.d.ts +12 -3
  345. package/dist/backend/llvm/stack-objects.js +110 -22
  346. package/dist/backend/llvm/stack-objects.js.map +1 -1
  347. package/dist/backend/llvm/stack-objects.test.js +144 -0
  348. package/dist/backend/llvm/stack-objects.test.js.map +1 -1
  349. package/dist/backend/llvm/stack-unions.test.js +24 -1
  350. package/dist/backend/llvm/stack-unions.test.js.map +1 -1
  351. package/dist/backend/llvm/string-lifetimes.js +2 -1
  352. package/dist/backend/llvm/string-lifetimes.js.map +1 -1
  353. package/dist/backend/llvm/string-lifetimes.test.js +1 -1
  354. package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
  355. package/dist/backend/llvm/string-reads.d.ts +4 -0
  356. package/dist/backend/llvm/string-reads.js +27 -0
  357. package/dist/backend/llvm/string-reads.js.map +1 -1
  358. package/dist/backend/llvm/test-boxed-unions.d.ts +10 -8
  359. package/dist/backend/llvm/test-boxed-unions.js +20 -25
  360. package/dist/backend/llvm/test-boxed-unions.js.map +1 -1
  361. package/dist/backend/llvm/union-repr.js +9 -8
  362. package/dist/backend/llvm/union-repr.js.map +1 -1
  363. package/dist/backend/llvm/union-retype.test.js +45 -2
  364. package/dist/backend/llvm/union-retype.test.js.map +1 -1
  365. package/dist/backend/llvm/unwind-abi.d.ts +20 -8
  366. package/dist/backend/llvm/unwind-abi.js +177 -70
  367. package/dist/backend/llvm/unwind-abi.js.map +1 -1
  368. package/dist/backend/llvm/unwind-abi.test.js +90 -3
  369. package/dist/backend/llvm/unwind-abi.test.js.map +1 -1
  370. package/dist/backend/llvm/walk-borrows.d.ts +3 -2
  371. package/dist/backend/llvm/walk-borrows.js +2 -2
  372. package/dist/backend/llvm/walk-borrows.js.map +1 -1
  373. package/dist/backend/llvm/walk-borrows.test.js +18 -0
  374. package/dist/backend/llvm/walk-borrows.test.js.map +1 -1
  375. package/dist/backend/llvm/walkers.d.ts +14 -1
  376. package/dist/backend/llvm/walkers.js +103 -11
  377. package/dist/backend/llvm/walkers.js.map +1 -1
  378. package/dist/backend/llvm/wrapping-sums.d.ts +26 -6
  379. package/dist/backend/llvm/wrapping-sums.js +64 -12
  380. package/dist/backend/llvm/wrapping-sums.js.map +1 -1
  381. package/dist/backend/loop-polls.d.ts +4 -2
  382. package/dist/backend/loop-polls.js +11 -2
  383. package/dist/backend/loop-polls.js.map +1 -1
  384. package/dist/backend/mangle.d.ts +0 -5
  385. package/dist/backend/mangle.js +0 -9
  386. package/dist/backend/mangle.js.map +1 -1
  387. package/dist/backend/may-throw.d.ts +10 -9
  388. package/dist/backend/may-throw.js +189 -27
  389. package/dist/backend/may-throw.js.map +1 -1
  390. package/dist/backend/may-throw.test.js +44 -7
  391. package/dist/backend/may-throw.test.js.map +1 -1
  392. package/dist/backend/native/compiler-fingerprint.d.ts +5 -0
  393. package/dist/backend/native/compiler-fingerprint.js +62 -16
  394. package/dist/backend/native/compiler-fingerprint.js.map +1 -1
  395. package/dist/backend/native/contracts.d.ts +31 -8
  396. package/dist/backend/native/executable.js +56 -32
  397. package/dist/backend/native/executable.js.map +1 -1
  398. package/dist/backend/native/library.js +3 -4
  399. package/dist/backend/native/library.js.map +1 -1
  400. package/dist/backend/native/object-merge.d.ts +3 -1
  401. package/dist/backend/native/object-merge.js +24 -11
  402. package/dist/backend/native/object-merge.js.map +1 -1
  403. package/dist/backend/native/program-shards.js +6 -3
  404. package/dist/backend/native/program-shards.js.map +1 -1
  405. package/dist/backend/native/runtime-inputs.d.ts +1 -1
  406. package/dist/backend/native/runtime-inputs.js +3 -0
  407. package/dist/backend/native/runtime-inputs.js.map +1 -1
  408. package/dist/backend/native/vendor.d.ts +1 -1
  409. package/dist/backend/native-codegen-core.d.ts +15 -6
  410. package/dist/backend/native-codegen-core.js +20 -9
  411. package/dist/backend/native-codegen-core.js.map +1 -1
  412. package/dist/backend/native-codegen.js +51 -5
  413. package/dist/backend/native-codegen.js.map +1 -1
  414. package/dist/backend/native-codegen.test.js +82 -8
  415. package/dist/backend/native-codegen.test.js.map +1 -1
  416. package/dist/backend/native-link-info-core.d.ts +30 -0
  417. package/dist/backend/native-link-info-core.js.map +1 -1
  418. package/dist/backend/native-profile.d.ts +68 -4
  419. package/dist/backend/native-profile.js +86 -14
  420. package/dist/backend/native-profile.js.map +1 -1
  421. package/dist/backend/native-profile.test.js +127 -4
  422. package/dist/backend/native-profile.test.js.map +1 -1
  423. package/dist/backend/native-toolchain.d.ts +1 -1
  424. package/dist/backend/native-toolchain.js +1 -1
  425. package/dist/backend/native-toolchain.js.map +1 -1
  426. package/dist/backend/native-toolchain.test.js +58 -4
  427. package/dist/backend/native-toolchain.test.js.map +1 -1
  428. package/dist/backend/native-tools.d.ts +17 -3
  429. package/dist/backend/native-tools.js +12 -4
  430. package/dist/backend/native-tools.js.map +1 -1
  431. package/dist/backend/native-tools.test.d.ts +1 -0
  432. package/dist/backend/native-tools.test.js +76 -0
  433. package/dist/backend/native-tools.test.js.map +1 -0
  434. package/dist/backend/object-localize.js +69 -9
  435. package/dist/backend/object-localize.js.map +1 -1
  436. package/dist/backend/object-localize.test.js +99 -10
  437. package/dist/backend/object-localize.test.js.map +1 -1
  438. package/dist/backend/publication.d.ts +2 -0
  439. package/dist/backend/publication.js +4 -0
  440. package/dist/backend/publication.js.map +1 -1
  441. package/dist/backend/runtime-abi.d.ts +2 -2
  442. package/dist/backend/runtime-abi.js +2 -2
  443. package/dist/backend/runtime-pack-core.d.ts +19 -0
  444. package/dist/backend/runtime-pack-core.js +23 -3
  445. package/dist/backend/runtime-pack-core.js.map +1 -1
  446. package/dist/backend/runtime-pack-targets.test.js +1 -1
  447. package/dist/backend/runtime-pack.test.js +48 -2
  448. package/dist/backend/runtime-pack.test.js.map +1 -1
  449. package/dist/backend/target-cpu.d.ts +2 -0
  450. package/dist/backend/target-cpu.js +4 -0
  451. package/dist/backend/target-cpu.js.map +1 -1
  452. package/dist/backend/target-diagnostics.js +1 -19
  453. package/dist/backend/target-diagnostics.js.map +1 -1
  454. package/dist/backend/target-diagnostics.test.js +1 -1
  455. package/dist/backend/target-diagnostics.test.js.map +1 -1
  456. package/dist/backend/targets.d.ts +28 -0
  457. package/dist/backend/targets.js +70 -0
  458. package/dist/backend/targets.js.map +1 -1
  459. package/dist/backend/targets.test.js +75 -1
  460. package/dist/backend/targets.test.js.map +1 -1
  461. package/dist/backend/vendor-archives.d.ts +1 -1
  462. package/dist/backend/vendor-archives.js +25 -12
  463. package/dist/backend/vendor-archives.js.map +1 -1
  464. package/dist/backend/vendor-inputs.d.ts +15 -2
  465. package/dist/backend/vendor-inputs.js +59 -3
  466. package/dist/backend/vendor-inputs.js.map +1 -1
  467. package/dist/backend/vendor-inputs.test.d.ts +1 -0
  468. package/dist/backend/vendor-inputs.test.js +74 -0
  469. package/dist/backend/vendor-inputs.test.js.map +1 -0
  470. package/dist/cli/command.js +95 -5
  471. package/dist/cli/command.js.map +1 -1
  472. package/dist/cli/host.d.ts +3 -0
  473. package/dist/cli/output-options.d.ts +3 -0
  474. package/dist/cli/output-options.js +8 -2
  475. package/dist/cli/output-options.js.map +1 -1
  476. package/dist/cli/usage.d.ts +28 -1
  477. package/dist/cli/usage.js +56 -6
  478. package/dist/cli/usage.js.map +1 -1
  479. package/dist/compat/fetch-profile.d.ts +3 -0
  480. package/dist/compat/fetch-profile.js +23 -3
  481. package/dist/compat/fetch-profile.js.map +1 -1
  482. package/dist/compile-types.d.ts +45 -0
  483. package/dist/contracts/check.js +70 -2
  484. package/dist/contracts/check.js.map +1 -1
  485. package/dist/contracts/int32-elements.d.ts +2 -1
  486. package/dist/contracts/int32-elements.js.map +1 -1
  487. package/dist/coverage/report.d.ts +5 -1
  488. package/dist/coverage/report.js +83 -2
  489. package/dist/coverage/report.js.map +1 -1
  490. package/dist/coverage/verdict-cache.d.ts +2 -0
  491. package/dist/coverage/verdict-cache.js +5 -10
  492. package/dist/coverage/verdict-cache.js.map +1 -1
  493. package/dist/diagnostics/codes.d.ts +145 -0
  494. package/dist/diagnostics/codes.js +159 -0
  495. package/dist/diagnostics/codes.js.map +1 -0
  496. package/dist/diagnostics/codes.test.d.ts +1 -0
  497. package/dist/diagnostics/codes.test.js +78 -0
  498. package/dist/diagnostics/codes.test.js.map +1 -0
  499. package/dist/diagnostics/diagnostic.d.ts +101 -2
  500. package/dist/diagnostics/diagnostic.js +155 -0
  501. package/dist/diagnostics/diagnostic.js.map +1 -1
  502. package/dist/diagnostics/dynamic-slots.d.ts +23 -0
  503. package/dist/diagnostics/dynamic-slots.js +29 -0
  504. package/dist/diagnostics/dynamic-slots.js.map +1 -0
  505. package/dist/diagnostics/dynamic-tier.d.ts +6 -0
  506. package/dist/diagnostics/dynamic-tier.js +8 -1
  507. package/dist/diagnostics/dynamic-tier.js.map +1 -1
  508. package/dist/diagnostics/envelope.d.ts +43 -1
  509. package/dist/diagnostics/envelope.js +19 -1
  510. package/dist/diagnostics/envelope.js.map +1 -1
  511. package/dist/diagnostics/envelope.test.js.map +1 -1
  512. package/dist/diagnostics/render.d.ts +3 -1
  513. package/dist/diagnostics/render.js +27 -6
  514. package/dist/diagnostics/render.js.map +1 -1
  515. package/dist/executable/executable-cache.d.ts +41 -0
  516. package/dist/executable/executable-cache.js +39 -1
  517. package/dist/executable/executable-cache.js.map +1 -1
  518. package/dist/executable/executable-cache.test.js +4 -1
  519. package/dist/executable/executable-cache.test.js.map +1 -1
  520. package/dist/executable/prepare.d.ts +2 -1
  521. package/dist/executable/prepare.js +421 -10
  522. package/dist/executable/prepare.js.map +1 -1
  523. package/dist/frontend/analysis.js +1 -0
  524. package/dist/frontend/analysis.js.map +1 -1
  525. package/dist/frontend/canon-map.d.ts +17 -0
  526. package/dist/frontend/canon-map.js +177 -0
  527. package/dist/frontend/canon-map.js.map +1 -0
  528. package/dist/frontend/canon.d.ts +122 -0
  529. package/dist/frontend/canon.js +462 -0
  530. package/dist/frontend/canon.js.map +1 -0
  531. package/dist/frontend/contract-types.d.ts +9 -1
  532. package/dist/frontend/contract-types.js +46 -4
  533. package/dist/frontend/contract-types.js.map +1 -1
  534. package/dist/frontend/decl-projection.d.ts +3 -0
  535. package/dist/frontend/decl-projection.js +121 -3
  536. package/dist/frontend/decl-projection.js.map +1 -1
  537. package/dist/frontend/dts-paths.d.ts +17 -4
  538. package/dist/frontend/dts-paths.js +149 -5
  539. package/dist/frontend/dts-paths.js.map +1 -1
  540. package/dist/frontend/fork-target.js +4 -4
  541. package/dist/frontend/fork-target.js.map +1 -1
  542. package/dist/frontend/fork-target.test.js +3 -3
  543. package/dist/frontend/fork-target.test.js.map +1 -1
  544. package/dist/frontend/heritage-elements.d.ts +15 -0
  545. package/dist/frontend/heritage-elements.js +18 -0
  546. package/dist/frontend/heritage-elements.js.map +1 -0
  547. package/dist/frontend/heritage-elements.test.d.ts +1 -0
  548. package/dist/frontend/heritage-elements.test.js +68 -0
  549. package/dist/frontend/heritage-elements.test.js.map +1 -0
  550. package/dist/frontend/input-tracker.d.ts +20 -0
  551. package/dist/frontend/input-tracker.js +74 -4
  552. package/dist/frontend/input-tracker.js.map +1 -1
  553. package/dist/frontend/input-tracker.test.js +66 -0
  554. package/dist/frontend/input-tracker.test.js.map +1 -1
  555. package/dist/frontend/lowering/any-collection-residue.d.ts +9 -0
  556. package/dist/frontend/lowering/any-collection-residue.js +42 -0
  557. package/dist/frontend/lowering/any-collection-residue.js.map +1 -0
  558. package/dist/frontend/lowering/array-values.d.ts +44 -2
  559. package/dist/frontend/lowering/array-values.js +193 -3
  560. package/dist/frontend/lowering/array-values.js.map +1 -1
  561. package/dist/frontend/lowering/builtin-namespaces.d.ts +6 -2
  562. package/dist/frontend/lowering/builtin-namespaces.js +28 -6
  563. package/dist/frontend/lowering/builtin-namespaces.js.map +1 -1
  564. package/dist/frontend/lowering/builtins/array-classes.d.ts +69 -0
  565. package/dist/frontend/lowering/builtins/array-classes.js +729 -0
  566. package/dist/frontend/lowering/builtins/array-classes.js.map +1 -0
  567. package/dist/frontend/lowering/builtins/callable-aliases.js +4 -0
  568. package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -1
  569. package/dist/frontend/lowering/builtins/child-process-methods.js +34 -0
  570. package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
  571. package/dist/frontend/lowering/builtins/disposable-stack.js +1 -3
  572. package/dist/frontend/lowering/builtins/disposable-stack.js.map +1 -1
  573. package/dist/frontend/lowering/builtins/errors.d.ts +13 -9
  574. package/dist/frontend/lowering/builtins/errors.js +136 -56
  575. package/dist/frontend/lowering/builtins/errors.js.map +1 -1
  576. package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +1 -0
  577. package/dist/frontend/lowering/builtins/filesystem-calls.js +85 -4
  578. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
  579. package/dist/frontend/lowering/builtins/filesystem.d.ts +11 -6
  580. package/dist/frontend/lowering/builtins/filesystem.js +270 -24
  581. package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
  582. package/dist/frontend/lowering/builtins/json.js +7 -1
  583. package/dist/frontend/lowering/builtins/json.js.map +1 -1
  584. package/dist/frontend/lowering/builtins/mime.d.ts +25 -0
  585. package/dist/frontend/lowering/builtins/mime.js +167 -0
  586. package/dist/frontend/lowering/builtins/mime.js.map +1 -0
  587. package/dist/frontend/lowering/builtins/module-bindings.d.ts +3 -0
  588. package/dist/frontend/lowering/builtins/module-bindings.js +6 -0
  589. package/dist/frontend/lowering/builtins/module-bindings.js.map +1 -1
  590. package/dist/frontend/lowering/builtins/module-calls.js +79 -12
  591. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  592. package/dist/frontend/lowering/builtins/module-resolution.d.ts +7 -4
  593. package/dist/frontend/lowering/builtins/module-resolution.js +115 -13
  594. package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -1
  595. package/dist/frontend/lowering/builtins/navigator.d.ts +3 -1
  596. package/dist/frontend/lowering/builtins/navigator.js +22 -8
  597. package/dist/frontend/lowering/builtins/navigator.js.map +1 -1
  598. package/dist/frontend/lowering/builtins/process.js +49 -9
  599. package/dist/frontend/lowering/builtins/process.js.map +1 -1
  600. package/dist/frontend/lowering/builtins/promises.js +18 -3
  601. package/dist/frontend/lowering/builtins/promises.js.map +1 -1
  602. package/dist/frontend/lowering/builtins/promisify-callback.d.ts +6 -2
  603. package/dist/frontend/lowering/builtins/promisify-callback.js +19 -6
  604. package/dist/frontend/lowering/builtins/promisify-callback.js.map +1 -1
  605. package/dist/frontend/lowering/builtins/properties.js +23 -5
  606. package/dist/frontend/lowering/builtins/properties.js.map +1 -1
  607. package/dist/frontend/lowering/builtins/web-streams-dyn.d.ts +42 -0
  608. package/dist/frontend/lowering/builtins/web-streams-dyn.js +321 -0
  609. package/dist/frontend/lowering/builtins/web-streams-dyn.js.map +1 -0
  610. package/dist/frontend/lowering/builtins/x509.js +35 -5
  611. package/dist/frontend/lowering/builtins/x509.js.map +1 -1
  612. package/dist/frontend/lowering/call-arguments.d.ts +14 -1
  613. package/dist/frontend/lowering/call-arguments.js +84 -70
  614. package/dist/frontend/lowering/call-arguments.js.map +1 -1
  615. package/dist/frontend/lowering/call-signatures.js +108 -24
  616. package/dist/frontend/lowering/call-signatures.js.map +1 -1
  617. package/dist/frontend/lowering/class-attributes.js +6 -5
  618. package/dist/frontend/lowering/class-attributes.js.map +1 -1
  619. package/dist/frontend/lowering/class-dynamic-dispatch.js +40 -19
  620. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  621. package/dist/frontend/lowering/class-dynamic-dispatch.test.js +1 -0
  622. package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
  623. package/dist/frontend/lowering/class-protocol-dispatch.js +4 -0
  624. package/dist/frontend/lowering/class-protocol-dispatch.js.map +1 -1
  625. package/dist/frontend/lowering/class-protocols.d.ts +61 -1
  626. package/dist/frontend/lowering/class-protocols.js +297 -21
  627. package/dist/frontend/lowering/class-protocols.js.map +1 -1
  628. package/dist/frontend/lowering/class-to-primitive.d.ts +3 -2
  629. package/dist/frontend/lowering/class-to-primitive.js +15 -5
  630. package/dist/frontend/lowering/class-to-primitive.js.map +1 -1
  631. package/dist/frontend/lowering/coercions/asserted.d.ts +16 -0
  632. package/dist/frontend/lowering/coercions/asserted.js +79 -0
  633. package/dist/frontend/lowering/coercions/asserted.js.map +1 -0
  634. package/dist/frontend/lowering/coercions/function-adapters.d.ts +13 -0
  635. package/dist/frontend/lowering/coercions/function-adapters.js +70 -3
  636. package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
  637. package/dist/frontend/lowering/coercions/state.d.ts +23 -0
  638. package/dist/frontend/lowering/coercions/state.js +9 -0
  639. package/dist/frontend/lowering/coercions/state.js.map +1 -1
  640. package/dist/frontend/lowering/coercions/structural-plans.js +67 -1
  641. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
  642. package/dist/frontend/lowering/coercions/structural.d.ts +10 -0
  643. package/dist/frontend/lowering/coercions/structural.js +134 -4
  644. package/dist/frontend/lowering/coercions/structural.js.map +1 -1
  645. package/dist/frontend/lowering/coercions/unions.d.ts +11 -0
  646. package/dist/frontend/lowering/coercions/unions.js +83 -4
  647. package/dist/frontend/lowering/coercions/unions.js.map +1 -1
  648. package/dist/frontend/lowering/completion-callbacks.js +3 -2
  649. package/dist/frontend/lowering/completion-callbacks.js.map +1 -1
  650. package/dist/frontend/lowering/containers/array-callbacks.d.ts +10 -0
  651. package/dist/frontend/lowering/containers/array-callbacks.js +224 -81
  652. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  653. package/dist/frontend/lowering/containers/array-concat.d.ts +5 -2
  654. package/dist/frontend/lowering/containers/array-concat.js +76 -7
  655. package/dist/frontend/lowering/containers/array-concat.js.map +1 -1
  656. package/dist/frontend/lowering/containers/array-construction.d.ts +9 -4
  657. package/dist/frontend/lowering/containers/array-construction.js +112 -100
  658. package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
  659. package/dist/frontend/lowering/containers/array-methods.js +193 -45
  660. package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
  661. package/dist/frontend/lowering/containers/array-pipelines.d.ts +3 -0
  662. package/dist/frontend/lowering/containers/array-pipelines.js +81 -13
  663. package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -1
  664. package/dist/frontend/lowering/containers/callback-arguments.d.ts +1 -0
  665. package/dist/frontend/lowering/containers/callback-arguments.js +28 -2
  666. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
  667. package/dist/frontend/lowering/containers/collection-methods.js +13 -3
  668. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
  669. package/dist/frontend/lowering/containers/filter-predicates.js +34 -3
  670. package/dist/frontend/lowering/containers/filter-predicates.js.map +1 -1
  671. package/dist/frontend/lowering/containers/indexed-objects.d.ts +34 -1
  672. package/dist/frontend/lowering/containers/indexed-objects.js +131 -72
  673. package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
  674. package/dist/frontend/lowering/cycle-initialization.js +43 -6
  675. package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
  676. package/dist/frontend/lowering/decl-origin.d.ts +49 -0
  677. package/dist/frontend/lowering/decl-origin.js +402 -0
  678. package/dist/frontend/lowering/decl-origin.js.map +1 -0
  679. package/dist/frontend/lowering/deferred-module-initializers.d.ts +2 -0
  680. package/dist/frontend/lowering/deferred-module-initializers.js +7 -0
  681. package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
  682. package/dist/frontend/lowering/divergences.js +5 -0
  683. package/dist/frontend/lowering/divergences.js.map +1 -1
  684. package/dist/frontend/lowering/dynamic-tier.d.ts +8 -2
  685. package/dist/frontend/lowering/dynamic-tier.js +111 -3
  686. package/dist/frontend/lowering/dynamic-tier.js.map +1 -1
  687. package/dist/frontend/lowering/expressions/array-literals.d.ts +14 -1
  688. package/dist/frontend/lowering/expressions/array-literals.js +43 -5
  689. package/dist/frontend/lowering/expressions/array-literals.js.map +1 -1
  690. package/dist/frontend/lowering/expressions/asserted-receiver.d.ts +48 -0
  691. package/dist/frontend/lowering/expressions/asserted-receiver.js +233 -0
  692. package/dist/frontend/lowering/expressions/asserted-receiver.js.map +1 -0
  693. package/dist/frontend/lowering/expressions/binary.js +136 -1
  694. package/dist/frontend/lowering/expressions/binary.js.map +1 -1
  695. package/dist/frontend/lowering/expressions/element-access.d.ts +7 -0
  696. package/dist/frontend/lowering/expressions/element-access.js +363 -12
  697. package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
  698. package/dist/frontend/lowering/expressions/identifiers.d.ts +3 -0
  699. package/dist/frontend/lowering/expressions/identifiers.js +78 -62
  700. package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
  701. package/dist/frontend/lowering/expressions/message-listeners.d.ts +3 -0
  702. package/dist/frontend/lowering/expressions/message-listeners.js +19 -0
  703. package/dist/frontend/lowering/expressions/message-listeners.js.map +1 -0
  704. package/dist/frontend/lowering/expressions/narrowing.js +224 -6
  705. package/dist/frontend/lowering/expressions/narrowing.js.map +1 -1
  706. package/dist/frontend/lowering/expressions/nullish-assignment.js +5 -2
  707. package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
  708. package/dist/frontend/lowering/expressions/object-literals.d.ts +1 -1
  709. package/dist/frontend/lowering/expressions/object-literals.js +282 -24
  710. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  711. package/dist/frontend/lowering/expressions/property-access.d.ts +15 -3
  712. package/dist/frontend/lowering/expressions/property-access.js +397 -74
  713. package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
  714. package/dist/frontend/lowering/expressions/relational.js +202 -70
  715. package/dist/frontend/lowering/expressions/relational.js.map +1 -1
  716. package/dist/frontend/lowering/expressions/typeof.js +9 -1
  717. package/dist/frontend/lowering/expressions/typeof.js.map +1 -1
  718. package/dist/frontend/lowering/expressions/union-fields.d.ts +28 -8
  719. package/dist/frontend/lowering/expressions/union-fields.js +168 -14
  720. package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
  721. package/dist/frontend/lowering/frozen-records.d.ts +8 -0
  722. package/dist/frontend/lowering/frozen-records.js +56 -9
  723. package/dist/frontend/lowering/frozen-records.js.map +1 -1
  724. package/dist/frontend/lowering/function-context.d.ts +3 -0
  725. package/dist/frontend/lowering/function-context.js +4 -1
  726. package/dist/frontend/lowering/function-context.js.map +1 -1
  727. package/dist/frontend/lowering/function-returns.d.ts +4 -0
  728. package/dist/frontend/lowering/function-returns.js +231 -2
  729. package/dist/frontend/lowering/function-returns.js.map +1 -1
  730. package/dist/frontend/lowering/generator-delegation.js +3 -2
  731. package/dist/frontend/lowering/generator-delegation.js.map +1 -1
  732. package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +26 -0
  733. package/dist/frontend/lowering/generator-dynamic-dispatch.js +294 -2
  734. package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -1
  735. package/dist/frontend/lowering/generic-functions.d.ts +10 -0
  736. package/dist/frontend/lowering/generic-functions.js +67 -7
  737. package/dist/frontend/lowering/generic-functions.js.map +1 -1
  738. package/dist/frontend/lowering/global-values.d.ts +37 -0
  739. package/dist/frontend/lowering/global-values.js +395 -0
  740. package/dist/frontend/lowering/global-values.js.map +1 -0
  741. package/dist/frontend/lowering/handle-properties.js +3 -2
  742. package/dist/frontend/lowering/handle-properties.js.map +1 -1
  743. package/dist/frontend/lowering/handle-properties.test.d.ts +1 -0
  744. package/dist/frontend/lowering/handle-properties.test.js +25 -0
  745. package/dist/frontend/lowering/handle-properties.test.js.map +1 -0
  746. package/dist/frontend/lowering/import-meta.d.ts +3 -0
  747. package/dist/frontend/lowering/import-meta.js +8 -3
  748. package/dist/frontend/lowering/import-meta.js.map +1 -1
  749. package/dist/frontend/lowering/iterator-adapters.js +3 -3
  750. package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
  751. package/dist/frontend/lowering/key-order-witness.d.ts +2 -0
  752. package/dist/frontend/lowering/key-order-witness.js +10 -0
  753. package/dist/frontend/lowering/key-order-witness.js.map +1 -1
  754. package/dist/frontend/lowering/lower-array-sort.d.ts +5 -1
  755. package/dist/frontend/lowering/lower-array-sort.js +16 -2
  756. package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
  757. package/dist/frontend/lowering/lower-builtin-values.d.ts +7 -0
  758. package/dist/frontend/lowering/lower-builtin-values.js +65 -16
  759. package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
  760. package/dist/frontend/lowering/lower-calls.js +222 -24
  761. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  762. package/dist/frontend/lowering/lower-classes.d.ts +6 -0
  763. package/dist/frontend/lowering/lower-classes.js +154 -20
  764. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  765. package/dist/frontend/lowering/lower-console.js +25 -2
  766. package/dist/frontend/lowering/lower-console.js.map +1 -1
  767. package/dist/frontend/lowering/lower-exprs.d.ts +29 -0
  768. package/dist/frontend/lowering/lower-exprs.js +544 -24
  769. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  770. package/dist/frontend/lowering/lower-functions.js +93 -18
  771. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  772. package/dist/frontend/lowering/lower-global-value.d.ts +4 -1
  773. package/dist/frontend/lowering/lower-global-value.js +10 -3
  774. package/dist/frontend/lowering/lower-global-value.js.map +1 -1
  775. package/dist/frontend/lowering/lower-inspect.d.ts +44 -4
  776. package/dist/frontend/lowering/lower-inspect.js +723 -26
  777. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  778. package/dist/frontend/lowering/lower-modules.d.ts +3 -1
  779. package/dist/frontend/lowering/lower-modules.js +189 -24
  780. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  781. package/dist/frontend/lowering/lower-namespaces.d.ts +7 -0
  782. package/dist/frontend/lowering/lower-namespaces.js +23 -0
  783. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  784. package/dist/frontend/lowering/lower-node-island.d.ts +74 -0
  785. package/dist/frontend/lowering/lower-node-island.js +1931 -0
  786. package/dist/frontend/lowering/lower-node-island.js.map +1 -0
  787. package/dist/frontend/lowering/lower-server.js +44 -0
  788. package/dist/frontend/lowering/lower-server.js.map +1 -1
  789. package/dist/frontend/lowering/lower-shared-modules.d.ts +27 -0
  790. package/dist/frontend/lowering/lower-shared-modules.js +611 -0
  791. package/dist/frontend/lowering/lower-shared-modules.js.map +1 -0
  792. package/dist/frontend/lowering/lower-stdlib.js +85 -9
  793. package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
  794. package/dist/frontend/lowering/lower-stmts.d.ts +2 -6
  795. package/dist/frontend/lowering/lower-stmts.js +781 -143
  796. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  797. package/dist/frontend/lowering/lower-stream.js +548 -36
  798. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  799. package/dist/frontend/lowering/lower-timers.js +9 -0
  800. package/dist/frontend/lowering/lower-timers.js.map +1 -1
  801. package/dist/frontend/lowering/lowerer.d.ts +514 -10
  802. package/dist/frontend/lowering/lowerer.js +2667 -163
  803. package/dist/frontend/lowering/lowerer.js.map +1 -1
  804. package/dist/frontend/lowering/lowerer.test.js +44 -1
  805. package/dist/frontend/lowering/lowerer.test.js.map +1 -1
  806. package/dist/frontend/lowering/maybe-promise.d.ts +6 -0
  807. package/dist/frontend/lowering/maybe-promise.js +13 -0
  808. package/dist/frontend/lowering/maybe-promise.js.map +1 -1
  809. package/dist/frontend/lowering/module-namespace-elements.d.ts +12 -0
  810. package/dist/frontend/lowering/module-namespace-elements.js +114 -18
  811. package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
  812. package/dist/frontend/lowering/nan-coded-reads.d.ts +11 -0
  813. package/dist/frontend/lowering/nan-coded-reads.js +45 -2
  814. package/dist/frontend/lowering/nan-coded-reads.js.map +1 -1
  815. package/dist/frontend/lowering/narrowing-stability.d.ts +4 -0
  816. package/dist/frontend/lowering/narrowing-stability.js +14 -6
  817. package/dist/frontend/lowering/narrowing-stability.js.map +1 -1
  818. package/dist/frontend/lowering/receiver-returns.d.ts +3 -0
  819. package/dist/frontend/lowering/receiver-returns.js +134 -0
  820. package/dist/frontend/lowering/receiver-returns.js.map +1 -0
  821. package/dist/frontend/lowering/record-inherited.d.ts +26 -0
  822. package/dist/frontend/lowering/record-inherited.js +807 -0
  823. package/dist/frontend/lowering/record-inherited.js.map +1 -0
  824. package/dist/frontend/lowering/runtime-optional-elements.d.ts +31 -1
  825. package/dist/frontend/lowering/runtime-optional-elements.js +105 -13
  826. package/dist/frontend/lowering/runtime-optional-elements.js.map +1 -1
  827. package/dist/frontend/lowering/runtime-optional-guards.d.ts +3 -0
  828. package/dist/frontend/lowering/runtime-optional-guards.js +35 -7
  829. package/dist/frontend/lowering/runtime-optional-guards.js.map +1 -1
  830. package/dist/frontend/lowering/runtime-optional-guards.test.js +59 -1
  831. package/dist/frontend/lowering/runtime-optional-guards.test.js.map +1 -1
  832. package/dist/frontend/lowering/stable-names.d.ts +8 -0
  833. package/dist/frontend/lowering/stable-names.js +22 -0
  834. package/dist/frontend/lowering/stable-names.js.map +1 -1
  835. package/dist/frontend/lowering/stable-names.test.d.ts +1 -0
  836. package/dist/frontend/lowering/stable-names.test.js +16 -0
  837. package/dist/frontend/lowering/stable-names.test.js.map +1 -0
  838. package/dist/frontend/lowering/static-typeof.d.ts +5 -4
  839. package/dist/frontend/lowering/static-typeof.js +10 -4
  840. package/dist/frontend/lowering/static-typeof.js.map +1 -1
  841. package/dist/frontend/lowering/structural-instances.d.ts +22 -0
  842. package/dist/frontend/lowering/structural-instances.js +282 -0
  843. package/dist/frontend/lowering/structural-instances.js.map +1 -0
  844. package/dist/frontend/lowering/surfaces.d.ts +3 -0
  845. package/dist/frontend/lowering/surfaces.js +108 -12
  846. package/dist/frontend/lowering/surfaces.js.map +1 -1
  847. package/dist/frontend/lowering/symbol-fields.d.ts +7 -0
  848. package/dist/frontend/lowering/symbol-fields.js +32 -0
  849. package/dist/frontend/lowering/symbol-fields.js.map +1 -1
  850. package/dist/frontend/lowering/type-failure.d.ts +17 -0
  851. package/dist/frontend/lowering/type-failure.js +163 -0
  852. package/dist/frontend/lowering/type-failure.js.map +1 -0
  853. package/dist/frontend/lowering/typed-arguments.d.ts +5 -6
  854. package/dist/frontend/lowering/typed-arguments.js +10 -2
  855. package/dist/frontend/lowering/typed-arguments.js.map +1 -1
  856. package/dist/frontend/lowering/union-narrow.d.ts +9 -1
  857. package/dist/frontend/lowering/union-narrow.js +31 -2
  858. package/dist/frontend/lowering/union-narrow.js.map +1 -1
  859. package/dist/frontend/lowering/union-retag.test.js +42 -2
  860. package/dist/frontend/lowering/union-retag.test.js.map +1 -1
  861. package/dist/frontend/lowering/unit-journal.d.ts +194 -0
  862. package/dist/frontend/lowering/unit-journal.js +556 -0
  863. package/dist/frontend/lowering/unit-journal.js.map +1 -0
  864. package/dist/frontend/lowering/unit-journal.test.d.ts +1 -0
  865. package/dist/frontend/lowering/unit-journal.test.js +335 -0
  866. package/dist/frontend/lowering/unit-journal.test.js.map +1 -0
  867. package/dist/frontend/lowering/width-lift.d.ts +19 -0
  868. package/dist/frontend/node-api-import.d.ts +21 -0
  869. package/dist/frontend/node-api-import.js +88 -0
  870. package/dist/frontend/node-api-import.js.map +1 -0
  871. package/dist/frontend/npm-static-type-exports-host.js +4 -3
  872. package/dist/frontend/npm-static-type-exports-host.js.map +1 -1
  873. package/dist/frontend/npm-static.js +9 -2
  874. package/dist/frontend/npm-static.js.map +1 -1
  875. package/dist/frontend/package-shims.d.ts +6 -2
  876. package/dist/frontend/package-shims.js +13 -2
  877. package/dist/frontend/package-shims.js.map +1 -1
  878. package/dist/frontend/pipeline.d.ts +11 -4
  879. package/dist/frontend/pipeline.js +249 -26
  880. package/dist/frontend/pipeline.js.map +1 -1
  881. package/dist/frontend/process-fork.d.ts +3 -0
  882. package/dist/frontend/process-fork.js.map +1 -1
  883. package/dist/frontend/program-analysis.d.ts +6 -0
  884. package/dist/frontend/program-analysis.js +4 -0
  885. package/dist/frontend/program-analysis.js.map +1 -1
  886. package/dist/frontend/program.d.ts +12 -1
  887. package/dist/frontend/program.js +256 -36
  888. package/dist/frontend/program.js.map +1 -1
  889. package/dist/frontend/resolve.js +8 -2
  890. package/dist/frontend/resolve.js.map +1 -1
  891. package/dist/frontend/shape-inference/analyze.d.ts +23 -1
  892. package/dist/frontend/shape-inference/analyze.js +982 -97
  893. package/dist/frontend/shape-inference/analyze.js.map +1 -1
  894. package/dist/frontend/shape-inference/constant-graphs.d.ts +2 -0
  895. package/dist/frontend/shape-inference/constant-graphs.js +39 -4
  896. package/dist/frontend/shape-inference/constant-graphs.js.map +1 -1
  897. package/dist/frontend/shape-inference/domain.d.ts +2 -0
  898. package/dist/frontend/shape-inference/domain.js.map +1 -1
  899. package/dist/frontend/shape-inference/fallback.d.ts +17 -0
  900. package/dist/frontend/shape-inference/fallback.js +303 -0
  901. package/dist/frontend/shape-inference/fallback.js.map +1 -0
  902. package/dist/frontend/shape-inference/index.d.ts +75 -1
  903. package/dist/frontend/shape-inference/index.js +531 -2
  904. package/dist/frontend/shape-inference/index.js.map +1 -1
  905. package/dist/frontend/shape-inference/inferred-checks.d.ts +2 -0
  906. package/dist/frontend/shape-inference/inferred-checks.js +90 -0
  907. package/dist/frontend/shape-inference/inferred-checks.js.map +1 -0
  908. package/dist/frontend/shape-inference/memo.d.ts +30 -0
  909. package/dist/frontend/shape-inference/memo.js +99 -0
  910. package/dist/frontend/shape-inference/memo.js.map +1 -0
  911. package/dist/frontend/shape-inference/overlay.d.ts +81 -0
  912. package/dist/frontend/shape-inference/overlay.js +1160 -0
  913. package/dist/frontend/shape-inference/overlay.js.map +1 -0
  914. package/dist/frontend/shape-inference/registry.test.d.ts +1 -0
  915. package/dist/frontend/shape-inference/registry.test.js +34 -0
  916. package/dist/frontend/shape-inference/registry.test.js.map +1 -0
  917. package/dist/frontend/shape-inference/report.js +42 -8
  918. package/dist/frontend/shape-inference/report.js.map +1 -1
  919. package/dist/frontend/shape-inference/static-objects.d.ts +29 -0
  920. package/dist/frontend/shape-inference/static-objects.js +1951 -0
  921. package/dist/frontend/shape-inference/static-objects.js.map +1 -0
  922. package/dist/frontend/tier-analysis.d.ts +53 -1
  923. package/dist/frontend/tier-analysis.js +133 -0
  924. package/dist/frontend/tier-analysis.js.map +1 -1
  925. package/dist/frontend/ts7/api.js +4 -2
  926. package/dist/frontend/ts7/api.js.map +1 -1
  927. package/dist/frontend/ts7/ast-node.d.ts +9 -0
  928. package/dist/frontend/ts7/ast-node.js +42 -10
  929. package/dist/frontend/ts7/ast-node.js.map +1 -1
  930. package/dist/frontend/ts7/ast-node.test.js +23 -0
  931. package/dist/frontend/ts7/ast-node.test.js.map +1 -1
  932. package/dist/frontend/ts7/ast-wire-protocols.test.d.ts +1 -0
  933. package/dist/frontend/ts7/ast-wire-protocols.test.js +93 -0
  934. package/dist/frontend/ts7/ast-wire-protocols.test.js.map +1 -0
  935. package/dist/frontend/ts7/ast-wire.d.ts +18 -0
  936. package/dist/frontend/ts7/ast-wire.js +66 -4
  937. package/dist/frontend/ts7/ast-wire.js.map +1 -1
  938. package/dist/frontend/ts7/checker-server.d.ts +12 -11
  939. package/dist/frontend/ts7/checker-server.js +28 -12
  940. package/dist/frontend/ts7/checker-server.js.map +1 -1
  941. package/dist/frontend/ts7/checker-server.test.js +8 -3
  942. package/dist/frontend/ts7/checker-server.test.js.map +1 -1
  943. package/dist/frontend/ts7/checker.d.ts +4 -0
  944. package/dist/frontend/ts7/checker.js +9 -0
  945. package/dist/frontend/ts7/checker.js.map +1 -1
  946. package/dist/frontend/ts7/checker.test.js +216 -205
  947. package/dist/frontend/ts7/checker.test.js.map +1 -1
  948. package/dist/frontend/ts7/lib-diagnostics.d.ts +71 -4
  949. package/dist/frontend/ts7/lib-diagnostics.js +337 -20
  950. package/dist/frontend/ts7/lib-diagnostics.js.map +1 -1
  951. package/dist/frontend/ts7/lib-diagnostics.test.js +268 -5
  952. package/dist/frontend/ts7/lib-diagnostics.test.js.map +1 -1
  953. package/dist/frontend/ts7/native-api.d.ts +4 -0
  954. package/dist/frontend/ts7/native-api.js +36 -1
  955. package/dist/frontend/ts7/native-api.js.map +1 -1
  956. package/dist/frontend/ts7/program-host.d.ts +19 -2
  957. package/dist/frontend/ts7/program-host.js +69 -9
  958. package/dist/frontend/ts7/program-host.js.map +1 -1
  959. package/dist/frontend/ts7/program-host.test.js +42 -1
  960. package/dist/frontend/ts7/program-host.test.js.map +1 -1
  961. package/dist/frontend/ts7/rpc-filesystem.d.ts +4 -2
  962. package/dist/frontend/ts7/rpc-filesystem.js +23 -2
  963. package/dist/frontend/ts7/rpc-filesystem.js.map +1 -1
  964. package/dist/frontend/ts7/rpc-filesystem.test.js +28 -2
  965. package/dist/frontend/ts7/rpc-filesystem.test.js.map +1 -1
  966. package/dist/frontend/ts7/semantic-checker.js +73 -5
  967. package/dist/frontend/ts7/semantic-checker.js.map +1 -1
  968. package/dist/frontend/ts7/semantic-checker.test.js +106 -74
  969. package/dist/frontend/ts7/semantic-checker.test.js.map +1 -1
  970. package/dist/frontend/ts7/semantic-json.d.ts +2 -6
  971. package/dist/frontend/ts7/semantic-model-71.test.d.ts +1 -0
  972. package/dist/frontend/ts7/semantic-model-71.test.js +131 -0
  973. package/dist/frontend/ts7/semantic-model-71.test.js.map +1 -0
  974. package/dist/frontend/ts7/semantic-model.d.ts +121 -3
  975. package/dist/frontend/ts7/semantic-model.js +245 -8
  976. package/dist/frontend/ts7/semantic-model.js.map +1 -1
  977. package/dist/frontend/ts7/session.d.ts +19 -1
  978. package/dist/frontend/ts7/session.js +111 -11
  979. package/dist/frontend/ts7/session.js.map +1 -1
  980. package/dist/frontend/ts7/session.test.js +259 -239
  981. package/dist/frontend/ts7/session.test.js.map +1 -1
  982. package/dist/frontend/ts7/test-servers.d.ts +12 -0
  983. package/dist/frontend/ts7/test-servers.js +16 -0
  984. package/dist/frontend/ts7/test-servers.js.map +1 -0
  985. package/dist/frontend/tsc-codes.js +6 -3
  986. package/dist/frontend/tsc-codes.js.map +1 -1
  987. package/dist/frontend/type-mapper.d.ts +61 -1
  988. package/dist/frontend/type-mapper.js +577 -28
  989. package/dist/frontend/type-mapper.js.map +1 -1
  990. package/dist/frontend/type-patches/command.d.ts +19 -0
  991. package/dist/frontend/type-patches/command.js +352 -0
  992. package/dist/frontend/type-patches/command.js.map +1 -0
  993. package/dist/frontend/type-patches/layer.d.ts +45 -0
  994. package/dist/frontend/type-patches/layer.js +409 -0
  995. package/dist/frontend/type-patches/layer.js.map +1 -0
  996. package/dist/frontend/type-patches/locate.d.ts +41 -0
  997. package/dist/frontend/type-patches/locate.js +914 -0
  998. package/dist/frontend/type-patches/locate.js.map +1 -0
  999. package/dist/frontend/type-patches/locate.test.d.ts +1 -0
  1000. package/dist/frontend/type-patches/locate.test.js +179 -0
  1001. package/dist/frontend/type-patches/locate.test.js.map +1 -0
  1002. package/dist/frontend/type-patches/selector.d.ts +43 -0
  1003. package/dist/frontend/type-patches/selector.js +126 -0
  1004. package/dist/frontend/type-patches/selector.js.map +1 -0
  1005. package/dist/frontend/type-patches/selector.test.d.ts +1 -0
  1006. package/dist/frontend/type-patches/selector.test.js +56 -0
  1007. package/dist/frontend/type-patches/selector.test.js.map +1 -0
  1008. package/dist/frontend/type-patches/semver.d.ts +19 -0
  1009. package/dist/frontend/type-patches/semver.js +221 -0
  1010. package/dist/frontend/type-patches/semver.js.map +1 -0
  1011. package/dist/frontend/type-patches/semver.test.d.ts +1 -0
  1012. package/dist/frontend/type-patches/semver.test.js +47 -0
  1013. package/dist/frontend/type-patches/semver.test.js.map +1 -0
  1014. package/dist/frontend/worker-target.test.js +2 -2
  1015. package/dist/frontend/worker-target.test.js.map +1 -1
  1016. package/dist/index.d.ts +4 -1
  1017. package/dist/index.js +292 -27
  1018. package/dist/index.js.map +1 -1
  1019. package/dist/ir/builtin-effects.js +51 -5
  1020. package/dist/ir/builtin-effects.js.map +1 -1
  1021. package/dist/ir/builtin-signatures.d.ts +4 -3
  1022. package/dist/ir/builtin-signatures.js +277 -12
  1023. package/dist/ir/builtin-signatures.js.map +1 -1
  1024. package/dist/ir/callback-specialization.js +108 -67
  1025. package/dist/ir/callback-specialization.js.map +1 -1
  1026. package/dist/ir/capture-values.d.ts +7 -1
  1027. package/dist/ir/capture-values.js +28 -5
  1028. package/dist/ir/capture-values.js.map +1 -1
  1029. package/dist/ir/char-unit-locals.js +38 -42
  1030. package/dist/ir/char-unit-locals.js.map +1 -1
  1031. package/dist/ir/expression-inlining.js +12 -6
  1032. package/dist/ir/expression-inlining.js.map +1 -1
  1033. package/dist/ir/fields.generated.d.ts +751 -0
  1034. package/dist/ir/fields.generated.js +2071 -0
  1035. package/dist/ir/fields.generated.js.map +1 -0
  1036. package/dist/ir/fields.test.d.ts +1 -0
  1037. package/dist/ir/fields.test.js +113 -0
  1038. package/dist/ir/fields.test.js.map +1 -0
  1039. package/dist/ir/function-references.js +4 -0
  1040. package/dist/ir/function-references.js.map +1 -1
  1041. package/dist/ir/function-references.test.js +25 -0
  1042. package/dist/ir/function-references.test.js.map +1 -1
  1043. package/dist/ir/inline-array-sources.d.ts +15 -0
  1044. package/dist/ir/inline-array-sources.js +1825 -0
  1045. package/dist/ir/inline-array-sources.js.map +1 -0
  1046. package/dist/ir/inline-arrays.d.ts +41 -0
  1047. package/dist/ir/inline-arrays.js +533 -0
  1048. package/dist/ir/inline-arrays.js.map +1 -0
  1049. package/dist/ir/inline-arrays.test.d.ts +1 -0
  1050. package/dist/ir/inline-arrays.test.js +225 -0
  1051. package/dist/ir/inline-arrays.test.js.map +1 -0
  1052. package/dist/ir/int32-slots.d.ts +6 -0
  1053. package/dist/ir/int32-slots.js +154 -16
  1054. package/dist/ir/int32-slots.js.map +1 -1
  1055. package/dist/ir/int32-slots.test.js +48 -0
  1056. package/dist/ir/int32-slots.test.js.map +1 -1
  1057. package/dist/ir/integer-loops.d.ts +12 -0
  1058. package/dist/ir/integer-loops.js +23 -0
  1059. package/dist/ir/integer-loops.js.map +1 -1
  1060. package/dist/ir/integer-ranges.d.ts +7 -1
  1061. package/dist/ir/integer-ranges.js +29 -2
  1062. package/dist/ir/integer-ranges.js.map +1 -1
  1063. package/dist/ir/intrinsic-signatures.js +2 -1
  1064. package/dist/ir/intrinsic-signatures.js.map +1 -1
  1065. package/dist/ir/ir.d.ts +103 -5
  1066. package/dist/ir/ir.js +38 -4
  1067. package/dist/ir/ir.js.map +1 -1
  1068. package/dist/ir/ir.test.js +134 -1
  1069. package/dist/ir/ir.test.js.map +1 -1
  1070. package/dist/ir/jsval.js +211 -29
  1071. package/dist/ir/jsval.js.map +1 -1
  1072. package/dist/ir/jsval.test.js +120 -0
  1073. package/dist/ir/jsval.test.js.map +1 -1
  1074. package/dist/ir/loop-entry-ranges.d.ts +38 -0
  1075. package/dist/ir/loop-entry-ranges.js +259 -0
  1076. package/dist/ir/loop-entry-ranges.js.map +1 -0
  1077. package/dist/ir/loop-entry-ranges.test.d.ts +1 -0
  1078. package/dist/ir/loop-entry-ranges.test.js +191 -0
  1079. package/dist/ir/loop-entry-ranges.test.js.map +1 -0
  1080. package/dist/ir/node-index.d.ts +3 -0
  1081. package/dist/ir/node-index.js +6 -0
  1082. package/dist/ir/node-index.js.map +1 -1
  1083. package/dist/ir/numeric-call-specialization.d.ts +9 -6
  1084. package/dist/ir/numeric-call-specialization.js +164 -34
  1085. package/dist/ir/numeric-call-specialization.js.map +1 -1
  1086. package/dist/ir/paired-while-loops.js +23 -19
  1087. package/dist/ir/paired-while-loops.js.map +1 -1
  1088. package/dist/ir/parameter-versions.js +6 -3
  1089. package/dist/ir/parameter-versions.js.map +1 -1
  1090. package/dist/ir/receiver-readers.d.ts +10 -0
  1091. package/dist/ir/receiver-readers.js +65 -28
  1092. package/dist/ir/receiver-readers.js.map +1 -1
  1093. package/dist/ir/row-pairs.d.ts +9 -1
  1094. package/dist/ir/row-pairs.js +136 -43
  1095. package/dist/ir/row-pairs.js.map +1 -1
  1096. package/dist/ir/row-pairs.test.js +25 -5
  1097. package/dist/ir/row-pairs.test.js.map +1 -1
  1098. package/dist/ir/runtime-features.d.ts +33 -1
  1099. package/dist/ir/runtime-features.js +104 -6
  1100. package/dist/ir/runtime-features.js.map +1 -1
  1101. package/dist/ir/runtime-features.test.js +13 -0
  1102. package/dist/ir/runtime-features.test.js.map +1 -1
  1103. package/dist/ir/saturating-loop-jams.d.ts +24 -0
  1104. package/dist/ir/saturating-loop-jams.js +420 -0
  1105. package/dist/ir/saturating-loop-jams.js.map +1 -0
  1106. package/dist/ir/saturating-loop-jams.test.d.ts +1 -0
  1107. package/dist/ir/saturating-loop-jams.test.js +196 -0
  1108. package/dist/ir/saturating-loop-jams.test.js.map +1 -0
  1109. package/dist/ir/scalar-records.js +9 -3
  1110. package/dist/ir/scalar-records.js.map +1 -1
  1111. package/dist/ir/self-captures.js +2 -1
  1112. package/dist/ir/self-captures.js.map +1 -1
  1113. package/dist/ir/serialize.d.ts +5 -1
  1114. package/dist/ir/serialize.js +7 -1
  1115. package/dist/ir/serialize.js.map +1 -1
  1116. package/dist/ir/traverse.js +3 -0
  1117. package/dist/ir/traverse.js.map +1 -1
  1118. package/dist/ir/validate.js +91 -9
  1119. package/dist/ir/validate.js.map +1 -1
  1120. package/dist/library/ir-policy.js +1 -0
  1121. package/dist/library/ir-policy.js.map +1 -1
  1122. package/dist/native/cache.js +2 -0
  1123. package/dist/native/cache.js.map +1 -1
  1124. package/dist/native/cli.js +54 -7
  1125. package/dist/native/cli.js.map +1 -1
  1126. package/dist/native/compiler.d.ts +3 -0
  1127. package/dist/native/compiler.js +173 -36
  1128. package/dist/native/compiler.js.map +1 -1
  1129. package/dist/native/compiler.test.js +86 -3
  1130. package/dist/native/compiler.test.js.map +1 -1
  1131. package/dist/native/executable-cache.d.ts +20 -2
  1132. package/dist/native/executable-cache.js +17 -10
  1133. package/dist/native/executable-cache.js.map +1 -1
  1134. package/dist/native/executable-cache.test.js +38 -1
  1135. package/dist/native/executable-cache.test.js.map +1 -1
  1136. package/dist/native/linker-job.d.ts +71 -0
  1137. package/dist/native/linker-job.js +242 -0
  1138. package/dist/native/linker-job.js.map +1 -0
  1139. package/dist/native/linker-job.test.d.ts +1 -0
  1140. package/dist/native/linker-job.test.js +349 -0
  1141. package/dist/native/linker-job.test.js.map +1 -0
  1142. package/dist/native/prepare.js +15 -2
  1143. package/dist/native/prepare.js.map +1 -1
  1144. package/dist/native/sanitizer.js +10 -15
  1145. package/dist/native/sanitizer.js.map +1 -1
  1146. package/dist/native/sanitizer.test.js +152 -66
  1147. package/dist/native/sanitizer.test.js.map +1 -1
  1148. package/dist/native/toolchain.d.ts +11 -2
  1149. package/dist/native/toolchain.js +43 -17
  1150. package/dist/native/toolchain.js.map +1 -1
  1151. package/dist/native/toolchain.test.js +75 -0
  1152. package/dist/native/toolchain.test.js.map +1 -1
  1153. package/dist/node-islands/boundary.d.ts +37 -0
  1154. package/dist/node-islands/boundary.js +135 -0
  1155. package/dist/node-islands/boundary.js.map +1 -0
  1156. package/dist/node-islands/classify.js +1 -1
  1157. package/dist/node-islands/classify.js.map +1 -1
  1158. package/dist/node-islands/effect-gate.d.ts +11 -0
  1159. package/dist/node-islands/effect-gate.js +746 -0
  1160. package/dist/node-islands/effect-gate.js.map +1 -0
  1161. package/dist/node-islands/effect-gate.test.d.ts +1 -0
  1162. package/dist/node-islands/effect-gate.test.js +152 -0
  1163. package/dist/node-islands/effect-gate.test.js.map +1 -0
  1164. package/dist/node-islands/libnode-pack.d.ts +68 -0
  1165. package/dist/node-islands/libnode-pack.js +199 -0
  1166. package/dist/node-islands/libnode-pack.js.map +1 -0
  1167. package/dist/node-islands/libnode-pack.test.d.ts +1 -0
  1168. package/dist/node-islands/libnode-pack.test.js +258 -0
  1169. package/dist/node-islands/libnode-pack.test.js.map +1 -0
  1170. package/dist/node-islands/libnode.d.ts +32 -0
  1171. package/dist/node-islands/libnode.js +212 -0
  1172. package/dist/node-islands/libnode.js.map +1 -0
  1173. package/dist/node-islands/libnode.test.d.ts +1 -0
  1174. package/dist/node-islands/libnode.test.js +170 -0
  1175. package/dist/node-islands/libnode.test.js.map +1 -0
  1176. package/dist/node-islands/modules.d.ts +96 -0
  1177. package/dist/node-islands/modules.js +803 -0
  1178. package/dist/node-islands/modules.js.map +1 -0
  1179. package/dist/node-islands/modules.test.d.ts +1 -0
  1180. package/dist/node-islands/modules.test.js +276 -0
  1181. package/dist/node-islands/modules.test.js.map +1 -0
  1182. package/dist/node-islands/resolve.d.ts +8 -0
  1183. package/dist/node-islands/resolve.js +10 -0
  1184. package/dist/node-islands/resolve.js.map +1 -0
  1185. package/dist/node-islands/snapshot.d.ts +16 -0
  1186. package/dist/node-islands/snapshot.js +486 -0
  1187. package/dist/node-islands/snapshot.js.map +1 -0
  1188. package/dist/node-islands/snapshot.test.d.ts +1 -0
  1189. package/dist/node-islands/snapshot.test.js +56 -0
  1190. package/dist/node-islands/snapshot.test.js.map +1 -0
  1191. package/dist/project-config.d.ts +37 -1
  1192. package/dist/project-config.js +159 -7
  1193. package/dist/project-config.js.map +1 -1
  1194. package/dist/project-config.test.js +153 -0
  1195. package/dist/project-config.test.js.map +1 -1
  1196. package/dist/startup-cache.d.ts +1 -0
  1197. package/dist/startup-cache.js +1 -0
  1198. package/dist/startup-cache.js.map +1 -1
  1199. package/package.json +24 -21
  1200. package/surface-manifest.json +47 -7
@@ -1,4 +1,9 @@
1
+ import type { DiagnosticCode } from "../../diagnostics/codes.js";
2
+ import { type RecordOrigin } from "./decl-origin.js";
3
+ import { type JournalScalar, type JournalTable, type UnitEvents } from "./unit-journal.js";
1
4
  import { StructuralPositions } from "./structural-positions.js";
5
+ import { type NodeIslandSet } from "../../node-islands/boundary.js";
6
+ import type { IslandModuleBinding } from "./lower-node-island.js";
2
7
  import type { ConstructorReturnPlan } from "./constructor-returns.js";
3
8
  import { type CycleInitFlag } from "./cycle-initialization.js";
4
9
  import { type JsonRequireModule } from "./json-require.js";
@@ -26,7 +31,8 @@ export type { WidthLift } from "./width-lift.js";
26
31
  export { newFnCtx, type FnCtx } from "./function-context.js";
27
32
  import * as ts from "../ts7/adapter.js";
28
33
  import { type UnionLiteral } from "../union-discriminants.js";
29
- import type { ScrDiagnostic } from "../../diagnostics/diagnostic.js";
34
+ import type { ScrDiagnostic, TypeFailure, TypeFailureSlot } from "../../diagnostics/diagnostic.js";
35
+ import { type DynamicSlotEntry } from "../../diagnostics/dynamic-slots.js";
30
36
  import { UNSUPPORTED } from "../../diagnostics/diagnostic.js";
31
37
  import type { IrClassDef, IrExpr, IrFfiImport, IrFunction, IrGlobal, IrLocal, IrModule, IrParam, IrRecordShape, IrStmt, IrType, IrUnionDef, SrcLoc } from "../../ir/ir.js";
32
38
  import { type StartupCrash, type CycleEdge } from "../program.js";
@@ -41,15 +47,39 @@ import { type ParamShape, type FnSig } from "./call-signatures.js";
41
47
  import { type GenericFnInfo, type GenericInstance } from "./generic-functions.js";
42
48
  import type { InstantiationPath } from "./instantiation-path.js";
43
49
  import { type ArrayHofInfo } from "./containers/array-pipelines.js";
50
+ import { type RecordOvfCapturePlan } from "./containers/indexed-objects.js";
44
51
  import { type ComputedEventPattern, type EmitSpecCtx, type EmitSpecRequest, type EventSig } from "./lower-event-emitter.js";
45
52
  import { type ConsoleMethodMember, type ConsoleOutputMember } from "./builtins/console.js";
46
53
  import type { AssertInstanceOptions } from "./assert-instances.js";
47
54
  import { type FieldTarget } from "./lower-exprs.js";
48
55
  import type { ExpandoMembers } from "./lower-expando.js";
56
+ import { NodeIslandModuleCollector } from "../../node-islands/modules.js";
49
57
  /** Entry function name. '%' cannot appear in a TS identifier, so a user
50
58
  * function can never collide with it (mangling is injective per prefix). */
51
59
  export declare const ENTRY_NAME = "%main";
60
+ /** A slot the localized-failure commit points turned into a checked
61
+ * dynamic slot (SC6104): where it is, what its declared type is, and the
62
+ * diagnostic it would have failed with. */
63
+ export interface DynamicSlot {
64
+ loc: SrcLoc;
65
+ failure: TypeFailure;
66
+ code: string;
67
+ reason: string;
68
+ /** The slot keeps its type's compilable shape; only the failing
69
+ * components are checked-dynamic (push-down, stage L3). */
70
+ partial?: true;
71
+ /** The type mapped exactly from its canonical form (stage N2): a static
72
+ * slot, never reported as dynamic. */
73
+ canonical?: true;
74
+ }
52
75
  export declare class PoisonError extends Error {
76
+ /** Set when a type with no static lowering poisoned a slot (badType and
77
+ * the dyn class field policy): what failed, for the localized-failure
78
+ * commit points. Report-only in stage L0. */
79
+ readonly failure: TypeFailure | undefined;
80
+ /** The checker type that failed (with `failure`). */
81
+ readonly failedType: ts.Type | undefined;
82
+ constructor(failure?: TypeFailure, failedType?: ts.Type);
53
83
  }
54
84
  /** A function-shaped value that exists only in the compiler's static
55
85
  * projection graph. Declared-function aliases point at the original
@@ -141,6 +171,9 @@ export interface LowerResult {
141
171
  /** Performance warnings (SC61xx): the likely-hot functions the source
142
172
  * leaves untyped (lowering/dynamic-tier.ts). Never failures. */
143
173
  performance?: ScrDiagnostic[];
174
+ /** Localized failure: the checked dynamic slots the commit points
175
+ * created (each also an SC6104 in `performance`), present when any. */
176
+ dynamicSlots?: DynamicSlotEntry[];
144
177
  /** Functions lowering placed in the dynamic tier (ir/tiers.ts), present
145
178
  * when there are any. */
146
179
  dynamicFunctions?: DynamicFunction[];
@@ -148,6 +181,9 @@ export interface LowerResult {
148
181
  tiers?: TierReport;
149
182
  }
150
183
  export interface LowerOptions {
184
+ /** Packages that run in Node islands (scope-B NI-4): their imports lower
185
+ * to island loads and their values to island handles. */
186
+ nodeIslands?: NodeIslandSet | null;
151
187
  /** Parser/checker services owned by the load; required for npm graph analysis. */
152
188
  frontendServices?: FrontendServices | undefined;
153
189
  /** The project's tsconfig sets `checkJs` (see isCheckedJsSourceFile). */
@@ -175,6 +211,8 @@ export interface LowerOptions {
175
211
  inlineRequireCycleCalls?: ReadonlySet<ts.Node> | undefined;
176
212
  /** LoadResult.moduleEdges. */
177
213
  moduleEdges?: ReadonlyMap<ts.SourceFile, readonly CycleEdge[]> | undefined;
214
+ /** LoadResult.dynamicImportRejections. */
215
+ dynamicImportRejections?: ReadonlyMap<ts.SourceFile, StartupCrash> | undefined;
178
216
  /** LIBRARY mode's reachability roots: the profile-mapped exports of the
179
217
  * entry module. Executable builds root at the entry's top level alone
180
218
  * (an unreferenced export dead-strips); a library's exports are called from
@@ -210,7 +248,7 @@ export interface LowerOptions {
210
248
  };
211
249
  }
212
250
  interface RuntimeFenceFallback {
213
- code: `SC${number}`;
251
+ code: DiagnosticCode;
214
252
  message: string;
215
253
  }
216
254
  interface RuntimeFenceBase {
@@ -239,11 +277,32 @@ interface RuntimeFenceClosureTarget extends Omit<RuntimeFenceFunctionTarget, "ki
239
277
  kind: "func";
240
278
  };
241
279
  }
280
+ /** A degraded checker type (Lowerer.degradedTypes): its lenient mapping and
281
+ * the failure that degraded it. */
282
+ export interface DegradedType {
283
+ lenient: IrType | null;
284
+ code: string;
285
+ reason: string;
286
+ /** The type maps exactly from its canonical form (stage N2): its slots
287
+ * are static. */
288
+ canonical?: true;
289
+ }
242
290
  /** The Lowerer's pass configuration (see lowerToIr). */
243
291
  export interface LowererMode {
244
292
  /** Symbols whose deferred diagnostics reachable emit already flushed —
245
293
  * the remainder must not report them a second time. */
246
294
  alreadyFlushed?: ReadonlySet<ts.Symbol>;
295
+ /** Localized failure: the types reachable emit degraded (the coverage
296
+ * remainder maps them alike, so the declarations reachable emit
297
+ * registered with dynamic slots collect there too). */
298
+ degradedTypes?: ReadonlyMap<number, DegradedType>;
299
+ /** Localized failure: the declarations reachable emit registered with
300
+ * dynamic slots (the coverage remainder registers them too). */
301
+ retriedSymbols?: ReadonlySet<ts.Symbol>;
302
+ /** Localized failure: degrade every type to the whole-slot checked
303
+ * dynamic, never to its pushed-down shape (lowerToIr's comparison
304
+ * pass). */
305
+ wholeSlotDegradation?: boolean;
247
306
  /** LowerOptions.externalTypes, threaded through every lowering pass. */
248
307
  externalTypes?: ReadonlyMap<string, string>;
249
308
  /** LowerOptions.externalTypeSpecifiersByFile, shared by every pass. */
@@ -267,6 +326,8 @@ export interface LowererMode {
267
326
  dynNodeStreams?: boolean;
268
327
  /** LoadResult.inlineRequireCycleCalls. */
269
328
  inlineRequireCycleCalls?: ReadonlySet<ts.Node> | undefined;
329
+ /** LoadResult.dynamicImportRejections. */
330
+ dynamicImportRejections?: ReadonlyMap<ts.SourceFile, StartupCrash> | undefined;
270
331
  /** LowerOptions.libraryCallbacks (see there). */
271
332
  libraryCallbacks?: boolean;
272
333
  projectCheckJs?: boolean;
@@ -329,7 +390,25 @@ export declare function dynFallbackType(lowerer: Lowerer, node: ts.Node, t: ts.T
329
390
  * their own name, anonymous function/arrow expressions their
330
391
  * NamedEvaluation home (a variable initializer or property assignment).
331
392
  * Null when nothing names the value (the box stays anonymous). */
393
+ /** The name Node gives the builtin module function `node` reads, through
394
+ * const aliases (`const get = process.cwd`), when the module table names its
395
+ * value differently from its member (BuiltinModuleFn.valueName); else null. */
396
+ export declare function builtinValueNameOf(node: ts.Node, lowerer: Lowerer): string | null;
332
397
  export declare function jsFuncNameOf(node: ts.Node, lowerer?: Lowerer): string | null;
398
+ /** A loop over an untyped iterable (lowerForOfDyn). `kind` is a local the
399
+ * loop sets once it has opened the iterator: 0 for the dynamic protocol,
400
+ * or the 1-based index of the program's generator type it steps natively.
401
+ * `value` is the per-step local whose initializer takes one step. */
402
+ export interface UntypedLoopSite {
403
+ kind: string;
404
+ value: string;
405
+ iterator: string;
406
+ next: string;
407
+ done: string;
408
+ /** `for await`; `sync` names its async-from-sync flag. */
409
+ async: boolean;
410
+ sync: string | null;
411
+ }
333
412
  export declare class Lowerer {
334
413
  readonly program: ts.Program;
335
414
  readonly entry: ts.SourceFile;
@@ -347,11 +426,22 @@ export declare class Lowerer {
347
426
  /** Inline require() calls whose module edge closes a require cycle
348
427
  * (LoadResult.inlineRequireCycleCalls). */
349
428
  readonly inlineRequireCycleCalls: ReadonlySet<ts.Node>;
429
+ /** LoadResult.dynamicImportRejections. */
430
+ readonly dynamicImportRejections: ReadonlyMap<ts.SourceFile, StartupCrash>;
350
431
  /** Immutable callable aliases and compiler-generated adapters. The map
351
432
  * is symbol-keyed, so shadowing and cross-module imports keep the same
352
433
  * exact binding discipline as globals/functions. */
353
434
  readonly staticCallables: Map<ts.Symbol, StaticCallableProjection>;
354
435
  readonly genericFnsBySymbol: Map<ts.Symbol, GenericFnInfo>;
436
+ /** Typed declarations' instances for arguments that keep their own
437
+ * record or array layout (structural-instances.ts). */
438
+ readonly structuralFnInfos: Map<ts.Symbol, GenericFnInfo>;
439
+ /** Consts that keep their initializer's record or array layout, with the
440
+ * initializer's checker type (structural-instances.ts). */
441
+ readonly preservedLayoutTypes: Map<ts.Symbol, ts.Type>;
442
+ /** Arguments and const initializers whose array or record layout the
443
+ * lowering kept instead of copying (divergences.ts reports no copy there). */
444
+ readonly layoutKeptNodes: Set<import("../ts7/ast-node.js").AstNode>;
355
445
  /** Object-literal GENERIC methods (`{ m<T>(x: T) {...} }`), interned by
356
446
  * their function-like node — instances ride the same monomorphization
357
447
  * queue (objLitGenericFnInfoOf). */
@@ -499,6 +589,23 @@ export declare class Lowerer {
499
589
  * the body needs — indexed accesses (`T[K]` needs K's literal key) and
500
590
  * keyed record reads (`o[k]` where k's type is a literal-bound K). */
501
591
  typeParamTsBindings: Map<ts.Symbol, ts.Type> | null;
592
+ /** Generic alias references of call-keyed instances' declared signatures
593
+ * (`Catalog<G, P>`), each with the same alias as every call's resolved
594
+ * signature instantiates it (`Catalog<{ g1: … }, "acme">`), together with
595
+ * that instance's ts-level bindings map (typeParamTsBindings), which every
596
+ * scope that lowers the instance installs. The checker keeps the alias
597
+ * symbolic inside the generic body and offers no way to instantiate it
598
+ * with the bound arguments, but alias instantiations are interned: the
599
+ * body's `x as Catalog<G, P>` is the very type the signature declares, so
600
+ * the pair recorded during unification is that re-instantiation. */
601
+ readonly boundAliasInstances: Map<ts.Type, {
602
+ tsBindings: Map<ts.Symbol, ts.Type>;
603
+ instance: ts.Type;
604
+ }[]>;
605
+ /** Values an erased type assertion produced, with the asserted type
606
+ * (`x as T` keeps x's representation): a slot that no ordinary
607
+ * conversion reaches converts them as asserted (assertedConversion). */
608
+ readonly assertedValues: Map<IrExpr, IrType>;
502
609
  /** Non-null while an IMPLICIT-ANY instance body lowers (npm-static JS;
503
610
  * see generic-functions.ts): bound param symbol →
504
611
  * the call site's checker type, consulted by typeOf for identifier
@@ -669,6 +776,11 @@ export declare class Lowerer {
669
776
  /** for-of loops over arrays that can hold neither holes nor undefined:
670
777
  * each pass reads the element payload directly. */
671
778
  readonly presentElementLoops: Set<ts.ForOfStatement>;
779
+ /** Element keys (typeKey of the element type) of native arrays that can
780
+ * hold elements outside their element type, stored through dynamic views
781
+ * (SCR_ARR_FOREIGN); "*" for every array. Empty unless the program stores
782
+ * values through a dynamic value that can view a native array. */
783
+ foreignElementKeys: ReadonlySet<string>;
672
784
  /** The fs/promises glob() call lowerForOf is lowering as a for await
673
785
  * head; other glob() calls have no lowering. */
674
786
  fspGlobHead: ts.Node | null;
@@ -678,6 +790,18 @@ export declare class Lowerer {
678
790
  runtimeOptionalRootOf(local: IrLocal): IrLocal;
679
791
  runtimeOptionalBindingType(node: ts.Node): IrType | null;
680
792
  runtimeOptionalBindingType(node: ts.Node, fallback: IrType): IrType;
793
+ /** An object or array literal in an untyped context: its contextual type
794
+ * is `unknown` or `any` from a slot the program declares (a variable,
795
+ * field, parameter, return type or `unknown[]` element; a library
796
+ * parameter typed `any` only through a type argument), it is thrown, or
797
+ * it is a member of such a literal, and it holds data only (no methods,
798
+ * accessors or function members). Its value is built as a dynamic
799
+ * object: no type the program wrote gives it a native layout, and a later
800
+ * checked cast adopts it (dyn.adoptShared), so every holder keeps one
801
+ * identity. A library parameter the declarations type `any` or `unknown`
802
+ * itself (`console.log`, `JSON.stringify`) only reads the value and keeps
803
+ * the native literal. */
804
+ untypedLiteralContext(x: ts.Expression): boolean;
681
805
  /** A fresh TypeScript data literal (`{ message: "m" }`) passed to a
682
806
  * checked-dynamic parameter of a callee implemented in JavaScript, whose
683
807
  * contract lets it reshape the object: a call through an untyped value, an
@@ -879,6 +1003,19 @@ export declare class Lowerer {
879
1003
  * checks resolve through this map (stdlibGlobalNameOf), declarations
880
1004
  * emit nothing. */
881
1005
  readonly stdlibGlobalAliases: Map<ts.Symbol, string>;
1006
+ /** The TypeScript declarations registered in stdlibGlobalAliases: the
1007
+ * global each one names and its own name node. Their declarations emit
1008
+ * nothing, so a read that needs the VALUE reports at the declaration
1009
+ * (stdlibGlobalAliasDecl, rejectUnresolvedSymbol) instead of compiling
1010
+ * it away. An unread snapshot stays elided: reading a global has no
1011
+ * side effects. */
1012
+ readonly stdlibGlobalAliasDecls: Map<ts.Symbol, {
1013
+ alias: string;
1014
+ name: ts.Identifier;
1015
+ }>;
1016
+ /** Snapshots whose declaration-side refusal already reported (one
1017
+ * declaration, one report). */
1018
+ private readonly stdlibSnapshotReported;
882
1019
  /** The stdlibGlobalAliases bound through a cast of the global object
883
1020
  * (`(globalThis as { Buffer?: B }).Buffer`). Their static type is the
884
1021
  * cast's, so their value reads are refused (identifiers.ts). */
@@ -997,6 +1134,9 @@ export declare class Lowerer {
997
1134
  /** The property names the program assigns on the global object
998
1135
  * (property-access.ts), collected on first use. */
999
1136
  globalThisWrittenNames: Set<string> | null;
1137
+ /** Set with globalThisWrittenNames: the program writes the global object
1138
+ * by a computed name somewhere. */
1139
+ globalThisComputedWrite: boolean;
1000
1140
  /** Well-known symbol methods (`sym:iterator`) the program may replace
1001
1141
  * through a symbol-keyed write: an instance or prototype property, or a
1002
1142
  * reflection call. */
@@ -1011,6 +1151,8 @@ export declare class Lowerer {
1011
1151
  /** Inferred JS methods participating in an override chain keep a vtable
1012
1152
  * ABI instead of call-site specialization. Filled before class collection. */
1013
1153
  readonly virtualJsMethods: Set<ts.MethodDeclaration>;
1154
+ /** Methods of checked-JavaScript override pairs (vtable dispatch). */
1155
+ readonly checkedJsOverrideMethods: Set<ts.MethodDeclaration>;
1014
1156
  /** Descendant writes must widen the original JS field before collecting
1015
1157
  * any class layout; base and derived instances share its storage ABI. */
1016
1158
  readonly inheritedJsFieldWrites: Map<ts.ClassDeclaration | ts.ClassExpression, Map<string, ts.ExpressionBase[]>>;
@@ -1056,6 +1198,9 @@ export declare class Lowerer {
1056
1198
  } | {
1057
1199
  kind: "static-builtin";
1058
1200
  module: string;
1201
+ } | {
1202
+ kind: "rejected";
1203
+ crash: StartupCrash;
1059
1204
  }>;
1060
1205
  readonly createRequireImports: Map<string, "" | {
1061
1206
  entryKey: string;
@@ -1120,6 +1265,47 @@ export declare class Lowerer {
1120
1265
  usesWasmCustomSections: boolean;
1121
1266
  /** The program constructs a LifetimeRegion (lifetime-regions.ts). */
1122
1267
  usesLifetimeRegions: boolean;
1268
+ /** The program calls into Node.js (@scriptc/node): the module carries
1269
+ * the nodeIsland record, which the executable build fills in. */
1270
+ usesNodeIsland: boolean;
1271
+ /** The program's Node island packages (scope-B NI-4), or null. */
1272
+ readonly nodeIslands: NodeIslandSet | null;
1273
+ /** Island module loads, by the importing file and specifier: the module
1274
+ * global holding what the import form sees (lower-node-island.ts). */
1275
+ readonly islandModules: Map<string, IslandModuleBinding>;
1276
+ /** The modules Node island calls load (lower-node-island.ts). */
1277
+ readonly nodeIslandModules: NodeIslandModuleCollector;
1278
+ /** Each call's caller literal, set to its tree path when lowering ends. */
1279
+ readonly nodeIslandCallers: {
1280
+ literal: IrExpr & {
1281
+ kind: "strLit";
1282
+ };
1283
+ caller: string;
1284
+ }[];
1285
+ /** Absolute specifiers, rewritten to the shipped file relative to their caller. */
1286
+ readonly nodeIslandSpecifiers: {
1287
+ literal: IrExpr & {
1288
+ kind: "strLit";
1289
+ };
1290
+ caller: string;
1291
+ target: string;
1292
+ }[];
1293
+ /** Each island module load's path literal, set to its tree path when lowering ends. */
1294
+ readonly nodeIslandLoads: {
1295
+ literal: IrExpr & {
1296
+ kind: "strLit";
1297
+ };
1298
+ path: string;
1299
+ }[];
1300
+ /** Island handle bindings by symbol (lower-node-island.ts). */
1301
+ readonly islandHandleBindings: Map<ts.Symbol, boolean>;
1302
+ /** `instanceof` expressions the island lowering already handles. */
1303
+ readonly islandInstanceofHandled: Set<import("../ts7/ast-node.js").AstNode>;
1304
+ /** NI-6: the modules shared with Node islands (lower-shared-modules.ts),
1305
+ * their SC8020 warnings, and the TDZ flags their declarations set. */
1306
+ sharedModules: import("./lower-shared-modules.js").SharedModulePlan[] | null;
1307
+ readonly sharedModuleWarnings: ScrDiagnostic[];
1308
+ readonly sharedInitFlags: Map<ts.StatementBase, string[]>;
1123
1309
  /** Per-directory answers of experimental-import.ts's declaration-file test. */
1124
1310
  readonly experimentalFiles: Map<string, boolean>;
1125
1311
  /** Interned LifetimeRegion.run helpers, by callback type key. */
@@ -1203,10 +1389,9 @@ export declare class Lowerer {
1203
1389
  * tag. */
1204
1390
  readonly unions: UnionRegistry;
1205
1391
  /** Context-free successful type mappings. See TypeMapperCtx.typeMemo. */
1206
- readonly typeMemo: Map<string, IrType>;
1392
+ readonly typeMemo: Map<number, IrType>;
1207
1393
  readonly ambient: string;
1208
1394
  readonly overridesAmbient: string;
1209
- readonly fallbackAmbient: string;
1210
1395
  /** The one mapType context: registries + hooks, assembled in the
1211
1396
  * constructor (typeParamResolver reads the CURRENT instantiation bindings
1212
1397
  * through `this`, so the same ctx serves generic bodies too). */
@@ -1228,6 +1413,23 @@ export declare class Lowerer {
1228
1413
  * values other than fresh literals (noteUntypedIntegrity). */
1229
1414
  untypedIntegrity: boolean;
1230
1415
  readonly liftedFns: IrFunction[];
1416
+ /** `for … of` and `for await` loops over untyped iterables, by their
1417
+ * generator-kind local (generator-dynamic-dispatch.ts steps the program's
1418
+ * own generators there on the typed path). Local ids repeat across
1419
+ * functions; the local itself is in its function's locals. */
1420
+ readonly untypedLoops: Map<IrLocal, UntypedLoopSite>;
1421
+ /** global-values.ts's answer per JavaScript source: the receiver of its
1422
+ * first read of the global object by a computed name, or null. */
1423
+ readonly computedGlobalReads: Map<ts.SourceFile, ts.ExpressionBase | null>;
1424
+ /** global-values.ts's answer per JavaScript source: the builtin globals
1425
+ * its sloppy-mode functions read through their `this`. */
1426
+ readonly sloppyThisGlobalReads: Map<ts.SourceFile, ReadonlySet<string>>;
1427
+ /** global-values.ts's answer: the names the program's global lookup
1428
+ * answers; undefined until asked. */
1429
+ globalLookupNames: readonly string[] | undefined;
1430
+ /** web-streams-dyn.ts's answer: whether a JavaScript source names a web
1431
+ * stream class; undefined until asked. */
1432
+ namesWebStreamClass: boolean | undefined;
1231
1433
  /** The first lifted function of each name (liftedFnNamed), for the
1232
1434
  * liftedFns indexed so far. liftedFns only grows. */
1233
1435
  private readonly liftedFnsByName;
@@ -1250,8 +1452,11 @@ export declare class Lowerer {
1250
1452
  * names do not depend on where the program sits, default library files
1251
1453
  * by their base name (two checkers install them in different
1252
1454
  * directories), and the files scriptc ships by their name inside scriptc,
1253
- * so names do not depend on where scriptc is installed either. */
1455
+ * so names do not depend on where scriptc is installed either. Relative
1456
+ * paths use `/` on every platform. */
1254
1457
  readonly positions: StructuralPositions;
1458
+ /** The name of `sf` in positions and module tags. */
1459
+ stableFileName(sf: ts.SourceFile): string;
1255
1460
  /** The outermost node whose token span is exactly `loc`, or null. */
1256
1461
  nodeAtLoc(loc: SrcLoc): ts.Node | null;
1257
1462
  /** The lowering unit whose name scopes the closures it lifts. */
@@ -1334,6 +1539,14 @@ export declare class Lowerer {
1334
1539
  * promise operand (returnedPromiseAwait). */
1335
1540
  private returnAwaitedPromise;
1336
1541
  private readonly virtualEdges;
1542
+ /** The events of the unit being recorded (unit-journal.ts); null
1543
+ * otherwise. */
1544
+ unitEvents: UnitEvents | null;
1545
+ /** Fields added to collected classes (class-attributes.ts) and reachable
1546
+ * units registered while units lower: a unit that changes either has no
1547
+ * record (journalScalars). */
1548
+ classLayoutChanges: number;
1549
+ unitRegistrations: number;
1337
1550
  classCanBeConstructed(info: ClassInfo): boolean;
1338
1551
  /** How many classes classCanBeConstructed admits by name, or -1 while
1339
1552
  * it admits every class. The count only grows. */
@@ -1356,6 +1569,20 @@ export declare class Lowerer {
1356
1569
  /** The first lifted function named `name`, the one
1357
1570
  * `liftedFns.find((fn) => fn.name === name)` returns. */
1358
1571
  liftedFnNamed(name: string | undefined): IrFunction | undefined;
1572
+ /** The tables lowering a unit can grow (unit-journal.ts): the
1573
+ * appendable tables whose entries a unit's record carries, then the
1574
+ * tables whose growth leaves the unit without a record.
1575
+ * Lowerer.unjournaled lists the collections that are in neither. */
1576
+ journalTables(): JournalTable[];
1577
+ /** The fields a unit's record need not carry: settings, caches of
1578
+ * program facts that are computed again when needed, state of the unit
1579
+ * being lowered (keyed by its own IR, nodes or frames), scratch that
1580
+ * unwinds before the unit ends, and state that applying the unit's events
1581
+ * rebuilds. */
1582
+ static readonly unjournaled: readonly string[];
1583
+ /** The fields a unit must leave as they were, and the flags it may set
1584
+ * (unit-journal.ts). */
1585
+ journalScalars(): JournalScalar[];
1359
1586
  /** Coverage remainder mode: the reachability gate inverts (see wantBody)
1360
1587
  * and no module is built. */
1361
1588
  readonly remainder: boolean;
@@ -1414,6 +1641,64 @@ export declare class Lowerer {
1414
1641
  * the fallthroughs report the inherited-blocker cascade (SC2004)
1415
1642
  * instead of misattributing the reference. */
1416
1643
  readonly blockedBindings: Set<ts.Symbol>;
1644
+ /** Localized failure, report-only: the failure group (type-failure.ts)
1645
+ * of each declaration whose rejection reached the build — a flushed
1646
+ * deferred declaration, or a binding of a poisoned declaration
1647
+ * statement. */
1648
+ readonly rejectedGroups: Map<ts.Symbol, string>;
1649
+ /** One frame per statement lowerStmts is lowering: the failure groups
1650
+ * its lowering touched. A statement that then poisons attributes its
1651
+ * diagnostics to them (ScrDiagnostic.cause). */
1652
+ readonly failureTouches: Set<string>[];
1653
+ /** Localized failure: checker types (by id) whose strict mapping failed
1654
+ * at a committed slot, with their lenient mapping. Filled only at the
1655
+ * commit points (degradeAtCommit), so a program that compiles today
1656
+ * never fills it. */
1657
+ readonly degradedTypes: Map<number, DegradedType>;
1658
+ /** A pushed-down (partial) degraded type was mapped (hasPartialDegradedTypes). */
1659
+ private partialDegradedTypesMapped;
1660
+ /** The components lenient mappings turned into the checked dynamic, by
1661
+ * checker type id, with the declared type they are pieces of (SC6101
1662
+ * causes and per-slot operation counts). */
1663
+ readonly lenientPieces: Map<number, string>;
1664
+ /** One frame per unit a commit point may retry: the pushed-down
1665
+ * (partial) degraded types its lowering mapped (withPartialHits). */
1666
+ readonly partialHits: Set<number>[];
1667
+ /** The dynamic slots the commit points created: one SC6104 each. */
1668
+ readonly dynamicSlots: DynamicSlot[];
1669
+ /** Declarations retryDeferred registered. */
1670
+ readonly retriedSymbols: Set<ts.Symbol>;
1671
+ /** LowererMode.retriedSymbols. */
1672
+ readonly priorRetriedSymbols: ReadonlySet<ts.Symbol>;
1673
+ /** LowererMode.wholeSlotDegradation. */
1674
+ readonly wholeSlotDegradation: boolean;
1675
+ /** Bodies run() skipped because their declaration had not registered. */
1676
+ readonly skippedBodies: Set<import("../ts7/ast-node.js").AstNode>;
1677
+ /** Declarations retryDeferred registered, in order: run() lowers the
1678
+ * bodies it had skipped. */
1679
+ readonly retriedDeclarations: ts.Node[];
1680
+ /** Diagnostics of lowering that a statement's retry does not repeat (a
1681
+ * function-local class's member bodies, lowered once and kept):
1682
+ * dropAttemptDiags keeps them. */
1683
+ readonly loweredOnceDiags: Set<ScrDiagnostic>;
1684
+ /** Deferred classes whose static field initializers' place in %init
1685
+ * has been lowered (retryDeferredAtDeclaration): a later flush must not
1686
+ * register them, since their initializers would never run. */
1687
+ readonly staticInitsPassed: Set<ts.Symbol>;
1688
+ /** Deferred declarations' collections, for the flush retry
1689
+ * (retryDeferred). */
1690
+ readonly deferredCollectors: Map<ts.Symbol, {
1691
+ symbolOf: () => ts.Symbol | undefined;
1692
+ collect: () => void;
1693
+ }>;
1694
+ /** True while a flush retry collects a declaration: the dyn class
1695
+ * field policy (dynFieldPolicyFence) is lifted for reached classes. */
1696
+ liftDynFieldPolicy: boolean;
1697
+ /** Collection diagnostics that a flush retry may simply run again (a
1698
+ * derived class whose base had not registered yet). */
1699
+ readonly retriableDiags: Set<ScrDiagnostic>;
1700
+ /** The checker type behind each type failure badType committed. */
1701
+ readonly failedTypes: Map<TypeFailure, ts.Type>;
1417
1702
  /** True while collectProgram runs: resolution helpers must not flush
1418
1703
  * deferred diagnostics (collection itself resolves symbols — extends
1419
1704
  * clauses — and collection order must not decide what reports). */
@@ -1456,11 +1741,36 @@ export declare class Lowerer {
1456
1741
  /** Bumps the per-file attribution counter (no-op unless provenance is
1457
1742
  * active and this is the emit/discovery lane — mirror the CALLER's
1458
1743
  * suppressStats guard, this method only gates remainder). */
1459
- bumpFileStat(file: string, kind: "total" | "failed"): void;
1744
+ bumpFileStat(file: string, kind: "total" | "failed", by?: number): void;
1460
1745
  /** The program holds the declaration-typed boundary's projection
1461
1746
  * (decl-projection.ts): user-file record and array values crossing into
1462
1747
  * dynamic slots (package parameters) box as live capsules, so a value
1463
1748
  * that comes back through a boundary cast keeps its identity. */
1749
+ /** Origins of package-declared types checked in this program
1750
+ * (decl-origin.ts), by IrModule.declOrigins index. */
1751
+ readonly declOrigins: string[];
1752
+ private readonly declOriginIds;
1753
+ private readonly packageFileMemo;
1754
+ private readonly slotOriginMemo;
1755
+ /** The value whose slot coercion is being lowered, while that value is
1756
+ * in a package file: union extractions built for it carry the slot's
1757
+ * origin in their TypeError. */
1758
+ coercionOriginNode: ts.Node | null;
1759
+ /** Per user file, each declaration-boundary cast's index in source
1760
+ * order (narrowing.ts recordedBoundaryOrigin). */
1761
+ readonly boundaryCastOrder: Map<ts.SourceFile, Map<import("../ts7/ast-node.js").AstNode, number>>;
1762
+ /** The union type of that value: only its own extraction is the slot's. */
1763
+ coercionOriginUnion: string | null;
1764
+ /** While a record projection into a package-declared type builds, the
1765
+ * origin of the field being converted. */
1766
+ coercionFieldOrigin: string | null;
1767
+ private readonly recordOriginMemo;
1768
+ /** The package-declared record type the current coercion converts to. */
1769
+ coercionRecordOrigin(): RecordOrigin | null;
1770
+ declOriginIndex(origin: string): number;
1771
+ /** The origin of the package-declared slot a value flows into. */
1772
+ slotOriginOf(node: ts.Node): string | null;
1773
+ private inPackageFileOf;
1464
1774
  private declBoundaryMemo;
1465
1775
  get declBoundary(): boolean;
1466
1776
  /** Tracked classes' bag initializers over a typed `this`
@@ -1474,6 +1784,9 @@ export declare class Lowerer {
1474
1784
  registerBuiltinErrorClasses(): void;
1475
1785
  private classProtocols;
1476
1786
  classImplementedProtocol(type: ts.Type): boolean;
1787
+ /** A record view a Map or Set answers: it keeps protocol identity but
1788
+ * calls the collection's own methods, never a stored member. */
1789
+ classCollectionView(type: ts.Type): boolean;
1477
1790
  /** Declared class fields may store a DYN value only when its static type
1478
1791
  * is `unknown` or `object` (also with `null` or `undefined`, or an array
1479
1792
  * of those), names checked protocol identity, is an owned runtime
@@ -1506,6 +1819,29 @@ export declare class Lowerer {
1506
1819
  assignedLater: ReadonlySet<string> | "all";
1507
1820
  };
1508
1821
  sourceFileOfModuleNamespace(type: IrType): ts.SourceFile | null;
1822
+ /** A module namespace taken as a checked-dynamic value (`const u: unknown
1823
+ * = ns`, `take(ns)`): the runtime's namespace object — one per module,
1824
+ * Node's sorted export keys, live reads through a compiled getter, and
1825
+ * Node's read-only write errors — built by `moduleNamespaceDynValue`.
1826
+ * `node:` builtins have no compiled source and no complete export table,
1827
+ * so they keep their fence. */
1828
+ moduleNamespaceDyn(ns: IrExpr & {
1829
+ type: IrType & {
1830
+ kind: "moduleNs";
1831
+ };
1832
+ }): IrExpr | null;
1833
+ /** A `Promise<module namespace>` taken as `Promise<unknown>` (or as
1834
+ * `unknown`): one lifted async mapper per module awaits the promise and
1835
+ * answers the same namespace object a bare namespace value boxes to, so
1836
+ * the settlement is Node's namespace while the value stays a promise.
1837
+ * The import() promise reaches these slots alone, and the runtime's
1838
+ * per-module namespace cache keeps `await mapped === await original`; a
1839
+ * rejection propagates unchanged. */
1840
+ moduleNamespacePromiseDynValue(value: IrExpr & {
1841
+ type: IrType & {
1842
+ kind: "promise";
1843
+ };
1844
+ }): IrExpr | null;
1509
1845
  builtinErrorInfoOf(symbol: ts.Symbol | null | undefined): ClassInfo | null;
1510
1846
  builtinEmitterInfoOf(symbol: ts.Symbol | null | undefined): ClassInfo | null;
1511
1847
  builtinStreamInfoOf(symbol: ts.Symbol | null | undefined): ClassInfo | null;
@@ -1597,6 +1933,17 @@ export declare class Lowerer {
1597
1933
  * declaration, or an ESM default import of CommonJS. One resolver keeps
1598
1934
  * member-symbol fallback and namespace classification in lockstep. */
1599
1935
  private localModuleBindingDepOf;
1936
+ private readonly createRequireBindingTargets;
1937
+ private readonly createRequireElementTargets;
1938
+ /** The program module a `const x = createRequire(...)("./m")` binding
1939
+ * requires, by the binding's symbol; null for every other binding. Every
1940
+ * reference resolves it (resolveValueSymbol), so it is cached. */
1941
+ private createRequireBindingTarget;
1942
+ /** The binding element and required program module of a
1943
+ * `const { m } = createRequire(...)("./m")` binding, by the binding's
1944
+ * symbol; null for every other binding. Cached like
1945
+ * createRequireBindingTarget. */
1946
+ private createRequireElementTarget;
1600
1947
  /** The represented single value behind a createRequire binding, or null
1601
1948
  * when the target is a namespace/table module. Collection has already
1602
1949
  * registered executable exports before entry-module uses lower, so the
@@ -1692,6 +2039,9 @@ export declare class Lowerer {
1692
2039
  * percentage would overstate how much of the program compiles. Count
1693
2040
  * every statement the body holds as attempted and failed, in addition to
1694
2041
  * the skipped-function tally. */
2042
+ /** countSkippedBody undone: a flush registered the declaration after
2043
+ * its body was skipped, and the body lowers now. */
2044
+ private uncountSkippedBody;
1695
2045
  private countSkippedBody;
1696
2046
  /** Coverage remainder: the body diagnostics of a function whose
1697
2047
  * signature blocked (blockedBodyDiagnostics). A function reachable emit
@@ -1721,6 +2071,9 @@ export declare class Lowerer {
1721
2071
  reachable: Set<string>;
1722
2072
  result: LowerResult;
1723
2073
  };
2074
+ /** The lowerer's side of a recorded wave (unit-journal.ts).
2075
+ * `lowerUnitBody` lowers a unit as reachable emit does. */
2076
+ private waveHost;
1724
2077
  /** Reachability hook (see emitReachable): fires when lowering resolves a
1725
2078
  * reference to a lowerable body. */
1726
2079
  noteEdge(name: string): void;
@@ -1733,6 +2086,7 @@ export declare class Lowerer {
1733
2086
  * this call site; a virtualCall through their own static classes marks
1734
2087
  * them). */
1735
2088
  noteVirtualEdge(info: ClassInfo, method: string): void;
2089
+ private virtualEdgeOf;
1736
2090
  moduleArtifacts(functions: IrFunction[]): {
1737
2091
  classes: IrClassDef[];
1738
2092
  records: IrRecordShape[];
@@ -1766,19 +2120,105 @@ export declare class Lowerer {
1766
2120
  * the instantiation context is appended so the user knows which concrete
1767
2121
  * types made the (source-anchored) construct fail. */
1768
2122
  pushDiag(diag: ScrDiagnostic): void;
1769
- unsupported(code: keyof typeof UNSUPPORTED & `SC${number}`, node: ts.Node, featureOverride?: string, hintOverride?: string, reason?: string): never;
2123
+ /** The module's Node island record: the collected module tree, with each
2124
+ * call's caller literal and each load's path literal set to its path in
2125
+ * that tree. The executable build fills in the libnode pack (index.ts). */
2126
+ private nodeIslandRecord;
2127
+ unsupported(code: keyof typeof UNSUPPORTED & DiagnosticCode, node: ts.Node, featureOverride?: string, hintOverride?: string, reason?: string): never;
1770
2128
  externalHostFence(specifier: string, node: ts.Node, valueUse?: boolean): never;
1771
2129
  anyOpFence(feature: string, node: ts.Node): never;
1772
2130
  /** True when this expression's CHECKER type is `any`-flavored — the
1773
2131
  * gate anyOpFence's call sites use to tell `any`-origin dyn values
1774
2132
  * with an unsupported operation from genuine `unknown` ones. */
1775
2133
  anyOrigin(node: ts.Node): boolean;
2134
+ /** badType's commit: the diagnostic carries the structured type
2135
+ * failure (report-only in stage L0), and so does the poison. */
2136
+ private typeFail;
2137
+ /** Localized failure's commit point (design §3.3): `e` poisoned a unit
2138
+ * whose failure is about to enter the build. When it is a degradable type
2139
+ * failure at a slot kind in `slots`, the failing type joins
2140
+ * degradedTypes (its lenient mapping is the checked dynamic, whole slot),
2141
+ * the failure's own diagnostic leaves the build, and the caller lowers
2142
+ * the unit again. Returns the slot to record once that retry succeeds,
2143
+ * or null to commit as today. Never inside a capture buffer (a probe or a
2144
+ * deferred collection) and never under --tier=static-only. */
2145
+ degradeAtCommit(e: unknown, slots: ReadonlySet<TypeFailureSlot>): DynamicSlot | null;
2146
+ /** A declaration slot whose type maps through degradedTypes is a
2147
+ * dynamic slot too, though only the first such slot failed: record it
2148
+ * (outside probes; the lookup is skipped while nothing is degraded). */
2149
+ noteDegradedSlot(node: ts.Node, type: ts.Type): void;
2150
+ /** Localized failure, statement commit point for declarations a probe
2151
+ * flushed: a statement committing the flushed diagnostics of a deferred
2152
+ * declaration (inside a capture buffer the flush could not retry) reopens
2153
+ * it here, outside every probe. When the declaration's diagnostics are
2154
+ * all retriable, they leave the build, the declaration retries
2155
+ * (retryDeferred), and on success the caller lowers the statement again.
2156
+ * Returns whether some declaration registered. */
2157
+ reopenFlushedAtCommit(diagsBefore: number): boolean;
2158
+ /** A failed attempt's own diagnostics leave the build before its unit
2159
+ * lowers again; flushed declaration diagnostics (`rejects`) stay, since
2160
+ * the retry will not flush them a second time. */
2161
+ dropAttemptDiags(diagsBefore: number): void;
2162
+ /** A unit that still fails after its retries commits its first
2163
+ * attempt's own diagnostics (`first`, taken before the first
2164
+ * degradation) in place of the last attempt's. The diagnostics the
2165
+ * retries carry (dropAttemptDiags) stay as they are now: a declaration
2166
+ * reopened since may have registered. */
2167
+ restoreFirstAttemptDiags(diagsBefore: number, first: readonly ScrDiagnostic[]): void;
2168
+ /** Lowers one unit whose body-level poison skips it (a generic
2169
+ * instance), with localized failure's commit point: a degradable type
2170
+ * failure at one of its declaration slots degrades the type and the unit
2171
+ * lowers again (at most MAX_DECLARATION_RETRIES times). Null when it
2172
+ * still poisons; its diagnostics are then committed as before. */
2173
+ lowerUnitDegrading<T>(lower: () => T): T | null;
2174
+ /** Localized failure's lenient mapping (stage L3, push-down): the type
2175
+ * mapped with each failing component as the checked dynamic, so a record
2176
+ * keeps its static members, an array of records its records, and a
2177
+ * function its arity. The whole slot is the checked dynamic when even
2178
+ * that shape does not map. Throwaway context: nothing memoizes. */
2179
+ lenientType(type: ts.Type): IrType;
2180
+ /** Degrades a type for a commit point: its lenient (pushed-down) form
2181
+ * first; a type already degraded that still fails falls back to the
2182
+ * whole-slot checked dynamic. False when nothing is left to degrade. */
2183
+ private degradeType;
2184
+ /** The IR type of a type's canonical form (canon-map.ts), or null when
2185
+ * the form is irreducible, unbound, only the checked dynamic, or holds a
2186
+ * union that mapped to the checked dynamic (such a slot is dynamic in
2187
+ * part, so it degrades like any other). Runs only at localized failure's
2188
+ * commit points, so a program that compiles today never consults it. */
2189
+ canonicalType(type: ts.Type): IrType | null;
2190
+ /** The degraded type of `id` maps exactly (canonical form): its slots
2191
+ * are static, not dynamic. */
2192
+ isCanonicalDegraded(id: number): boolean;
2193
+ /** Some degraded type kept a pushed-down (partial) shape, or one was
2194
+ * mapped before a retry widened it: the IR lowered before the retry keeps
2195
+ * that shape. */
2196
+ hasPartialDegradedTypes(): boolean;
2197
+ /** Runs a unit a commit point may retry, recording the pushed-down
2198
+ * types it maps; the frame's hits also count for the enclosing unit. */
2199
+ withPartialHits<T>(hits: Set<number>, run: () => T): T;
2200
+ /** Push-down is a refinement, never a new failure: a unit that still
2201
+ * fails after mapping pushed-down types falls back to the whole-slot
2202
+ * checked dynamic for them. True when some type widened (retry). */
2203
+ widenPartials(hits: ReadonlySet<number>): boolean;
2204
+ /** Records a dynamic slot whose unit lowered with it (one per site). */
2205
+ noteDynamicSlot(slot: DynamicSlot): void;
2206
+ /** The SC1090 refusal of checked-dynamic class fields in TypeScript
2207
+ * (classFieldStoresDyn): a policy fence, not a missing representation.
2208
+ * A flush retry lifts it (liftDynFieldPolicy), so a reached class with
2209
+ * an 'any' field registers. */
2210
+ dynFieldPolicyFence(node: ts.Node, feature: string): never;
1776
2211
  badType(node: ts.Node, type: ts.Type): never;
1777
2212
  /** The lib fence (SC2020): a reached use of standard-library surface
1778
2213
  * nothing lowers. Poisons the statement like every other rejection.
1779
2214
  * `sym`, when given, picks the wording: surface declared only by the
1780
2215
  * adopted @types/node is blamed at @types/node. */
1781
2216
  noLowering(surface: string, node: ts.Node, hint?: string, sym?: ts.Symbol | null, reason?: string): never;
2217
+ /** The declaration-side refusal of a stdlib-global snapshot read as a
2218
+ * VALUE (stdlibGlobalAliasDecl): report once, at the declaration's name,
2219
+ * naming the type the program asked the compiler to hold when it has a
2220
+ * short spelling. */
2221
+ reportStdlibSnapshot(symbol: ts.Symbol): void;
1782
2222
  stdlibMemberFence(access: ts.PropertyAccessExpression): void;
1783
2223
  fenceStaticResponseMember(access: ts.PropertyAccessExpression | ts.ElementAccessExpression, use: "read" | "call"): IrExpr | null;
1784
2224
  fenceUnsupportedFetchConstructorMember(access: ts.PropertyAccessExpression | ts.ElementAccessExpression): IrExpr | null;
@@ -1873,6 +2313,20 @@ export declare class Lowerer {
1873
2313
  * over literal arguments). Inert outside generic function and class
1874
2314
  * instantiation. */
1875
2315
  readonly typeParamTsResolver: (t: ts.Type) => ts.Type | null;
2316
+ /** The concrete instantiation of a generic alias reference (`Catalog<G,
2317
+ * P>`) the current call-keyed instance's signature declares
2318
+ * (boundAliasInstances), or null when its signature never instantiated
2319
+ * that reference. Inert outside generic function instantiation. */
2320
+ readonly boundAliasTsResolver: (t: ts.Type) => ts.Type | null;
2321
+ private structuredCloneReadCounts;
2322
+ /** How often the program reads `workerData` (every expression spelling it,
2323
+ * counted conservatively) and registers a `"message"` listener: a
2324
+ * structured clone read at one site only has no other holder
2325
+ * (narrowing.ts freshDynSource). Computed once per lowering pass. */
2326
+ structuredCloneReads(): {
2327
+ workerData: number;
2328
+ messageListeners: number;
2329
+ };
1876
2330
  irTypeOf(node: ts.Node): IrType;
1877
2331
  /** Exact-shape enforcement (SC2002). Records are monomorphic structs, so
1878
2332
  * everywhere a value flows into a typed slot (call arg, initializer,
@@ -1916,7 +2370,11 @@ export declare class Lowerer {
1916
2370
  unionRecordWidthHelper(fromId: string, target: IrType & {
1917
2371
  kind: "record";
1918
2372
  }, loc: SrcLoc): string;
2373
+ unionArrayWidthHelper(fromId: string, target: IrType & {
2374
+ kind: "array";
2375
+ }, loc: SrcLoc): string;
1919
2376
  recordWidthPlan(fromId: string, toId: string): Map<string, FieldLift> | null;
2377
+ recordOvfCapturePlan(fromId: string, toId: string): RecordOvfCapturePlan | null;
1920
2378
  describeRecordWidthBlocker(fromId: string, toId: string): string | null;
1921
2379
  recordWidthHelper(fromId: string, toId: string, loc: SrcLoc): string | null;
1922
2380
  tupleArrayWidthHelper(fromId: string, toT: IrType & {
@@ -1992,8 +2450,11 @@ export declare class Lowerer {
1992
2450
  * wrap implicitly (coerceToExpected), then the exact-type fence runs
1993
2451
  * (SC2002 for record shapes, SC2003 for unions). Every slot-directed
1994
2452
  * lowering goes through here (via lowerExprExpecting) or calls this
1995
- * directly when the expression was already lowered. */
2453
+ * directly when the expression was already lowered. In package files, a
2454
+ * check this coercion creates names the package declaration that types
2455
+ * the slot (decl-origin.ts). */
1996
2456
  coerceInto(node: ts.Node, expr: IrExpr, expected: IrType): IrExpr;
2457
+ private coerceIntoSlot;
1997
2458
  /** The unit an 'any' expression PROVABLY holds on every run, or null
1998
2459
  * when no proof exists. The node must be an identifier whose every
1999
2460
  * declaration is a plain,
@@ -2162,6 +2623,12 @@ export declare class Lowerer {
2162
2623
  * may follow) — reached-but-broken declarations report the same set of
2163
2624
  * diagnostics the eager collector historically produced. */
2164
2625
  flushDeferred(symbol: ts.Symbol): void;
2626
+ /** A statement's lowering used a declaration: if that declaration was
2627
+ * rejected, the statement's own failure (if any) is its cascade. */
2628
+ touchRejected(symbol: ts.Symbol): void;
2629
+ /** Records a declaration whose deferred diagnostics reached the build:
2630
+ * its failure group, on the group's diagnostics too. */
2631
+ private noteRejected;
2165
2632
  /** flushDeferred without the collection-pass guard: for declarations
2166
2633
  * whose diagnostics must report eagerly (class statements with
2167
2634
  * declaration-time code, extended bases — collectClassShapeDeferring). */
@@ -2170,7 +2637,29 @@ export declare class Lowerer {
2170
2637
  * diagnostic is reported, so it leaves the declaration's deferred list
2171
2638
  * (the declaration counts as flushed for the coverage remainder). */
2172
2639
  private commitFlush;
2173
- flushDeferredClass(className: string): void;
2640
+ /** Flushes a deferred class known by its IR name, and answers the class
2641
+ * when the flush registered it (retryDeferred). */
2642
+ flushDeferredClass(className: string): ClassInfo | undefined;
2643
+ /** Localized failure's declaration commit point (design §3.3): a
2644
+ * reference is flushing a deferred declaration into the build. When
2645
+ * every deferred diagnostic is a degradable type failure at one of the
2646
+ * declaration's slots, the failing types degrade and the collection
2647
+ * runs again (up to MAX_DECLARATION_RETRIES rounds, each degrading the
2648
+ * types the previous round still failed on). On success the
2649
+ * declaration registers, each degraded slot is an SC6104, and nothing
2650
+ * reports. Otherwise the last round's diagnostics stay deferred for the
2651
+ * caller to commit. */
2652
+ private retryDeferred;
2653
+ private retryDeferredRounds;
2654
+ private retryDegraded;
2655
+ /** A deferred class with static field initializers is reached where its
2656
+ * statement evaluates: Node runs the initializers there, referenced or
2657
+ * not. Its file's %init calls this at that place, which retries the class
2658
+ * as a flush would, so the initializers lower in place. A failed retry
2659
+ * reports nothing and leaves the class deferred as it was, and from here
2660
+ * on no flush registers it (staticInitsPassed): it reports instead.
2661
+ * Returns whether the class has registered. */
2662
+ retryDeferredAtDeclaration(symbol: ts.Symbol): boolean;
2174
2663
  collectSignature(decl: ts.FunctionDeclaration): void;
2175
2664
  collectSignatureInner(decl: ts.FunctionDeclaration): void;
2176
2665
  collectGenericSignature(decl: ts.FunctionDeclaration): void;
@@ -2203,6 +2692,11 @@ export declare class Lowerer {
2203
2692
  ordinal: number;
2204
2693
  }): void;
2205
2694
  lowerClassExpressionInfo(expr: ts.ClassLikeDeclaration): ClassInfo;
2695
+ /** Batch-prefetches the symbols of every runtime identifier of the
2696
+ * program's files. Collection's early-binding scan and the runtime-
2697
+ * optional analysis look them up across every body, reached or not;
2698
+ * one batch answers both, instead of one request per identifier. */
2699
+ private prefetchProgramSymbols;
2206
2700
  /** Depth of the whole-program analyses that query types across every
2207
2701
  * file before reachability is known (speculativeTypeQueries). */
2208
2702
  private speculativeTypeQueryDepth;
@@ -2263,6 +2757,9 @@ export declare class Lowerer {
2263
2757
  * bodies as worklist units (the units map is otherwise built before
2264
2758
  * lowering starts). Null in the emit pass. */
2265
2759
  onExprClassCollected: ((info: ClassInfo) => void) | null;
2760
+ /** emitReachable's unit registration for a declaration retryDeferred
2761
+ * registered after collection. */
2762
+ onDeclarationRegistered: ((decl: ts.Node) => void) | null;
2266
2763
  /** Mixin functions (`(Base: T) => class extends Base {…}`) by their
2267
2764
  * function-like node: recognized shape, or null for checked
2268
2765
  * non-qualifiers (lower-mixins.ts). */
@@ -2400,7 +2897,7 @@ export declare class Lowerer {
2400
2897
  resolveKey(symbol: ts.Symbol | undefined, blame?: ts.Node): IrLocal | null;
2401
2898
  isSelfReference(ident: ts.Identifier): boolean;
2402
2899
  lowerStmts(stmts: readonly ts.Statement[]): IrStmt[];
2403
- noteBlockedBindings(stmt: ts.Statement): void;
2900
+ noteBlockedBindings(stmt: ts.Statement, diags?: readonly ScrDiagnostic[]): void;
2404
2901
  isBlockedBinding(symbol: ts.Symbol | null): boolean;
2405
2902
  /** The cascade rejection: an honest "inherits its declaration's blocker"
2406
2903
  * diagnostic (SC2004) when the symbol is a known-blocked binding, the
@@ -2606,6 +3103,13 @@ export declare class Lowerer {
2606
3103
  member: string;
2607
3104
  }, loc: SrcLoc): IrExpr | null;
2608
3105
  lowerNativeCallableValue(fn: BuiltinModuleFn, display: string, loc: SrcLoc): IrExpr | null;
3106
+ /** The name and length a builtin function's adapter boxes under: the ones
3107
+ * Node's function carries (`[Function: randomUUID]`). Empty for any other
3108
+ * value. */
3109
+ builtinFunctionIdentity(expr: IrExpr): {
3110
+ fnName?: string;
3111
+ fnLength?: number;
3112
+ };
2609
3113
  isBuiltinCallableValue(expr: IrExpr): boolean;
2610
3114
  lowerBuiltinModuleCall(expr: ts.CallExpression, bi: {
2611
3115
  module: string;