@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
package/dist/index.js CHANGED
@@ -1,7 +1,13 @@
1
+ import { createRequire } from "node:module";
2
+ import { setShapeOverlayMemoDir, shapeOverlayEnabled } from "./frontend/shape-inference/index.js";
3
+ import { nodeFrontendServices } from "./frontend/services-node.js";
4
+ import { runTypePatchCommand, } from "./frontend/type-patches/command.js";
1
5
  import { optimizationField } from "./backend/optimization.js";
2
6
  import { targetCpuField, targetCpuTargetRefusal } from "./backend/target-cpu.js";
3
7
  import { compilationTiming } from "./timing.js";
4
8
  import { prepareExecutableModule } from "./executable/prepare.js";
9
+ import { nodeIslandOptionsKey } from "./node-islands/policy.js";
10
+ import { setIslandResolver } from "./node-islands/resolve.js";
5
11
  import { prepareLibrary, libraryLocalizeSymbols, libraryWasmExports, libraryWasmRefusal, } from "./library/prepare.js";
6
12
  import { analyzeWithFrontend } from "./frontend/analysis.js";
7
13
  import { checkerCacheIdentity } from "./frontend/ts7/checker-backend.js";
@@ -13,15 +19,17 @@ import { llvmRefusalDiag, targetRefusalDiag } from "./backend/target-diagnostics
13
19
  import { compilePackedLibrary } from "./backend/library-pack.js";
14
20
  import { node24FetchCompatProfile } from "./compat/fetch-profile.js";
15
21
  import { libFnSignatures } from "./ir/builtin-signatures.js";
22
+ import { parseFunctionLayout } from "./backend/llvm/function-layout.js";
16
23
  import { InternalCompilerError } from "./errors.js";
17
24
  import { frontendProcessExecArgv } from "./frontend-process-args.js";
18
25
  import { spawn } from "node:child_process";
19
26
  import { createHash } from "node:crypto";
20
- import { existsSync } from "node:fs";
27
+ import { existsSync, readFileSync } from "node:fs";
21
28
  import { copyFile, mkdir, mkdtemp, readFile, rename, rm, writeFile } from "node:fs/promises";
22
29
  import { tmpdir } from "node:os";
23
30
  import { basename, dirname, join, resolve } from "node:path";
24
31
  import { fileURLToPath } from "node:url";
32
+ import { gunzipSync } from "node:zlib";
25
33
  import { clearCcCaches, configuredTargetPlatform, } from "./backend/native-toolchain.js";
26
34
  import { buildCacheRoot, prepareBuildCacheRoot, pruneBuildCache } from "./backend/build-cache.js";
27
35
  import { CcCompileError, compileExternalC, compileExternalCLibrary, executableNativeEnvironmentFingerprint, mobileLibraryTarget, mobileTargetRefusal, resolveCc, } from "./backend/external-c.js";
@@ -30,16 +38,19 @@ import { inlineRcOption } from "./backend/llvm/shapes.js";
30
38
  import { emitNativeArtifact, isLlvmFile, llvmInputBytes, NativeCodegenError, writeLlvmSource, } from "./backend/native-codegen.js";
31
39
  import { nativePartitionPaths, nativeProgramPartitions } from "./backend/native-codegen-core.js";
32
40
  import { privateSiblingPath } from "./backend/build-cache.js";
33
- import { nativeCodegenTarget, nativeCodegenTargetRefusal } from "./backend/targets.js";
41
+ import { nativeCodegenTarget, nativeCodegenTargetRefusal, staticLinkRefusal, } from "./backend/targets.js";
34
42
  import { windowsSubsystemLinkerArgs } from "./backend/targets.js";
35
43
  import { createNativeLinkInfo } from "./backend/native-link-info.js";
36
44
  import { RuntimePackError } from "./backend/runtime-pack.js";
37
45
  import { createNativeLinkPlan } from "./backend/link-plan.js";
38
- import { nativeProfileKey, nativeProfileRefusal, } from "./backend/native-profile.js";
46
+ import { nativeProfileKey, nativeProfileLayout, nativeProfileRefusal, profileBlocksPath, profileHasContextCounts, recordProfileBlocksPath, } from "./backend/native-profile.js";
39
47
  import { executableLinkerEnvironmentFingerprint, linkNativeExecutable, platformLinkerSupportsPersistentCache, resolvePlatformLinker, } from "./backend/linker.js";
40
48
  import { splitLlvmLibraryProgram, splitLlvmProgram, splitLlvmProgramFile, } from "./backend/llvm/split.js";
41
49
  import { emitLibraryIdentityLines, replaceLibraryIdentity, stripLibraryIdentity, } from "./backend/library-identity-markers.js";
42
- import { ffiNativeBuildDiag, iceDiag, nativeCodegenDiag, } from "./diagnostics/diagnostic.js";
50
+ import { ffiNativeBuildDiag, iceDiag, nativeCodegenDiag, nodeIslandNodeDiag, nodeIslandModuleDiag, isTypePatchCode, } from "./diagnostics/diagnostic.js";
51
+ import { libnodeCacheKey, libnodeProbePack, libnodeRecord } from "./node-islands/libnode.js";
52
+ import { placeNodeIslandModules, readNodeIslandModules } from "./node-islands/modules.js";
53
+ import { finalizeDeferredIslands } from "./node-islands/snapshot.js";
43
54
  import { loadLibraryProfile } from "./library/library-profile.js";
44
55
  import { clearFenceEvalCaches, decorateLibraryRefusals } from "./library/fence-eval.js";
45
56
  import { canonicalModuleGraph, clearSidecarCaches, compilerReleaseVersion, libraryIdentityHashes, updateSidecarIdentity, } from "./library/sidecar.js";
@@ -56,6 +67,8 @@ import { clearResolveCaches } from "./frontend/resolve.js";
56
67
  import { loadFfiProfile } from "./ffi/ffi-manifest.js";
57
68
  import { executableLinkFeatures } from "./backend/executable-features.js";
58
69
  import { youngNurseryRequested } from "./backend/young-nursery.js";
70
+ import { heapCensusRequested } from "./backend/llvm/heap-census.js";
71
+ import { representationReportPath } from "./backend/llvm/repr-report.js";
59
72
  import { FrontendInputTracker, trackedReadFile, } from "./frontend/input-tracker.js";
60
73
  import { libraryFrontendImplementationFingerprint, publishEarlyLibraryCache, readEarlyLibraryCache, readSemanticLibraryCache, } from "./library/library-cache.js";
61
74
  import { hasEarlyExecutableNativeBuild, publishEarlyExecutableCache, publishEarlyExecutableRoute, readEarlyExecutableCache, recordEarlyExecutableNativeBuild, } from "./executable/executable-cache.js";
@@ -67,6 +80,10 @@ export { InternalCompilerError } from "./errors.js";
67
80
  export { compileExternalC as compileC, compileExternalC, runtimeSrcDir, } from "./backend/external-c.js";
68
81
  export { warmNativeCaches } from "./backend/warm-cache.js";
69
82
  export { mergeNativeProfiles as mergeProfiles } from "./backend/native-codegen.js";
83
+ /** `scriptc types patch|list` with the Node frontend's parser. */
84
+ export async function typePatches(request) {
85
+ return runTypePatchCommand(request, (path, text, kind) => nodeFrontendServices().parse(path, text, kind));
86
+ }
70
87
  export { collectGarbageUnderHeapPressure } from "./heap-collection.js";
71
88
  export { ANDROID_MIN_API, IPHONEOS_MIN_VERSION, isAndroidTarget, isIosTarget, isMobileTarget, mobileLibraryTarget, mobileTargetRefusal, } from "./backend/external-c.js";
72
89
  export { emitLlvmModule } from "./backend/llvm/emitter.js";
@@ -147,6 +164,9 @@ export async function analyzeCached(entryPath, opts = {}) {
147
164
  }
148
165
  return result;
149
166
  }
167
+ // Island code resolves through Node (node-islands/resolve.ts; the
168
+ // self-hosted compiler builds no islands).
169
+ setIslandResolver((fromFile, spec) => createRequire(fromFile).resolve(spec));
150
170
  const nodeFrontend = (entry, npmStatic, externalTypes, libraryNpmStatic, options) => runFrontend(entry, loadProgram, npmStatic, externalTypes, libraryNpmStatic, options);
151
171
  /** The checker's part of the executable cache key (`checkerCacheIdentity`), as the CLI's startup route computes it. */
152
172
  function checkerField() {
@@ -162,6 +182,11 @@ function clearCompileSessionCaches() {
162
182
  }
163
183
  export async function compile(entryPath, opts) {
164
184
  clearCompileSessionCaches();
185
+ // `shapeOverlay` reaches the frontend (and its child process) through
186
+ // the environment the overlay reads.
187
+ const overlayEnv = process.env["SCRIPTC_SHAPE_OVERLAY"];
188
+ if (opts.shapeOverlay !== undefined)
189
+ process.env["SCRIPTC_SHAPE_OVERLAY"] = opts.shapeOverlay ? "1" : "0";
165
190
  const frontendInputs = new FrontendInputTracker();
166
191
  const warnings = { warnings: [], sourceTexts: null };
167
192
  // compileTracked starts it for a build with no earlier build of the same invocation.
@@ -173,14 +198,43 @@ export async function compile(entryPath, opts) {
173
198
  finally {
174
199
  setLibDiagnosticsStore(null);
175
200
  frontendProcess?.release();
201
+ if (opts.shapeOverlay !== undefined) {
202
+ if (overlayEnv === undefined)
203
+ delete process.env["SCRIPTC_SHAPE_OVERLAY"];
204
+ else
205
+ process.env["SCRIPTC_SHAPE_OVERLAY"] = overlayEnv;
206
+ }
176
207
  }
177
208
  }
209
+ /** The package.json texts type patch warnings point into, re-read for a
210
+ * cache hit's code frames (performance warnings need none). */
211
+ function cachedWarningSources(warnings) {
212
+ const texts = new Map();
213
+ for (const w of warnings) {
214
+ if (!isTypePatchCode(w.code) || texts.has(w.loc.file))
215
+ continue;
216
+ try {
217
+ texts.set(w.loc.file, readFileSync(w.loc.file, "utf8"));
218
+ }
219
+ catch {
220
+ // The frame is omitted; the message stands alone.
221
+ }
222
+ }
223
+ return texts;
224
+ }
178
225
  /** The build's performance warnings (SC61xx), stored with its cache entry
179
226
  * so a cache hit repeats them. */
180
227
  function performanceWarnings(sink) {
181
- const performance = (sink?.warnings ?? []).filter((d) => isPerformanceCode(d.code));
228
+ // Type patch warnings (SC8030–SC8033) describe the same unchanged inputs,
229
+ // so a hit repeats them too.
230
+ const performance = (sink?.warnings ?? []).filter((d) => isPerformanceCode(d.code) || isTypePatchCode(d.code));
182
231
  return performance.length === 0 ? {} : { performance };
183
232
  }
233
+ /** The profile match of a --profile-use build's program object, for its
234
+ * artifact and its executable cache entry, which a cache hit reports again. */
235
+ function profileMatchField(object) {
236
+ return object?.profileMatch === undefined ? {} : { profileMatch: object.profileMatch };
237
+ }
184
238
  function withCompileWarnings(result, sink) {
185
239
  if (!result.ok || sink.warnings.length === 0)
186
240
  return result;
@@ -204,17 +258,17 @@ function assertCompileResultCompatibility(result) {
204
258
  }
205
259
  }
206
260
  void assertCompileResultCompatibility;
207
- function executableNativeFeatures(mod, backend, optimization) {
261
+ function executableNativeFeatures(mod, backend, optimization, largePages) {
208
262
  return {
209
263
  backend,
210
264
  ...optimizationField(optimization),
211
- ...executableLinkFeatures(mod),
265
+ ...executableLinkFeatures(mod, largePages),
212
266
  };
213
267
  }
214
- async function compileExecutableNative(features, llvmPath, outPath, sanitize, ffi, windowsSubsystem, strip, programSplit = null, programObjectDependencies = [], onArtifactReady, programPartitions = [], profileGenerate = false,
268
+ async function compileExecutableNative(features, llvmPath, outPath, sanitize, ffi, windowsSubsystem, strip, staticLink = false, programSplit = null, programObjectDependencies = [], onArtifactReady, programPartitions = [], profileGenerate = false,
215
269
  /** The kept LLVM text's shared name, when `llvmPath` is the build's private copy of it
216
270
  * (BuildSources): the spelling clang sees and native cache keys name. */
217
- llvmVisiblePath) {
271
+ llvmVisiblePath, profileLayout = false, hugeText = true) {
218
272
  const programIsObject = /\.(?:o|obj)$/.test(llvmPath);
219
273
  const runtimePackTarget = programIsObject && !sanitize ? nativeCodegenTarget() : null;
220
274
  if (runtimePackTarget !== null) {
@@ -227,8 +281,11 @@ llvmVisiblePath) {
227
281
  ffi,
228
282
  optimization: features.optimization ?? "release",
229
283
  ...(strip ? { strip: true } : {}),
284
+ ...(staticLink ? { staticLink: true } : {}),
230
285
  ...(windowsSubsystem === undefined ? {} : { windowsSubsystem }),
231
286
  ...(profileGenerate ? { profileGenerate: true } : {}),
287
+ ...(profileLayout ? { profileLayout: true } : {}),
288
+ ...(hugeText ? {} : { hugeText: false }),
232
289
  programObjectDependencies,
233
290
  });
234
291
  const cacheableLinker = onArtifactReady !== undefined &&
@@ -250,6 +307,8 @@ llvmVisiblePath) {
250
307
  : null);
251
308
  if (programIsObject)
252
309
  throw new InternalCompilerError("program objects must link against a precompiled runtime pack");
310
+ if (staticLink)
311
+ throw new InternalCompilerError("--static executables link against a precompiled runtime pack");
253
312
  await compileExternalC({
254
313
  ...(llvmVisiblePath === undefined || llvmVisiblePath === llvmPath
255
314
  ? { cPath: llvmPath }
@@ -275,7 +334,9 @@ llvmVisiblePath) {
275
334
  ...(features.wasm ? { wasm: true } : {}),
276
335
  ...(features.warningReplace ? { warningReplace: true } : {}),
277
336
  ...(features.stdioExtended ? { stdioExtended: true } : {}),
337
+ ...(features.nodeIsland ? { nodeIsland: true } : {}),
278
338
  ...(features.moduleNamespace ? { moduleNamespace: true } : {}),
339
+ ...(features.moduleNamespaceDyn ? { moduleNamespaceDyn: true } : {}),
279
340
  zlib: features.zlib,
280
341
  ...(features.brotli ? { brotli: true } : {}),
281
342
  assert: features.assert,
@@ -286,15 +347,24 @@ llvmVisiblePath) {
286
347
  ...(features.dynTier ? { dynTier: true } : {}),
287
348
  ...(features.streamDyn ? { streamDyn: true } : {}),
288
349
  ...(features.handleProps ? { handleProps: true } : {}),
350
+ ...(features.childLifecycle ? { childLifecycle: true } : {}),
289
351
  ...(features.declAdopt ? { declAdopt: true } : {}),
352
+ ...(features.typeOrigins ? { typeOrigins: true } : {}),
290
353
  ...(features.dynForAwait ? { dynForAwait: true } : {}),
291
354
  ...(features.eventsOnceSignal ? { eventsOnceSignal: true } : {}),
355
+ ...(features.mime ? { mime: true } : {}),
356
+ ...(features.largePages ? { largePages: true } : {}),
357
+ ...(features.webStreams ? { webStreams: true } : {}),
358
+ ...(features.abortSignal ? { abortSignal: true } : {}),
359
+ ...(features.utilTiming ? { utilTiming: true } : {}),
292
360
  ...(features.dynBuffer ? { dynBuffer: true } : {}),
293
361
  ...(features.builtinValues ? { builtinValues: true } : {}),
362
+ ...(features.computedRequire ? { computedRequire: true } : {}),
294
363
  events: features.events,
295
364
  emitter: features.emitter,
296
365
  symbol: features.symbol,
297
366
  bigint: features.bigint,
367
+ ...(features.bigstats ? { bigstats: true } : {}),
298
368
  searchParams: features.searchParams,
299
369
  qs: features.qs,
300
370
  utilPromisify: features.utilPromisify,
@@ -344,7 +414,8 @@ async function emitNativeProgramObject(entryPath, opts, llvm, profile) {
344
414
  // The validated program-object artifact is a single object by contract.
345
415
  const target = nativeCodegenTarget();
346
416
  const llvmBytes = llvmInputBytes(llvm);
347
- const partitions = opts.nativeProgramObject === true || target === null ? 1 : nativeProgramPartitions(llvmBytes);
417
+ const single = opts.nativeProgramObject === true || target === null;
418
+ const partitions = single ? 1 : nativeProgramPartitions(llvmBytes, opts.optimization === "dev");
348
419
  try {
349
420
  const artifact = await emitNativeArtifact({
350
421
  outputPath: linkPath,
@@ -372,13 +443,12 @@ async function emitNativeProgramObject(entryPath, opts, llvm, profile) {
372
443
  async function removeNativeProgramObject(linkPath, partitionPaths) {
373
444
  await Promise.all([linkPath, ...partitionPaths].map((path) => rm(path, { force: true }).catch(() => undefined)));
374
445
  }
375
- /** The request's profile. An indexed profile is read here so every cache keys
376
- * its bytes. */
446
+ /** The request's profile. An indexed profile and the block-count file beside
447
+ * it are read here so every cache keys their bytes. */
377
448
  async function readNativeProfile(opts) {
378
- if (opts.profileGenerate !== undefined)
379
- return { generate: opts.profileGenerate };
449
+ const generate = opts.profileGenerate;
380
450
  if (opts.profileUse === undefined)
381
- return undefined;
451
+ return generate === undefined ? undefined : { generate };
382
452
  const path = resolve(opts.profileUse);
383
453
  let bytes;
384
454
  try {
@@ -387,7 +457,53 @@ async function readNativeProfile(opts) {
387
457
  catch (err) {
388
458
  throw new Error(`cannot read --profile-use file ${path}: ${err instanceof Error ? err.message : String(err)}`);
389
459
  }
390
- return { use: { path, digest: createHash("sha256").update(bytes).digest("hex") } };
460
+ const blocksPath = profileBlocksPath(path);
461
+ const blockBytes = existsSync(blocksPath) ? await readFile(blocksPath) : null;
462
+ const use = {
463
+ path,
464
+ digest: createHash("sha256").update(bytes).digest("hex"),
465
+ contextSensitive: profileHasContextCounts(bytes),
466
+ ...(blockBytes === null
467
+ ? {}
468
+ : {
469
+ blocks: {
470
+ path: blocksPath,
471
+ digest: createHash("sha256").update(blockBytes).digest("hex"),
472
+ },
473
+ }),
474
+ };
475
+ const recordBlocks = recordProfileBlocksPath(process.env);
476
+ return {
477
+ ...(generate === undefined ? {} : { generate }),
478
+ use,
479
+ ...(recordBlocks === undefined ? {} : { recordBlocks: resolve(recordBlocks) }),
480
+ };
481
+ }
482
+ /** The digest of the request's function layout file, which keys the
483
+ * executable cache: the layout changes the code's order, not its frontend
484
+ * input. */
485
+ async function functionLayoutKey(opts) {
486
+ if (opts.functionLayout === undefined)
487
+ return undefined;
488
+ const path = resolve(opts.functionLayout);
489
+ let bytes;
490
+ try {
491
+ bytes = await readFile(path);
492
+ }
493
+ catch (err) {
494
+ throw new Error(`cannot read function layout ${path}: ${err instanceof Error ? err.message : String(err)}`);
495
+ }
496
+ return createHash("sha256").update(bytes).digest("hex");
497
+ }
498
+ /** The request's function layout. */
499
+ async function readFunctionLayout(opts) {
500
+ if (opts.functionLayout === undefined)
501
+ return {};
502
+ const path = resolve(opts.functionLayout);
503
+ const bytes = await readFile(path);
504
+ return {
505
+ functionLayout: parseFunctionLayout((path.endsWith(".gz") ? gunzipSync(bytes) : bytes).toString("utf8")),
506
+ };
391
507
  }
392
508
  function usesPrecompiledRuntimePack(opts, backend) {
393
509
  if (backend !== "llvm" || opts.sanitize === true)
@@ -405,6 +521,52 @@ async function prepareExecutableInput(entryPath, opts, ffi, buildPlatform, timin
405
521
  if (!prepared.ok)
406
522
  return prepared;
407
523
  const { mod, sourceTexts } = prepared;
524
+ // Calls into Node record the libnode pack an executable loads at run
525
+ // time. IR, LLVM and object outputs need no pack: their record stays
526
+ // empty, and SCRIPTC_LIBNODE supplies the pack when such a program runs.
527
+ if (mod.nodeIsland !== undefined) {
528
+ if (!moduleRuntimeFeatures(mod).nodeIsland) {
529
+ delete mod.nodeIsland;
530
+ }
531
+ else if (outputKind === "exe") {
532
+ const recorded = libnodeRecord(opts.libnode, opts.outPath, process.env, dirname(entryPath));
533
+ if (typeof recorded === "string")
534
+ return { ok: false, diagnostics: [nodeIslandNodeDiag(recorded, entryPath)], sourceTexts };
535
+ mod.nodeIsland = { ...mod.nodeIsland, ...recorded };
536
+ // Deferred island modules (scope-B NI-7): probed in the same pack.
537
+ finalizeDeferredIslands(mod, entryPath, libnodeProbePack(opts.libnode, process.env, dirname(entryPath)));
538
+ }
539
+ else {
540
+ // IR, LLVM and object outputs have no pack to probe with: eager.
541
+ finalizeDeferredIslands(mod, entryPath, null);
542
+ }
543
+ }
544
+ // The island module tree ships with the program: beside the executable
545
+ // with --libnode=beside, else inside it (node-islands/modules.ts).
546
+ let nodeIslandModuleData;
547
+ const islandModules = mod.nodeIsland?.modules;
548
+ if (islandModules !== undefined && outputKind !== "ir") {
549
+ if (outputKind === "exe" && opts.libnode === "beside") {
550
+ const problem = placeNodeIslandModules(islandModules, `${opts.outPath}.libnode/modules`);
551
+ if (problem !== null)
552
+ return {
553
+ ok: false,
554
+ diagnostics: [nodeIslandModuleDiag(problem, { file: entryPath, start: 0, end: 0 })],
555
+ sourceTexts,
556
+ };
557
+ islandModules.location = `$ORIGIN/${basename(opts.outPath)}.libnode/modules`;
558
+ }
559
+ else {
560
+ const data = readNodeIslandModules(islandModules);
561
+ if (typeof data === "string")
562
+ return {
563
+ ok: false,
564
+ diagnostics: [nodeIslandModuleDiag(data, { file: entryPath, start: 0, end: 0 })],
565
+ sourceTexts,
566
+ };
567
+ nodeIslandModuleData = data;
568
+ }
569
+ }
408
570
  if (warningSink !== undefined && prepared.warnings.length > 0) {
409
571
  warningSink.warnings = prepared.warnings;
410
572
  warningSink.sourceTexts = sourceTexts;
@@ -426,16 +588,20 @@ async function prepareExecutableInput(entryPath, opts, ffi, buildPlatform, timin
426
588
  llvm = emitLlvmModuleSource(mod, {
427
589
  targetTriple: process.env["SCRIPTC_TARGET"] ?? "",
428
590
  ...debugOptions,
591
+ ...(await readFunctionLayout(opts)),
429
592
  pointerBits: buildPlatform === "wasi" ? 32 : 64,
430
593
  wasi: buildPlatform === "wasi",
431
594
  runtimeAbiMarker: outputKind === "obj",
432
595
  // Textual output shows the code an executable gets; objects keep
433
596
  // the pending flag, since their link may not add an unwinder.
434
597
  unwindAbi: buildPlatform === "linux" && outputKind !== "obj",
598
+ ...(opts.exceptions === "rare" ? { rareExceptions: true } : {}),
435
599
  objectAudit: opts.sanitize === true,
600
+ sanitizeAttributes: opts.sanitize === true,
436
601
  lowRegion: lowRegionTarget(buildPlatform, opts.sanitize === true),
437
602
  ...(opts.sanitize === true ? { wasmBoundsChecks: true } : {}),
438
603
  ...inlineRcOption(opts.optimization, opts.sanitize === true),
604
+ ...(nodeIslandModuleData === undefined ? {} : { nodeIslandModuleData }),
439
605
  ...targetCpuField(opts.targetCpu),
440
606
  });
441
607
  }
@@ -482,7 +648,7 @@ async function prepareExecutableInput(entryPath, opts, ffi, buildPlatform, timin
482
648
  nativeLinkInfo: await createNativeLinkInfo({
483
649
  programObject: opts.outPath,
484
650
  target,
485
- features: executableNativeFeatures(mod, "llvm", opts.optimization ?? "release"),
651
+ features: executableNativeFeatures(mod, "llvm", opts.optimization ?? "release", opts.largePages === true),
486
652
  ffi,
487
653
  optimization: opts.optimization ?? "release",
488
654
  }),
@@ -502,16 +668,22 @@ async function prepareExecutableInput(entryPath, opts, ffi, buildPlatform, timin
502
668
  llvmSource = emitLlvmModuleSource(mod, {
503
669
  targetTriple: process.env["SCRIPTC_TARGET"] ?? "",
504
670
  ...debugOptions,
671
+ ...(await readFunctionLayout(opts)),
505
672
  pointerBits: buildPlatform === "wasi" ? 32 : 64,
506
673
  wasi: buildPlatform === "wasi",
507
674
  runtimeAbiMarker: useRuntimePack,
508
675
  unwindAbi: buildPlatform === "linux",
509
676
  objectAudit: opts.sanitize === true,
677
+ sanitizeAttributes: opts.sanitize === true,
510
678
  lowRegion: lowRegionTarget(buildPlatform, opts.sanitize === true),
679
+ timing,
511
680
  ...(opts.sanitize === true ? { wasmBoundsChecks: true } : {}),
512
681
  ...inlineRcOption(opts.optimization, opts.sanitize === true),
513
682
  ...(opts.detachedExit === true ? { detachedExit: true } : {}),
683
+ ...(nodeIslandModuleData === undefined ? {} : { nodeIslandModuleData }),
684
+ ...(opts.exceptions === "rare" ? { rareExceptions: true } : {}),
514
685
  ...targetCpuField(opts.targetCpu),
686
+ ...(opts.cpuDispatch === true ? { cpuDispatch: true } : {}),
515
687
  });
516
688
  }
517
689
  catch (err) {
@@ -529,7 +701,7 @@ async function prepareExecutableInput(entryPath, opts, ffi, buildPlatform, timin
529
701
  irSourcePath = privateSiblingPath(irPath, "ir");
530
702
  await writeTextParts(irSourcePath, serializeModuleParts(mod, compilerOwnedFileRoots()));
531
703
  }
532
- const nativeFeatures = executableNativeFeatures(mod, backend, opts.optimization ?? "release");
704
+ const nativeFeatures = executableNativeFeatures(mod, backend, opts.optimization ?? "release", opts.largePages === true);
533
705
  timing("link-features");
534
706
  const programSplit = !useRuntimePack &&
535
707
  backend === "llvm" &&
@@ -600,6 +772,14 @@ async function stageDriverBuildSources(sources) {
600
772
  * (`runFrontendProcess`). Node's heap keeps the pages a build's frontend used for the life of the
601
773
  * process, so running them in a process of their own leaves the native helper the memory they took.
602
774
  */
775
+ /** The shape overlay's memo directory for the current executable build
776
+ * (frontend/shape-inference/memo.ts): per compiler, in the build cache. */
777
+ let shapeOverlayMemo = null;
778
+ function shapeOverlayMemoDir(cacheRoot, implementation) {
779
+ return cacheRoot === null
780
+ ? null
781
+ : join(cacheRoot, "shape-overlay-v1", implementation.slice(0, 24));
782
+ }
603
783
  const frontendProcessEntry = fileURLToPath(new URL("./frontend-process.js", import.meta.url));
604
784
  /**
605
785
  * Whether `prepareExecutableInputInChild` may prepare this build: optimized executables, when the
@@ -681,6 +861,7 @@ async function prepareExecutableInputInChild(frontendProcess, entryPath, opts, f
681
861
  buildPlatform,
682
862
  timing: timingClock,
683
863
  provenance: provenanceSources(),
864
+ shapeOverlayMemo,
684
865
  };
685
866
  await writeFile(requestPath, JSON.stringify(request), { mode: 0o600 });
686
867
  const exitCode = await frontendProcess.run(requestPath, resultPath);
@@ -743,8 +924,13 @@ function configureLibDiagnostics(root) {
743
924
  }
744
925
  export async function runFrontendProcess(requestPath, resultPath) {
745
926
  const request = JSON.parse(await readFile(requestPath, "utf8"));
927
+ // The process started before the build's options were known.
928
+ if (request.opts.shapeOverlay !== undefined)
929
+ process.env["SCRIPTC_SHAPE_OVERLAY"] = request.opts.shapeOverlay ? "1" : "0";
746
930
  clearCompileSessionCaches();
747
931
  setProvenanceSources(request.provenance);
932
+ shapeOverlayMemo = request.shapeOverlayMemo;
933
+ setShapeOverlayMemoDir(request.shapeOverlayMemo);
748
934
  // The compile that started this process prepared the cache root.
749
935
  configureLibDiagnostics((request.opts.outputKind ?? "exe") === "exe" && provenanceSources() === null
750
936
  ? await prepareBuildCacheRoot(buildCacheRoot())
@@ -800,6 +986,8 @@ async function compileTracked(entryPath, opts, frontendInputs, warningSink, fron
800
986
  const timing = compilationTiming();
801
987
  const timingStart = Date.now();
802
988
  entryPath = resolve(entryPath);
989
+ shapeOverlayMemo = null;
990
+ setShapeOverlayMemoDir(null);
803
991
  const outputKind = opts.outputKind ?? "exe";
804
992
  if ((opts.backend !== undefined && opts.backend !== "llvm") ||
805
993
  !["ir", "llvm", "asm", "obj", "exe"].includes(outputKind)) {
@@ -838,6 +1026,24 @@ async function compileTracked(entryPath, opts, frontendInputs, warningSink, fron
838
1026
  sourceTexts: new Map(),
839
1027
  };
840
1028
  }
1029
+ if (opts.largePages === true && outputKind !== "exe") {
1030
+ return {
1031
+ ok: false,
1032
+ diagnostics: [
1033
+ nativeCodegenDiag("SC3002", "--large-pages is only supported for executable output", entryPath),
1034
+ ],
1035
+ sourceTexts: new Map(),
1036
+ };
1037
+ }
1038
+ if (opts.cpuDispatch === true && outputKind !== "exe") {
1039
+ return {
1040
+ ok: false,
1041
+ diagnostics: [
1042
+ nativeCodegenDiag("SC3002", "--cpu-dispatch is only supported for executable output", entryPath),
1043
+ ],
1044
+ sourceTexts: new Map(),
1045
+ };
1046
+ }
841
1047
  if (opts.nativeLinkInfo === true && outputKind !== "obj") {
842
1048
  return {
843
1049
  ok: false,
@@ -969,6 +1175,19 @@ async function compileTracked(entryPath, opts, frontendInputs, warningSink, fron
969
1175
  sourceTexts: new Map(),
970
1176
  };
971
1177
  }
1178
+ const staticRefusal = staticLinkRefusal({
1179
+ staticLink: opts.staticLink,
1180
+ outputKind,
1181
+ sanitize: opts.sanitize ?? false,
1182
+ target: nativeCodegenTarget(),
1183
+ });
1184
+ if (staticRefusal !== null) {
1185
+ return {
1186
+ ok: false,
1187
+ diagnostics: [nativeCodegenDiag("SC3002", staticRefusal, entryPath)],
1188
+ sourceTexts: new Map(),
1189
+ };
1190
+ }
972
1191
  try {
973
1192
  windowsSubsystemLinkerArgs(buildPlatform, opts.windowsSubsystem);
974
1193
  }
@@ -989,10 +1208,12 @@ async function compileTracked(entryPath, opts, frontendInputs, warningSink, fron
989
1208
  platform: buildPlatform,
990
1209
  });
991
1210
  let profile;
1211
+ let functionLayoutDigest;
992
1212
  try {
993
1213
  if (profileRefusal !== null)
994
1214
  throw new Error(profileRefusal);
995
1215
  profile = await readNativeProfile(opts);
1216
+ functionLayoutDigest = await functionLayoutKey(opts);
996
1217
  }
997
1218
  catch (err) {
998
1219
  return {
@@ -1003,7 +1224,8 @@ async function compileTracked(entryPath, opts, frontendInputs, warningSink, fron
1003
1224
  sourceTexts: new Map(),
1004
1225
  };
1005
1226
  }
1006
- const cacheRoot = outputKind === "exe" && provenanceSources() === null
1227
+ // A build that records block counts reuses no cached executable.
1228
+ const cacheRoot = outputKind === "exe" && provenanceSources() === null && profile?.recordBlocks === undefined
1007
1229
  ? await prepareBuildCacheRoot(buildCacheRoot())
1008
1230
  : null;
1009
1231
  configureLibDiagnostics(cacheRoot);
@@ -1019,13 +1241,27 @@ async function compileTracked(entryPath, opts, frontendInputs, warningSink, fron
1019
1241
  backend: "llvm",
1020
1242
  ...optimizationField(opts.optimization),
1021
1243
  ...(opts.strip ? { strip: true } : {}),
1244
+ ...(opts.staticLink === true ? { staticLink: true } : {}),
1022
1245
  ...(opts.windowsSubsystem === "gui" ? { windowsSubsystem: "gui" } : {}),
1023
1246
  ...(opts.detachedExit === true ? { detachedExit: true } : {}),
1247
+ // Calls into Node record the libnode pack; their entries record its
1248
+ // identity (node-islands/libnode.ts) and a hit requires it unchanged.
1249
+ libnodeIdentity: () => libnodeCacheKey(opts.libnode, process.env, dirname(entryPath)),
1250
+ ...(opts.largePages === true ? { largePages: true } : {}),
1251
+ ...(opts.hugeText === false ? { noHugeText: true } : {}),
1252
+ ...(opts.exceptions === "rare" ? { exceptions: "rare" } : {}),
1024
1253
  ...targetCpuField(opts.targetCpu),
1254
+ ...(opts.cpuDispatch === true ? { cpuDispatch: true } : {}),
1025
1255
  ...(profile === undefined ? {} : { profile: nativeProfileKey(profile) }),
1256
+ ...(functionLayoutDigest === undefined ? {} : { functionLayout: functionLayoutDigest }),
1026
1257
  ...checkerField(),
1027
1258
  ...(youngNurseryRequested() ? { youngNursery: true } : {}),
1259
+ ...(nodeIslandOptionsKey(opts.nodeIslands) !== ""
1260
+ ? { nodeIslands: nodeIslandOptionsKey(opts.nodeIslands) }
1261
+ : {}),
1262
+ ...(heapCensusRequested() ? { heapCensus: true } : {}),
1028
1263
  npmStatic: opts.npmStatic ?? null,
1264
+ ...(shapeOverlayEnabled() ? { shapeOverlay: true } : {}),
1029
1265
  ffiProfile: opts.ffiProfilePath === undefined || ffiProfileBytes === null
1030
1266
  ? null
1031
1267
  : { path: opts.ffiProfilePath, bytes: ffiProfileBytes },
@@ -1061,10 +1297,19 @@ async function compileTracked(entryPath, opts, frontendInputs, warningSink, fron
1061
1297
  implementation: implementation.digest,
1062
1298
  implementationDependencies: implementation.dependencies,
1063
1299
  };
1300
+ shapeOverlayMemo = shapeOverlayMemoDir(cacheRoot, implementation.digest);
1301
+ setShapeOverlayMemoDir(shapeOverlayMemo);
1064
1302
  }
1065
- const earlyHit = earlyCacheOptions === null
1303
+ // A cache hit emits no module, so it would write no representation report.
1304
+ const cachedHit = earlyCacheOptions === null || representationReportPath() !== null
1066
1305
  ? null
1067
1306
  : await readEarlyExecutableCache(cacheRoot, earlyCacheOptions);
1307
+ // A --libnode=beside build that calls into Node places its island modules
1308
+ // next to the executable from the lowered module, which a cache hit does
1309
+ // not have: such builds take the full path.
1310
+ const earlyHit = cachedHit !== null && cachedHit.native.nodeIsland === true && opts.libnode === "beside"
1311
+ ? null
1312
+ : cachedHit;
1068
1313
  if (earlyHit !== null) {
1069
1314
  timing("executable-cache-hit");
1070
1315
  if (earlyCacheOptions === null) {
@@ -1074,7 +1319,7 @@ async function compileTracked(entryPath, opts, frontendInputs, warningSink, fron
1074
1319
  // names is just as untyped as when it was built.
1075
1320
  if (warningSink !== undefined && earlyHit.performance !== undefined) {
1076
1321
  warningSink.warnings = earlyHit.performance;
1077
- warningSink.sourceTexts = new Map();
1322
+ warningSink.sourceTexts = cachedWarningSources(earlyHit.performance);
1078
1323
  }
1079
1324
  const executableCacheOptions = earlyCacheOptions;
1080
1325
  // Route/proof metadata is independently evictable. A full-compiler
@@ -1091,6 +1336,7 @@ async function compileTracked(entryPath, opts, frontendInputs, warningSink, fron
1091
1336
  path: opts.outPath,
1092
1337
  translationUnitPath: earlyHit.llvmPath,
1093
1338
  backend: earlyHit.native.backend,
1339
+ ...(earlyHit.profileMatch === undefined ? {} : { profileMatch: earlyHit.profileMatch }),
1094
1340
  },
1095
1341
  binaryPath: opts.outPath,
1096
1342
  llvmPath: earlyHit.llvmPath,
@@ -1142,7 +1388,7 @@ async function compileTracked(entryPath, opts, frontendInputs, warningSink, fron
1142
1388
  nativeSources = staged.sources;
1143
1389
  nativeInputPath = nativeSources.llvmSourcePath;
1144
1390
  }
1145
- await compileExecutableNative(earlyHit.native, nativeInputPath, opts.outPath, opts.sanitize ?? false, ffi, opts.windowsSubsystem, opts.strip, null, nativeProgramObject?.dependencies, opts.nativeProgramObject === true
1391
+ await compileExecutableNative(earlyHit.native, nativeInputPath, opts.outPath, opts.sanitize ?? false, ffi, opts.windowsSubsystem, opts.strip, opts.staticLink === true, null, nativeProgramObject?.dependencies, opts.nativeProgramObject === true
1146
1392
  ? undefined
1147
1393
  : async ({ dependencies }) => {
1148
1394
  await publishEarlyExecutableCache(cacheRoot, executableCacheOptions, {
@@ -1154,8 +1400,9 @@ async function compileTracked(entryPath, opts, frontendInputs, warningSink, fron
1154
1400
  executableRestored: true,
1155
1401
  nativeDependencies: dependencies,
1156
1402
  frontend: earlyHit.frontend,
1403
+ ...profileMatchField(nativeProgramObject),
1157
1404
  });
1158
- }, nativeProgramObject?.partitionPaths, profile?.generate !== undefined, hitSources.llvmPath);
1405
+ }, nativeProgramObject?.partitionPaths, profile?.generate !== undefined, hitSources.llvmPath, nativeProfileLayout(profile), opts.hugeText !== false);
1159
1406
  if (nativeProgramObject !== null && opts.nativeProgramObject === true) {
1160
1407
  await rename(nativeProgramObject.linkPath, nativeProgramObject.artifactPath);
1161
1408
  }
@@ -1177,6 +1424,13 @@ async function compileTracked(entryPath, opts, frontendInputs, warningSink, fron
1177
1424
  sourceTexts: new Map(),
1178
1425
  };
1179
1426
  }
1427
+ if (err instanceof NativeCodegenError) {
1428
+ return {
1429
+ ok: false,
1430
+ diagnostics: [nativeCodegenDiag(err.diagnosticCode, err.message, entryPath)],
1431
+ sourceTexts: new Map(),
1432
+ };
1433
+ }
1180
1434
  throw err;
1181
1435
  }
1182
1436
  finally {
@@ -1196,6 +1450,7 @@ async function compileTracked(entryPath, opts, frontendInputs, warningSink, fron
1196
1450
  path: opts.outPath,
1197
1451
  translationUnitPath: earlyHit.llvmPath,
1198
1452
  backend: earlyHit.native.backend,
1453
+ ...profileMatchField(nativeProgramObject),
1199
1454
  },
1200
1455
  binaryPath: opts.outPath,
1201
1456
  llvmPath: earlyHit.llvmPath,
@@ -1254,7 +1509,7 @@ async function compileTracked(entryPath, opts, frontendInputs, warningSink, fron
1254
1509
  stagedDir = staged.dir;
1255
1510
  ({ llvmSourcePath, irSourcePath } = staged.sources);
1256
1511
  }
1257
- await compileExecutableNative(nativeFeatures, nativeProgramObject?.linkPath ?? llvmSourcePath, opts.outPath, opts.sanitize ?? false, ffi, opts.windowsSubsystem, opts.strip, programSplit, nativeProgramObject?.dependencies, opts.nativeProgramObject === true
1512
+ await compileExecutableNative(nativeFeatures, nativeProgramObject?.linkPath ?? llvmSourcePath, opts.outPath, opts.sanitize ?? false, ffi, opts.windowsSubsystem, opts.strip, opts.staticLink === true, programSplit, nativeProgramObject?.dependencies, opts.nativeProgramObject === true
1258
1513
  ? undefined
1259
1514
  : async ({ dependencies }) => {
1260
1515
  await publishEarlyExecutableCache(cacheRoot, executableCacheOptions, {
@@ -1265,9 +1520,10 @@ async function compileTracked(entryPath, opts, frontendInputs, warningSink, fron
1265
1520
  frontend: frontendInputs.snapshot(),
1266
1521
  ...(irSourcePath === undefined ? {} : { irPath: irSourcePath }),
1267
1522
  ...performanceWarnings(warningSink),
1523
+ ...profileMatchField(nativeProgramObject),
1268
1524
  });
1269
1525
  publishedExecutable = true;
1270
- }, nativeProgramObject?.partitionPaths, profile?.generate !== undefined, llvmPath);
1526
+ }, nativeProgramObject?.partitionPaths, profile?.generate !== undefined, llvmPath, nativeProfileLayout(profile), opts.hugeText !== false);
1271
1527
  timing("native-link");
1272
1528
  if (nativeProgramObject !== null && opts.nativeProgramObject === true) {
1273
1529
  await rename(nativeProgramObject.linkPath, nativeProgramObject.artifactPath);
@@ -1280,6 +1536,7 @@ async function compileTracked(entryPath, opts, frontendInputs, warningSink, fron
1280
1536
  frontend: frontendInputs.snapshot(),
1281
1537
  ...(irSourcePath === undefined ? {} : { irPath: irSourcePath }),
1282
1538
  ...performanceWarnings(warningSink),
1539
+ ...profileMatchField(nativeProgramObject),
1283
1540
  }).catch(() => undefined);
1284
1541
  }
1285
1542
  }
@@ -1296,6 +1553,13 @@ async function compileTracked(entryPath, opts, frontendInputs, warningSink, fron
1296
1553
  sourceTexts,
1297
1554
  };
1298
1555
  }
1556
+ if (err instanceof NativeCodegenError) {
1557
+ return {
1558
+ ok: false,
1559
+ diagnostics: [nativeCodegenDiag(err.diagnosticCode, err.message, entryPath)],
1560
+ sourceTexts,
1561
+ };
1562
+ }
1299
1563
  throw err;
1300
1564
  }
1301
1565
  finally {
@@ -1309,7 +1573,6 @@ async function compileTracked(entryPath, opts, frontendInputs, warningSink, fron
1309
1573
  }
1310
1574
  await pruneBuildCache(cacheRoot);
1311
1575
  timing("complete");
1312
- const profileMatch = nativeProgramObject?.profileMatch;
1313
1576
  return {
1314
1577
  ok: true,
1315
1578
  artifact: {
@@ -1317,7 +1580,7 @@ async function compileTracked(entryPath, opts, frontendInputs, warningSink, fron
1317
1580
  path: opts.outPath,
1318
1581
  translationUnitPath: llvmPath,
1319
1582
  backend,
1320
- ...(profileMatch === undefined ? {} : { profileMatch }),
1583
+ ...profileMatchField(nativeProgramObject),
1321
1584
  },
1322
1585
  binaryPath: opts.outPath,
1323
1586
  llvmPath,
@@ -1685,6 +1948,8 @@ async function compileLibraryTracked(opts, frontendInputs) {
1685
1948
  pointerBits: buildPlatform === "wasi" ? 32 : 64,
1686
1949
  wasi: buildPlatform === "wasi",
1687
1950
  objectAudit: opts.sanitize === true,
1951
+ sanitizeAttributes: opts.sanitize === true,
1952
+ timing,
1688
1953
  ...inlineRcOption(profile.optimization, opts.sanitize === true),
1689
1954
  });
1690
1955
  timing("llvm-emit", {