@scriptc/compiler 0.2.4 → 0.2.5

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 (1104) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +915 -215
  2. package/ambient/scriptc-overrides.d.ts +5 -1
  3. package/ambient/scriptc.d.ts +22 -2
  4. package/dist/backend/build-cache.d.ts +4 -0
  5. package/dist/backend/build-cache.js +16 -2
  6. package/dist/backend/build-cache.js.map +1 -1
  7. package/dist/backend/cycle-analysis.js +17 -5
  8. package/dist/backend/cycle-analysis.js.map +1 -1
  9. package/dist/backend/cycle-analysis.test.js +50 -11
  10. package/dist/backend/cycle-analysis.test.js.map +1 -1
  11. package/dist/backend/debug-symbols.js.map +1 -1
  12. package/dist/backend/executable-features.js +2 -1
  13. package/dist/backend/executable-features.js.map +1 -1
  14. package/dist/backend/external-c.d.ts +13 -6
  15. package/dist/backend/external-c.js +15 -3
  16. package/dist/backend/external-c.js.map +1 -1
  17. package/dist/backend/ffi-callbacks.js +6 -9
  18. package/dist/backend/ffi-callbacks.js.map +1 -1
  19. package/dist/backend/library-identity-markers.js.map +1 -1
  20. package/dist/backend/library-pack.d.ts +1 -1
  21. package/dist/backend/library-pack.js +81 -24
  22. package/dist/backend/library-pack.js.map +1 -1
  23. package/dist/backend/link-plan-core.js +9 -2
  24. package/dist/backend/link-plan-core.js.map +1 -1
  25. package/dist/backend/link-plan.d.ts +1 -1
  26. package/dist/backend/link-plan.js +4 -5
  27. package/dist/backend/link-plan.js.map +1 -1
  28. package/dist/backend/linker.d.ts +1 -1
  29. package/dist/backend/linker.js +42 -23
  30. package/dist/backend/linker.js.map +1 -1
  31. package/dist/backend/literals.js +5 -4
  32. package/dist/backend/literals.js.map +1 -1
  33. package/dist/backend/literals.test.js +30 -5
  34. package/dist/backend/literals.test.js.map +1 -1
  35. package/dist/backend/llvm/blocks.test.js +5 -2
  36. package/dist/backend/llvm/blocks.test.js.map +1 -1
  37. package/dist/backend/llvm/borrowed-inputs.js.map +1 -1
  38. package/dist/backend/llvm/borrowed-receivers.js +43 -19
  39. package/dist/backend/llvm/borrowed-receivers.js.map +1 -1
  40. package/dist/backend/llvm/byte-numbers.js +6 -1
  41. package/dist/backend/llvm/byte-numbers.js.map +1 -1
  42. package/dist/backend/llvm/bytes-bounds.js +73 -22
  43. package/dist/backend/llvm/bytes-bounds.js.map +1 -1
  44. package/dist/backend/llvm/call-lifetimes.d.ts +3 -0
  45. package/dist/backend/llvm/call-lifetimes.js +60 -17
  46. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  47. package/dist/backend/llvm/call-lifetimes.test.js +159 -28
  48. package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
  49. package/dist/backend/llvm/checked-value-lifetimes.d.ts +4 -0
  50. package/dist/backend/llvm/checked-value-lifetimes.js +14 -4
  51. package/dist/backend/llvm/checked-value-lifetimes.js.map +1 -1
  52. package/dist/backend/llvm/classes.js +16 -12
  53. package/dist/backend/llvm/classes.js.map +1 -1
  54. package/dist/backend/llvm/common.js +4 -1
  55. package/dist/backend/llvm/common.js.map +1 -1
  56. package/dist/backend/llvm/counted-loops.js +10 -3
  57. package/dist/backend/llvm/counted-loops.js.map +1 -1
  58. package/dist/backend/llvm/debug-info.js +33 -13
  59. package/dist/backend/llvm/debug-info.js.map +1 -1
  60. package/dist/backend/llvm/debug-info.test.js +28 -6
  61. package/dist/backend/llvm/debug-info.test.js.map +1 -1
  62. package/dist/backend/llvm/dyn.js +68 -22
  63. package/dist/backend/llvm/dyn.js.map +1 -1
  64. package/dist/backend/llvm/emitter.d.ts +9 -3
  65. package/dist/backend/llvm/emitter.js +238 -105
  66. package/dist/backend/llvm/emitter.js.map +1 -1
  67. package/dist/backend/llvm/emitter.test.js +233 -42
  68. package/dist/backend/llvm/emitter.test.js.map +1 -1
  69. package/dist/backend/llvm/expr-async.js +25 -6
  70. package/dist/backend/llvm/expr-async.js.map +1 -1
  71. package/dist/backend/llvm/expr-bytes.js +13 -4
  72. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  73. package/dist/backend/llvm/expr-callbacks.js +10 -4
  74. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  75. package/dist/backend/llvm/expr-calls.js +20 -9
  76. package/dist/backend/llvm/expr-calls.js.map +1 -1
  77. package/dist/backend/llvm/expr-containers.d.ts +2 -0
  78. package/dist/backend/llvm/expr-containers.js +92 -33
  79. package/dist/backend/llvm/expr-containers.js.map +1 -1
  80. package/dist/backend/llvm/expr-control.js +1 -3
  81. package/dist/backend/llvm/expr-control.js.map +1 -1
  82. package/dist/backend/llvm/expr-dispatch.js +3 -1
  83. package/dist/backend/llvm/expr-dispatch.js.map +1 -1
  84. package/dist/backend/llvm/expr-dynamic.js +19 -4
  85. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  86. package/dist/backend/llvm/expr-island.js +26 -6
  87. package/dist/backend/llvm/expr-island.js.map +1 -1
  88. package/dist/backend/llvm/expr-primitives.js +88 -19
  89. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  90. package/dist/backend/llvm/expr-primitives.test.js +43 -1
  91. package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
  92. package/dist/backend/llvm/expr-records.js +10 -9
  93. package/dist/backend/llvm/expr-records.js.map +1 -1
  94. package/dist/backend/llvm/expr-stream-bridges.js +44 -26
  95. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  96. package/dist/backend/llvm/expr-stream-bridges.test.js +51 -14
  97. package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -1
  98. package/dist/backend/llvm/expr-stream-callbacks.js +34 -14
  99. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  100. package/dist/backend/llvm/integer-values.js +15 -4
  101. package/dist/backend/llvm/integer-values.js.map +1 -1
  102. package/dist/backend/llvm/integer-views.js +23 -7
  103. package/dist/backend/llvm/integer-views.js.map +1 -1
  104. package/dist/backend/llvm/integer-views.test.js +42 -7
  105. package/dist/backend/llvm/integer-views.test.js.map +1 -1
  106. package/dist/backend/llvm/lib-abi.js +13 -4
  107. package/dist/backend/llvm/lib-abi.js.map +1 -1
  108. package/dist/backend/llvm/lib-connect.js +7 -1
  109. package/dist/backend/llvm/lib-connect.js.map +1 -1
  110. package/dist/backend/llvm/lib-datagram.js +35 -10
  111. package/dist/backend/llvm/lib-datagram.js.map +1 -1
  112. package/dist/backend/llvm/lib-dispatch.js +35 -16
  113. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  114. package/dist/backend/llvm/lib-filesystem.js +33 -18
  115. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  116. package/dist/backend/llvm/lib-http2.js +60 -15
  117. package/dist/backend/llvm/lib-http2.js.map +1 -1
  118. package/dist/backend/llvm/lib-lookup.js +12 -5
  119. package/dist/backend/llvm/lib-lookup.js.map +1 -1
  120. package/dist/backend/llvm/lib-network.js +97 -31
  121. package/dist/backend/llvm/lib-network.js.map +1 -1
  122. package/dist/backend/llvm/lib-process.js +57 -14
  123. package/dist/backend/llvm/lib-process.js.map +1 -1
  124. package/dist/backend/llvm/lib-shared.js +107 -31
  125. package/dist/backend/llvm/lib-shared.js.map +1 -1
  126. package/dist/backend/llvm/lib-stream.js +33 -14
  127. package/dist/backend/llvm/lib-stream.js.map +1 -1
  128. package/dist/backend/llvm/lib-test.js +21 -7
  129. package/dist/backend/llvm/lib-test.js.map +1 -1
  130. package/dist/backend/llvm/lib-tls.js +69 -20
  131. package/dist/backend/llvm/lib-tls.js.map +1 -1
  132. package/dist/backend/llvm/local-array-reads.d.ts +1 -0
  133. package/dist/backend/llvm/local-array-reads.js +96 -30
  134. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  135. package/dist/backend/llvm/local-array-reads.test.js +368 -60
  136. package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
  137. package/dist/backend/llvm/local-union-storage.d.ts +25 -0
  138. package/dist/backend/llvm/local-union-storage.js +109 -0
  139. package/dist/backend/llvm/local-union-storage.js.map +1 -0
  140. package/dist/backend/llvm/local-union-storage.test.d.ts +1 -0
  141. package/dist/backend/llvm/local-union-storage.test.js +210 -0
  142. package/dist/backend/llvm/local-union-storage.test.js.map +1 -0
  143. package/dist/backend/llvm/map-read-lifetimes.d.ts +6 -2
  144. package/dist/backend/llvm/map-read-lifetimes.js +44 -14
  145. package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
  146. package/dist/backend/llvm/map-read-lifetimes.test.js +89 -17
  147. package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
  148. package/dist/backend/llvm/reference-effects.d.ts +3 -2
  149. package/dist/backend/llvm/reference-effects.js +67 -36
  150. package/dist/backend/llvm/reference-effects.js.map +1 -1
  151. package/dist/backend/llvm/reference-effects.test.js +92 -9
  152. package/dist/backend/llvm/reference-effects.test.js.map +1 -1
  153. package/dist/backend/llvm/shapes.js +60 -17
  154. package/dist/backend/llvm/shapes.js.map +1 -1
  155. package/dist/backend/llvm/shapes.test.js +3 -1
  156. package/dist/backend/llvm/shapes.test.js.map +1 -1
  157. package/dist/backend/llvm/split.js +4 -4
  158. package/dist/backend/llvm/split.js.map +1 -1
  159. package/dist/backend/llvm/split.test.js +14 -6
  160. package/dist/backend/llvm/split.test.js.map +1 -1
  161. package/dist/backend/llvm/stack-unions.js +14 -5
  162. package/dist/backend/llvm/stack-unions.js.map +1 -1
  163. package/dist/backend/llvm/stack-unions.test.js +151 -32
  164. package/dist/backend/llvm/stack-unions.test.js.map +1 -1
  165. package/dist/backend/llvm/string-construction.js.map +1 -1
  166. package/dist/backend/llvm/string-construction.test.js +32 -7
  167. package/dist/backend/llvm/string-construction.test.js.map +1 -1
  168. package/dist/backend/llvm/string-lifetimes.js +14 -8
  169. package/dist/backend/llvm/string-lifetimes.js.map +1 -1
  170. package/dist/backend/llvm/string-lifetimes.test.js +112 -26
  171. package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
  172. package/dist/backend/llvm/switch-dispatch.d.ts +9 -0
  173. package/dist/backend/llvm/switch-dispatch.js +114 -0
  174. package/dist/backend/llvm/switch-dispatch.js.map +1 -0
  175. package/dist/backend/llvm/switch-dispatch.test.d.ts +1 -0
  176. package/dist/backend/llvm/switch-dispatch.test.js +83 -0
  177. package/dist/backend/llvm/switch-dispatch.test.js.map +1 -0
  178. package/dist/backend/llvm/unsupported.js.map +1 -1
  179. package/dist/backend/llvm/walkers.js +6 -3
  180. package/dist/backend/llvm/walkers.js.map +1 -1
  181. package/dist/backend/mangle.js +9 -3
  182. package/dist/backend/mangle.js.map +1 -1
  183. package/dist/backend/may-throw.js +18 -8
  184. package/dist/backend/may-throw.js.map +1 -1
  185. package/dist/backend/may-throw.test.js +118 -22
  186. package/dist/backend/may-throw.test.js.map +1 -1
  187. package/dist/backend/native/artifact-stamps.d.ts +39 -0
  188. package/dist/backend/native/artifact-stamps.js +371 -0
  189. package/dist/backend/native/artifact-stamps.js.map +1 -0
  190. package/dist/backend/native/cache-warm.d.ts +24 -0
  191. package/dist/backend/native/cache-warm.js +80 -0
  192. package/dist/backend/native/cache-warm.js.map +1 -0
  193. package/dist/backend/native/compiler-fingerprint.d.ts +19 -0
  194. package/dist/backend/native/compiler-fingerprint.js +357 -0
  195. package/dist/backend/native/compiler-fingerprint.js.map +1 -0
  196. package/dist/backend/native/contracts.d.ts +314 -0
  197. package/dist/backend/native/contracts.js +2 -0
  198. package/dist/backend/native/contracts.js.map +1 -0
  199. package/dist/backend/native/dependency-files.d.ts +5 -0
  200. package/dist/backend/native/dependency-files.js +83 -0
  201. package/dist/backend/native/dependency-files.js.map +1 -0
  202. package/dist/backend/native/driver.d.ts +50 -0
  203. package/dist/backend/native/driver.js +294 -0
  204. package/dist/backend/native/driver.js.map +1 -0
  205. package/dist/backend/native/executable.d.ts +18 -0
  206. package/dist/backend/native/executable.js +1267 -0
  207. package/dist/backend/native/executable.js.map +1 -0
  208. package/dist/backend/native/library.d.ts +2 -0
  209. package/dist/backend/native/library.js +614 -0
  210. package/dist/backend/native/library.js.map +1 -0
  211. package/dist/backend/native/linker-fingerprint.d.ts +8 -0
  212. package/dist/backend/native/linker-fingerprint.js +174 -0
  213. package/dist/backend/native/linker-fingerprint.js.map +1 -0
  214. package/dist/backend/native/object-merge.d.ts +2 -0
  215. package/dist/backend/native/object-merge.js +154 -0
  216. package/dist/backend/native/object-merge.js.map +1 -0
  217. package/dist/backend/native/process.d.ts +17 -0
  218. package/dist/backend/native/process.js +42 -0
  219. package/dist/backend/native/process.js.map +1 -0
  220. package/dist/backend/native/program-shards.d.ts +21 -0
  221. package/dist/backend/native/program-shards.js +99 -0
  222. package/dist/backend/native/program-shards.js.map +1 -0
  223. package/dist/backend/native/runtime-inputs.d.ts +12 -0
  224. package/dist/backend/native/runtime-inputs.js +163 -0
  225. package/dist/backend/native/runtime-inputs.js.map +1 -0
  226. package/dist/backend/native/runtime-inputs.test.d.ts +1 -0
  227. package/dist/backend/native/runtime-inputs.test.js +64 -0
  228. package/dist/backend/native/runtime-inputs.test.js.map +1 -0
  229. package/dist/backend/native/runtime-objects.d.ts +16 -0
  230. package/dist/backend/native/runtime-objects.js +122 -0
  231. package/dist/backend/native/runtime-objects.js.map +1 -0
  232. package/dist/backend/native/session.d.ts +12 -0
  233. package/dist/backend/native/session.js +31 -0
  234. package/dist/backend/native/session.js.map +1 -0
  235. package/dist/backend/native/tool-identity.d.ts +37 -0
  236. package/dist/backend/native/tool-identity.js +310 -0
  237. package/dist/backend/native/tool-identity.js.map +1 -0
  238. package/dist/backend/native/trace-paths.d.ts +12 -0
  239. package/dist/backend/native/trace-paths.js +73 -0
  240. package/dist/backend/native/trace-paths.js.map +1 -0
  241. package/dist/backend/native/vendor.d.ts +1 -0
  242. package/dist/backend/native/vendor.js +12 -0
  243. package/dist/backend/native/vendor.js.map +1 -0
  244. package/dist/backend/native-codegen-core.js +2 -1
  245. package/dist/backend/native-codegen-core.js.map +1 -1
  246. package/dist/backend/native-codegen.d.ts +1 -1
  247. package/dist/backend/native-codegen.js +24 -13
  248. package/dist/backend/native-codegen.js.map +1 -1
  249. package/dist/backend/native-codegen.test.js +12 -9
  250. package/dist/backend/native-codegen.test.js.map +1 -1
  251. package/dist/backend/native-link-info-core.js +9 -5
  252. package/dist/backend/native-link-info-core.js.map +1 -1
  253. package/dist/backend/native-link-info.js +14 -5
  254. package/dist/backend/native-link-info.js.map +1 -1
  255. package/dist/backend/native-link-info.test.js +58 -13
  256. package/dist/backend/native-link-info.test.js.map +1 -1
  257. package/dist/backend/native-toolchain.d.ts +17 -450
  258. package/dist/backend/native-toolchain.js +17 -3971
  259. package/dist/backend/native-toolchain.js.map +1 -1
  260. package/dist/backend/native-toolchain.test.js +103 -72
  261. package/dist/backend/native-toolchain.test.js.map +1 -1
  262. package/dist/backend/native-tools.js +27 -8
  263. package/dist/backend/native-tools.js.map +1 -1
  264. package/dist/backend/object-localize.js +17 -14
  265. package/dist/backend/object-localize.js.map +1 -1
  266. package/dist/backend/object-localize.test.js +59 -12
  267. package/dist/backend/object-localize.test.js.map +1 -1
  268. package/dist/backend/runtime-pack-core.js +96 -49
  269. package/dist/backend/runtime-pack-core.js.map +1 -1
  270. package/dist/backend/runtime-pack-native.js +5 -3
  271. package/dist/backend/runtime-pack-native.js.map +1 -1
  272. package/dist/backend/runtime-pack-targets.test.js +87 -15
  273. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  274. package/dist/backend/runtime-pack.d.ts +1 -1
  275. package/dist/backend/runtime-pack.js +11 -12
  276. package/dist/backend/runtime-pack.js.map +1 -1
  277. package/dist/backend/runtime-pack.test.js +40 -24
  278. package/dist/backend/runtime-pack.test.js.map +1 -1
  279. package/dist/backend/source-locations.js.map +1 -1
  280. package/dist/backend/source-locations.test.js +7 -2
  281. package/dist/backend/source-locations.test.js.map +1 -1
  282. package/dist/backend/target-diagnostics.js +44 -14
  283. package/dist/backend/target-diagnostics.js.map +1 -1
  284. package/dist/backend/target-diagnostics.test.js +93 -20
  285. package/dist/backend/target-diagnostics.test.js.map +1 -1
  286. package/dist/backend/targets.js +230 -86
  287. package/dist/backend/targets.js.map +1 -1
  288. package/dist/backend/targets.test.js +32 -18
  289. package/dist/backend/targets.test.js.map +1 -1
  290. package/dist/backend/toolchain-environment.js +5 -1
  291. package/dist/backend/toolchain-environment.js.map +1 -1
  292. package/dist/backend/vendor-archives.d.ts +2 -2
  293. package/dist/backend/vendor-archives.js +84 -35
  294. package/dist/backend/vendor-archives.js.map +1 -1
  295. package/dist/backend/vendor-inputs.js +13 -1
  296. package/dist/backend/vendor-inputs.js.map +1 -1
  297. package/dist/backend/warm-cache.d.ts +1 -1
  298. package/dist/backend/warm-cache.js +33 -9
  299. package/dist/backend/warm-cache.js.map +1 -1
  300. package/dist/cli/command.js +39 -9
  301. package/dist/cli/command.js.map +1 -1
  302. package/dist/cli/output-options.js +14 -4
  303. package/dist/cli/output-options.js.map +1 -1
  304. package/dist/cli/paths.js.map +1 -1
  305. package/dist/cli/wasi-runner.js.map +1 -1
  306. package/dist/compat/fetch-profile.js +36 -35
  307. package/dist/compat/fetch-profile.js.map +1 -1
  308. package/dist/coverage/report.js +16 -17
  309. package/dist/coverage/report.js.map +1 -1
  310. package/dist/coverage/surface-manifest.js +112 -26
  311. package/dist/coverage/surface-manifest.js.map +1 -1
  312. package/dist/diagnostics/diagnostic.js +55 -16
  313. package/dist/diagnostics/diagnostic.js.map +1 -1
  314. package/dist/executable/executable-cache.d.ts +1 -1
  315. package/dist/executable/executable-cache.js +78 -48
  316. package/dist/executable/executable-cache.js.map +1 -1
  317. package/dist/executable/executable-cache.test.js +75 -26
  318. package/dist/executable/executable-cache.test.js.map +1 -1
  319. package/dist/executable/prepare.js +2 -2
  320. package/dist/executable/prepare.js.map +1 -1
  321. package/dist/ffi/ffi-manifest.js +78 -20
  322. package/dist/ffi/ffi-manifest.js.map +1 -1
  323. package/dist/ffi/ffi-manifest.test.js +96 -16
  324. package/dist/ffi/ffi-manifest.test.js.map +1 -1
  325. package/dist/format-integer.js.map +1 -1
  326. package/dist/frontend/analysis.js +12 -2
  327. package/dist/frontend/analysis.js.map +1 -1
  328. package/dist/frontend/arguments-usage.js.map +1 -1
  329. package/dist/frontend/binding-source.js +9 -3
  330. package/dist/frontend/binding-source.js.map +1 -1
  331. package/dist/frontend/builtin-modules.js +46 -2
  332. package/dist/frontend/builtin-modules.js.map +1 -1
  333. package/dist/frontend/cjs-resolve.js +40 -17
  334. package/dist/frontend/cjs-resolve.js.map +1 -1
  335. package/dist/frontend/cjs-syntax.js +31 -10
  336. package/dist/frontend/cjs-syntax.js.map +1 -1
  337. package/dist/frontend/comptime-node.test.js +10 -11
  338. package/dist/frontend/comptime-node.test.js.map +1 -1
  339. package/dist/frontend/dts-paths.js +7 -3
  340. package/dist/frontend/dts-paths.js.map +1 -1
  341. package/dist/frontend/fork-target.js +17 -12
  342. package/dist/frontend/fork-target.js.map +1 -1
  343. package/dist/frontend/function-completion.js +11 -6
  344. package/dist/frontend/function-completion.js.map +1 -1
  345. package/dist/frontend/helper-tokens.js +53 -6
  346. package/dist/frontend/helper-tokens.js.map +1 -1
  347. package/dist/frontend/helper-tokens.test.js +18 -2
  348. package/dist/frontend/helper-tokens.test.js.map +1 -1
  349. package/dist/frontend/inferred-js-diagnostics.js +32 -12
  350. package/dist/frontend/inferred-js-diagnostics.js.map +1 -1
  351. package/dist/frontend/inferred-js-diagnostics.test.js +11 -15
  352. package/dist/frontend/inferred-js-diagnostics.test.js.map +1 -1
  353. package/dist/frontend/input-tracker.js +11 -11
  354. package/dist/frontend/input-tracker.js.map +1 -1
  355. package/dist/frontend/input-tracker.test.js +4 -1
  356. package/dist/frontend/input-tracker.test.js.map +1 -1
  357. package/dist/frontend/lib-contract.js +38 -9
  358. package/dist/frontend/lib-contract.js.map +1 -1
  359. package/dist/frontend/literal-values.js.map +1 -1
  360. package/dist/frontend/literal-values.test.js +28 -8
  361. package/dist/frontend/literal-values.test.js.map +1 -1
  362. package/dist/frontend/lowering/abstract-equality.js +53 -10
  363. package/dist/frontend/lowering/abstract-equality.js.map +1 -1
  364. package/dist/frontend/lowering/array-indexed-mutation.d.ts +1 -1
  365. package/dist/frontend/lowering/array-indexed-mutation.js +108 -106
  366. package/dist/frontend/lowering/array-indexed-mutation.js.map +1 -1
  367. package/dist/frontend/lowering/array-values.js +37 -14
  368. package/dist/frontend/lowering/array-values.js.map +1 -1
  369. package/dist/frontend/lowering/binding-analysis.d.ts +50 -0
  370. package/dist/frontend/lowering/binding-analysis.js +376 -0
  371. package/dist/frontend/lowering/binding-analysis.js.map +1 -0
  372. package/dist/frontend/lowering/builtin-calls.d.ts +9 -0
  373. package/dist/frontend/lowering/builtin-calls.js +60 -0
  374. package/dist/frontend/lowering/builtin-calls.js.map +1 -0
  375. package/dist/frontend/lowering/builtins/arguments.d.ts +43 -0
  376. package/dist/frontend/lowering/builtins/arguments.js +247 -0
  377. package/dist/frontend/lowering/builtins/arguments.js.map +1 -0
  378. package/dist/frontend/lowering/builtins/async-context.d.ts +52 -0
  379. package/dist/frontend/lowering/builtins/async-context.js +436 -0
  380. package/dist/frontend/lowering/builtins/async-context.js.map +1 -0
  381. package/dist/frontend/lowering/builtins/atomics.d.ts +15 -0
  382. package/dist/frontend/lowering/builtins/atomics.js +46 -0
  383. package/dist/frontend/lowering/builtins/atomics.js.map +1 -0
  384. package/dist/frontend/lowering/builtins/callable-aliases.d.ts +13 -0
  385. package/dist/frontend/lowering/builtins/callable-aliases.js +87 -0
  386. package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -0
  387. package/dist/frontend/lowering/builtins/child-process-async.d.ts +18 -0
  388. package/dist/frontend/lowering/builtins/child-process-async.js +245 -0
  389. package/dist/frontend/lowering/builtins/child-process-async.js.map +1 -0
  390. package/dist/frontend/lowering/builtins/child-process-methods.d.ts +21 -0
  391. package/dist/frontend/lowering/builtins/child-process-methods.js +362 -0
  392. package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -0
  393. package/dist/frontend/lowering/builtins/child-process-sync.d.ts +4 -0
  394. package/dist/frontend/lowering/builtins/child-process-sync.js +639 -0
  395. package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -0
  396. package/dist/frontend/lowering/builtins/child-process.d.ts +55 -0
  397. package/dist/frontend/lowering/builtins/child-process.js +669 -0
  398. package/dist/frontend/lowering/builtins/child-process.js.map +1 -0
  399. package/dist/frontend/lowering/builtins/compression.d.ts +7 -0
  400. package/dist/frontend/lowering/builtins/compression.js +115 -0
  401. package/dist/frontend/lowering/builtins/compression.js.map +1 -0
  402. package/dist/frontend/lowering/builtins/console.d.ts +10 -0
  403. package/dist/frontend/lowering/builtins/console.js +38 -0
  404. package/dist/frontend/lowering/builtins/console.js.map +1 -0
  405. package/dist/frontend/lowering/builtins/constants.d.ts +24 -0
  406. package/dist/frontend/lowering/builtins/constants.js +141 -0
  407. package/dist/frontend/lowering/builtins/constants.js.map +1 -0
  408. package/dist/frontend/lowering/builtins/crypto.d.ts +22 -0
  409. package/dist/frontend/lowering/builtins/crypto.js +517 -0
  410. package/dist/frontend/lowering/builtins/crypto.js.map +1 -0
  411. package/dist/frontend/lowering/builtins/dates.d.ts +7 -0
  412. package/dist/frontend/lowering/builtins/dates.js +101 -0
  413. package/dist/frontend/lowering/builtins/dates.js.map +1 -0
  414. package/dist/frontend/lowering/builtins/environment.d.ts +34 -0
  415. package/dist/frontend/lowering/builtins/environment.js +95 -0
  416. package/dist/frontend/lowering/builtins/environment.js.map +1 -0
  417. package/dist/frontend/lowering/builtins/errors.d.ts +14 -0
  418. package/dist/frontend/lowering/builtins/errors.js +83 -0
  419. package/dist/frontend/lowering/builtins/errors.js.map +1 -0
  420. package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +32 -0
  421. package/dist/frontend/lowering/builtins/filesystem-calls.js +678 -0
  422. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -0
  423. package/dist/frontend/lowering/builtins/filesystem.d.ts +108 -0
  424. package/dist/frontend/lowering/builtins/filesystem.js +1061 -0
  425. package/dist/frontend/lowering/builtins/filesystem.js.map +1 -0
  426. package/dist/frontend/lowering/builtins/ipc.d.ts +8 -0
  427. package/dist/frontend/lowering/builtins/ipc.js +76 -0
  428. package/dist/frontend/lowering/builtins/ipc.js.map +1 -0
  429. package/dist/frontend/lowering/builtins/json.d.ts +12 -0
  430. package/dist/frontend/lowering/builtins/json.js +387 -0
  431. package/dist/frontend/lowering/builtins/json.js.map +1 -0
  432. package/dist/frontend/lowering/builtins/module-bindings.d.ts +85 -0
  433. package/dist/frontend/lowering/builtins/module-bindings.js +346 -0
  434. package/dist/frontend/lowering/builtins/module-bindings.js.map +1 -0
  435. package/dist/frontend/lowering/builtins/module-calls.d.ts +8 -0
  436. package/dist/frontend/lowering/builtins/module-calls.js +303 -0
  437. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -0
  438. package/dist/frontend/lowering/builtins/module-resolution.d.ts +38 -0
  439. package/dist/frontend/lowering/builtins/module-resolution.js +344 -0
  440. package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -0
  441. package/dist/frontend/lowering/builtins/numbers.d.ts +15 -0
  442. package/dist/frontend/lowering/builtins/numbers.js +124 -0
  443. package/dist/frontend/lowering/builtins/numbers.js.map +1 -0
  444. package/dist/frontend/lowering/builtins/operating-system.d.ts +13 -0
  445. package/dist/frontend/lowering/builtins/operating-system.js +148 -0
  446. package/dist/frontend/lowering/builtins/operating-system.js.map +1 -0
  447. package/dist/frontend/lowering/builtins/performance.d.ts +13 -0
  448. package/dist/frontend/lowering/builtins/performance.js +100 -0
  449. package/dist/frontend/lowering/builtins/performance.js.map +1 -0
  450. package/dist/frontend/lowering/builtins/process.d.ts +50 -0
  451. package/dist/frontend/lowering/builtins/process.js +1138 -0
  452. package/dist/frontend/lowering/builtins/process.js.map +1 -0
  453. package/dist/frontend/lowering/builtins/promises.d.ts +14 -0
  454. package/dist/frontend/lowering/builtins/promises.js +356 -0
  455. package/dist/frontend/lowering/builtins/promises.js.map +1 -0
  456. package/dist/frontend/lowering/builtins/properties.d.ts +11 -0
  457. package/dist/frontend/lowering/builtins/properties.js +186 -0
  458. package/dist/frontend/lowering/builtins/properties.js.map +1 -0
  459. package/dist/frontend/lowering/builtins/querystring.d.ts +19 -0
  460. package/dist/frontend/lowering/builtins/querystring.js +150 -0
  461. package/dist/frontend/lowering/builtins/querystring.js.map +1 -0
  462. package/dist/frontend/lowering/builtins/readline.d.ts +13 -0
  463. package/dist/frontend/lowering/builtins/readline.js +138 -0
  464. package/dist/frontend/lowering/builtins/readline.js.map +1 -0
  465. package/dist/frontend/lowering/builtins/receiver-types.d.ts +5 -0
  466. package/dist/frontend/lowering/builtins/receiver-types.js +15 -0
  467. package/dist/frontend/lowering/builtins/receiver-types.js.map +1 -0
  468. package/dist/frontend/lowering/builtins/reflection.d.ts +13 -0
  469. package/dist/frontend/lowering/builtins/reflection.js +95 -0
  470. package/dist/frontend/lowering/builtins/reflection.js.map +1 -0
  471. package/dist/frontend/lowering/builtins/strings.d.ts +14 -0
  472. package/dist/frontend/lowering/builtins/strings.js +121 -0
  473. package/dist/frontend/lowering/builtins/strings.js.map +1 -0
  474. package/dist/frontend/lowering/builtins/text-codecs.d.ts +29 -0
  475. package/dist/frontend/lowering/builtins/text-codecs.js +590 -0
  476. package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -0
  477. package/dist/frontend/lowering/builtins/timers.d.ts +22 -0
  478. package/dist/frontend/lowering/builtins/timers.js +180 -0
  479. package/dist/frontend/lowering/builtins/timers.js.map +1 -0
  480. package/dist/frontend/lowering/builtins/url.d.ts +37 -0
  481. package/dist/frontend/lowering/builtins/url.js +596 -0
  482. package/dist/frontend/lowering/builtins/url.js.map +1 -0
  483. package/dist/frontend/lowering/builtins/util-types.d.ts +7 -0
  484. package/dist/frontend/lowering/builtins/util-types.js +31 -0
  485. package/dist/frontend/lowering/builtins/util-types.js.map +1 -0
  486. package/dist/frontend/lowering/call-arguments.d.ts +72 -0
  487. package/dist/frontend/lowering/call-arguments.js +618 -0
  488. package/dist/frontend/lowering/call-arguments.js.map +1 -0
  489. package/dist/frontend/lowering/call-signatures.d.ts +115 -0
  490. package/dist/frontend/lowering/call-signatures.js +719 -0
  491. package/dist/frontend/lowering/call-signatures.js.map +1 -0
  492. package/dist/frontend/lowering/callback-arg.js.map +1 -1
  493. package/dist/frontend/lowering/checked-iterable-spread.js +53 -10
  494. package/dist/frontend/lowering/checked-iterable-spread.js.map +1 -1
  495. package/dist/frontend/lowering/checked-promise-all.js +41 -9
  496. package/dist/frontend/lowering/checked-promise-all.js.map +1 -1
  497. package/dist/frontend/lowering/class-callbacks.d.ts +1 -1
  498. package/dist/frontend/lowering/class-callbacks.js +130 -27
  499. package/dist/frontend/lowering/class-callbacks.js.map +1 -1
  500. package/dist/frontend/lowering/class-construction.d.ts +1 -1
  501. package/dist/frontend/lowering/class-construction.js +247 -50
  502. package/dist/frontend/lowering/class-construction.js.map +1 -1
  503. package/dist/frontend/lowering/class-descriptors.js +109 -29
  504. package/dist/frontend/lowering/class-descriptors.js.map +1 -1
  505. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +6 -1
  506. package/dist/frontend/lowering/class-dynamic-dispatch.js +2471 -465
  507. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  508. package/dist/frontend/lowering/class-dynamic-dispatch.test.js +284 -44
  509. package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
  510. package/dist/frontend/lowering/class-instance-constructor.js +17 -5
  511. package/dist/frontend/lowering/class-instance-constructor.js.map +1 -1
  512. package/dist/frontend/lowering/class-method-values.js +199 -51
  513. package/dist/frontend/lowering/class-method-values.js.map +1 -1
  514. package/dist/frontend/lowering/class-prototypes.js +345 -86
  515. package/dist/frontend/lowering/class-prototypes.js.map +1 -1
  516. package/dist/frontend/lowering/class-runtime-statics.d.ts +1 -1
  517. package/dist/frontend/lowering/class-runtime-statics.js +80 -17
  518. package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
  519. package/dist/frontend/lowering/class-static-data.js +76 -16
  520. package/dist/frontend/lowering/class-static-data.js.map +1 -1
  521. package/dist/frontend/lowering/coercions/builders.d.ts +13 -0
  522. package/dist/frontend/lowering/coercions/builders.js +77 -0
  523. package/dist/frontend/lowering/coercions/builders.js.map +1 -0
  524. package/dist/frontend/lowering/coercions/function-adapters.d.ts +58 -0
  525. package/dist/frontend/lowering/coercions/function-adapters.js +430 -0
  526. package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -0
  527. package/dist/frontend/lowering/coercions/island.d.ts +37 -0
  528. package/dist/frontend/lowering/coercions/island.js +350 -0
  529. package/dist/frontend/lowering/coercions/island.js.map +1 -0
  530. package/dist/frontend/lowering/coercions/state.d.ts +14 -0
  531. package/dist/frontend/lowering/coercions/state.js +16 -0
  532. package/dist/frontend/lowering/coercions/state.js.map +1 -0
  533. package/dist/frontend/lowering/coercions/structural-plans.d.ts +40 -0
  534. package/dist/frontend/lowering/coercions/structural-plans.js +447 -0
  535. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -0
  536. package/dist/frontend/lowering/coercions/structural.d.ts +63 -0
  537. package/dist/frontend/lowering/coercions/structural.js +616 -0
  538. package/dist/frontend/lowering/coercions/structural.js.map +1 -0
  539. package/dist/frontend/lowering/coercions/unions.d.ts +65 -0
  540. package/dist/frontend/lowering/coercions/unions.js +318 -0
  541. package/dist/frontend/lowering/coercions/unions.js.map +1 -0
  542. package/dist/frontend/lowering/collection-ingestion.js +355 -72
  543. package/dist/frontend/lowering/collection-ingestion.js.map +1 -1
  544. package/dist/frontend/lowering/containers/array-callbacks.d.ts +92 -0
  545. package/dist/frontend/lowering/containers/array-callbacks.js +1646 -0
  546. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -0
  547. package/dist/frontend/lowering/containers/array-construction.d.ts +42 -0
  548. package/dist/frontend/lowering/containers/array-construction.js +1044 -0
  549. package/dist/frontend/lowering/containers/array-construction.js.map +1 -0
  550. package/dist/frontend/lowering/containers/array-iteration.d.ts +16 -0
  551. package/dist/frontend/lowering/containers/array-iteration.js +95 -0
  552. package/dist/frontend/lowering/containers/array-iteration.js.map +1 -0
  553. package/dist/frontend/lowering/containers/array-methods.d.ts +27 -0
  554. package/dist/frontend/lowering/containers/array-methods.js +1854 -0
  555. package/dist/frontend/lowering/containers/array-methods.js.map +1 -0
  556. package/dist/frontend/lowering/containers/bytes.d.ts +17 -17
  557. package/dist/frontend/lowering/containers/bytes.js +419 -105
  558. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  559. package/dist/frontend/lowering/containers/callback-arguments.d.ts +26 -0
  560. package/dist/frontend/lowering/containers/callback-arguments.js +179 -0
  561. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -0
  562. package/dist/frontend/lowering/containers/collection-grouping.d.ts +19 -0
  563. package/dist/frontend/lowering/containers/collection-grouping.js +297 -0
  564. package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -0
  565. package/dist/frontend/lowering/containers/collection-methods.d.ts +57 -0
  566. package/dist/frontend/lowering/containers/collection-methods.js +1314 -0
  567. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -0
  568. package/dist/frontend/lowering/containers/dynamic-receivers.d.ts +18 -0
  569. package/dist/frontend/lowering/containers/dynamic-receivers.js +114 -0
  570. package/dist/frontend/lowering/containers/dynamic-receivers.js.map +1 -0
  571. package/dist/frontend/lowering/containers/for-of.d.ts +60 -0
  572. package/dist/frontend/lowering/containers/for-of.js +643 -0
  573. package/dist/frontend/lowering/containers/for-of.js.map +1 -0
  574. package/dist/frontend/lowering/containers/indexed-objects.d.ts +132 -0
  575. package/dist/frontend/lowering/containers/indexed-objects.js +1743 -0
  576. package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -0
  577. package/dist/frontend/lowering/containers/iterator-helpers.d.ts +20 -0
  578. package/dist/frontend/lowering/containers/iterator-helpers.js +809 -0
  579. package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -0
  580. package/dist/frontend/lowering/containers/string-and-regexp.js +580 -158
  581. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  582. package/dist/frontend/lowering/containers/string-replacement.js +213 -63
  583. package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
  584. package/dist/frontend/lowering/crypto-tables.js +263 -64
  585. package/dist/frontend/lowering/crypto-tables.js.map +1 -1
  586. package/dist/frontend/lowering/deferred-module-initializers.js +172 -68
  587. package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
  588. package/dist/frontend/lowering/deferred-module-initializers.test.js +41 -8
  589. package/dist/frontend/lowering/deferred-module-initializers.test.js.map +1 -1
  590. package/dist/frontend/lowering/error-methods.js +339 -65
  591. package/dist/frontend/lowering/error-methods.js.map +1 -1
  592. package/dist/frontend/lowering/expressions/evaluation-safety.js +3 -2
  593. package/dist/frontend/lowering/expressions/evaluation-safety.js.map +1 -1
  594. package/dist/frontend/lowering/expressions/global-symbols.js +2 -1
  595. package/dist/frontend/lowering/expressions/global-symbols.js.map +1 -1
  596. package/dist/frontend/lowering/expressions/native-proxy.js +11 -5
  597. package/dist/frontend/lowering/expressions/native-proxy.js.map +1 -1
  598. package/dist/frontend/lowering/expressions/nullish-assignment.js +67 -13
  599. package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
  600. package/dist/frontend/lowering/expressions/object-literals.js +589 -162
  601. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  602. package/dist/frontend/lowering/expressions/optional-chains.d.ts +1 -1
  603. package/dist/frontend/lowering/expressions/optional-chains.js +68 -17
  604. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
  605. package/dist/frontend/lowering/expressions/union-field-write.js +45 -18
  606. package/dist/frontend/lowering/expressions/union-field-write.js.map +1 -1
  607. package/dist/frontend/lowering/function-context.js +5 -1
  608. package/dist/frontend/lowering/function-context.js.map +1 -1
  609. package/dist/frontend/lowering/function-returns.d.ts +67 -0
  610. package/dist/frontend/lowering/function-returns.js +392 -0
  611. package/dist/frontend/lowering/function-returns.js.map +1 -0
  612. package/dist/frontend/lowering/generator-delegation.d.ts +1 -1
  613. package/dist/frontend/lowering/generator-delegation.js +171 -39
  614. package/dist/frontend/lowering/generator-delegation.js.map +1 -1
  615. package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +1 -1
  616. package/dist/frontend/lowering/generator-dynamic-dispatch.js +176 -36
  617. package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -1
  618. package/dist/frontend/lowering/generic-functions.d.ts +274 -0
  619. package/dist/frontend/lowering/generic-functions.js +1727 -0
  620. package/dist/frontend/lowering/generic-functions.js.map +1 -0
  621. package/dist/frontend/lowering/import-meta.d.ts +1 -1
  622. package/dist/frontend/lowering/import-meta.js +37 -14
  623. package/dist/frontend/lowering/import-meta.js.map +1 -1
  624. package/dist/frontend/lowering/indexed-comparison.js +6 -2
  625. package/dist/frontend/lowering/indexed-comparison.js.map +1 -1
  626. package/dist/frontend/lowering/iterator-consumption.d.ts +9 -0
  627. package/dist/frontend/lowering/iterator-consumption.js +91 -0
  628. package/dist/frontend/lowering/iterator-consumption.js.map +1 -0
  629. package/dist/frontend/lowering/lib-boundary.js +40 -17
  630. package/dist/frontend/lowering/lib-boundary.js.map +1 -1
  631. package/dist/frontend/lowering/lib-boundary.test.js +49 -11
  632. package/dist/frontend/lowering/lib-boundary.test.js.map +1 -1
  633. package/dist/frontend/lowering/lower-array-sort.d.ts +0 -19
  634. package/dist/frontend/lowering/lower-array-sort.js +331 -566
  635. package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
  636. package/dist/frontend/lowering/lower-assert.js +248 -43
  637. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  638. package/dist/frontend/lowering/lower-async-iteration.js +71 -16
  639. package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
  640. package/dist/frontend/lowering/lower-builtin-values.js +420 -71
  641. package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
  642. package/dist/frontend/lowering/lower-calls.d.ts +39 -558
  643. package/dist/frontend/lowering/lower-calls.js +2593 -5667
  644. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  645. package/dist/frontend/lowering/lower-classes.d.ts +243 -242
  646. package/dist/frontend/lowering/lower-classes.js +1701 -724
  647. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  648. package/dist/frontend/lowering/lower-comptime.d.ts +35 -35
  649. package/dist/frontend/lowering/lower-comptime.js +39 -37
  650. package/dist/frontend/lowering/lower-comptime.js.map +1 -1
  651. package/dist/frontend/lowering/lower-dgram.js +59 -31
  652. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  653. package/dist/frontend/lowering/lower-enums.js +5 -2
  654. package/dist/frontend/lowering/lower-enums.js.map +1 -1
  655. package/dist/frontend/lowering/lower-event-emitter.js +322 -85
  656. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  657. package/dist/frontend/lowering/lower-expando.js +19 -7
  658. package/dist/frontend/lowering/lower-expando.js.map +1 -1
  659. package/dist/frontend/lowering/lower-exprs.d.ts +194 -194
  660. package/dist/frontend/lowering/lower-exprs.js +3446 -1154
  661. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  662. package/dist/frontend/lowering/lower-functions.d.ts +23 -0
  663. package/dist/frontend/lowering/lower-functions.js +449 -0
  664. package/dist/frontend/lowering/lower-functions.js.map +1 -0
  665. package/dist/frontend/lowering/lower-generators.js +121 -32
  666. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  667. package/dist/frontend/lowering/lower-global-value.js +15 -4
  668. package/dist/frontend/lowering/lower-global-value.js.map +1 -1
  669. package/dist/frontend/lowering/lower-inspect.js +479 -89
  670. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  671. package/dist/frontend/lowering/lower-island.d.ts +79 -79
  672. package/dist/frontend/lowering/lower-island.js +365 -273
  673. package/dist/frontend/lowering/lower-island.js.map +1 -1
  674. package/dist/frontend/lowering/lower-island.test.js +7 -2
  675. package/dist/frontend/lowering/lower-island.test.js.map +1 -1
  676. package/dist/frontend/lowering/lower-mixins.js +17 -8
  677. package/dist/frontend/lowering/lower-mixins.js.map +1 -1
  678. package/dist/frontend/lowering/lower-modules.d.ts +94 -94
  679. package/dist/frontend/lowering/lower-modules.js +612 -321
  680. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  681. package/dist/frontend/lowering/lower-modules.test.js +91 -20
  682. package/dist/frontend/lowering/lower-modules.test.js.map +1 -1
  683. package/dist/frontend/lowering/lower-namespaces.js +25 -8
  684. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  685. package/dist/frontend/lowering/lower-node-module.js +115 -34
  686. package/dist/frontend/lowering/lower-node-module.js.map +1 -1
  687. package/dist/frontend/lowering/lower-server.js +1210 -290
  688. package/dist/frontend/lowering/lower-server.js.map +1 -1
  689. package/dist/frontend/lowering/lower-stmts.d.ts +148 -148
  690. package/dist/frontend/lowering/lower-stmts.js +2312 -984
  691. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  692. package/dist/frontend/lowering/lower-stmts.test.js +13 -5
  693. package/dist/frontend/lowering/lower-stmts.test.js.map +1 -1
  694. package/dist/frontend/lowering/lower-stream.js +362 -90
  695. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  696. package/dist/frontend/lowering/lower-system-errors.js +30 -8
  697. package/dist/frontend/lowering/lower-system-errors.js.map +1 -1
  698. package/dist/frontend/lowering/lower-test.js +40 -13
  699. package/dist/frontend/lowering/lower-test.js.map +1 -1
  700. package/dist/frontend/lowering/lower-timers.d.ts +31 -0
  701. package/dist/frontend/lowering/lower-timers.js +336 -0
  702. package/dist/frontend/lowering/lower-timers.js.map +1 -0
  703. package/dist/frontend/lowering/lower-url.d.ts +1 -1
  704. package/dist/frontend/lowering/lower-url.js +46 -13
  705. package/dist/frontend/lowering/lower-url.js.map +1 -1
  706. package/dist/frontend/lowering/lowerer.d.ts +21 -351
  707. package/dist/frontend/lowering/lowerer.js +1024 -2704
  708. package/dist/frontend/lowering/lowerer.js.map +1 -1
  709. package/dist/frontend/lowering/lowerer.test.js +85 -17
  710. package/dist/frontend/lowering/lowerer.test.js.map +1 -1
  711. package/dist/frontend/lowering/module-namespace-elements.js +43 -8
  712. package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
  713. package/dist/frontend/lowering/native-ffi.d.ts +21 -1
  714. package/dist/frontend/lowering/native-ffi.js +487 -18
  715. package/dist/frontend/lowering/native-ffi.js.map +1 -1
  716. package/dist/frontend/lowering/object-enumeration-receiver.js +55 -10
  717. package/dist/frontend/lowering/object-enumeration-receiver.js.map +1 -1
  718. package/dist/frontend/lowering/object-factory-new.d.ts +1 -1
  719. package/dist/frontend/lowering/object-factory-new.js +36 -11
  720. package/dist/frontend/lowering/object-factory-new.js.map +1 -1
  721. package/dist/frontend/lowering/optional-arguments.js +49 -20
  722. package/dist/frontend/lowering/optional-arguments.js.map +1 -1
  723. package/dist/frontend/lowering/pairs-snapshot.js +66 -14
  724. package/dist/frontend/lowering/pairs-snapshot.js.map +1 -1
  725. package/dist/frontend/lowering/runtime-optional-locals.js +3 -1
  726. package/dist/frontend/lowering/runtime-optional-locals.js.map +1 -1
  727. package/dist/frontend/lowering/runtime-optional-locals.test.js.map +1 -1
  728. package/dist/frontend/lowering/sanitize-class-types.js +4 -1
  729. package/dist/frontend/lowering/sanitize-class-types.js.map +1 -1
  730. package/dist/frontend/lowering/sanitize-class-types.test.js +86 -18
  731. package/dist/frontend/lowering/sanitize-class-types.test.js.map +1 -1
  732. package/dist/frontend/lowering/static-this.js +13 -6
  733. package/dist/frontend/lowering/static-this.js.map +1 -1
  734. package/dist/frontend/lowering/string-index.js +32 -10
  735. package/dist/frontend/lowering/string-index.js.map +1 -1
  736. package/dist/frontend/lowering/surfaces.d.ts +42 -42
  737. package/dist/frontend/lowering/surfaces.js +1094 -249
  738. package/dist/frontend/lowering/surfaces.js.map +1 -1
  739. package/dist/frontend/lowering/symbol-fields.js +40 -15
  740. package/dist/frontend/lowering/symbol-fields.js.map +1 -1
  741. package/dist/frontend/lowering/symbol-methods.js.map +1 -1
  742. package/dist/frontend/lowering/text-decoder-encoding.js +236 -24
  743. package/dist/frontend/lowering/text-decoder-encoding.js.map +1 -1
  744. package/dist/frontend/lowering/text-decoder-encoding.test.js +84 -12
  745. package/dist/frontend/lowering/text-decoder-encoding.test.js.map +1 -1
  746. package/dist/frontend/lowering/union-narrow.js +59 -16
  747. package/dist/frontend/lowering/union-narrow.js.map +1 -1
  748. package/dist/frontend/lowering/union-narrow.test.js +24 -7
  749. package/dist/frontend/lowering/union-narrow.test.js.map +1 -1
  750. package/dist/frontend/lowering/union-retag.js +155 -40
  751. package/dist/frontend/lowering/union-retag.js.map +1 -1
  752. package/dist/frontend/lowering/union-retag.test.js +131 -33
  753. package/dist/frontend/lowering/union-retag.test.js.map +1 -1
  754. package/dist/frontend/lowering/unregistered-class-types.js.map +1 -1
  755. package/dist/frontend/lowering/unregistered-class-types.test.js +34 -8
  756. package/dist/frontend/lowering/unregistered-class-types.test.js.map +1 -1
  757. package/dist/frontend/module-syntax.js +21 -8
  758. package/dist/frontend/module-syntax.js.map +1 -1
  759. package/dist/frontend/module-syntax.test.js +37 -13
  760. package/dist/frontend/module-syntax.test.js.map +1 -1
  761. package/dist/frontend/npm-fetch-analysis.js +13 -4
  762. package/dist/frontend/npm-fetch-analysis.js.map +1 -1
  763. package/dist/frontend/npm-fetch-analysis.test.js +33 -10
  764. package/dist/frontend/npm-fetch-analysis.test.js.map +1 -1
  765. package/dist/frontend/npm-fetch-node.js.map +1 -1
  766. package/dist/frontend/npm-fetch-syntax.js +4 -9
  767. package/dist/frontend/npm-fetch-syntax.js.map +1 -1
  768. package/dist/frontend/npm-node.js +3 -1
  769. package/dist/frontend/npm-node.js.map +1 -1
  770. package/dist/frontend/npm-static-bundled-cjs.js +88 -29
  771. package/dist/frontend/npm-static-bundled-cjs.js.map +1 -1
  772. package/dist/frontend/npm-static-bundled-cjs.test.js +29 -10
  773. package/dist/frontend/npm-static-bundled-cjs.test.js.map +1 -1
  774. package/dist/frontend/npm-static-declaration-syntax.js +148 -56
  775. package/dist/frontend/npm-static-declaration-syntax.js.map +1 -1
  776. package/dist/frontend/npm-static-declarations.d.ts +1 -1
  777. package/dist/frontend/npm-static-declarations.js.map +1 -1
  778. package/dist/frontend/npm-static-declarations.test.js +33 -7
  779. package/dist/frontend/npm-static-declarations.test.js.map +1 -1
  780. package/dist/frontend/npm-static-prune.js +26 -12
  781. package/dist/frontend/npm-static-prune.js.map +1 -1
  782. package/dist/frontend/npm-static-prune.test.js +17 -3
  783. package/dist/frontend/npm-static-prune.test.js.map +1 -1
  784. package/dist/frontend/npm-static-rewrite-host.js +2 -3
  785. package/dist/frontend/npm-static-rewrite-host.js.map +1 -1
  786. package/dist/frontend/npm-static-rewrite-syntax.js +64 -21
  787. package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
  788. package/dist/frontend/npm-static-rewrite.js.map +1 -1
  789. package/dist/frontend/npm-static-subtyping.js +9 -4
  790. package/dist/frontend/npm-static-subtyping.js.map +1 -1
  791. package/dist/frontend/npm-static-subtyping.test.js +30 -6
  792. package/dist/frontend/npm-static-subtyping.test.js.map +1 -1
  793. package/dist/frontend/npm-static.js +15 -4
  794. package/dist/frontend/npm-static.js.map +1 -1
  795. package/dist/frontend/npm.js +122 -36
  796. package/dist/frontend/npm.js.map +1 -1
  797. package/dist/frontend/npm.test.js +30 -10
  798. package/dist/frontend/npm.test.js.map +1 -1
  799. package/dist/frontend/pipeline-native.js.map +1 -1
  800. package/dist/frontend/pipeline.js +25 -8
  801. package/dist/frontend/pipeline.js.map +1 -1
  802. package/dist/frontend/pipeline.test.js +21 -7
  803. package/dist/frontend/pipeline.test.js.map +1 -1
  804. package/dist/frontend/program-node.js +5 -3
  805. package/dist/frontend/program-node.js.map +1 -1
  806. package/dist/frontend/program.d.ts +2 -2
  807. package/dist/frontend/program.js +234 -101
  808. package/dist/frontend/program.js.map +1 -1
  809. package/dist/frontend/program.test.js +27 -27
  810. package/dist/frontend/program.test.js.map +1 -1
  811. package/dist/frontend/provenance-core.js +8 -4
  812. package/dist/frontend/provenance-core.js.map +1 -1
  813. package/dist/frontend/provenance-registry.js +1 -4
  814. package/dist/frontend/provenance-registry.js.map +1 -1
  815. package/dist/frontend/resolve.js +32 -20
  816. package/dist/frontend/resolve.js.map +1 -1
  817. package/dist/frontend/resolve.test.js +1 -1
  818. package/dist/frontend/resolve.test.js.map +1 -1
  819. package/dist/frontend/runtime-resolve.js +13 -4
  820. package/dist/frontend/runtime-resolve.js.map +1 -1
  821. package/dist/frontend/runtime-resolve.test.js +25 -9
  822. package/dist/frontend/runtime-resolve.test.js.map +1 -1
  823. package/dist/frontend/services-node.js +6 -2
  824. package/dist/frontend/services-node.js.map +1 -1
  825. package/dist/frontend/services-node.test.js +18 -6
  826. package/dist/frontend/services-node.test.js.map +1 -1
  827. package/dist/frontend/services.js +8 -4
  828. package/dist/frontend/services.js.map +1 -1
  829. package/dist/frontend/services.test.js +6 -2
  830. package/dist/frontend/services.test.js.map +1 -1
  831. package/dist/frontend/ts7/api.js +12 -4
  832. package/dist/frontend/ts7/api.js.map +1 -1
  833. package/dist/frontend/ts7/ast-bytes.js +10 -3
  834. package/dist/frontend/ts7/ast-bytes.js.map +1 -1
  835. package/dist/frontend/ts7/ast-bytes.test.js +23 -4
  836. package/dist/frontend/ts7/ast-bytes.test.js.map +1 -1
  837. package/dist/frontend/ts7/ast-guards.test.js +14 -5
  838. package/dist/frontend/ts7/ast-guards.test.js.map +1 -1
  839. package/dist/frontend/ts7/ast-node.d.ts +6 -1
  840. package/dist/frontend/ts7/ast-node.js +484 -164
  841. package/dist/frontend/ts7/ast-node.js.map +1 -1
  842. package/dist/frontend/ts7/ast-node.test.js +109 -36
  843. package/dist/frontend/ts7/ast-node.test.js.map +1 -1
  844. package/dist/frontend/ts7/ast-text.js +13 -3
  845. package/dist/frontend/ts7/ast-text.js.map +1 -1
  846. package/dist/frontend/ts7/ast-text.test.js.map +1 -1
  847. package/dist/frontend/ts7/ast-types.js.map +1 -1
  848. package/dist/frontend/ts7/ast-wire.d.ts +1 -1
  849. package/dist/frontend/ts7/ast-wire.js +55 -20
  850. package/dist/frontend/ts7/ast-wire.js.map +1 -1
  851. package/dist/frontend/ts7/ast-wire.test.js +53 -8
  852. package/dist/frontend/ts7/ast-wire.test.js.map +1 -1
  853. package/dist/frontend/ts7/ast.js +47 -28
  854. package/dist/frontend/ts7/ast.js.map +1 -1
  855. package/dist/frontend/ts7/census-check.js +1 -1
  856. package/dist/frontend/ts7/census-check.js.map +1 -1
  857. package/dist/frontend/ts7/checker-cache.js.map +1 -1
  858. package/dist/frontend/ts7/checker.js +5 -3
  859. package/dist/frontend/ts7/checker.js.map +1 -1
  860. package/dist/frontend/ts7/checker.test.js +54 -17
  861. package/dist/frontend/ts7/checker.test.js.map +1 -1
  862. package/dist/frontend/ts7/enums.test.js +9 -4
  863. package/dist/frontend/ts7/enums.test.js.map +1 -1
  864. package/dist/frontend/ts7/native-api.js.map +1 -1
  865. package/dist/frontend/ts7/native-host.js.map +1 -1
  866. package/dist/frontend/ts7/native-process.js +9 -3
  867. package/dist/frontend/ts7/native-process.js.map +1 -1
  868. package/dist/frontend/ts7/program-adapter.js +1 -1
  869. package/dist/frontend/ts7/program-adapter.js.map +1 -1
  870. package/dist/frontend/ts7/program-host.js +7 -4
  871. package/dist/frontend/ts7/program-host.js.map +1 -1
  872. package/dist/frontend/ts7/program-host.test.js +43 -11
  873. package/dist/frontend/ts7/program-host.test.js.map +1 -1
  874. package/dist/frontend/ts7/rpc-api.js +3 -1
  875. package/dist/frontend/ts7/rpc-api.js.map +1 -1
  876. package/dist/frontend/ts7/rpc-client.js +15 -5
  877. package/dist/frontend/ts7/rpc-client.js.map +1 -1
  878. package/dist/frontend/ts7/rpc-client.test.js +26 -8
  879. package/dist/frontend/ts7/rpc-client.test.js.map +1 -1
  880. package/dist/frontend/ts7/rpc-filesystem.js.map +1 -1
  881. package/dist/frontend/ts7/rpc-filesystem.test.js +43 -10
  882. package/dist/frontend/ts7/rpc-filesystem.test.js.map +1 -1
  883. package/dist/frontend/ts7/rpc-process.js +16 -6
  884. package/dist/frontend/ts7/rpc-process.js.map +1 -1
  885. package/dist/frontend/ts7/rpc-process.test.js.map +1 -1
  886. package/dist/frontend/ts7/rpc-wire.d.ts +1 -0
  887. package/dist/frontend/ts7/rpc-wire.js +41 -14
  888. package/dist/frontend/ts7/rpc-wire.js.map +1 -1
  889. package/dist/frontend/ts7/rpc-wire.test.js +36 -6
  890. package/dist/frontend/ts7/rpc-wire.test.js.map +1 -1
  891. package/dist/frontend/ts7/semantic-checker.js +209 -68
  892. package/dist/frontend/ts7/semantic-checker.js.map +1 -1
  893. package/dist/frontend/ts7/semantic-checker.test.js +29 -14
  894. package/dist/frontend/ts7/semantic-checker.test.js.map +1 -1
  895. package/dist/frontend/ts7/semantic-json.js +7 -1
  896. package/dist/frontend/ts7/semantic-json.js.map +1 -1
  897. package/dist/frontend/ts7/semantic-json.test.js +17 -3
  898. package/dist/frontend/ts7/semantic-json.test.js.map +1 -1
  899. package/dist/frontend/ts7/semantic-model.js +147 -51
  900. package/dist/frontend/ts7/semantic-model.js.map +1 -1
  901. package/dist/frontend/ts7/semantic-model.test.js +72 -19
  902. package/dist/frontend/ts7/semantic-model.test.js.map +1 -1
  903. package/dist/frontend/ts7/semantic-types.d.ts +2 -2
  904. package/dist/frontend/ts7/session-cache.js +10 -3
  905. package/dist/frontend/ts7/session-cache.js.map +1 -1
  906. package/dist/frontend/ts7/session-cache.test.js +13 -4
  907. package/dist/frontend/ts7/session-cache.test.js.map +1 -1
  908. package/dist/frontend/ts7/session-path.js +25 -10
  909. package/dist/frontend/ts7/session-path.js.map +1 -1
  910. package/dist/frontend/ts7/session-path.test.js +47 -4
  911. package/dist/frontend/ts7/session-path.test.js.map +1 -1
  912. package/dist/frontend/ts7/session-timing.js +22 -3
  913. package/dist/frontend/ts7/session-timing.js.map +1 -1
  914. package/dist/frontend/ts7/session-timing.test.js +12 -3
  915. package/dist/frontend/ts7/session-timing.test.js.map +1 -1
  916. package/dist/frontend/ts7/session.d.ts +1 -0
  917. package/dist/frontend/ts7/session.js +109 -35
  918. package/dist/frontend/ts7/session.js.map +1 -1
  919. package/dist/frontend/ts7/session.test.js +69 -15
  920. package/dist/frontend/ts7/session.test.js.map +1 -1
  921. package/dist/frontend/ts7/source-parser.js +17 -6
  922. package/dist/frontend/ts7/source-parser.js.map +1 -1
  923. package/dist/frontend/ts7/source-parser.test.js +32 -9
  924. package/dist/frontend/ts7/source-parser.test.js.map +1 -1
  925. package/dist/frontend/tsc-codes.js +56 -11
  926. package/dist/frontend/tsc-codes.js.map +1 -1
  927. package/dist/frontend/tsc-codes.test.d.ts +1 -0
  928. package/dist/frontend/tsc-codes.test.js +16 -0
  929. package/dist/frontend/tsc-codes.test.js.map +1 -0
  930. package/dist/frontend/type-mapper.js +545 -204
  931. package/dist/frontend/type-mapper.js.map +1 -1
  932. package/dist/frontend/type-mapper.test.js +108 -33
  933. package/dist/frontend/type-mapper.test.js.map +1 -1
  934. package/dist/frontend/union-discriminants.js +8 -2
  935. package/dist/frontend/union-discriminants.js.map +1 -1
  936. package/dist/frontend/union-discriminants.test.js +77 -20
  937. package/dist/frontend/union-discriminants.test.js.map +1 -1
  938. package/dist/index.d.ts +9 -8
  939. package/dist/index.js +150 -81
  940. package/dist/index.js.map +1 -1
  941. package/dist/ir/analysis.js +95 -38
  942. package/dist/ir/analysis.js.map +1 -1
  943. package/dist/ir/analysis.test.js +91 -15
  944. package/dist/ir/analysis.test.js.map +1 -1
  945. package/dist/ir/api.d.ts +4 -0
  946. package/dist/ir/api.js +6 -0
  947. package/dist/ir/api.js.map +1 -0
  948. package/dist/ir/build.d.ts +7 -0
  949. package/dist/ir/build.js +27 -1
  950. package/dist/ir/build.js.map +1 -1
  951. package/dist/ir/builtin-effects.d.ts +9 -0
  952. package/dist/ir/builtin-effects.js +631 -0
  953. package/dist/ir/builtin-effects.js.map +1 -0
  954. package/dist/ir/builtin-signatures.d.ts +15 -0
  955. package/dist/ir/builtin-signatures.js +3396 -0
  956. package/dist/ir/builtin-signatures.js.map +1 -0
  957. package/dist/ir/byte-numbers.js +67 -16
  958. package/dist/ir/byte-numbers.js.map +1 -1
  959. package/dist/ir/byte-numbers.test.js +17 -4
  960. package/dist/ir/byte-numbers.test.js.map +1 -1
  961. package/dist/ir/constant-tables.js +13 -5
  962. package/dist/ir/constant-tables.js.map +1 -1
  963. package/dist/ir/constant-tables.test.js +47 -7
  964. package/dist/ir/constant-tables.test.js.map +1 -1
  965. package/dist/ir/control-flow.js +2 -1
  966. package/dist/ir/control-flow.js.map +1 -1
  967. package/dist/ir/control-flow.test.js +35 -11
  968. package/dist/ir/control-flow.test.js.map +1 -1
  969. package/dist/ir/initializer-bindings.d.ts +9 -0
  970. package/dist/ir/initializer-bindings.js +115 -0
  971. package/dist/ir/initializer-bindings.js.map +1 -0
  972. package/dist/ir/initializer-bindings.test.d.ts +1 -0
  973. package/dist/ir/initializer-bindings.test.js +118 -0
  974. package/dist/ir/initializer-bindings.test.js.map +1 -0
  975. package/dist/ir/integer-loop-facts.d.ts +12 -0
  976. package/dist/ir/integer-loop-facts.js +137 -0
  977. package/dist/ir/integer-loop-facts.js.map +1 -0
  978. package/dist/ir/integer-loops.js +85 -30
  979. package/dist/ir/integer-loops.js.map +1 -1
  980. package/dist/ir/integer-loops.test.js +76 -13
  981. package/dist/ir/integer-loops.test.js.map +1 -1
  982. package/dist/ir/integer-ranges.js +93 -21
  983. package/dist/ir/integer-ranges.js.map +1 -1
  984. package/dist/ir/integer-ranges.test.js +199 -21
  985. package/dist/ir/integer-ranges.test.js.map +1 -1
  986. package/dist/ir/intrinsic-signatures.d.ts +20 -0
  987. package/dist/ir/intrinsic-signatures.js +57 -0
  988. package/dist/ir/intrinsic-signatures.js.map +1 -0
  989. package/dist/ir/ir.d.ts +6 -2150
  990. package/dist/ir/ir.js +160 -1396
  991. package/dist/ir/ir.js.map +1 -1
  992. package/dist/ir/ir.test.js +98 -77
  993. package/dist/ir/ir.test.js.map +1 -1
  994. package/dist/ir/runtime-features.d.ts +221 -0
  995. package/dist/ir/runtime-features.js +551 -0
  996. package/dist/ir/runtime-features.js.map +1 -0
  997. package/dist/ir/runtime-features.test.d.ts +1 -0
  998. package/dist/ir/runtime-features.test.js +98 -0
  999. package/dist/ir/runtime-features.test.js.map +1 -0
  1000. package/dist/ir/scalar-records.js +130 -40
  1001. package/dist/ir/scalar-records.js.map +1 -1
  1002. package/dist/ir/scalar-records.test.js +146 -27
  1003. package/dist/ir/scalar-records.test.js.map +1 -1
  1004. package/dist/ir/serialize.js +4 -2
  1005. package/dist/ir/serialize.js.map +1 -1
  1006. package/dist/ir/serialize.test.js +44 -9
  1007. package/dist/ir/serialize.test.js.map +1 -1
  1008. package/dist/ir/traverse.js +156 -43
  1009. package/dist/ir/traverse.js.map +1 -1
  1010. package/dist/ir/traverse.test.js +99 -24
  1011. package/dist/ir/traverse.test.js.map +1 -1
  1012. package/dist/ir/validate.d.ts +1 -31
  1013. package/dist/ir/validate.js +782 -1889
  1014. package/dist/ir/validate.js.map +1 -1
  1015. package/dist/ir/validate.test.js +610 -114
  1016. package/dist/ir/validate.test.js.map +1 -1
  1017. package/dist/library/cache-primitives.js +9 -10
  1018. package/dist/library/cache-primitives.js.map +1 -1
  1019. package/dist/library/cache-reset.test.js +2 -1
  1020. package/dist/library/cache-reset.test.js.map +1 -1
  1021. package/dist/library/compiler-self-identity.js +11 -5
  1022. package/dist/library/compiler-self-identity.js.map +1 -1
  1023. package/dist/library/compiler-self-identity.test.js +10 -3
  1024. package/dist/library/compiler-self-identity.test.js.map +1 -1
  1025. package/dist/library/fence-eval.js +24 -7
  1026. package/dist/library/fence-eval.js.map +1 -1
  1027. package/dist/library/fence-eval.test.js +31 -7
  1028. package/dist/library/fence-eval.test.js.map +1 -1
  1029. package/dist/library/int-infer.js +199 -59
  1030. package/dist/library/int-infer.js.map +1 -1
  1031. package/dist/library/int-infer.test.js +133 -57
  1032. package/dist/library/int-infer.test.js.map +1 -1
  1033. package/dist/library/ir-policy.d.ts +27 -0
  1034. package/dist/library/ir-policy.js +232 -0
  1035. package/dist/library/ir-policy.js.map +1 -0
  1036. package/dist/library/library-cache.js +40 -17
  1037. package/dist/library/library-cache.js.map +1 -1
  1038. package/dist/library/library-cache.test.js +24 -13
  1039. package/dist/library/library-cache.test.js.map +1 -1
  1040. package/dist/library/library-profile.js +68 -13
  1041. package/dist/library/library-profile.js.map +1 -1
  1042. package/dist/library/prepare.js +48 -20
  1043. package/dist/library/prepare.js.map +1 -1
  1044. package/dist/library/semantic-source.js +16 -14
  1045. package/dist/library/semantic-source.js.map +1 -1
  1046. package/dist/library/semantic-source.test.js +9 -14
  1047. package/dist/library/semantic-source.test.js.map +1 -1
  1048. package/dist/library/sidecar-validate.js +53 -12
  1049. package/dist/library/sidecar-validate.js.map +1 -1
  1050. package/dist/library/sidecar.js +85 -24
  1051. package/dist/library/sidecar.js.map +1 -1
  1052. package/dist/library/trap-teaching.js +11 -2
  1053. package/dist/library/trap-teaching.js.map +1 -1
  1054. package/dist/native/cache.js +10 -4
  1055. package/dist/native/cache.js.map +1 -1
  1056. package/dist/native/cli.js +34 -9
  1057. package/dist/native/cli.js.map +1 -1
  1058. package/dist/native/compiler.js +167 -43
  1059. package/dist/native/compiler.js.map +1 -1
  1060. package/dist/native/compiler.test.js +129 -32
  1061. package/dist/native/compiler.test.js.map +1 -1
  1062. package/dist/native/comptime.js +23 -7
  1063. package/dist/native/comptime.js.map +1 -1
  1064. package/dist/native/comptime.test.js +26 -6
  1065. package/dist/native/comptime.test.js.map +1 -1
  1066. package/dist/native/executable-cache.js +77 -27
  1067. package/dist/native/executable-cache.js.map +1 -1
  1068. package/dist/native/executable-cache.test.js +41 -6
  1069. package/dist/native/executable-cache.test.js.map +1 -1
  1070. package/dist/native/file-identity.js +9 -2
  1071. package/dist/native/file-identity.js.map +1 -1
  1072. package/dist/native/file-identity.test.js.map +1 -1
  1073. package/dist/native/library.js +50 -12
  1074. package/dist/native/library.js.map +1 -1
  1075. package/dist/native/prepare.js +119 -34
  1076. package/dist/native/prepare.js.map +1 -1
  1077. package/dist/native/prepare.test.js +22 -6
  1078. package/dist/native/prepare.test.js.map +1 -1
  1079. package/dist/native/runtime-typescript.js +24 -11
  1080. package/dist/native/runtime-typescript.js.map +1 -1
  1081. package/dist/native/runtime-typescript.test.js.map +1 -1
  1082. package/dist/native/sanitizer.js +71 -18
  1083. package/dist/native/sanitizer.js.map +1 -1
  1084. package/dist/native/sanitizer.test.js +77 -20
  1085. package/dist/native/sanitizer.test.js.map +1 -1
  1086. package/dist/native/task.js.map +1 -1
  1087. package/dist/native/task.test.js +7 -2
  1088. package/dist/native/task.test.js.map +1 -1
  1089. package/dist/native/toolchain.js +68 -26
  1090. package/dist/native/toolchain.js.map +1 -1
  1091. package/dist/native/toolchain.test.js +59 -20
  1092. package/dist/native/toolchain.test.js.map +1 -1
  1093. package/dist/startup-cache.d.ts +1 -1
  1094. package/dist/startup-cache.js +1 -1
  1095. package/dist/startup-cache.js.map +1 -1
  1096. package/dist/timing.js.map +1 -1
  1097. package/package.json +20 -20
  1098. package/surface-manifest.json +1 -1
  1099. package/dist/frontend/lowering/lower-builtins.d.ts +0 -601
  1100. package/dist/frontend/lowering/lower-builtins.js +0 -8986
  1101. package/dist/frontend/lowering/lower-builtins.js.map +0 -1
  1102. package/dist/frontend/lowering/lower-containers.d.ts +0 -382
  1103. package/dist/frontend/lowering/lower-containers.js +0 -7344
  1104. package/dist/frontend/lowering/lower-containers.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { execFileSync, spawnSync } from "node:child_process";
2
2
  import { createHash } from "node:crypto";
3
3
  import { existsSync } from "node:fs";
4
- import { chmod, cp, mkdir, mkdtemp, readdir, readFile, rm, stat, symlink, utimes, writeFile } from "node:fs/promises";
4
+ import { chmod, cp, mkdir, mkdtemp, readdir, readFile, rm, stat, symlink, utimes, writeFile, } from "node:fs/promises";
5
5
  import { tmpdir } from "node:os";
6
6
  import { delimiter, join } from "node:path";
7
7
  import { afterAll, afterEach, expect, test as vitestTest } from "vitest";
@@ -33,11 +33,11 @@ function cacheTestSelected(name) {
33
33
  }
34
34
  return createHash("sha1").update(name).digest().readUInt32BE(0) % total === index - 1;
35
35
  }
36
- const test = Object.assign((name, ...args) => Reflect.apply(cacheTestSelected(name) ? vitestTest : vitestTest.skip, undefined, [name, ...args]), {
37
- skipIf: (condition) => (name, ...args) => Reflect.apply(condition || !cacheTestSelected(name) ? vitestTest.skip : vitestTest, undefined, [
38
- name,
39
- ...args,
40
- ]),
36
+ const test = Object.assign((name, ...args) => Reflect.apply(cacheTestSelected(name) ? vitestTest : vitestTest.skip, undefined, [
37
+ name,
38
+ ...args,
39
+ ]), {
40
+ skipIf: (condition) => (name, ...args) => Reflect.apply(condition || !cacheTestSelected(name) ? vitestTest.skip : vitestTest, undefined, [name, ...args]),
41
41
  });
42
42
  const trustInstrumentedCompilerWrapper = () => {
43
43
  process.env["SCRIPTC_TEST_TRUST_COMPILER_WRAPPER"] = "1";
@@ -157,7 +157,7 @@ test.skipIf(process.platform === "win32")("the early executable identity follows
157
157
  await Promise.all([
158
158
  writeFile(firstCompiler, "#!/bin/sh\nexit 0\n"),
159
159
  writeFile(secondCompiler, "#!/bin/sh\nexit 0\n"),
160
- writeFile(join(binDir, "clang"), "#!/bin/sh\nselected=$(cat \"$SCRIPTC_TEST_EFFECTIVE_COMPILER\")\nprintf '\"%s\" \"-cc1\"\\n' \"$selected\" >&2\n"),
160
+ writeFile(join(binDir, "clang"), '#!/bin/sh\nselected=$(cat "$SCRIPTC_TEST_EFFECTIVE_COMPILER")\nprintf \'"%s" "-cc1"\\n\' "$selected" >&2\n'),
161
161
  writeFile(selector, `${firstCompiler}\n`),
162
162
  ]);
163
163
  await Promise.all([
@@ -184,8 +184,10 @@ test("native cache identities separate host architectures while cross targets re
184
184
  expect(vendorCacheTargetFlavor({ target: null }, "darwin", "x64")).toBe("native-darwin-x64");
185
185
  expect(vendorCacheTargetFlavor({ target: "x86_64-linux-gnu.2.36" }, "darwin", "arm64")).toBe("x86_64-linux-gnu.2.36");
186
186
  });
187
- test.skipIf(process.platform === "win32" || zigExecutable === undefined ||
188
- clangExecutable === undefined || arExecutable === undefined)("targetless Zig vendor caches are separate from host-clang and reusable", async () => {
187
+ test.skipIf(process.platform === "win32" ||
188
+ zigExecutable === undefined ||
189
+ clangExecutable === undefined ||
190
+ arExecutable === undefined)("targetless Zig vendor caches are separate from host-clang and reusable", async () => {
189
191
  const dir = await mkdtemp(join(tmpdir(), "scriptc-zig-vendor-cache-"));
190
192
  scratch.push(dir);
191
193
  const cacheRoot = join(dir, "cache");
@@ -217,7 +219,7 @@ test.skipIf(process.platform === "win32" || zigExecutable === undefined ||
217
219
  // reusable independently of the output path.
218
220
  systemLibraries: ["m"],
219
221
  });
220
- const hostEngine = (await readdir(vendorRoot)).find((name) => /^3c8f3d689539-plain-/.test(name));
222
+ const hostEngine = (await readdir(vendorRoot)).find((name) => name.startsWith("3c8f3d689539-plain-"));
221
223
  const hostTls = (await readdir(vendorRoot)).find((name) => name.startsWith("mbedtls-"));
222
224
  expect(hostEngine).toBeDefined();
223
225
  expect(hostTls).toBeDefined();
@@ -234,7 +236,7 @@ test.skipIf(process.platform === "win32" || zigExecutable === undefined ||
234
236
  };
235
237
  await compileC({ ...zigOptions, outPath: join(dir, "zig-first") });
236
238
  let vendorEntries = await readdir(vendorRoot);
237
- expect(vendorEntries.filter((name) => /^3c8f3d689539-plain-/.test(name))).toHaveLength(2);
239
+ expect(vendorEntries.filter((name) => name.startsWith("3c8f3d689539-plain-"))).toHaveLength(2);
238
240
  expect(vendorEntries.filter((name) => name.startsWith("mbedtls-")).length).toBe(2);
239
241
  // Host clang uses system zlib, so only the Zig build materializes a zlib
240
242
  // object family in the shared vendor root.
@@ -246,7 +248,7 @@ test.skipIf(process.platform === "win32" || zigExecutable === undefined ||
246
248
  await writeFile(join(vendorRoot, hostTls, "libmbedtls.a"), "host archive intentionally invalid\n");
247
249
  await compileC({ ...zigOptions, outPath: join(dir, "zig-second") });
248
250
  vendorEntries = await readdir(vendorRoot);
249
- expect(vendorEntries.filter((name) => /^3c8f3d689539-plain-/.test(name))).toHaveLength(2);
251
+ expect(vendorEntries.filter((name) => name.startsWith("3c8f3d689539-plain-"))).toHaveLength(2);
250
252
  expect(await readFile(join(vendorRoot, hostEngine, "libqjs.a"), "utf8")).toBe("host archive intentionally invalid\n");
251
253
  expect(await readFile(join(vendorRoot, hostTls, "libmbedtls.a"), "utf8")).toBe("host archive intentionally invalid\n");
252
254
  }
@@ -289,10 +291,10 @@ test("Zig COFF dry-run parsing retains every linker input on its single command
289
291
  ]);
290
292
  const output = [
291
293
  "lld-link",
292
- `\"${join(probeDir, "empty.o")}\"`,
293
- `\"${first}\"`,
294
- `\"${second}\"`,
295
- `\"${third}\"`,
294
+ `"${join(probeDir, "empty.o")}"`,
295
+ `"${first}"`,
296
+ `"${second}"`,
297
+ `"${third}"`,
296
298
  ].join(" ");
297
299
  expect(await parseLinkTraceFiles(output, probeDir, probeDir, true)).toEqual([first, second, third].sort());
298
300
  });
@@ -435,7 +437,9 @@ test.skipIf(process.platform === "win32")("new nested runtime headers invalidate
435
437
  await Promise.all([
436
438
  cp(originalRuntime, fakeRuntime, { recursive: true }),
437
439
  mkdir(projectDir),
438
- mkdir(join(dir, "runtime", "vendor"), { recursive: true }).then(() => cp(join(originalRuntime, "..", "vendor", "ryu"), join(dir, "runtime", "vendor", "ryu"), { recursive: true })),
440
+ mkdir(join(dir, "runtime", "vendor"), { recursive: true }).then(() => cp(join(originalRuntime, "..", "vendor", "ryu"), join(dir, "runtime", "vendor", "ryu"), {
441
+ recursive: true,
442
+ })),
439
443
  ]);
440
444
  await mkdir(join(fakeRuntime, "sys"));
441
445
  const numberSource = join(fakeRuntime, "scr_number.c");
@@ -488,7 +492,9 @@ test("implicit dependency seeds include separately compiled vendor system header
488
492
  // to the native object/cache identity.
489
493
  expect(includes).toContain("<stdatomic.h>");
490
494
  });
491
- test.skipIf(process.platform === "win32" || clangExecutable === undefined || arExecutable === undefined ||
495
+ test.skipIf(process.platform === "win32" ||
496
+ clangExecutable === undefined ||
497
+ arExecutable === undefined ||
492
498
  ldExecutable === undefined)("public native builds re-probe ccache availability after PATH changes", async () => {
493
499
  const dir = await mkdtemp(join(tmpdir(), "scriptc-ccache-reset-"));
494
500
  scratch.push(dir);
@@ -703,8 +709,7 @@ exec "$SCRIPTC_TEST_REAL_AR" "$@" "$SCRIPTC_TEST_AR_EXTRA"
703
709
  cacheIdentity: TEST_CACHE_IDENTITY,
704
710
  });
705
711
  expect(runProbe()).toBe("1");
706
- const objectSets = (await readdir(join(cacheRoot, "obj"), { withFileTypes: true }))
707
- .filter((entry) => entry.isDirectory() && !entry.name.startsWith("build-"));
712
+ const objectSets = (await readdir(join(cacheRoot, "obj"), { withFileTypes: true })).filter((entry) => entry.isDirectory() && !entry.name.startsWith("build-"));
708
713
  expect(objectSets).toHaveLength(1);
709
714
  await expect(stat(join(cacheRoot, "lib"))).rejects.toMatchObject({ code: "ENOENT" });
710
715
  // The wrapper executable/version and every scriptc-owned input remain
@@ -717,8 +722,7 @@ exec "$SCRIPTC_TEST_REAL_AR" "$@" "$SCRIPTC_TEST_AR_EXTRA"
717
722
  cacheIdentity: TEST_CACHE_IDENTITY,
718
723
  });
719
724
  expect(runProbe()).toBe("2");
720
- expect((await readdir(join(cacheRoot, "obj"), { withFileTypes: true }))
721
- .filter((entry) => entry.isDirectory() && !entry.name.startsWith("build-"))).toHaveLength(1);
725
+ expect((await readdir(join(cacheRoot, "obj"), { withFileTypes: true })).filter((entry) => entry.isDirectory() && !entry.name.startsWith("build-"))).toHaveLength(1);
722
726
  await expect(stat(join(cacheRoot, "lib"))).rejects.toMatchObject({ code: "ENOENT" });
723
727
  }
724
728
  finally {
@@ -800,8 +804,7 @@ exec "$SCRIPTC_TEST_REAL_CLANG" "$@"
800
804
  await compileC({ cPath, outPath, cacheIdentity: TEST_CACHE_IDENTITY });
801
805
  expect(execFileSync(outPath, { encoding: "utf8" }).trim()).toBe("2");
802
806
  expect(await completeArtifacts(cacheRoot, "bin")).toHaveLength(2);
803
- const objectSets = (await readdir(join(cacheRoot, "obj"), { withFileTypes: true }))
804
- .filter((entry) => entry.isDirectory() && !entry.name.startsWith("build-"));
807
+ const objectSets = (await readdir(join(cacheRoot, "obj"), { withFileTypes: true })).filter((entry) => entry.isDirectory() && !entry.name.startsWith("build-"));
805
808
  expect(objectSets).toHaveLength(2);
806
809
  }
807
810
  finally {
@@ -895,8 +898,7 @@ exec "$SCRIPTC_TEST_REAL_CLANG" "$@"
895
898
  await writeFile(header, "#define SCRIPTC_WRAPPER_HEADER_VALUE 2\n");
896
899
  await compileC({ cPath, outPath, cacheIdentity: TEST_CACHE_IDENTITY });
897
900
  expect(execFileSync(outPath, { encoding: "utf8" }).trim()).toBe("2");
898
- const objectSets = (await readdir(join(cacheRoot, "obj"), { withFileTypes: true }))
899
- .filter((entry) => entry.isDirectory() && !entry.name.startsWith("build-"));
901
+ const objectSets = (await readdir(join(cacheRoot, "obj"), { withFileTypes: true })).filter((entry) => entry.isDirectory() && !entry.name.startsWith("build-"));
900
902
  expect(objectSets).toHaveLength(2);
901
903
  }
902
904
  finally {
@@ -1166,7 +1168,7 @@ test.skipIf(process.platform === "win32")("implicit system-header changes invali
1166
1168
  exec "$SCRIPTC_TEST_REAL_CLANG" -include "$SCRIPTC_TEST_IMPLICIT_HEADER" "$@"
1167
1169
  `);
1168
1170
  await chmod(wrapper, 0o755);
1169
- await writeFile(cPath, '#include <stdio.h>\nint main(void) { puts(SCRIPTC_IMPLICIT_PROBE); return 0; }\n');
1171
+ await writeFile(cPath, "#include <stdio.h>\nint main(void) { puts(SCRIPTC_IMPLICIT_PROBE); return 0; }\n");
1170
1172
  process.env["SCRIPTC_CACHE_DIR"] = cacheRoot;
1171
1173
  process.env["SCRIPTC_TEST_REAL_CLANG"] = realClang;
1172
1174
  process.env["SCRIPTC_TEST_IMPLICIT_HEADER"] = header;
@@ -1184,8 +1186,7 @@ exec "$SCRIPTC_TEST_REAL_CLANG" -include "$SCRIPTC_TEST_IMPLICIT_HEADER" "$@"
1184
1186
  await compileC({ cPath, outPath: secondOut, cacheIdentity: TEST_CACHE_IDENTITY });
1185
1187
  expect(execFileSync(secondOut, { encoding: "utf8" }).trim()).toBe("two");
1186
1188
  expect(await completeArtifacts(cacheRoot, "bin")).toHaveLength(2);
1187
- const objectSets = (await readdir(join(cacheRoot, "obj"), { withFileTypes: true }))
1188
- .filter((entry) => entry.isDirectory() && !entry.name.startsWith("build-"));
1189
+ const objectSets = (await readdir(join(cacheRoot, "obj"), { withFileTypes: true })).filter((entry) => entry.isDirectory() && !entry.name.startsWith("build-"));
1189
1190
  expect(objectSets).toHaveLength(2);
1190
1191
  }
1191
1192
  finally {
@@ -1241,7 +1242,7 @@ esac
1241
1242
  exec "$SCRIPTC_TEST_REAL_CLANG" -isystem "$SCRIPTC_TEST_PROGRAM_HEADER_DIR" "$@"
1242
1243
  `);
1243
1244
  await chmod(wrapper, 0o755);
1244
- await writeFile(cPath, '#include <stdio.h>\n#include <scriptc_program_probe.h>\nint main(void) { puts(SCRIPTC_PROGRAM_HEADER); return 0; }\n');
1245
+ await writeFile(cPath, "#include <stdio.h>\n#include <scriptc_program_probe.h>\nint main(void) { puts(SCRIPTC_PROGRAM_HEADER); return 0; }\n");
1245
1246
  process.env["SCRIPTC_CACHE_DIR"] = cacheRoot;
1246
1247
  process.env["SCRIPTC_TEST_DISABLE_CCACHE"] = "1";
1247
1248
  process.env["SCRIPTC_TEST_REAL_CLANG"] = realClang;
@@ -1326,7 +1327,7 @@ exec "$SCRIPTC_TEST_REAL_CLANG" -include "$selected" "$@"
1326
1327
  await Promise.all([
1327
1328
  writeFile(firstHeader, '#define SCRIPTC_IMPLICIT_REDIRECT "one"\n'),
1328
1329
  writeFile(secondHeader, '#define SCRIPTC_IMPLICIT_REDIRECT "two"\n'),
1329
- writeFile(cPath, '#include <stdio.h>\nint main(void) { puts(SCRIPTC_IMPLICIT_REDIRECT); return 0; }\n'),
1330
+ writeFile(cPath, "#include <stdio.h>\nint main(void) { puts(SCRIPTC_IMPLICIT_REDIRECT); return 0; }\n"),
1330
1331
  ]);
1331
1332
  process.env["SCRIPTC_CACHE_DIR"] = cacheRoot;
1332
1333
  process.env["SCRIPTC_TEST_DISABLE_CCACHE"] = "1";
@@ -1533,8 +1534,7 @@ test.skipIf(process.platform === "win32" || zigExecutable === undefined)("zig CO
1533
1534
  // lld-link rejects GNU ld's `-t`; the Zig `-###` fallback must still
1534
1535
  // capture every absolute CRT/import-library input. Pin the object-cache
1535
1536
  // mtimes: a complete hit never stages them, while a miss promotes them.
1536
- const [objectSet] = (await readdir(join(cacheRoot, "obj"), { withFileTypes: true }))
1537
- .filter((entry) => entry.isDirectory() && !entry.name.startsWith("build-"));
1537
+ const [objectSet] = (await readdir(join(cacheRoot, "obj"), { withFileTypes: true })).filter((entry) => entry.isDirectory() && !entry.name.startsWith("build-"));
1538
1538
  expect(objectSet).toBeDefined();
1539
1539
  const objectDir = join(cacheRoot, "obj", objectSet.name);
1540
1540
  const objectNames = (await readdir(objectDir)).filter((name) => name.endsWith(".o"));
@@ -1669,7 +1669,11 @@ test("cache hits honor the current umask", async () => {
1669
1669
  expect(await completeArtifacts(cacheRoot, "bin")).toHaveLength(1);
1670
1670
  process.umask(0o022);
1671
1671
  const firstArchivePath = join(dir, "first.lib.a");
1672
- await compileLibArchive({ cPath, outPath: firstArchivePath, cacheIdentity: TEST_CACHE_IDENTITY });
1672
+ await compileLibArchive({
1673
+ cPath,
1674
+ outPath: firstArchivePath,
1675
+ cacheIdentity: TEST_CACHE_IDENTITY,
1676
+ });
1673
1677
  const firstArchive = await readFile(firstArchivePath);
1674
1678
  if (process.platform !== "win32") {
1675
1679
  const [cachedArchive] = await completeArtifacts(cacheRoot, "lib");
@@ -1817,7 +1821,7 @@ test("mutable compiler inputs bypass caches when files change in place", async (
1817
1821
  const oldVendorCacheDir = process.env["SCRIPTC_TEST_VENDOR_CACHE_DIR"];
1818
1822
  try {
1819
1823
  await mkdir(headers);
1820
- await writeFile(cPath, '#include <stdio.h>\n#include <cache_probe.h>\nint main(void) { puts(CACHE_PROBE); return 0; }\n');
1824
+ await writeFile(cPath, "#include <stdio.h>\n#include <cache_probe.h>\nint main(void) { puts(CACHE_PROBE); return 0; }\n");
1821
1825
  process.env["SCRIPTC_CACHE_DIR"] = cacheRoot;
1822
1826
  process.env["SCRIPTC_TEST_VENDOR_CACHE_DIR"] = vendorCacheRoot;
1823
1827
  delete process.env["SCRIPTC_NO_CACHE"];
@@ -1842,11 +1846,19 @@ test("mutable compiler inputs bypass caches when files change in place", async (
1842
1846
  });
1843
1847
  expect(execFileSync(secondOut, { encoding: "utf8" }).trim()).toBe("two");
1844
1848
  const firstArchivePath = join(dir, "first.lib.a");
1845
- await compileLibArchive({ cPath, outPath: firstArchivePath, cacheIdentity: TEST_CACHE_IDENTITY });
1849
+ await compileLibArchive({
1850
+ cPath,
1851
+ outPath: firstArchivePath,
1852
+ cacheIdentity: TEST_CACHE_IDENTITY,
1853
+ });
1846
1854
  const firstArchive = await readFile(firstArchivePath);
1847
1855
  await writeFile(headerPath, '#define CACHE_PROBE "three"\n');
1848
1856
  const secondArchivePath = join(dir, "second.lib.a");
1849
- await compileLibArchive({ cPath, outPath: secondArchivePath, cacheIdentity: TEST_CACHE_IDENTITY });
1857
+ await compileLibArchive({
1858
+ cPath,
1859
+ outPath: secondArchivePath,
1860
+ cacheIdentity: TEST_CACHE_IDENTITY,
1861
+ });
1850
1862
  expect(await readFile(secondArchivePath)).not.toEqual(firstArchive);
1851
1863
  // CPATH can mutate behind a stable string, so no cache tier is populated.
1852
1864
  await expect(stat(cacheRoot)).rejects.toMatchObject({ code: "ENOENT" });
@@ -2058,7 +2070,7 @@ test("native cache warming seeds exact runtime and vendor families without compl
2058
2070
  expect(await readdir(join(cacheRoot, "bin")).catch(() => [])).toEqual([]);
2059
2071
  const vendorEntries = await readdir(vendorCacheRoot);
2060
2072
  const tlsEntry = vendorEntries.find((name) => name.startsWith("mbedtls-"));
2061
- const engineEntry = vendorEntries.find((name) => /^3c8f3d689539-plain-/.test(name));
2073
+ const engineEntry = vendorEntries.find((name) => name.startsWith("3c8f3d689539-plain-"));
2062
2074
  expect(tlsEntry).toBeDefined();
2063
2075
  expect(engineEntry).toBeDefined();
2064
2076
  expect((await stat(join(vendorCacheRoot, tlsEntry, "libmbedtls.a.sha256"))).isFile()).toBe(true);
@@ -2096,7 +2108,7 @@ test("damaged shared vendor archives are rejected and rebuilt before linking", a
2096
2108
  await writeFile(cPath, "int main(void) { return 0; }\n");
2097
2109
  await warmNativeCaches({ profiles: ["dynamic"] });
2098
2110
  const vendorRoot = join(cacheRoot, "vendor");
2099
- const engineDir = (await readdir(vendorRoot)).find((name) => /^3c8f3d689539-plain-/.test(name));
2111
+ const engineDir = (await readdir(vendorRoot)).find((name) => name.startsWith("3c8f3d689539-plain-"));
2100
2112
  expect(engineDir).toBeDefined();
2101
2113
  const engineArchive = join(vendorRoot, engineDir, "libqjs.a");
2102
2114
  expect((await stat(`${engineArchive}.sha256`)).isFile()).toBe(true);
@@ -2145,11 +2157,11 @@ test("dynamic builds promote staged vendor archives before bounded LRU eviction"
2145
2157
  await writeFile(cPath, "int main(void) { return 0; }\n");
2146
2158
  await warmNativeCaches({ profiles: ["dynamic"] });
2147
2159
  const vendorRoot = join(cacheRoot, "vendor");
2148
- const engineDir = (await readdir(vendorRoot)).find((name) => /^3c8f3d689539-plain-/.test(name));
2160
+ const engineDir = (await readdir(vendorRoot)).find((name) => name.startsWith("3c8f3d689539-plain-"));
2149
2161
  expect(engineDir).toBeDefined();
2150
2162
  const engineArchive = join(vendorRoot, engineDir, "libqjs.a");
2151
2163
  const initialBytes = await cacheTreeBytes(cacheRoot);
2152
- const capMb = Math.max(4, Math.ceil(initialBytes * 2 / (1024 * 1024)));
2164
+ const capMb = Math.max(4, Math.ceil((initialBytes * 2) / (1024 * 1024)));
2153
2165
  const filler = join(cacheRoot, "filler.bin");
2154
2166
  const staleArchiveTime = new Date("2000-01-01T00:00:00.000Z");
2155
2167
  const fillerTime = new Date("2001-01-01T00:00:00.000Z");
@@ -2535,8 +2547,8 @@ exec "$@"
2535
2547
  expect(await completeArtifacts(cacheRoot, "bin")).toHaveLength(2);
2536
2548
  await Promise.all([rm(signal, { force: true }), rm(release, { force: true })]);
2537
2549
  const libPath = join(dir, "library.c");
2538
- const libOne = "const char *scriptc_cache_race_value = \"lib-race-one-unique\";\n";
2539
- const libTwo = "const char *scriptc_cache_race_value = \"lib-race-two-unique\";\n";
2550
+ const libOne = 'const char *scriptc_cache_race_value = "lib-race-one-unique";\n';
2551
+ const libTwo = 'const char *scriptc_cache_race_value = "lib-race-two-unique";\n';
2540
2552
  process.env["SCRIPTC_TEST_RACE_SOURCE"] = libPath;
2541
2553
  await writeFile(libPath, libOne);
2542
2554
  const firstArchivePath = join(dir, "first.lib.a");
@@ -2645,7 +2657,7 @@ done
2645
2657
  exec "$SCRIPTC_TEST_REAL_CLANG" -include "$SCRIPTC_TEST_IMPLICIT_HEADER" "$@"
2646
2658
  `);
2647
2659
  await chmod(wrapper, 0o755);
2648
- await writeFile(cPath, '#include <stdio.h>\nint main(void) { puts(SCRIPTC_IMPLICIT_RACE); return 0; }\n');
2660
+ await writeFile(cPath, "#include <stdio.h>\nint main(void) { puts(SCRIPTC_IMPLICIT_RACE); return 0; }\n");
2649
2661
  await writeFile(header, '#define SCRIPTC_IMPLICIT_RACE "one"\n');
2650
2662
  process.env["SCRIPTC_CACHE_DIR"] = cacheRoot;
2651
2663
  process.env["SCRIPTC_TEST_DISABLE_CCACHE"] = "1";
@@ -3490,8 +3502,7 @@ test("library identity edits reuse the cached large program object", async () =>
3490
3502
  outPath,
3491
3503
  cacheIdentity: TEST_CACHE_IDENTITY,
3492
3504
  });
3493
- const [objectName] = (await readdir(join(cacheRoot, "program-obj")))
3494
- .filter((name) => !name.endsWith(".sha256"));
3505
+ const [objectName] = (await readdir(join(cacheRoot, "program-obj"))).filter((name) => !name.endsWith(".sha256"));
3495
3506
  expect(objectName).toBeDefined();
3496
3507
  const objectPath = join(cacheRoot, "program-obj", objectName);
3497
3508
  const objectDigest = await readFile(`${objectPath}.sha256`, "utf8");
@@ -3510,7 +3521,7 @@ test("library identity edits reuse the cached large program object", async () =>
3510
3521
  expect((await readdir(join(cacheRoot, "program-obj"))).filter((name) => !name.endsWith(".sha256"))).toEqual([objectName]);
3511
3522
  const probeSource = join(dir, "probe.c");
3512
3523
  const probe = join(dir, "probe");
3513
- await writeFile(probeSource, "#include <stdio.h>\nint scriptc_large_program_value(void);\nunsigned long long scriptc_build_id(void);\nint main(void) { printf(\"%d %llu\\n\", scriptc_large_program_value(), scriptc_build_id()); }\n");
3524
+ await writeFile(probeSource, '#include <stdio.h>\nint scriptc_large_program_value(void);\nunsigned long long scriptc_build_id(void);\nint main(void) { printf("%d %llu\\n", scriptc_large_program_value(), scriptc_build_id()); }\n');
3514
3525
  execFileSync("clang", [probeSource, outPath, "-lm", "-o", probe]);
3515
3526
  expect(execFileSync(probe, { encoding: "utf8" })).toBe("7 2\n");
3516
3527
  }
@@ -3574,12 +3585,10 @@ entry:
3574
3585
  });
3575
3586
  };
3576
3587
  await build(7);
3577
- const initial = (await readdir(join(cacheRoot, "program-shard")))
3578
- .filter((name) => !name.endsWith(".sha256"));
3588
+ const initial = (await readdir(join(cacheRoot, "program-shard"))).filter((name) => !name.endsWith(".sha256"));
3579
3589
  expect(initial).toHaveLength(3);
3580
3590
  await build(9);
3581
- const after = (await readdir(join(cacheRoot, "program-shard")))
3582
- .filter((name) => !name.endsWith(".sha256"));
3591
+ const after = (await readdir(join(cacheRoot, "program-shard"))).filter((name) => !name.endsWith(".sha256"));
3583
3592
  expect(after).toHaveLength(4);
3584
3593
  expect(initial.filter((name) => after.includes(name))).toHaveLength(3);
3585
3594
  const old = new Date("2000-01-01T00:00:00.000Z");
@@ -3592,7 +3601,7 @@ entry:
3592
3601
  }
3593
3602
  const probeSource = join(dir, "probe.c");
3594
3603
  const probe = join(dir, "probe");
3595
- await writeFile(probeSource, "#include <stdio.h>\nlong long scriptc_public_value(void);\nint main(void) { printf(\"%lld\\n\", scriptc_public_value()); }\n");
3604
+ await writeFile(probeSource, '#include <stdio.h>\nlong long scriptc_public_value(void);\nint main(void) { printf("%lld\\n", scriptc_public_value()); }\n');
3596
3605
  execFileSync("clang", [probeSource, outPath, "-lm", "-o", probe]);
3597
3606
  expect(execFileSync(probe, { encoding: "utf8" })).toBe("9\n");
3598
3607
  }
@@ -3655,13 +3664,11 @@ entry:
3655
3664
  });
3656
3665
  };
3657
3666
  await build(7);
3658
- const initial = (await readdir(join(cacheRoot, "program-shard")))
3659
- .filter((name) => !name.endsWith(".sha256"));
3667
+ const initial = (await readdir(join(cacheRoot, "program-shard"))).filter((name) => !name.endsWith(".sha256"));
3660
3668
  expect(initial).toHaveLength(3);
3661
3669
  expect(spawnSync(outPath).status).toBe(7);
3662
3670
  await build(9);
3663
- const after = (await readdir(join(cacheRoot, "program-shard")))
3664
- .filter((name) => !name.endsWith(".sha256"));
3671
+ const after = (await readdir(join(cacheRoot, "program-shard"))).filter((name) => !name.endsWith(".sha256"));
3665
3672
  expect(after).toHaveLength(4);
3666
3673
  expect(initial.filter((name) => after.includes(name))).toHaveLength(3);
3667
3674
  expect(spawnSync(outPath).status).toBe(9);
@@ -3694,8 +3701,10 @@ entry:
3694
3701
  process.env["SCRIPTC_NO_CACHE"] = oldNoCache;
3695
3702
  }
3696
3703
  });
3697
- test.skipIf(process.platform === "win32" || clangExecutable === undefined ||
3698
- ldExecutable === undefined || (process.platform === "linux" && objcopyExecutable === undefined))("LLVM executable shards fall back without publishing a shard-derived binary", async () => {
3704
+ test.skipIf(process.platform === "win32" ||
3705
+ clangExecutable === undefined ||
3706
+ ldExecutable === undefined ||
3707
+ (process.platform === "linux" && objcopyExecutable === undefined))("LLVM executable shards fall back without publishing a shard-derived binary", async () => {
3699
3708
  const dir = await mkdtemp(join(tmpdir(), "scriptc-exe-program-shard-fallback-"));
3700
3709
  scratch.push(dir);
3701
3710
  const binDir = join(dir, "bin");
@@ -3725,7 +3734,7 @@ test.skipIf(process.platform === "win32" || clangExecutable === undefined ||
3725
3734
  ...(process.platform === "linux"
3726
3735
  ? [symlink(objcopyExecutable, join(binDir, "objcopy"))]
3727
3736
  : []),
3728
- writeFile(join(binDir, "ld"), "#!/bin/sh\nfor arg in \"$@\"; do if [ \"$arg\" = -r ]; then exit 1; fi; done\nexec \"$SCRIPTC_TEST_REAL_LD\" \"$@\"\n"),
3737
+ writeFile(join(binDir, "ld"), '#!/bin/sh\nfor arg in "$@"; do if [ "$arg" = -r ]; then exit 1; fi; done\nexec "$SCRIPTC_TEST_REAL_LD" "$@"\n'),
3729
3738
  writeFile(cPath, programSource),
3730
3739
  ]);
3731
3740
  await chmod(join(binDir, "ld"), 0o755);
@@ -3850,8 +3859,11 @@ test.skipIf(!nativeShardMergeAvailable)("LLVM merged-object and archive caches s
3850
3859
  process.env["SCRIPTC_NO_CACHE"] = oldNoCache;
3851
3860
  }
3852
3861
  });
3853
- test.skipIf(process.platform === "win32" || clangExecutable === undefined || arExecutable === undefined ||
3854
- ldExecutable === undefined || (process.platform === "linux" && objcopyExecutable === undefined))("LLVM merged-object caches follow in-place shard merge-tool replacements", async () => {
3862
+ test.skipIf(process.platform === "win32" ||
3863
+ clangExecutable === undefined ||
3864
+ arExecutable === undefined ||
3865
+ ldExecutable === undefined ||
3866
+ (process.platform === "linux" && objcopyExecutable === undefined))("LLVM merged-object caches follow in-place shard merge-tool replacements", async () => {
3855
3867
  const dir = await mkdtemp(join(tmpdir(), "scriptc-lib-program-shard-merge-tool-"));
3856
3868
  scratch.push(dir);
3857
3869
  const binDir = join(dir, "bin");
@@ -3999,7 +4011,9 @@ test.skipIf(process.platform === "win32" || clangExecutable === undefined || arE
3999
4011
  process.env["PATH"] = oldPath;
4000
4012
  }
4001
4013
  });
4002
- test.skipIf(process.platform === "win32" || clangExecutable === undefined || arExecutable === undefined ||
4014
+ test.skipIf(process.platform === "win32" ||
4015
+ clangExecutable === undefined ||
4016
+ arExecutable === undefined ||
4003
4017
  (process.platform === "linux" && objcopyExecutable === undefined))("LLVM library shards fall back when an available host merge tool fails", async () => {
4004
4018
  const dir = await mkdtemp(join(tmpdir(), "scriptc-lib-program-shard-merge-failure-"));
4005
4019
  scratch.push(dir);
@@ -4114,11 +4128,7 @@ test.skipIf(process.platform === "win32" || zigExecutable === undefined)("cross-
4114
4128
  ].join("\n"),
4115
4129
  outPath: archivePath,
4116
4130
  cacheIdentity: TEST_CACHE_IDENTITY,
4117
- localizeSymbols: [
4118
- "scriptc_large_program_value",
4119
- "scriptc_build_id",
4120
- "scriptc_abi_version",
4121
- ],
4131
+ localizeSymbols: ["scriptc_large_program_value", "scriptc_build_id", "scriptc_abi_version"],
4122
4132
  });
4123
4133
  await writeFile(probePath, [
4124
4134
  "int scriptc_large_program_value(void);",
@@ -4130,7 +4140,14 @@ test.skipIf(process.platform === "win32" || zigExecutable === undefined)("cross-
4130
4140
  "",
4131
4141
  ].join("\n"));
4132
4142
  execFileSync(zigExecutable, [
4133
- "cc", "-target", target, probePath, archivePath, "-lm", "-o", probeOutput,
4143
+ "cc",
4144
+ "-target",
4145
+ target,
4146
+ probePath,
4147
+ archivePath,
4148
+ "-lm",
4149
+ "-o",
4150
+ probeOutput,
4134
4151
  ]);
4135
4152
  }
4136
4153
  finally {
@@ -4159,7 +4176,14 @@ for (const cached of [false, true]) {
4159
4176
  const wrapperDirectory = join(directory, "tools");
4160
4177
  const invocationLog = join(directory, "invocations.jsonl");
4161
4178
  const source = join(directory, "program.c");
4162
- const environmentKeys = ["PATH", "SCRIPTC_CC", "SCRIPTC_TARGET", "SCRIPTC_CACHE_DIR", "SCRIPTC_NO_CACHE", "SCRIPTC_TEST_DISABLE_CCACHE"];
4179
+ const environmentKeys = [
4180
+ "PATH",
4181
+ "SCRIPTC_CC",
4182
+ "SCRIPTC_TARGET",
4183
+ "SCRIPTC_CACHE_DIR",
4184
+ "SCRIPTC_NO_CACHE",
4185
+ "SCRIPTC_TEST_DISABLE_CCACHE",
4186
+ ];
4163
4187
  const previous = new Map(environmentKeys.map((key) => [key, process.env[key]]));
4164
4188
  try {
4165
4189
  await mkdir(wrapperDirectory);
@@ -4194,8 +4218,12 @@ process.exit(result.status ?? 1);
4194
4218
  process.env["SCRIPTC_NO_CACHE"] = "1";
4195
4219
  delete process.env["SCRIPTC_TARGET"];
4196
4220
  trustInstrumentedCompilerWrapper();
4197
- const options = { cPath: source, sanitize: true, optimization: "dev",
4198
- ...(cached ? { cacheIdentity: TEST_CACHE_IDENTITY, systemLibraries: ["m"] } : {}) };
4221
+ const options = {
4222
+ cPath: source,
4223
+ sanitize: true,
4224
+ optimization: "dev",
4225
+ ...(cached ? { cacheIdentity: TEST_CACHE_IDENTITY, systemLibraries: ["m"] } : {}),
4226
+ };
4199
4227
  for (let index = 0; index < (cached ? 2 : 1); index++) {
4200
4228
  const output = join(directory, "program-" + index);
4201
4229
  await compileC({ ...options, outPath: output });
@@ -4203,7 +4231,10 @@ process.exit(result.status ?? 1);
4203
4231
  if (process.platform === "darwin")
4204
4232
  expect(existsSync(output + ".dSYM")).toBe(true);
4205
4233
  }
4206
- const invocations = (await readFile(invocationLog, "utf8")).trim().split("\n").map((line) => JSON.parse(line));
4234
+ const invocations = (await readFile(invocationLog, "utf8"))
4235
+ .trim()
4236
+ .split("\n")
4237
+ .map((line) => JSON.parse(line));
4207
4238
  const programCompiles = invocations.filter((args) => args.some((arg) => arg.endsWith("/program.c")));
4208
4239
  expect(programCompiles.length).toBeGreaterThanOrEqual(cached ? 2 : 1);
4209
4240
  for (const args of programCompiles)