@scriptc/compiler 0.2.4 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1201) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +972 -245
  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 +3 -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.d.ts +2 -0
  24. package/dist/backend/link-plan-core.js +10 -2
  25. package/dist/backend/link-plan-core.js.map +1 -1
  26. package/dist/backend/link-plan.d.ts +2 -1
  27. package/dist/backend/link-plan.js +7 -5
  28. package/dist/backend/link-plan.js.map +1 -1
  29. package/dist/backend/linker.d.ts +1 -1
  30. package/dist/backend/linker.js +42 -23
  31. package/dist/backend/linker.js.map +1 -1
  32. package/dist/backend/literals.js +5 -4
  33. package/dist/backend/literals.js.map +1 -1
  34. package/dist/backend/literals.test.js +30 -5
  35. package/dist/backend/literals.test.js.map +1 -1
  36. package/dist/backend/llvm/blocks.test.js +5 -2
  37. package/dist/backend/llvm/blocks.test.js.map +1 -1
  38. package/dist/backend/llvm/borrowed-inputs.js.map +1 -1
  39. package/dist/backend/llvm/borrowed-receivers.js +43 -19
  40. package/dist/backend/llvm/borrowed-receivers.js.map +1 -1
  41. package/dist/backend/llvm/byte-numbers.js +38 -5
  42. package/dist/backend/llvm/byte-numbers.js.map +1 -1
  43. package/dist/backend/llvm/byte-windows.d.ts +31 -0
  44. package/dist/backend/llvm/byte-windows.js +334 -0
  45. package/dist/backend/llvm/byte-windows.js.map +1 -0
  46. package/dist/backend/llvm/byte-windows.test.d.ts +1 -0
  47. package/dist/backend/llvm/byte-windows.test.js +244 -0
  48. package/dist/backend/llvm/byte-windows.test.js.map +1 -0
  49. package/dist/backend/llvm/bytes-bounds.js +73 -22
  50. package/dist/backend/llvm/bytes-bounds.js.map +1 -1
  51. package/dist/backend/llvm/call-lifetimes.d.ts +5 -2
  52. package/dist/backend/llvm/call-lifetimes.js +72 -19
  53. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  54. package/dist/backend/llvm/call-lifetimes.test.js +159 -28
  55. package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
  56. package/dist/backend/llvm/checked-value-lifetimes.d.ts +4 -0
  57. package/dist/backend/llvm/checked-value-lifetimes.js +14 -4
  58. package/dist/backend/llvm/checked-value-lifetimes.js.map +1 -1
  59. package/dist/backend/llvm/classes.d.ts +14 -1
  60. package/dist/backend/llvm/classes.js +94 -19
  61. package/dist/backend/llvm/classes.js.map +1 -1
  62. package/dist/backend/llvm/classes.test.d.ts +1 -0
  63. package/dist/backend/llvm/classes.test.js +99 -0
  64. package/dist/backend/llvm/classes.test.js.map +1 -0
  65. package/dist/backend/llvm/common.js +4 -1
  66. package/dist/backend/llvm/common.js.map +1 -1
  67. package/dist/backend/llvm/constant-callbacks.d.ts +11 -0
  68. package/dist/backend/llvm/constant-callbacks.js +213 -0
  69. package/dist/backend/llvm/constant-callbacks.js.map +1 -0
  70. package/dist/backend/llvm/constant-callbacks.test.d.ts +1 -0
  71. package/dist/backend/llvm/constant-callbacks.test.js +124 -0
  72. package/dist/backend/llvm/constant-callbacks.test.js.map +1 -0
  73. package/dist/backend/llvm/counted-loops.js +10 -3
  74. package/dist/backend/llvm/counted-loops.js.map +1 -1
  75. package/dist/backend/llvm/debug-info.js +33 -13
  76. package/dist/backend/llvm/debug-info.js.map +1 -1
  77. package/dist/backend/llvm/debug-info.test.js +28 -6
  78. package/dist/backend/llvm/debug-info.test.js.map +1 -1
  79. package/dist/backend/llvm/dyn.d.ts +1 -1
  80. package/dist/backend/llvm/dyn.js +75 -56
  81. package/dist/backend/llvm/dyn.js.map +1 -1
  82. package/dist/backend/llvm/emitter.d.ts +28 -3
  83. package/dist/backend/llvm/emitter.js +506 -145
  84. package/dist/backend/llvm/emitter.js.map +1 -1
  85. package/dist/backend/llvm/emitter.test.js +247 -50
  86. package/dist/backend/llvm/emitter.test.js.map +1 -1
  87. package/dist/backend/llvm/expr-async.js +25 -6
  88. package/dist/backend/llvm/expr-async.js.map +1 -1
  89. package/dist/backend/llvm/expr-bytes.js +24 -4
  90. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  91. package/dist/backend/llvm/expr-callbacks.js +10 -4
  92. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  93. package/dist/backend/llvm/expr-calls.js +110 -31
  94. package/dist/backend/llvm/expr-calls.js.map +1 -1
  95. package/dist/backend/llvm/expr-containers.d.ts +2 -0
  96. package/dist/backend/llvm/expr-containers.js +112 -41
  97. package/dist/backend/llvm/expr-containers.js.map +1 -1
  98. package/dist/backend/llvm/expr-control.js +1 -3
  99. package/dist/backend/llvm/expr-control.js.map +1 -1
  100. package/dist/backend/llvm/expr-dispatch.js +3 -1
  101. package/dist/backend/llvm/expr-dispatch.js.map +1 -1
  102. package/dist/backend/llvm/expr-dynamic.js +55 -7
  103. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  104. package/dist/backend/llvm/expr-island.js +26 -6
  105. package/dist/backend/llvm/expr-island.js.map +1 -1
  106. package/dist/backend/llvm/expr-primitives.js +95 -19
  107. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  108. package/dist/backend/llvm/expr-primitives.test.js +44 -2
  109. package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
  110. package/dist/backend/llvm/expr-records.js +10 -9
  111. package/dist/backend/llvm/expr-records.js.map +1 -1
  112. package/dist/backend/llvm/expr-stream-bridges.js +44 -26
  113. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  114. package/dist/backend/llvm/expr-stream-bridges.test.js +51 -14
  115. package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -1
  116. package/dist/backend/llvm/expr-stream-callbacks.js +34 -14
  117. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  118. package/dist/backend/llvm/integer-remainder.d.ts +7 -0
  119. package/dist/backend/llvm/integer-remainder.js +26 -0
  120. package/dist/backend/llvm/integer-remainder.js.map +1 -0
  121. package/dist/backend/llvm/integer-values.js +15 -4
  122. package/dist/backend/llvm/integer-values.js.map +1 -1
  123. package/dist/backend/llvm/integer-views.js +23 -7
  124. package/dist/backend/llvm/integer-views.js.map +1 -1
  125. package/dist/backend/llvm/integer-views.test.js +42 -7
  126. package/dist/backend/llvm/integer-views.test.js.map +1 -1
  127. package/dist/backend/llvm/layouts.js +1 -1
  128. package/dist/backend/llvm/layouts.js.map +1 -1
  129. package/dist/backend/llvm/lib-abi.js +20 -4
  130. package/dist/backend/llvm/lib-abi.js.map +1 -1
  131. package/dist/backend/llvm/lib-connect.js +7 -1
  132. package/dist/backend/llvm/lib-connect.js.map +1 -1
  133. package/dist/backend/llvm/lib-datagram.js +35 -10
  134. package/dist/backend/llvm/lib-datagram.js.map +1 -1
  135. package/dist/backend/llvm/lib-dispatch.js +42 -38
  136. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  137. package/dist/backend/llvm/lib-filesystem.js +33 -18
  138. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  139. package/dist/backend/llvm/lib-http2.js +60 -15
  140. package/dist/backend/llvm/lib-http2.js.map +1 -1
  141. package/dist/backend/llvm/lib-lookup.js +12 -5
  142. package/dist/backend/llvm/lib-lookup.js.map +1 -1
  143. package/dist/backend/llvm/lib-network.js +97 -31
  144. package/dist/backend/llvm/lib-network.js.map +1 -1
  145. package/dist/backend/llvm/lib-process.js +57 -14
  146. package/dist/backend/llvm/lib-process.js.map +1 -1
  147. package/dist/backend/llvm/lib-shared.js +122 -31
  148. package/dist/backend/llvm/lib-shared.js.map +1 -1
  149. package/dist/backend/llvm/lib-stream.js +33 -14
  150. package/dist/backend/llvm/lib-stream.js.map +1 -1
  151. package/dist/backend/llvm/lib-test.js +21 -7
  152. package/dist/backend/llvm/lib-test.js.map +1 -1
  153. package/dist/backend/llvm/lib-tls.js +69 -20
  154. package/dist/backend/llvm/lib-tls.js.map +1 -1
  155. package/dist/backend/llvm/local-array-reads.d.ts +9 -2
  156. package/dist/backend/llvm/local-array-reads.js +176 -89
  157. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  158. package/dist/backend/llvm/local-array-reads.test.js +394 -62
  159. package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
  160. package/dist/backend/llvm/local-union-storage.d.ts +25 -0
  161. package/dist/backend/llvm/local-union-storage.js +109 -0
  162. package/dist/backend/llvm/local-union-storage.js.map +1 -0
  163. package/dist/backend/llvm/local-union-storage.test.d.ts +1 -0
  164. package/dist/backend/llvm/local-union-storage.test.js +210 -0
  165. package/dist/backend/llvm/local-union-storage.test.js.map +1 -0
  166. package/dist/backend/llvm/loop-array-borrows.d.ts +11 -0
  167. package/dist/backend/llvm/loop-array-borrows.js +70 -0
  168. package/dist/backend/llvm/loop-array-borrows.js.map +1 -0
  169. package/dist/backend/llvm/loop-array-borrows.test.d.ts +1 -0
  170. package/dist/backend/llvm/loop-array-borrows.test.js +145 -0
  171. package/dist/backend/llvm/loop-array-borrows.test.js.map +1 -0
  172. package/dist/backend/llvm/map-read-lifetimes.d.ts +11 -2
  173. package/dist/backend/llvm/map-read-lifetimes.js +64 -19
  174. package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
  175. package/dist/backend/llvm/map-read-lifetimes.test.js +89 -17
  176. package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
  177. package/dist/backend/llvm/reference-effects.d.ts +5 -3
  178. package/dist/backend/llvm/reference-effects.js +74 -36
  179. package/dist/backend/llvm/reference-effects.js.map +1 -1
  180. package/dist/backend/llvm/reference-effects.test.js +92 -9
  181. package/dist/backend/llvm/reference-effects.test.js.map +1 -1
  182. package/dist/backend/llvm/shapes.d.ts +4 -1
  183. package/dist/backend/llvm/shapes.js +82 -24
  184. package/dist/backend/llvm/shapes.js.map +1 -1
  185. package/dist/backend/llvm/shapes.test.js +3 -1
  186. package/dist/backend/llvm/shapes.test.js.map +1 -1
  187. package/dist/backend/llvm/split-loops.d.ts +48 -0
  188. package/dist/backend/llvm/split-loops.js +183 -0
  189. package/dist/backend/llvm/split-loops.js.map +1 -0
  190. package/dist/backend/llvm/split.js +4 -11
  191. package/dist/backend/llvm/split.js.map +1 -1
  192. package/dist/backend/llvm/split.test.js +80 -8
  193. package/dist/backend/llvm/split.test.js.map +1 -1
  194. package/dist/backend/llvm/stack-callbacks.d.ts +14 -0
  195. package/dist/backend/llvm/stack-callbacks.js +73 -0
  196. package/dist/backend/llvm/stack-callbacks.js.map +1 -0
  197. package/dist/backend/llvm/stack-captures.d.ts +25 -0
  198. package/dist/backend/llvm/stack-captures.js +150 -0
  199. package/dist/backend/llvm/stack-captures.js.map +1 -0
  200. package/dist/backend/llvm/stack-unions.js +14 -5
  201. package/dist/backend/llvm/stack-unions.js.map +1 -1
  202. package/dist/backend/llvm/stack-unions.test.js +151 -32
  203. package/dist/backend/llvm/stack-unions.test.js.map +1 -1
  204. package/dist/backend/llvm/string-construction.js.map +1 -1
  205. package/dist/backend/llvm/string-construction.test.js +32 -7
  206. package/dist/backend/llvm/string-construction.test.js.map +1 -1
  207. package/dist/backend/llvm/string-lifetimes.js +14 -8
  208. package/dist/backend/llvm/string-lifetimes.js.map +1 -1
  209. package/dist/backend/llvm/string-lifetimes.test.js +119 -29
  210. package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
  211. package/dist/backend/llvm/string-slices.d.ts +20 -0
  212. package/dist/backend/llvm/string-slices.js +87 -0
  213. package/dist/backend/llvm/string-slices.js.map +1 -0
  214. package/dist/backend/llvm/string-slices.test.d.ts +1 -0
  215. package/dist/backend/llvm/string-slices.test.js +98 -0
  216. package/dist/backend/llvm/string-slices.test.js.map +1 -0
  217. package/dist/backend/llvm/switch-dispatch.d.ts +9 -0
  218. package/dist/backend/llvm/switch-dispatch.js +114 -0
  219. package/dist/backend/llvm/switch-dispatch.js.map +1 -0
  220. package/dist/backend/llvm/switch-dispatch.test.d.ts +1 -0
  221. package/dist/backend/llvm/switch-dispatch.test.js +83 -0
  222. package/dist/backend/llvm/switch-dispatch.test.js.map +1 -0
  223. package/dist/backend/llvm/unsupported.js.map +1 -1
  224. package/dist/backend/llvm/walkers.d.ts +4 -14
  225. package/dist/backend/llvm/walkers.js +58 -313
  226. package/dist/backend/llvm/walkers.js.map +1 -1
  227. package/dist/backend/mangle.js +9 -3
  228. package/dist/backend/mangle.js.map +1 -1
  229. package/dist/backend/may-throw.js +18 -8
  230. package/dist/backend/may-throw.js.map +1 -1
  231. package/dist/backend/may-throw.test.js +119 -23
  232. package/dist/backend/may-throw.test.js.map +1 -1
  233. package/dist/backend/native/artifact-stamps.d.ts +39 -0
  234. package/dist/backend/native/artifact-stamps.js +371 -0
  235. package/dist/backend/native/artifact-stamps.js.map +1 -0
  236. package/dist/backend/native/cache-warm.d.ts +24 -0
  237. package/dist/backend/native/cache-warm.js +80 -0
  238. package/dist/backend/native/cache-warm.js.map +1 -0
  239. package/dist/backend/native/compiler-fingerprint.d.ts +19 -0
  240. package/dist/backend/native/compiler-fingerprint.js +357 -0
  241. package/dist/backend/native/compiler-fingerprint.js.map +1 -0
  242. package/dist/backend/native/contracts.d.ts +316 -0
  243. package/dist/backend/native/contracts.js +2 -0
  244. package/dist/backend/native/contracts.js.map +1 -0
  245. package/dist/backend/native/dependency-files.d.ts +5 -0
  246. package/dist/backend/native/dependency-files.js +83 -0
  247. package/dist/backend/native/dependency-files.js.map +1 -0
  248. package/dist/backend/native/driver.d.ts +50 -0
  249. package/dist/backend/native/driver.js +294 -0
  250. package/dist/backend/native/driver.js.map +1 -0
  251. package/dist/backend/native/executable.d.ts +18 -0
  252. package/dist/backend/native/executable.js +1275 -0
  253. package/dist/backend/native/executable.js.map +1 -0
  254. package/dist/backend/native/library.d.ts +2 -0
  255. package/dist/backend/native/library.js +614 -0
  256. package/dist/backend/native/library.js.map +1 -0
  257. package/dist/backend/native/linker-fingerprint.d.ts +8 -0
  258. package/dist/backend/native/linker-fingerprint.js +174 -0
  259. package/dist/backend/native/linker-fingerprint.js.map +1 -0
  260. package/dist/backend/native/object-merge.d.ts +2 -0
  261. package/dist/backend/native/object-merge.js +154 -0
  262. package/dist/backend/native/object-merge.js.map +1 -0
  263. package/dist/backend/native/process.d.ts +17 -0
  264. package/dist/backend/native/process.js +42 -0
  265. package/dist/backend/native/process.js.map +1 -0
  266. package/dist/backend/native/program-shards.d.ts +21 -0
  267. package/dist/backend/native/program-shards.js +99 -0
  268. package/dist/backend/native/program-shards.js.map +1 -0
  269. package/dist/backend/native/runtime-inputs.d.ts +12 -0
  270. package/dist/backend/native/runtime-inputs.js +165 -0
  271. package/dist/backend/native/runtime-inputs.js.map +1 -0
  272. package/dist/backend/native/runtime-inputs.test.d.ts +1 -0
  273. package/dist/backend/native/runtime-inputs.test.js +64 -0
  274. package/dist/backend/native/runtime-inputs.test.js.map +1 -0
  275. package/dist/backend/native/runtime-objects.d.ts +16 -0
  276. package/dist/backend/native/runtime-objects.js +122 -0
  277. package/dist/backend/native/runtime-objects.js.map +1 -0
  278. package/dist/backend/native/session.d.ts +12 -0
  279. package/dist/backend/native/session.js +31 -0
  280. package/dist/backend/native/session.js.map +1 -0
  281. package/dist/backend/native/tool-identity.d.ts +37 -0
  282. package/dist/backend/native/tool-identity.js +310 -0
  283. package/dist/backend/native/tool-identity.js.map +1 -0
  284. package/dist/backend/native/trace-paths.d.ts +12 -0
  285. package/dist/backend/native/trace-paths.js +73 -0
  286. package/dist/backend/native/trace-paths.js.map +1 -0
  287. package/dist/backend/native/vendor.d.ts +1 -0
  288. package/dist/backend/native/vendor.js +12 -0
  289. package/dist/backend/native/vendor.js.map +1 -0
  290. package/dist/backend/native-codegen-core.d.ts +6 -0
  291. package/dist/backend/native-codegen-core.js +23 -1
  292. package/dist/backend/native-codegen-core.js.map +1 -1
  293. package/dist/backend/native-codegen.d.ts +5 -1
  294. package/dist/backend/native-codegen.js +52 -25
  295. package/dist/backend/native-codegen.js.map +1 -1
  296. package/dist/backend/native-codegen.test.js +59 -11
  297. package/dist/backend/native-codegen.test.js.map +1 -1
  298. package/dist/backend/native-link-info-core.d.ts +1 -0
  299. package/dist/backend/native-link-info-core.js +9 -5
  300. package/dist/backend/native-link-info-core.js.map +1 -1
  301. package/dist/backend/native-link-info.js +14 -5
  302. package/dist/backend/native-link-info.js.map +1 -1
  303. package/dist/backend/native-link-info.test.js +58 -13
  304. package/dist/backend/native-link-info.test.js.map +1 -1
  305. package/dist/backend/native-toolchain.d.ts +17 -450
  306. package/dist/backend/native-toolchain.js +17 -3971
  307. package/dist/backend/native-toolchain.js.map +1 -1
  308. package/dist/backend/native-toolchain.test.js +103 -72
  309. package/dist/backend/native-toolchain.test.js.map +1 -1
  310. package/dist/backend/native-tools.d.ts +3 -1
  311. package/dist/backend/native-tools.js +30 -9
  312. package/dist/backend/native-tools.js.map +1 -1
  313. package/dist/backend/object-localize.js +17 -14
  314. package/dist/backend/object-localize.js.map +1 -1
  315. package/dist/backend/object-localize.test.js +59 -12
  316. package/dist/backend/object-localize.test.js.map +1 -1
  317. package/dist/backend/runtime-abi.d.ts +2 -2
  318. package/dist/backend/runtime-abi.js +2 -2
  319. package/dist/backend/runtime-pack-core.d.ts +1 -0
  320. package/dist/backend/runtime-pack-core.js +104 -50
  321. package/dist/backend/runtime-pack-core.js.map +1 -1
  322. package/dist/backend/runtime-pack-native.js +5 -3
  323. package/dist/backend/runtime-pack-native.js.map +1 -1
  324. package/dist/backend/runtime-pack-targets.test.js +126 -17
  325. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  326. package/dist/backend/runtime-pack.d.ts +1 -1
  327. package/dist/backend/runtime-pack.js +11 -12
  328. package/dist/backend/runtime-pack.js.map +1 -1
  329. package/dist/backend/runtime-pack.test.js +51 -25
  330. package/dist/backend/runtime-pack.test.js.map +1 -1
  331. package/dist/backend/source-locations.js.map +1 -1
  332. package/dist/backend/source-locations.test.js +7 -2
  333. package/dist/backend/source-locations.test.js.map +1 -1
  334. package/dist/backend/target-diagnostics.js +44 -14
  335. package/dist/backend/target-diagnostics.js.map +1 -1
  336. package/dist/backend/target-diagnostics.test.js +93 -20
  337. package/dist/backend/target-diagnostics.test.js.map +1 -1
  338. package/dist/backend/targets.js +230 -86
  339. package/dist/backend/targets.js.map +1 -1
  340. package/dist/backend/targets.test.js +32 -18
  341. package/dist/backend/targets.test.js.map +1 -1
  342. package/dist/backend/toolchain-environment.js +5 -1
  343. package/dist/backend/toolchain-environment.js.map +1 -1
  344. package/dist/backend/vendor-archives.d.ts +2 -2
  345. package/dist/backend/vendor-archives.js +84 -35
  346. package/dist/backend/vendor-archives.js.map +1 -1
  347. package/dist/backend/vendor-inputs.js +13 -1
  348. package/dist/backend/vendor-inputs.js.map +1 -1
  349. package/dist/backend/warm-cache.d.ts +1 -1
  350. package/dist/backend/warm-cache.js +33 -9
  351. package/dist/backend/warm-cache.js.map +1 -1
  352. package/dist/cli/command.js +39 -9
  353. package/dist/cli/command.js.map +1 -1
  354. package/dist/cli/output-options.js +14 -4
  355. package/dist/cli/output-options.js.map +1 -1
  356. package/dist/cli/paths.js.map +1 -1
  357. package/dist/cli/wasi-runner.js.map +1 -1
  358. package/dist/compat/fetch-profile.js +36 -35
  359. package/dist/compat/fetch-profile.js.map +1 -1
  360. package/dist/coverage/report.js +16 -17
  361. package/dist/coverage/report.js.map +1 -1
  362. package/dist/coverage/surface-manifest.js +112 -26
  363. package/dist/coverage/surface-manifest.js.map +1 -1
  364. package/dist/diagnostics/diagnostic.js +55 -16
  365. package/dist/diagnostics/diagnostic.js.map +1 -1
  366. package/dist/executable/executable-cache.d.ts +2 -1
  367. package/dist/executable/executable-cache.js +79 -48
  368. package/dist/executable/executable-cache.js.map +1 -1
  369. package/dist/executable/executable-cache.test.js +90 -26
  370. package/dist/executable/executable-cache.test.js.map +1 -1
  371. package/dist/executable/prepare.js +2 -2
  372. package/dist/executable/prepare.js.map +1 -1
  373. package/dist/ffi/ffi-manifest.js +78 -20
  374. package/dist/ffi/ffi-manifest.js.map +1 -1
  375. package/dist/ffi/ffi-manifest.test.js +96 -16
  376. package/dist/ffi/ffi-manifest.test.js.map +1 -1
  377. package/dist/format-integer.js.map +1 -1
  378. package/dist/frontend/analysis.js +12 -2
  379. package/dist/frontend/analysis.js.map +1 -1
  380. package/dist/frontend/arguments-usage.js.map +1 -1
  381. package/dist/frontend/binding-source.js +9 -3
  382. package/dist/frontend/binding-source.js.map +1 -1
  383. package/dist/frontend/builtin-modules.js +46 -2
  384. package/dist/frontend/builtin-modules.js.map +1 -1
  385. package/dist/frontend/cjs-resolve.js +40 -17
  386. package/dist/frontend/cjs-resolve.js.map +1 -1
  387. package/dist/frontend/cjs-syntax.js +31 -10
  388. package/dist/frontend/cjs-syntax.js.map +1 -1
  389. package/dist/frontend/comptime-node.test.js +10 -11
  390. package/dist/frontend/comptime-node.test.js.map +1 -1
  391. package/dist/frontend/dts-paths.js +7 -3
  392. package/dist/frontend/dts-paths.js.map +1 -1
  393. package/dist/frontend/fork-target.d.ts +5 -0
  394. package/dist/frontend/fork-target.js +55 -18
  395. package/dist/frontend/fork-target.js.map +1 -1
  396. package/dist/frontend/fork-target.test.d.ts +1 -0
  397. package/dist/frontend/fork-target.test.js +59 -0
  398. package/dist/frontend/fork-target.test.js.map +1 -0
  399. package/dist/frontend/function-completion.js +11 -6
  400. package/dist/frontend/function-completion.js.map +1 -1
  401. package/dist/frontend/helper-tokens.js +53 -6
  402. package/dist/frontend/helper-tokens.js.map +1 -1
  403. package/dist/frontend/helper-tokens.test.js +18 -2
  404. package/dist/frontend/helper-tokens.test.js.map +1 -1
  405. package/dist/frontend/inferred-js-diagnostics.js +32 -12
  406. package/dist/frontend/inferred-js-diagnostics.js.map +1 -1
  407. package/dist/frontend/inferred-js-diagnostics.test.js +11 -15
  408. package/dist/frontend/inferred-js-diagnostics.test.js.map +1 -1
  409. package/dist/frontend/input-tracker.js +11 -11
  410. package/dist/frontend/input-tracker.js.map +1 -1
  411. package/dist/frontend/input-tracker.test.js +4 -1
  412. package/dist/frontend/input-tracker.test.js.map +1 -1
  413. package/dist/frontend/lib-contract.js +38 -9
  414. package/dist/frontend/lib-contract.js.map +1 -1
  415. package/dist/frontend/literal-values.js.map +1 -1
  416. package/dist/frontend/literal-values.test.js +28 -8
  417. package/dist/frontend/literal-values.test.js.map +1 -1
  418. package/dist/frontend/lowering/abstract-equality.js +53 -10
  419. package/dist/frontend/lowering/abstract-equality.js.map +1 -1
  420. package/dist/frontend/lowering/array-indexed-mutation.d.ts +1 -1
  421. package/dist/frontend/lowering/array-indexed-mutation.js +108 -106
  422. package/dist/frontend/lowering/array-indexed-mutation.js.map +1 -1
  423. package/dist/frontend/lowering/array-values.js +37 -14
  424. package/dist/frontend/lowering/array-values.js.map +1 -1
  425. package/dist/frontend/lowering/binding-analysis.d.ts +50 -0
  426. package/dist/frontend/lowering/binding-analysis.js +376 -0
  427. package/dist/frontend/lowering/binding-analysis.js.map +1 -0
  428. package/dist/frontend/lowering/builtin-calls.d.ts +9 -0
  429. package/dist/frontend/lowering/builtin-calls.js +60 -0
  430. package/dist/frontend/lowering/builtin-calls.js.map +1 -0
  431. package/dist/frontend/lowering/builtins/arguments.d.ts +43 -0
  432. package/dist/frontend/lowering/builtins/arguments.js +247 -0
  433. package/dist/frontend/lowering/builtins/arguments.js.map +1 -0
  434. package/dist/frontend/lowering/builtins/async-context.d.ts +52 -0
  435. package/dist/frontend/lowering/builtins/async-context.js +436 -0
  436. package/dist/frontend/lowering/builtins/async-context.js.map +1 -0
  437. package/dist/frontend/lowering/builtins/atomics.d.ts +6 -0
  438. package/dist/frontend/lowering/builtins/atomics.js +82 -0
  439. package/dist/frontend/lowering/builtins/atomics.js.map +1 -0
  440. package/dist/frontend/lowering/builtins/callable-aliases.d.ts +13 -0
  441. package/dist/frontend/lowering/builtins/callable-aliases.js +87 -0
  442. package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -0
  443. package/dist/frontend/lowering/builtins/child-process-async.d.ts +18 -0
  444. package/dist/frontend/lowering/builtins/child-process-async.js +245 -0
  445. package/dist/frontend/lowering/builtins/child-process-async.js.map +1 -0
  446. package/dist/frontend/lowering/builtins/child-process-methods.d.ts +21 -0
  447. package/dist/frontend/lowering/builtins/child-process-methods.js +362 -0
  448. package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -0
  449. package/dist/frontend/lowering/builtins/child-process-sync.d.ts +4 -0
  450. package/dist/frontend/lowering/builtins/child-process-sync.js +639 -0
  451. package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -0
  452. package/dist/frontend/lowering/builtins/child-process.d.ts +55 -0
  453. package/dist/frontend/lowering/builtins/child-process.js +669 -0
  454. package/dist/frontend/lowering/builtins/child-process.js.map +1 -0
  455. package/dist/frontend/lowering/builtins/compression.d.ts +7 -0
  456. package/dist/frontend/lowering/builtins/compression.js +115 -0
  457. package/dist/frontend/lowering/builtins/compression.js.map +1 -0
  458. package/dist/frontend/lowering/builtins/console.d.ts +10 -0
  459. package/dist/frontend/lowering/builtins/console.js +38 -0
  460. package/dist/frontend/lowering/builtins/console.js.map +1 -0
  461. package/dist/frontend/lowering/builtins/constants.d.ts +24 -0
  462. package/dist/frontend/lowering/builtins/constants.js +141 -0
  463. package/dist/frontend/lowering/builtins/constants.js.map +1 -0
  464. package/dist/frontend/lowering/builtins/crypto.d.ts +22 -0
  465. package/dist/frontend/lowering/builtins/crypto.js +517 -0
  466. package/dist/frontend/lowering/builtins/crypto.js.map +1 -0
  467. package/dist/frontend/lowering/builtins/dates.d.ts +7 -0
  468. package/dist/frontend/lowering/builtins/dates.js +101 -0
  469. package/dist/frontend/lowering/builtins/dates.js.map +1 -0
  470. package/dist/frontend/lowering/builtins/environment.d.ts +34 -0
  471. package/dist/frontend/lowering/builtins/environment.js +95 -0
  472. package/dist/frontend/lowering/builtins/environment.js.map +1 -0
  473. package/dist/frontend/lowering/builtins/errors.d.ts +14 -0
  474. package/dist/frontend/lowering/builtins/errors.js +83 -0
  475. package/dist/frontend/lowering/builtins/errors.js.map +1 -0
  476. package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +35 -0
  477. package/dist/frontend/lowering/builtins/filesystem-calls.js +725 -0
  478. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -0
  479. package/dist/frontend/lowering/builtins/filesystem.d.ts +108 -0
  480. package/dist/frontend/lowering/builtins/filesystem.js +1061 -0
  481. package/dist/frontend/lowering/builtins/filesystem.js.map +1 -0
  482. package/dist/frontend/lowering/builtins/ipc.d.ts +8 -0
  483. package/dist/frontend/lowering/builtins/ipc.js +76 -0
  484. package/dist/frontend/lowering/builtins/ipc.js.map +1 -0
  485. package/dist/frontend/lowering/builtins/json.d.ts +12 -0
  486. package/dist/frontend/lowering/builtins/json.js +387 -0
  487. package/dist/frontend/lowering/builtins/json.js.map +1 -0
  488. package/dist/frontend/lowering/builtins/module-bindings.d.ts +85 -0
  489. package/dist/frontend/lowering/builtins/module-bindings.js +346 -0
  490. package/dist/frontend/lowering/builtins/module-bindings.js.map +1 -0
  491. package/dist/frontend/lowering/builtins/module-calls.d.ts +8 -0
  492. package/dist/frontend/lowering/builtins/module-calls.js +308 -0
  493. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -0
  494. package/dist/frontend/lowering/builtins/module-resolution.d.ts +38 -0
  495. package/dist/frontend/lowering/builtins/module-resolution.js +344 -0
  496. package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -0
  497. package/dist/frontend/lowering/builtins/numbers.d.ts +15 -0
  498. package/dist/frontend/lowering/builtins/numbers.js +124 -0
  499. package/dist/frontend/lowering/builtins/numbers.js.map +1 -0
  500. package/dist/frontend/lowering/builtins/operating-system.d.ts +13 -0
  501. package/dist/frontend/lowering/builtins/operating-system.js +148 -0
  502. package/dist/frontend/lowering/builtins/operating-system.js.map +1 -0
  503. package/dist/frontend/lowering/builtins/performance.d.ts +13 -0
  504. package/dist/frontend/lowering/builtins/performance.js +100 -0
  505. package/dist/frontend/lowering/builtins/performance.js.map +1 -0
  506. package/dist/frontend/lowering/builtins/process.d.ts +50 -0
  507. package/dist/frontend/lowering/builtins/process.js +1138 -0
  508. package/dist/frontend/lowering/builtins/process.js.map +1 -0
  509. package/dist/frontend/lowering/builtins/promises.d.ts +14 -0
  510. package/dist/frontend/lowering/builtins/promises.js +356 -0
  511. package/dist/frontend/lowering/builtins/promises.js.map +1 -0
  512. package/dist/frontend/lowering/builtins/properties.d.ts +11 -0
  513. package/dist/frontend/lowering/builtins/properties.js +186 -0
  514. package/dist/frontend/lowering/builtins/properties.js.map +1 -0
  515. package/dist/frontend/lowering/builtins/querystring.d.ts +19 -0
  516. package/dist/frontend/lowering/builtins/querystring.js +150 -0
  517. package/dist/frontend/lowering/builtins/querystring.js.map +1 -0
  518. package/dist/frontend/lowering/builtins/readline.d.ts +13 -0
  519. package/dist/frontend/lowering/builtins/readline.js +138 -0
  520. package/dist/frontend/lowering/builtins/readline.js.map +1 -0
  521. package/dist/frontend/lowering/builtins/receiver-types.d.ts +5 -0
  522. package/dist/frontend/lowering/builtins/receiver-types.js +15 -0
  523. package/dist/frontend/lowering/builtins/receiver-types.js.map +1 -0
  524. package/dist/frontend/lowering/builtins/reflection.d.ts +13 -0
  525. package/dist/frontend/lowering/builtins/reflection.js +95 -0
  526. package/dist/frontend/lowering/builtins/reflection.js.map +1 -0
  527. package/dist/frontend/lowering/builtins/strings.d.ts +14 -0
  528. package/dist/frontend/lowering/builtins/strings.js +121 -0
  529. package/dist/frontend/lowering/builtins/strings.js.map +1 -0
  530. package/dist/frontend/lowering/builtins/text-codecs.d.ts +29 -0
  531. package/dist/frontend/lowering/builtins/text-codecs.js +590 -0
  532. package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -0
  533. package/dist/frontend/lowering/builtins/timers.d.ts +22 -0
  534. package/dist/frontend/lowering/builtins/timers.js +180 -0
  535. package/dist/frontend/lowering/builtins/timers.js.map +1 -0
  536. package/dist/frontend/lowering/builtins/url.d.ts +37 -0
  537. package/dist/frontend/lowering/builtins/url.js +596 -0
  538. package/dist/frontend/lowering/builtins/url.js.map +1 -0
  539. package/dist/frontend/lowering/builtins/util-types.d.ts +7 -0
  540. package/dist/frontend/lowering/builtins/util-types.js +31 -0
  541. package/dist/frontend/lowering/builtins/util-types.js.map +1 -0
  542. package/dist/frontend/lowering/builtins/workers.d.ts +5 -0
  543. package/dist/frontend/lowering/builtins/workers.js +65 -0
  544. package/dist/frontend/lowering/builtins/workers.js.map +1 -0
  545. package/dist/frontend/lowering/call-arguments.d.ts +72 -0
  546. package/dist/frontend/lowering/call-arguments.js +618 -0
  547. package/dist/frontend/lowering/call-arguments.js.map +1 -0
  548. package/dist/frontend/lowering/call-signatures.d.ts +115 -0
  549. package/dist/frontend/lowering/call-signatures.js +719 -0
  550. package/dist/frontend/lowering/call-signatures.js.map +1 -0
  551. package/dist/frontend/lowering/callback-arg.js.map +1 -1
  552. package/dist/frontend/lowering/checked-iterable-spread.js +53 -10
  553. package/dist/frontend/lowering/checked-iterable-spread.js.map +1 -1
  554. package/dist/frontend/lowering/checked-promise-all.js +41 -9
  555. package/dist/frontend/lowering/checked-promise-all.js.map +1 -1
  556. package/dist/frontend/lowering/class-assertions.d.ts +7 -0
  557. package/dist/frontend/lowering/class-assertions.js +96 -0
  558. package/dist/frontend/lowering/class-assertions.js.map +1 -0
  559. package/dist/frontend/lowering/class-callbacks.d.ts +1 -1
  560. package/dist/frontend/lowering/class-callbacks.js +130 -27
  561. package/dist/frontend/lowering/class-callbacks.js.map +1 -1
  562. package/dist/frontend/lowering/class-construction.d.ts +1 -1
  563. package/dist/frontend/lowering/class-construction.js +247 -50
  564. package/dist/frontend/lowering/class-construction.js.map +1 -1
  565. package/dist/frontend/lowering/class-descriptors.js +109 -29
  566. package/dist/frontend/lowering/class-descriptors.js.map +1 -1
  567. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +6 -1
  568. package/dist/frontend/lowering/class-dynamic-dispatch.js +2471 -465
  569. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  570. package/dist/frontend/lowering/class-dynamic-dispatch.test.js +284 -44
  571. package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
  572. package/dist/frontend/lowering/class-instance-constructor.js +17 -5
  573. package/dist/frontend/lowering/class-instance-constructor.js.map +1 -1
  574. package/dist/frontend/lowering/class-method-values.js +199 -51
  575. package/dist/frontend/lowering/class-method-values.js.map +1 -1
  576. package/dist/frontend/lowering/class-protocols.d.ts +17 -0
  577. package/dist/frontend/lowering/class-protocols.js +126 -0
  578. package/dist/frontend/lowering/class-protocols.js.map +1 -0
  579. package/dist/frontend/lowering/class-prototypes.js +345 -86
  580. package/dist/frontend/lowering/class-prototypes.js.map +1 -1
  581. package/dist/frontend/lowering/class-runtime-statics.d.ts +1 -1
  582. package/dist/frontend/lowering/class-runtime-statics.js +80 -17
  583. package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
  584. package/dist/frontend/lowering/class-static-data.js +76 -16
  585. package/dist/frontend/lowering/class-static-data.js.map +1 -1
  586. package/dist/frontend/lowering/coercions/builders.d.ts +13 -0
  587. package/dist/frontend/lowering/coercions/builders.js +77 -0
  588. package/dist/frontend/lowering/coercions/builders.js.map +1 -0
  589. package/dist/frontend/lowering/coercions/function-adapters.d.ts +58 -0
  590. package/dist/frontend/lowering/coercions/function-adapters.js +430 -0
  591. package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -0
  592. package/dist/frontend/lowering/coercions/island.d.ts +37 -0
  593. package/dist/frontend/lowering/coercions/island.js +350 -0
  594. package/dist/frontend/lowering/coercions/island.js.map +1 -0
  595. package/dist/frontend/lowering/coercions/state.d.ts +14 -0
  596. package/dist/frontend/lowering/coercions/state.js +16 -0
  597. package/dist/frontend/lowering/coercions/state.js.map +1 -0
  598. package/dist/frontend/lowering/coercions/structural-plans.d.ts +40 -0
  599. package/dist/frontend/lowering/coercions/structural-plans.js +447 -0
  600. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -0
  601. package/dist/frontend/lowering/coercions/structural.d.ts +63 -0
  602. package/dist/frontend/lowering/coercions/structural.js +616 -0
  603. package/dist/frontend/lowering/coercions/structural.js.map +1 -0
  604. package/dist/frontend/lowering/coercions/unions.d.ts +65 -0
  605. package/dist/frontend/lowering/coercions/unions.js +318 -0
  606. package/dist/frontend/lowering/coercions/unions.js.map +1 -0
  607. package/dist/frontend/lowering/collection-ingestion.js +355 -72
  608. package/dist/frontend/lowering/collection-ingestion.js.map +1 -1
  609. package/dist/frontend/lowering/containers/array-callbacks.d.ts +88 -0
  610. package/dist/frontend/lowering/containers/array-callbacks.js +1611 -0
  611. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -0
  612. package/dist/frontend/lowering/containers/array-construction.d.ts +42 -0
  613. package/dist/frontend/lowering/containers/array-construction.js +1044 -0
  614. package/dist/frontend/lowering/containers/array-construction.js.map +1 -0
  615. package/dist/frontend/lowering/containers/array-iteration.d.ts +16 -0
  616. package/dist/frontend/lowering/containers/array-iteration.js +95 -0
  617. package/dist/frontend/lowering/containers/array-iteration.js.map +1 -0
  618. package/dist/frontend/lowering/containers/array-methods.d.ts +27 -0
  619. package/dist/frontend/lowering/containers/array-methods.js +1854 -0
  620. package/dist/frontend/lowering/containers/array-methods.js.map +1 -0
  621. package/dist/frontend/lowering/containers/bytes.d.ts +17 -17
  622. package/dist/frontend/lowering/containers/bytes.js +430 -138
  623. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  624. package/dist/frontend/lowering/containers/callback-arguments.d.ts +26 -0
  625. package/dist/frontend/lowering/containers/callback-arguments.js +179 -0
  626. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -0
  627. package/dist/frontend/lowering/containers/collection-grouping.d.ts +19 -0
  628. package/dist/frontend/lowering/containers/collection-grouping.js +297 -0
  629. package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -0
  630. package/dist/frontend/lowering/containers/collection-methods.d.ts +57 -0
  631. package/dist/frontend/lowering/containers/collection-methods.js +1314 -0
  632. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -0
  633. package/dist/frontend/lowering/containers/dynamic-receivers.d.ts +18 -0
  634. package/dist/frontend/lowering/containers/dynamic-receivers.js +114 -0
  635. package/dist/frontend/lowering/containers/dynamic-receivers.js.map +1 -0
  636. package/dist/frontend/lowering/containers/for-of.d.ts +60 -0
  637. package/dist/frontend/lowering/containers/for-of.js +643 -0
  638. package/dist/frontend/lowering/containers/for-of.js.map +1 -0
  639. package/dist/frontend/lowering/containers/indexed-objects.d.ts +132 -0
  640. package/dist/frontend/lowering/containers/indexed-objects.js +1743 -0
  641. package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -0
  642. package/dist/frontend/lowering/containers/iterator-helpers.d.ts +20 -0
  643. package/dist/frontend/lowering/containers/iterator-helpers.js +809 -0
  644. package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -0
  645. package/dist/frontend/lowering/containers/string-and-regexp.js +601 -160
  646. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  647. package/dist/frontend/lowering/containers/string-replacement.js +213 -63
  648. package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
  649. package/dist/frontend/lowering/crypto-tables.js +263 -64
  650. package/dist/frontend/lowering/crypto-tables.js.map +1 -1
  651. package/dist/frontend/lowering/deferred-module-initializers.js +172 -68
  652. package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
  653. package/dist/frontend/lowering/deferred-module-initializers.test.js +41 -8
  654. package/dist/frontend/lowering/deferred-module-initializers.test.js.map +1 -1
  655. package/dist/frontend/lowering/error-methods.js +339 -65
  656. package/dist/frontend/lowering/error-methods.js.map +1 -1
  657. package/dist/frontend/lowering/expressions/evaluation-safety.js +3 -2
  658. package/dist/frontend/lowering/expressions/evaluation-safety.js.map +1 -1
  659. package/dist/frontend/lowering/expressions/global-symbols.js +2 -1
  660. package/dist/frontend/lowering/expressions/global-symbols.js.map +1 -1
  661. package/dist/frontend/lowering/expressions/native-proxy.js +11 -5
  662. package/dist/frontend/lowering/expressions/native-proxy.js.map +1 -1
  663. package/dist/frontend/lowering/expressions/nullish-assignment.js +67 -13
  664. package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
  665. package/dist/frontend/lowering/expressions/object-literals.js +588 -165
  666. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  667. package/dist/frontend/lowering/expressions/optional-chains.d.ts +1 -1
  668. package/dist/frontend/lowering/expressions/optional-chains.js +68 -17
  669. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
  670. package/dist/frontend/lowering/expressions/union-field-write.js +45 -18
  671. package/dist/frontend/lowering/expressions/union-field-write.js.map +1 -1
  672. package/dist/frontend/lowering/function-context.js +5 -1
  673. package/dist/frontend/lowering/function-context.js.map +1 -1
  674. package/dist/frontend/lowering/function-returns.d.ts +67 -0
  675. package/dist/frontend/lowering/function-returns.js +392 -0
  676. package/dist/frontend/lowering/function-returns.js.map +1 -0
  677. package/dist/frontend/lowering/generator-delegation.d.ts +1 -1
  678. package/dist/frontend/lowering/generator-delegation.js +171 -39
  679. package/dist/frontend/lowering/generator-delegation.js.map +1 -1
  680. package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +1 -1
  681. package/dist/frontend/lowering/generator-dynamic-dispatch.js +176 -36
  682. package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -1
  683. package/dist/frontend/lowering/generic-functions.d.ts +271 -0
  684. package/dist/frontend/lowering/generic-functions.js +1730 -0
  685. package/dist/frontend/lowering/generic-functions.js.map +1 -0
  686. package/dist/frontend/lowering/import-meta.d.ts +1 -1
  687. package/dist/frontend/lowering/import-meta.js +37 -14
  688. package/dist/frontend/lowering/import-meta.js.map +1 -1
  689. package/dist/frontend/lowering/indexed-comparison.js +6 -2
  690. package/dist/frontend/lowering/indexed-comparison.js.map +1 -1
  691. package/dist/frontend/lowering/instantiation-path.d.ts +8 -0
  692. package/dist/frontend/lowering/instantiation-path.js +10 -0
  693. package/dist/frontend/lowering/instantiation-path.js.map +1 -0
  694. package/dist/frontend/lowering/instantiation-path.test.d.ts +1 -0
  695. package/dist/frontend/lowering/instantiation-path.test.js +23 -0
  696. package/dist/frontend/lowering/instantiation-path.test.js.map +1 -0
  697. package/dist/frontend/lowering/iterator-consumption.d.ts +9 -0
  698. package/dist/frontend/lowering/iterator-consumption.js +91 -0
  699. package/dist/frontend/lowering/iterator-consumption.js.map +1 -0
  700. package/dist/frontend/lowering/lib-boundary.js +40 -17
  701. package/dist/frontend/lowering/lib-boundary.js.map +1 -1
  702. package/dist/frontend/lowering/lib-boundary.test.js +49 -11
  703. package/dist/frontend/lowering/lib-boundary.test.js.map +1 -1
  704. package/dist/frontend/lowering/lower-array-sort.d.ts +0 -19
  705. package/dist/frontend/lowering/lower-array-sort.js +331 -566
  706. package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
  707. package/dist/frontend/lowering/lower-assert.js +248 -43
  708. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  709. package/dist/frontend/lowering/lower-async-iteration.js +71 -16
  710. package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
  711. package/dist/frontend/lowering/lower-builtin-values.js +430 -77
  712. package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
  713. package/dist/frontend/lowering/lower-calls.d.ts +39 -558
  714. package/dist/frontend/lowering/lower-calls.js +2628 -5669
  715. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  716. package/dist/frontend/lowering/lower-classes.d.ts +248 -242
  717. package/dist/frontend/lowering/lower-classes.js +1820 -775
  718. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  719. package/dist/frontend/lowering/lower-comptime.d.ts +35 -35
  720. package/dist/frontend/lowering/lower-comptime.js +39 -37
  721. package/dist/frontend/lowering/lower-comptime.js.map +1 -1
  722. package/dist/frontend/lowering/lower-dgram.js +59 -31
  723. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  724. package/dist/frontend/lowering/lower-enums.js +5 -2
  725. package/dist/frontend/lowering/lower-enums.js.map +1 -1
  726. package/dist/frontend/lowering/lower-event-emitter.js +323 -86
  727. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  728. package/dist/frontend/lowering/lower-expando.js +19 -7
  729. package/dist/frontend/lowering/lower-expando.js.map +1 -1
  730. package/dist/frontend/lowering/lower-exprs.d.ts +194 -194
  731. package/dist/frontend/lowering/lower-exprs.js +3473 -1160
  732. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  733. package/dist/frontend/lowering/lower-functions.d.ts +23 -0
  734. package/dist/frontend/lowering/lower-functions.js +449 -0
  735. package/dist/frontend/lowering/lower-functions.js.map +1 -0
  736. package/dist/frontend/lowering/lower-generators.js +121 -32
  737. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  738. package/dist/frontend/lowering/lower-global-value.js +15 -4
  739. package/dist/frontend/lowering/lower-global-value.js.map +1 -1
  740. package/dist/frontend/lowering/lower-inspect.js +479 -89
  741. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  742. package/dist/frontend/lowering/lower-island.d.ts +79 -79
  743. package/dist/frontend/lowering/lower-island.js +366 -274
  744. package/dist/frontend/lowering/lower-island.js.map +1 -1
  745. package/dist/frontend/lowering/lower-island.test.js +7 -2
  746. package/dist/frontend/lowering/lower-island.test.js.map +1 -1
  747. package/dist/frontend/lowering/lower-mixins.js +17 -8
  748. package/dist/frontend/lowering/lower-mixins.js.map +1 -1
  749. package/dist/frontend/lowering/lower-modules.d.ts +95 -94
  750. package/dist/frontend/lowering/lower-modules.js +655 -329
  751. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  752. package/dist/frontend/lowering/lower-modules.test.js +91 -20
  753. package/dist/frontend/lowering/lower-modules.test.js.map +1 -1
  754. package/dist/frontend/lowering/lower-namespaces.js +25 -8
  755. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  756. package/dist/frontend/lowering/lower-node-module.js +115 -34
  757. package/dist/frontend/lowering/lower-node-module.js.map +1 -1
  758. package/dist/frontend/lowering/lower-server.js +1210 -290
  759. package/dist/frontend/lowering/lower-server.js.map +1 -1
  760. package/dist/frontend/lowering/lower-stmts.d.ts +148 -148
  761. package/dist/frontend/lowering/lower-stmts.js +2324 -994
  762. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  763. package/dist/frontend/lowering/lower-stmts.test.js +13 -5
  764. package/dist/frontend/lowering/lower-stmts.test.js.map +1 -1
  765. package/dist/frontend/lowering/lower-stream.js +363 -91
  766. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  767. package/dist/frontend/lowering/lower-system-errors.js +30 -8
  768. package/dist/frontend/lowering/lower-system-errors.js.map +1 -1
  769. package/dist/frontend/lowering/lower-test.js +40 -13
  770. package/dist/frontend/lowering/lower-test.js.map +1 -1
  771. package/dist/frontend/lowering/lower-timers.d.ts +31 -0
  772. package/dist/frontend/lowering/lower-timers.js +336 -0
  773. package/dist/frontend/lowering/lower-timers.js.map +1 -0
  774. package/dist/frontend/lowering/lower-url.d.ts +1 -1
  775. package/dist/frontend/lowering/lower-url.js +46 -13
  776. package/dist/frontend/lowering/lower-url.js.map +1 -1
  777. package/dist/frontend/lowering/lowerer.d.ts +34 -352
  778. package/dist/frontend/lowering/lowerer.js +1074 -2712
  779. package/dist/frontend/lowering/lowerer.js.map +1 -1
  780. package/dist/frontend/lowering/lowerer.test.js +85 -17
  781. package/dist/frontend/lowering/lowerer.test.js.map +1 -1
  782. package/dist/frontend/lowering/module-namespace-elements.js +43 -8
  783. package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
  784. package/dist/frontend/lowering/native-ffi.d.ts +21 -1
  785. package/dist/frontend/lowering/native-ffi.js +487 -18
  786. package/dist/frontend/lowering/native-ffi.js.map +1 -1
  787. package/dist/frontend/lowering/object-enumeration-receiver.js +55 -10
  788. package/dist/frontend/lowering/object-enumeration-receiver.js.map +1 -1
  789. package/dist/frontend/lowering/object-factory-new.d.ts +1 -1
  790. package/dist/frontend/lowering/object-factory-new.js +36 -11
  791. package/dist/frontend/lowering/object-factory-new.js.map +1 -1
  792. package/dist/frontend/lowering/optional-arguments.js +49 -20
  793. package/dist/frontend/lowering/optional-arguments.js.map +1 -1
  794. package/dist/frontend/lowering/pairs-snapshot.js +66 -14
  795. package/dist/frontend/lowering/pairs-snapshot.js.map +1 -1
  796. package/dist/frontend/lowering/runtime-optional-locals.js +3 -1
  797. package/dist/frontend/lowering/runtime-optional-locals.js.map +1 -1
  798. package/dist/frontend/lowering/runtime-optional-locals.test.js.map +1 -1
  799. package/dist/frontend/lowering/sanitize-class-types.js +4 -1
  800. package/dist/frontend/lowering/sanitize-class-types.js.map +1 -1
  801. package/dist/frontend/lowering/sanitize-class-types.test.js +86 -18
  802. package/dist/frontend/lowering/sanitize-class-types.test.js.map +1 -1
  803. package/dist/frontend/lowering/split-consumers.d.ts +7 -0
  804. package/dist/frontend/lowering/split-consumers.js +64 -0
  805. package/dist/frontend/lowering/split-consumers.js.map +1 -0
  806. package/dist/frontend/lowering/static-this.js +13 -6
  807. package/dist/frontend/lowering/static-this.js.map +1 -1
  808. package/dist/frontend/lowering/string-index.js +32 -10
  809. package/dist/frontend/lowering/string-index.js.map +1 -1
  810. package/dist/frontend/lowering/surfaces.d.ts +45 -46
  811. package/dist/frontend/lowering/surfaces.js +1129 -256
  812. package/dist/frontend/lowering/surfaces.js.map +1 -1
  813. package/dist/frontend/lowering/symbol-fields.js +40 -15
  814. package/dist/frontend/lowering/symbol-fields.js.map +1 -1
  815. package/dist/frontend/lowering/symbol-methods.js.map +1 -1
  816. package/dist/frontend/lowering/text-decoder-encoding.js +236 -24
  817. package/dist/frontend/lowering/text-decoder-encoding.js.map +1 -1
  818. package/dist/frontend/lowering/text-decoder-encoding.test.js +84 -12
  819. package/dist/frontend/lowering/text-decoder-encoding.test.js.map +1 -1
  820. package/dist/frontend/lowering/union-narrow.js +59 -16
  821. package/dist/frontend/lowering/union-narrow.js.map +1 -1
  822. package/dist/frontend/lowering/union-narrow.test.js +24 -7
  823. package/dist/frontend/lowering/union-narrow.test.js.map +1 -1
  824. package/dist/frontend/lowering/union-retag.js +155 -40
  825. package/dist/frontend/lowering/union-retag.js.map +1 -1
  826. package/dist/frontend/lowering/union-retag.test.js +131 -33
  827. package/dist/frontend/lowering/union-retag.test.js.map +1 -1
  828. package/dist/frontend/lowering/unregistered-class-types.js.map +1 -1
  829. package/dist/frontend/lowering/unregistered-class-types.test.js +34 -8
  830. package/dist/frontend/lowering/unregistered-class-types.test.js.map +1 -1
  831. package/dist/frontend/module-source-candidates.d.ts +10 -0
  832. package/dist/frontend/module-source-candidates.js +40 -0
  833. package/dist/frontend/module-source-candidates.js.map +1 -0
  834. package/dist/frontend/module-source-candidates.test.d.ts +1 -0
  835. package/dist/frontend/module-source-candidates.test.js +53 -0
  836. package/dist/frontend/module-source-candidates.test.js.map +1 -0
  837. package/dist/frontend/module-syntax.js +21 -8
  838. package/dist/frontend/module-syntax.js.map +1 -1
  839. package/dist/frontend/module-syntax.test.js +37 -13
  840. package/dist/frontend/module-syntax.test.js.map +1 -1
  841. package/dist/frontend/npm-fetch-analysis.js +13 -4
  842. package/dist/frontend/npm-fetch-analysis.js.map +1 -1
  843. package/dist/frontend/npm-fetch-analysis.test.js +33 -10
  844. package/dist/frontend/npm-fetch-analysis.test.js.map +1 -1
  845. package/dist/frontend/npm-fetch-node.js.map +1 -1
  846. package/dist/frontend/npm-fetch-syntax.js +4 -9
  847. package/dist/frontend/npm-fetch-syntax.js.map +1 -1
  848. package/dist/frontend/npm-node.js +3 -1
  849. package/dist/frontend/npm-node.js.map +1 -1
  850. package/dist/frontend/npm-static-bundled-cjs.js +88 -29
  851. package/dist/frontend/npm-static-bundled-cjs.js.map +1 -1
  852. package/dist/frontend/npm-static-bundled-cjs.test.js +29 -10
  853. package/dist/frontend/npm-static-bundled-cjs.test.js.map +1 -1
  854. package/dist/frontend/npm-static-declaration-syntax.js +148 -56
  855. package/dist/frontend/npm-static-declaration-syntax.js.map +1 -1
  856. package/dist/frontend/npm-static-declarations.d.ts +1 -1
  857. package/dist/frontend/npm-static-declarations.js.map +1 -1
  858. package/dist/frontend/npm-static-declarations.test.js +33 -7
  859. package/dist/frontend/npm-static-declarations.test.js.map +1 -1
  860. package/dist/frontend/npm-static-prune.js +26 -12
  861. package/dist/frontend/npm-static-prune.js.map +1 -1
  862. package/dist/frontend/npm-static-prune.test.js +17 -3
  863. package/dist/frontend/npm-static-prune.test.js.map +1 -1
  864. package/dist/frontend/npm-static-rewrite-host.js +2 -3
  865. package/dist/frontend/npm-static-rewrite-host.js.map +1 -1
  866. package/dist/frontend/npm-static-rewrite-syntax.js +64 -21
  867. package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
  868. package/dist/frontend/npm-static-rewrite.js.map +1 -1
  869. package/dist/frontend/npm-static-subtyping.js +9 -4
  870. package/dist/frontend/npm-static-subtyping.js.map +1 -1
  871. package/dist/frontend/npm-static-subtyping.test.js +30 -6
  872. package/dist/frontend/npm-static-subtyping.test.js.map +1 -1
  873. package/dist/frontend/npm-static.js +15 -4
  874. package/dist/frontend/npm-static.js.map +1 -1
  875. package/dist/frontend/npm.js +122 -36
  876. package/dist/frontend/npm.js.map +1 -1
  877. package/dist/frontend/npm.test.js +30 -10
  878. package/dist/frontend/npm.test.js.map +1 -1
  879. package/dist/frontend/pipeline-native.js.map +1 -1
  880. package/dist/frontend/pipeline.js +25 -8
  881. package/dist/frontend/pipeline.js.map +1 -1
  882. package/dist/frontend/pipeline.test.js +21 -7
  883. package/dist/frontend/pipeline.test.js.map +1 -1
  884. package/dist/frontend/program-analysis.d.ts +2 -0
  885. package/dist/frontend/program-analysis.js +2 -0
  886. package/dist/frontend/program-analysis.js.map +1 -1
  887. package/dist/frontend/program-node.js +5 -3
  888. package/dist/frontend/program-node.js.map +1 -1
  889. package/dist/frontend/program.d.ts +2 -2
  890. package/dist/frontend/program.js +248 -127
  891. package/dist/frontend/program.js.map +1 -1
  892. package/dist/frontend/program.test.js +27 -27
  893. package/dist/frontend/program.test.js.map +1 -1
  894. package/dist/frontend/provenance-core.js +8 -4
  895. package/dist/frontend/provenance-core.js.map +1 -1
  896. package/dist/frontend/provenance-registry.js +1 -4
  897. package/dist/frontend/provenance-registry.js.map +1 -1
  898. package/dist/frontend/resolve.js +32 -20
  899. package/dist/frontend/resolve.js.map +1 -1
  900. package/dist/frontend/resolve.test.js +1 -1
  901. package/dist/frontend/resolve.test.js.map +1 -1
  902. package/dist/frontend/runtime-resolve.js +13 -4
  903. package/dist/frontend/runtime-resolve.js.map +1 -1
  904. package/dist/frontend/runtime-resolve.test.js +25 -9
  905. package/dist/frontend/runtime-resolve.test.js.map +1 -1
  906. package/dist/frontend/services-node.js +6 -2
  907. package/dist/frontend/services-node.js.map +1 -1
  908. package/dist/frontend/services-node.test.js +18 -6
  909. package/dist/frontend/services-node.test.js.map +1 -1
  910. package/dist/frontend/services.js +8 -4
  911. package/dist/frontend/services.js.map +1 -1
  912. package/dist/frontend/services.test.js +6 -2
  913. package/dist/frontend/services.test.js.map +1 -1
  914. package/dist/frontend/ts7/api.js +12 -4
  915. package/dist/frontend/ts7/api.js.map +1 -1
  916. package/dist/frontend/ts7/ast-bytes.js +10 -3
  917. package/dist/frontend/ts7/ast-bytes.js.map +1 -1
  918. package/dist/frontend/ts7/ast-bytes.test.js +23 -4
  919. package/dist/frontend/ts7/ast-bytes.test.js.map +1 -1
  920. package/dist/frontend/ts7/ast-guards.test.js +14 -5
  921. package/dist/frontend/ts7/ast-guards.test.js.map +1 -1
  922. package/dist/frontend/ts7/ast-node.d.ts +6 -1
  923. package/dist/frontend/ts7/ast-node.js +490 -172
  924. package/dist/frontend/ts7/ast-node.js.map +1 -1
  925. package/dist/frontend/ts7/ast-node.test.js +150 -36
  926. package/dist/frontend/ts7/ast-node.test.js.map +1 -1
  927. package/dist/frontend/ts7/ast-text.js +13 -3
  928. package/dist/frontend/ts7/ast-text.js.map +1 -1
  929. package/dist/frontend/ts7/ast-text.test.js.map +1 -1
  930. package/dist/frontend/ts7/ast-types.js.map +1 -1
  931. package/dist/frontend/ts7/ast-wire.d.ts +5 -1
  932. package/dist/frontend/ts7/ast-wire.js +83 -20
  933. package/dist/frontend/ts7/ast-wire.js.map +1 -1
  934. package/dist/frontend/ts7/ast-wire.test.js +53 -8
  935. package/dist/frontend/ts7/ast-wire.test.js.map +1 -1
  936. package/dist/frontend/ts7/ast.d.ts +2 -1
  937. package/dist/frontend/ts7/ast.js +53 -30
  938. package/dist/frontend/ts7/ast.js.map +1 -1
  939. package/dist/frontend/ts7/census-check.js +1 -1
  940. package/dist/frontend/ts7/census-check.js.map +1 -1
  941. package/dist/frontend/ts7/checker-cache.js.map +1 -1
  942. package/dist/frontend/ts7/checker.d.ts +8 -2
  943. package/dist/frontend/ts7/checker.js +46 -8
  944. package/dist/frontend/ts7/checker.js.map +1 -1
  945. package/dist/frontend/ts7/checker.test.js +96 -17
  946. package/dist/frontend/ts7/checker.test.js.map +1 -1
  947. package/dist/frontend/ts7/enums.test.js +9 -4
  948. package/dist/frontend/ts7/enums.test.js.map +1 -1
  949. package/dist/frontend/ts7/native-api.js.map +1 -1
  950. package/dist/frontend/ts7/native-host.js.map +1 -1
  951. package/dist/frontend/ts7/native-process.js +9 -3
  952. package/dist/frontend/ts7/native-process.js.map +1 -1
  953. package/dist/frontend/ts7/program-adapter.js +1 -1
  954. package/dist/frontend/ts7/program-adapter.js.map +1 -1
  955. package/dist/frontend/ts7/program-host.d.ts +7 -0
  956. package/dist/frontend/ts7/program-host.js +33 -6
  957. package/dist/frontend/ts7/program-host.js.map +1 -1
  958. package/dist/frontend/ts7/program-host.test.js +72 -11
  959. package/dist/frontend/ts7/program-host.test.js.map +1 -1
  960. package/dist/frontend/ts7/rpc-api.js +3 -1
  961. package/dist/frontend/ts7/rpc-api.js.map +1 -1
  962. package/dist/frontend/ts7/rpc-client.js +15 -5
  963. package/dist/frontend/ts7/rpc-client.js.map +1 -1
  964. package/dist/frontend/ts7/rpc-client.test.js +26 -8
  965. package/dist/frontend/ts7/rpc-client.test.js.map +1 -1
  966. package/dist/frontend/ts7/rpc-filesystem.js.map +1 -1
  967. package/dist/frontend/ts7/rpc-filesystem.test.js +43 -10
  968. package/dist/frontend/ts7/rpc-filesystem.test.js.map +1 -1
  969. package/dist/frontend/ts7/rpc-process.js +16 -6
  970. package/dist/frontend/ts7/rpc-process.js.map +1 -1
  971. package/dist/frontend/ts7/rpc-process.test.js.map +1 -1
  972. package/dist/frontend/ts7/rpc-wire.d.ts +1 -0
  973. package/dist/frontend/ts7/rpc-wire.js +41 -14
  974. package/dist/frontend/ts7/rpc-wire.js.map +1 -1
  975. package/dist/frontend/ts7/rpc-wire.test.js +36 -6
  976. package/dist/frontend/ts7/rpc-wire.test.js.map +1 -1
  977. package/dist/frontend/ts7/semantic-checker.js +209 -68
  978. package/dist/frontend/ts7/semantic-checker.js.map +1 -1
  979. package/dist/frontend/ts7/semantic-checker.test.js +29 -14
  980. package/dist/frontend/ts7/semantic-checker.test.js.map +1 -1
  981. package/dist/frontend/ts7/semantic-json.js +7 -1
  982. package/dist/frontend/ts7/semantic-json.js.map +1 -1
  983. package/dist/frontend/ts7/semantic-json.test.js +17 -3
  984. package/dist/frontend/ts7/semantic-json.test.js.map +1 -1
  985. package/dist/frontend/ts7/semantic-model.js +147 -51
  986. package/dist/frontend/ts7/semantic-model.js.map +1 -1
  987. package/dist/frontend/ts7/semantic-model.test.js +72 -19
  988. package/dist/frontend/ts7/semantic-model.test.js.map +1 -1
  989. package/dist/frontend/ts7/semantic-types.d.ts +2 -2
  990. package/dist/frontend/ts7/session-cache.js +10 -3
  991. package/dist/frontend/ts7/session-cache.js.map +1 -1
  992. package/dist/frontend/ts7/session-cache.test.js +13 -4
  993. package/dist/frontend/ts7/session-cache.test.js.map +1 -1
  994. package/dist/frontend/ts7/session-path.js +25 -10
  995. package/dist/frontend/ts7/session-path.js.map +1 -1
  996. package/dist/frontend/ts7/session-path.test.js +47 -4
  997. package/dist/frontend/ts7/session-path.test.js.map +1 -1
  998. package/dist/frontend/ts7/session-timing.js +22 -3
  999. package/dist/frontend/ts7/session-timing.js.map +1 -1
  1000. package/dist/frontend/ts7/session-timing.test.js +12 -3
  1001. package/dist/frontend/ts7/session-timing.test.js.map +1 -1
  1002. package/dist/frontend/ts7/session.d.ts +1 -0
  1003. package/dist/frontend/ts7/session.js +109 -35
  1004. package/dist/frontend/ts7/session.js.map +1 -1
  1005. package/dist/frontend/ts7/session.test.js +69 -15
  1006. package/dist/frontend/ts7/session.test.js.map +1 -1
  1007. package/dist/frontend/ts7/source-parser.js +17 -6
  1008. package/dist/frontend/ts7/source-parser.js.map +1 -1
  1009. package/dist/frontend/ts7/source-parser.test.js +32 -9
  1010. package/dist/frontend/ts7/source-parser.test.js.map +1 -1
  1011. package/dist/frontend/tsc-codes.js +56 -11
  1012. package/dist/frontend/tsc-codes.js.map +1 -1
  1013. package/dist/frontend/tsc-codes.test.d.ts +1 -0
  1014. package/dist/frontend/tsc-codes.test.js +16 -0
  1015. package/dist/frontend/tsc-codes.test.js.map +1 -0
  1016. package/dist/frontend/type-mapper.d.ts +3 -0
  1017. package/dist/frontend/type-mapper.js +589 -206
  1018. package/dist/frontend/type-mapper.js.map +1 -1
  1019. package/dist/frontend/type-mapper.test.js +108 -33
  1020. package/dist/frontend/type-mapper.test.js.map +1 -1
  1021. package/dist/frontend/union-discriminants.js +8 -2
  1022. package/dist/frontend/union-discriminants.js.map +1 -1
  1023. package/dist/frontend/union-discriminants.test.js +77 -20
  1024. package/dist/frontend/union-discriminants.test.js.map +1 -1
  1025. package/dist/frontend/worker-target.d.ts +6 -0
  1026. package/dist/frontend/worker-target.js +108 -0
  1027. package/dist/frontend/worker-target.js.map +1 -0
  1028. package/dist/frontend/worker-target.test.d.ts +1 -0
  1029. package/dist/frontend/worker-target.test.js +71 -0
  1030. package/dist/frontend/worker-target.test.js.map +1 -0
  1031. package/dist/index.d.ts +9 -8
  1032. package/dist/index.js +174 -88
  1033. package/dist/index.js.map +1 -1
  1034. package/dist/ir/analysis.js +95 -38
  1035. package/dist/ir/analysis.js.map +1 -1
  1036. package/dist/ir/analysis.test.js +91 -15
  1037. package/dist/ir/analysis.test.js.map +1 -1
  1038. package/dist/ir/api.d.ts +4 -0
  1039. package/dist/ir/api.js +6 -0
  1040. package/dist/ir/api.js.map +1 -0
  1041. package/dist/ir/build.d.ts +7 -0
  1042. package/dist/ir/build.js +27 -1
  1043. package/dist/ir/build.js.map +1 -1
  1044. package/dist/ir/builtin-effects.d.ts +9 -0
  1045. package/dist/ir/builtin-effects.js +643 -0
  1046. package/dist/ir/builtin-effects.js.map +1 -0
  1047. package/dist/ir/builtin-signatures.d.ts +15 -0
  1048. package/dist/ir/builtin-signatures.js +3397 -0
  1049. package/dist/ir/builtin-signatures.js.map +1 -0
  1050. package/dist/ir/byte-numbers.js +67 -16
  1051. package/dist/ir/byte-numbers.js.map +1 -1
  1052. package/dist/ir/byte-numbers.test.js +17 -4
  1053. package/dist/ir/byte-numbers.test.js.map +1 -1
  1054. package/dist/ir/constant-tables.js +13 -5
  1055. package/dist/ir/constant-tables.js.map +1 -1
  1056. package/dist/ir/constant-tables.test.js +47 -7
  1057. package/dist/ir/constant-tables.test.js.map +1 -1
  1058. package/dist/ir/control-flow.js +2 -1
  1059. package/dist/ir/control-flow.js.map +1 -1
  1060. package/dist/ir/control-flow.test.js +35 -11
  1061. package/dist/ir/control-flow.test.js.map +1 -1
  1062. package/dist/ir/initializer-bindings.d.ts +9 -0
  1063. package/dist/ir/initializer-bindings.js +115 -0
  1064. package/dist/ir/initializer-bindings.js.map +1 -0
  1065. package/dist/ir/initializer-bindings.test.d.ts +1 -0
  1066. package/dist/ir/initializer-bindings.test.js +118 -0
  1067. package/dist/ir/initializer-bindings.test.js.map +1 -0
  1068. package/dist/ir/integer-loop-facts.d.ts +12 -0
  1069. package/dist/ir/integer-loop-facts.js +137 -0
  1070. package/dist/ir/integer-loop-facts.js.map +1 -0
  1071. package/dist/ir/integer-loops.js +85 -30
  1072. package/dist/ir/integer-loops.js.map +1 -1
  1073. package/dist/ir/integer-loops.test.js +76 -13
  1074. package/dist/ir/integer-loops.test.js.map +1 -1
  1075. package/dist/ir/integer-ranges.js +93 -21
  1076. package/dist/ir/integer-ranges.js.map +1 -1
  1077. package/dist/ir/integer-ranges.test.js +199 -21
  1078. package/dist/ir/integer-ranges.test.js.map +1 -1
  1079. package/dist/ir/intrinsic-signatures.d.ts +20 -0
  1080. package/dist/ir/intrinsic-signatures.js +57 -0
  1081. package/dist/ir/intrinsic-signatures.js.map +1 -0
  1082. package/dist/ir/ir.d.ts +15 -2160
  1083. package/dist/ir/ir.js +160 -1396
  1084. package/dist/ir/ir.js.map +1 -1
  1085. package/dist/ir/ir.test.js +98 -77
  1086. package/dist/ir/ir.test.js.map +1 -1
  1087. package/dist/ir/numeric-call-specialization.d.ts +8 -0
  1088. package/dist/ir/numeric-call-specialization.js +198 -0
  1089. package/dist/ir/numeric-call-specialization.js.map +1 -0
  1090. package/dist/ir/runtime-features.d.ts +221 -0
  1091. package/dist/ir/runtime-features.js +552 -0
  1092. package/dist/ir/runtime-features.js.map +1 -0
  1093. package/dist/ir/runtime-features.test.d.ts +1 -0
  1094. package/dist/ir/runtime-features.test.js +98 -0
  1095. package/dist/ir/runtime-features.test.js.map +1 -0
  1096. package/dist/ir/scalar-records.js +130 -40
  1097. package/dist/ir/scalar-records.js.map +1 -1
  1098. package/dist/ir/scalar-records.test.js +146 -27
  1099. package/dist/ir/scalar-records.test.js.map +1 -1
  1100. package/dist/ir/serialize.d.ts +1 -1
  1101. package/dist/ir/serialize.js +7 -5
  1102. package/dist/ir/serialize.js.map +1 -1
  1103. package/dist/ir/serialize.test.js +44 -9
  1104. package/dist/ir/serialize.test.js.map +1 -1
  1105. package/dist/ir/traverse.js +156 -43
  1106. package/dist/ir/traverse.js.map +1 -1
  1107. package/dist/ir/traverse.test.js +99 -24
  1108. package/dist/ir/traverse.test.js.map +1 -1
  1109. package/dist/ir/validate.d.ts +1 -31
  1110. package/dist/ir/validate.js +869 -1910
  1111. package/dist/ir/validate.js.map +1 -1
  1112. package/dist/ir/validate.test.js +697 -114
  1113. package/dist/ir/validate.test.js.map +1 -1
  1114. package/dist/library/cache-primitives.js +9 -10
  1115. package/dist/library/cache-primitives.js.map +1 -1
  1116. package/dist/library/cache-reset.test.js +2 -1
  1117. package/dist/library/cache-reset.test.js.map +1 -1
  1118. package/dist/library/compiler-self-identity.js +11 -5
  1119. package/dist/library/compiler-self-identity.js.map +1 -1
  1120. package/dist/library/compiler-self-identity.test.js +10 -3
  1121. package/dist/library/compiler-self-identity.test.js.map +1 -1
  1122. package/dist/library/fence-eval.js +24 -7
  1123. package/dist/library/fence-eval.js.map +1 -1
  1124. package/dist/library/fence-eval.test.js +31 -7
  1125. package/dist/library/fence-eval.test.js.map +1 -1
  1126. package/dist/library/int-infer.js +199 -59
  1127. package/dist/library/int-infer.js.map +1 -1
  1128. package/dist/library/int-infer.test.js +137 -61
  1129. package/dist/library/int-infer.test.js.map +1 -1
  1130. package/dist/library/ir-policy.d.ts +27 -0
  1131. package/dist/library/ir-policy.js +234 -0
  1132. package/dist/library/ir-policy.js.map +1 -0
  1133. package/dist/library/library-cache.js +40 -17
  1134. package/dist/library/library-cache.js.map +1 -1
  1135. package/dist/library/library-cache.test.js +29 -18
  1136. package/dist/library/library-cache.test.js.map +1 -1
  1137. package/dist/library/library-profile.js +68 -13
  1138. package/dist/library/library-profile.js.map +1 -1
  1139. package/dist/library/prepare.js +48 -20
  1140. package/dist/library/prepare.js.map +1 -1
  1141. package/dist/library/semantic-source.js +16 -14
  1142. package/dist/library/semantic-source.js.map +1 -1
  1143. package/dist/library/semantic-source.test.js +9 -14
  1144. package/dist/library/semantic-source.test.js.map +1 -1
  1145. package/dist/library/sidecar-validate.js +53 -12
  1146. package/dist/library/sidecar-validate.js.map +1 -1
  1147. package/dist/library/sidecar.js +85 -24
  1148. package/dist/library/sidecar.js.map +1 -1
  1149. package/dist/library/trap-teaching.js +11 -2
  1150. package/dist/library/trap-teaching.js.map +1 -1
  1151. package/dist/native/cache.js +10 -4
  1152. package/dist/native/cache.js.map +1 -1
  1153. package/dist/native/cli.js +34 -9
  1154. package/dist/native/cli.js.map +1 -1
  1155. package/dist/native/compiler.js +191 -54
  1156. package/dist/native/compiler.js.map +1 -1
  1157. package/dist/native/compiler.test.js +134 -33
  1158. package/dist/native/compiler.test.js.map +1 -1
  1159. package/dist/native/comptime.js +23 -7
  1160. package/dist/native/comptime.js.map +1 -1
  1161. package/dist/native/comptime.test.js +26 -6
  1162. package/dist/native/comptime.test.js.map +1 -1
  1163. package/dist/native/executable-cache.js +77 -27
  1164. package/dist/native/executable-cache.js.map +1 -1
  1165. package/dist/native/executable-cache.test.js +41 -6
  1166. package/dist/native/executable-cache.test.js.map +1 -1
  1167. package/dist/native/file-identity.js +9 -2
  1168. package/dist/native/file-identity.js.map +1 -1
  1169. package/dist/native/file-identity.test.js.map +1 -1
  1170. package/dist/native/library.js +50 -12
  1171. package/dist/native/library.js.map +1 -1
  1172. package/dist/native/prepare.js +121 -34
  1173. package/dist/native/prepare.js.map +1 -1
  1174. package/dist/native/prepare.test.js +22 -6
  1175. package/dist/native/prepare.test.js.map +1 -1
  1176. package/dist/native/runtime-typescript.js +24 -11
  1177. package/dist/native/runtime-typescript.js.map +1 -1
  1178. package/dist/native/runtime-typescript.test.js.map +1 -1
  1179. package/dist/native/sanitizer.js +71 -18
  1180. package/dist/native/sanitizer.js.map +1 -1
  1181. package/dist/native/sanitizer.test.js +78 -20
  1182. package/dist/native/sanitizer.test.js.map +1 -1
  1183. package/dist/native/task.js.map +1 -1
  1184. package/dist/native/task.test.js +7 -2
  1185. package/dist/native/task.test.js.map +1 -1
  1186. package/dist/native/toolchain.js +68 -26
  1187. package/dist/native/toolchain.js.map +1 -1
  1188. package/dist/native/toolchain.test.js +59 -20
  1189. package/dist/native/toolchain.test.js.map +1 -1
  1190. package/dist/startup-cache.d.ts +1 -1
  1191. package/dist/startup-cache.js +1 -1
  1192. package/dist/startup-cache.js.map +1 -1
  1193. package/dist/timing.js.map +1 -1
  1194. package/package.json +20 -20
  1195. package/surface-manifest.json +30 -2
  1196. package/dist/frontend/lowering/lower-builtins.d.ts +0 -601
  1197. package/dist/frontend/lowering/lower-builtins.js +0 -8986
  1198. package/dist/frontend/lowering/lower-builtins.js.map +0 -1
  1199. package/dist/frontend/lowering/lower-containers.d.ts +0 -382
  1200. package/dist/frontend/lowering/lower-containers.js +0 -7344
  1201. package/dist/frontend/lowering/lower-containers.js.map +0 -1
@@ -1,7 +1,9 @@
1
1
  import * as ts from "../ts7/adapter.js";
2
2
  import type { FnCtx, Lowerer } from "./lowerer.js";
3
3
  import { type IrClassDef, type IrExpr, type IrFunction, type IrLocal, type IrStmt, type IrType, type SrcLoc } from "../../ir/ir.js";
4
- import { type GenericFnInfo, type ParamShape } from "./lower-calls.js";
4
+ import { type GenericFnInfo } from "./generic-functions.js";
5
+ import { type InstantiationPath } from "./instantiation-path.js";
6
+ import { type ParamShape } from "./call-signatures.js";
5
7
  import { type ScrDiagnostic } from "../../diagnostics/diagnostic.js";
6
8
  import { type EmitOverrideRec } from "./lower-event-emitter.js";
7
9
  import { type MixinInstanceInfo } from "./lower-mixins.js";
@@ -130,6 +132,8 @@ export interface ClassInfo {
130
132
  * (forwarding the completed ABI values; defaults apply in the base). */
131
133
  ctorParams: ParamShape[];
132
134
  base: ClassInfo | null;
135
+ /** Family heritage resolves its type arguments separately for each instance. */
136
+ genericBase?: ts.ExpressionWithTypeArguments;
133
137
  /** A module class may inherit a compiled ordinary JS constructor. Its
134
138
  * callable and prototype are captured when the class declaration runs. */
135
139
  callableBase?: {
@@ -213,6 +217,7 @@ export interface ClassInfo {
213
217
  * counts statements toward coverage — re-instantiations re-visit the
214
218
  * same source lines). */
215
219
  genericInstance?: {
220
+ path: InstantiationPath;
216
221
  family: ClassInfo;
217
222
  bindings: Map<ts.Symbol, IrType>;
218
223
  typeArgsText: string;
@@ -306,75 +311,76 @@ export interface GenericClassInfo {
306
311
  }>;
307
312
  }
308
313
  /** The builtin Error hierarchy
309
- * as eagerly-registered ClassInfos: mapType names them the moment a lib
310
- * Error type appears, so the infos must exist before any lowering. They
311
- * are runtime-provided — no decl, no lowerable bodies; `new`/super()/
312
- * toString reach them through dedicated error.* libCall lowerings, and
313
- * user classes extend them like any base (the emitted subclass struct
314
- * embeds ScrError's prefix). */
314
+ * as eagerly-registered ClassInfos: mapType names them the moment a lib
315
+ * Error type appears, so the infos must exist before any lowering. They
316
+ * are runtime-provided — no decl, no lowerable bodies; `new`/super()/
317
+ * toString reach them through dedicated error.* libCall lowerings, and
318
+ * user classes extend them like any base (the emitted subclass struct
319
+ * embeds ScrError's prefix). */
315
320
  export declare function registerBuiltinErrorClasses(lowerer: Lowerer): void;
316
321
  /** The runtime-provided node:events EventEmitter as an eagerly-registered
317
- * ClassInfo (the error-hierarchy story): mapType names `%EventEmitter`
318
- * the moment an emitter type appears, so the info must exist before any
319
- * lowering. No decl, no lowerable bodies — `new`/super() reach it
320
- * through emitter.* libCalls, the method surface lowers through
321
- * lower-event-emitter.ts, and user classes extend it like any base (the
322
- * emitted subclass struct embeds ScrEmitter's registry/name prefix —
323
- * carried by the BACKEND, not by IR fields, so the fields list stays
324
- * empty and subclass field layout starts right after the prefix). */
322
+ * ClassInfo (the error-hierarchy story): mapType names `%EventEmitter`
323
+ * the moment an emitter type appears, so the info must exist before any
324
+ * lowering. No decl, no lowerable bodies — `new`/super() reach it
325
+ * through emitter.* libCalls, the method surface lowers through
326
+ * lower-event-emitter.ts, and user classes extend it like any base (the
327
+ * emitted subclass struct embeds ScrEmitter's registry/name prefix —
328
+ * carried by the BACKEND, not by IR fields, so the fields list stays
329
+ * empty and subclass field layout starts right after the prefix). */
325
330
  export declare function registerBuiltinEmitterClass(lowerer: Lowerer): void;
326
331
  /** The runtime-provided node:stream classes as eagerly-registered
327
- * ClassInfos (the emitter story): mapType names `%Readable` et al the
328
- * moment a stream type appears, so the infos must exist before any
329
- * lowering. Each roots at the emitter through its base chain, so the
330
- * EventEmitter method surface, upcasts, and instanceof intervals apply
331
- * unchanged; the stream method/property surface lowers through
332
- * lower-stream.ts. No decl, no lowerable bodies, empty field lists —
333
- * every instance is runtime-allocated (user `extends` is fenced). */
332
+ * ClassInfos (the emitter story): mapType names `%Readable` et al the
333
+ * moment a stream type appears, so the infos must exist before any
334
+ * lowering. Each roots at the emitter through its base chain, so the
335
+ * EventEmitter method surface, upcasts, and instanceof intervals apply
336
+ * unchanged; the stream method/property surface lowers through
337
+ * lower-stream.ts. No decl, no lowerable bodies, empty field lists —
338
+ * every instance is runtime-allocated (user `extends` is fenced). */
334
339
  export declare function registerBuiltinStreamClasses(lowerer: Lowerer): void;
335
340
  /** The stream ClassInfo a VALUE symbol refers to (`new Readable(...)`,
336
- * `x instanceof Writable`) — any import spelling resolves to the
337
- * ambient class. Provenance: a stdlib-file CLASS declaration inside the
338
- * "stream" ambient module, EXCLUDING @types/node's (whose stream.Readable
339
- * also types child stdio — under @types/node the childStream mapping
340
- * keeps priority and the static stream classes stand down; the shipped
341
- * fallback declarations are the supported surface). */
341
+ * `x instanceof Writable`) — any import spelling resolves to the
342
+ * ambient class. Provenance: a stdlib-file CLASS declaration inside the
343
+ * "stream" ambient module, EXCLUDING @types/node's (whose stream.Readable
344
+ * also types child stdio — under @types/node the childStream mapping
345
+ * keeps priority and the static stream classes stand down; the shipped
346
+ * fallback declarations are the supported surface). */
342
347
  export declare function builtinStreamInfoOf(lowerer: Lowerer, symbol: ts.Symbol | null | undefined): ClassInfo | null;
343
348
  /** The emitter ClassInfo a VALUE symbol refers to (`new EventEmitter`,
344
- * `extends EventEmitter`, `x instanceof EventEmitter`) — any import
345
- * spelling (named/default/namespace member, CJS require) resolves to
346
- * the ambient class. Provenance-checked like the error classes: only a
347
- * stdlib-file declaration inside the "events" ambient module counts. */
349
+ * `extends EventEmitter`, `x instanceof EventEmitter`) — any import
350
+ * spelling (named/default/namespace member, CJS require) resolves to
351
+ * the ambient class. Provenance-checked like the error classes: only a
352
+ * stdlib-file declaration inside the "events" ambient module counts. */
348
353
  export declare function builtinEmitterInfoOf(lowerer: Lowerer, symbol: ts.Symbol | null | undefined): ClassInfo | null;
349
354
  /** The builtin error ClassInfo a VALUE symbol refers to (`new Error`,
350
- * `extends TypeError`, `x instanceof RangeError`), or null. Provenance-
351
- * checked: only the standard library's declarations count — a user's own
352
- * `class Error` resolves through classBySymbol instead. */
355
+ * `extends TypeError`, `x instanceof RangeError`), or null. Provenance-
356
+ * checked: only the standard library's declarations count — a user's own
357
+ * `class Error` resolves through classBySymbol instead. */
353
358
  export declare function builtinErrorInfoOf(lowerer: Lowerer, symbol: ts.Symbol | null | undefined): ClassInfo | null;
354
359
  /** The instance-method surface the runtime EventEmitter owns — subclass
355
360
  * members with these names are fenced (collectClassShapeInner) and calls
356
361
  * to them on emitter-rooted receivers lower through lower-event-emitter.ts. */
357
362
  export declare const EMITTER_API_MEMBERS: ReadonlySet<string>;
358
363
  /** The decorators of a class-like or member node (they live in
359
- * `modifiers` since TS 4.8). */
364
+ * `modifiers` since TS 4.8). */
360
365
  export declare function decoratorNodesOf(n: ts.Node): ts.Decorator[];
361
366
  /** The guaranteed decoration THROW of a decorated class, or null. Walks
362
- * the class definition's evaluation-order items — class decorators
363
- * (source order), the heritage expression, then per member in body
364
- * order its decorators and computed key (the verified TC39/tsc-downlevel
365
- * order) — and answers the first AMBIENT decorator name, provided every
366
- * item BEFORE it is provably effect-free and non-throwing: bare
367
- * identifier decorators over defined values (a pure read), an absent /
368
- * `null` / bare-identifier heritage, literal or bare-identifier
369
- * computed keys. Anything richer (factory calls over defined values,
370
- * property-access reads, computed-key calls) stops the proof — the
371
- * named fences answer instead. */
367
+ * the class definition's evaluation-order items — class decorators
368
+ * (source order), the heritage expression, then per member in body
369
+ * order its decorators and computed key (the verified TC39/tsc-downlevel
370
+ * order) — and answers the first AMBIENT decorator name, provided every
371
+ * item BEFORE it is provably effect-free and non-throwing: bare
372
+ * identifier decorators over defined values (a pure read), an absent /
373
+ * `null` / bare-identifier heritage, literal or bare-identifier
374
+ * computed keys. Anything richer (factory calls over defined values,
375
+ * property-access reads, computed-key calls) stops the proof — the
376
+ * named fences answer instead. */
372
377
  export declare function guaranteedDecorationThrow(lowerer: Lowerer, decl: ts.ClassLikeDeclaration): {
373
378
  name: string;
374
379
  node: ts.Decorator;
375
380
  } | null;
376
381
  export declare function collectClassShape(lowerer: Lowerer, decl: ts.ClassDeclaration): void;
377
382
  export declare function collectClassShapeInner(lowerer: Lowerer, decl: ts.ClassLikeDeclaration, jsNameOverride?: string, inst?: {
383
+ path: InstantiationPath;
378
384
  family: ClassInfo;
379
385
  name: string;
380
386
  bindings: Map<ts.Symbol, IrType>;
@@ -395,45 +401,45 @@ mixin?: {
395
401
  ordinal: number;
396
402
  }): void;
397
403
  /** mapType's generic-class hook: the INSTANTIATION a concrete type
398
- * reference (`Box<number>`) names — registered on first demand. The
399
- * instance's NAME reserves its key before the shape collects, so
400
- * self-referential layouts (`next: Box<T> | null`) re-enter here and
401
- * take the name without recursing; a poisoned collection (a field type
402
- * with no lowering under these bindings — the diagnostic carries the
403
- * instantiation context) leaves the entry poisoned and the type
404
- * unmapped, the fenced-JS-class story. Null answers (unmappable type
405
- * arguments, the instance cap, an uncollected family) make the whole
406
- * reference unmappable — per-site diagnostics own the fence. */
404
+ * reference (`Box<number>`) names — registered on first demand. The
405
+ * instance's NAME reserves its key before the shape collects, so
406
+ * self-referential layouts (`next: Box<T> | null`) re-enter here and
407
+ * take the name without recursing; a poisoned collection (a field type
408
+ * with no lowering under these bindings — the diagnostic carries the
409
+ * instantiation context) leaves the entry poisoned and the type
410
+ * unmapped, the fenced-JS-class story. Null answers (unmappable type
411
+ * arguments, the instance cap, an uncollected family) make the whole
412
+ * reference unmappable — per-site diagnostics own the fence. */
407
413
  export declare function genericClassInstanceType(lowerer: Lowerer, decl: ts.ClassLikeDeclaration, ref: ts.Type, mapArgument?: (type: ts.Type) => IrType | null): IrType | null;
408
414
  /** The `%init` statements for one class's static readonly fields AND
409
- * static blocks, interleaved in member order — emitted at the class
410
- * statement's source position (see lowerFileInit's merge), exactly when
411
- * JS evaluates static initializers and blocks. Field failures poison per
412
- * field, like fieldInitStmts; a block lowers as the block statement it
413
- * is, so its statements poison individually inside lowerStmts. */
415
+ * static blocks, interleaved in member order — emitted at the class
416
+ * statement's source position (see lowerFileInit's merge), exactly when
417
+ * JS evaluates static initializers and blocks. Field failures poison per
418
+ * field, like fieldInitStmts; a block lowers as the block statement it
419
+ * is, so its statements poison individually inside lowerStmts. */
414
420
  export declare function lowerStaticFieldInits(lowerer: Lowerer, info: ClassInfo): IrStmt[];
415
421
  /** Post-collection analysis of a decorated class (all shapes registered —
416
- * a decorator's return type may name a subclass declared BELOW the
417
- * class). Classifies every class-level decorator by its checker type:
418
- * exactly one parameter, itself a classval the decorated class legally
419
- * flows into (the class, or a base sharing its completed constructor
420
- * ABI — the classval widening rule), returning void/undefined (an
421
- * effect-only decorator) or the class/a same-ABI subclass (a REPLACING
422
- * decorator, whose result rebinds the name). Everything else is a named
423
- * fence: the standard context parameter, structural sibling
424
- * replacements tsc admits but the nominal classval world cannot carry,
425
- * unions mixing the class with undefined. A replacing decorator
426
- * registers the mutable classval global the name rebinds through, and
427
- * fences the two shapes the value rebinding cannot keep exact —
428
- * subclasses of the decorated class (the compiled hierarchy is fixed at
429
- * build time; the runtime base would be the decoration result) and
430
- * namespace-nested declarations (qualified references resolve the class
431
- * directly, not through the rebound value). */
422
+ * a decorator's return type may name a subclass declared BELOW the
423
+ * class). Classifies every class-level decorator by its checker type:
424
+ * exactly one parameter, itself a classval the decorated class legally
425
+ * flows into (the class, or a base sharing its completed constructor
426
+ * ABI — the classval widening rule), returning void/undefined (an
427
+ * effect-only decorator) or the class/a same-ABI subclass (a REPLACING
428
+ * decorator, whose result rebinds the name). Everything else is a named
429
+ * fence: the standard context parameter, structural sibling
430
+ * replacements tsc admits but the nominal classval world cannot carry,
431
+ * unions mixing the class with undefined. A replacing decorator
432
+ * registers the mutable classval global the name rebinds through, and
433
+ * fences the two shapes the value rebinding cannot keep exact —
434
+ * subclasses of the decorated class (the compiled hierarchy is fixed at
435
+ * build time; the runtime base would be the decoration result) and
436
+ * namespace-nested declarations (qualified references resolve the class
437
+ * directly, not through the rebound value). */
432
438
  export declare function analyzeClassDecoration(lowerer: Lowerer, info: ClassInfo): void;
433
439
  /** The nearest declaration of static member `name` at or above `info` —
434
- * the compile-time prototype-chain walk (`D.x` reads C's global when C
435
- * declared x and nothing between redeclares it; a redeclaration shadows
436
- * with its OWN storage, exactly JS). */
440
+ * the compile-time prototype-chain walk (`D.x` reads C's global when C
441
+ * declared x and nothing between redeclares it; a redeclaration shadows
442
+ * with its OWN storage, exactly JS). */
437
443
  export declare function findStaticOn(lowerer: Lowerer, info: ClassInfo | null, name: string): {
438
444
  declarer: ClassInfo;
439
445
  field: ClassInfo["staticFields"][number];
@@ -449,30 +455,30 @@ export declare function findStaticOn(lowerer: Lowerer, info: ClassInfo | null, n
449
455
  field?: undefined;
450
456
  } | null;
451
457
  /** True when some STRICT descendant of `info` redeclares static `name` —
452
- * the through-a-VALUE devirtualization test: a classval(info) slot can
453
- * hold any descendant, and a shadowing redeclaration means the runtime
454
- * class decides which storage answers. */
455
- export declare function staticShadowBelow(lowerer: Lowerer, info: ClassInfo, name: string): boolean;
458
+ * the through-a-VALUE devirtualization test: a classval(info) slot can
459
+ * hold any descendant, and a shadowing redeclaration means the runtime
460
+ * class decides which storage answers. */
461
+ export declare function staticShadowBelow(info: ClassInfo, name: string): boolean;
456
462
  /** The nearest GENERIC static declaration of `name` at/above `info` —
457
- * findStaticOn's twin over the genericStatics tables. */
463
+ * findStaticOn's twin over the genericStatics tables. */
458
464
  export declare function findGenericStaticOn(lowerer: Lowerer, info: ClassInfo | null, name: string): {
459
465
  declarer: ClassInfo;
460
466
  info: GenericFnInfo;
461
467
  } | null;
462
468
  /** The class itself taken as a VALUE (`const X = C`, an argument, an
463
- * array element, a class expression's result): the classRef over the
464
- * per-class immortal class object. The construct thunk needs a thunk-
465
- * shaped constructor, so classes whose construction is libCall-shaped —
466
- * the runtime-provided builtins and anything inheriting a builtin
467
- * constructor (Error/EventEmitter/stream chains complete their `new`
468
- * by special rules) — are named fences here. The constructor edge is
469
- * noted at every classRef: a value can always be constructed through. */
469
+ * array element, a class expression's result): the classRef over the
470
+ * per-class immortal class object. The construct thunk needs a thunk-
471
+ * shaped constructor, so classes whose construction is libCall-shaped —
472
+ * the runtime-provided builtins and anything inheriting a builtin
473
+ * constructor (Error/EventEmitter/stream chains complete their `new`
474
+ * by special rules) — are named fences here. The constructor edge is
475
+ * noted at every classRef: a value can always be constructed through. */
470
476
  export declare function classValueRef(lowerer: Lowerer, info: ClassInfo, blame: ts.Node): IrExpr;
471
477
  /** Constructor-ABI equality — the classval widening rule: a classval(D)
472
- * value may flow into a classval(C) slot only when D's completed
473
- * constructor signature equals C's (same count, modes, and ABI types),
474
- * which is what keeps newValue completion against C's one signature
475
- * sound for every value legally in the slot. */
478
+ * value may flow into a classval(C) slot only when D's completed
479
+ * constructor signature equals C's (same count, modes, and ABI types),
480
+ * which is what keeps newValue completion against C's one signature
481
+ * sound for every value legally in the slot. */
476
482
  export declare function ctorAbiEquals(lowerer: Lowerer, sub: ClassInfo, sup: ClassInfo): boolean;
477
483
  /** Writable storage for an own static field named through its exact class.
478
484
  * Inherited writes create a new subclass property in JS, so they must not
@@ -482,11 +488,11 @@ export declare function staticFieldWriteTarget(lowerer: Lowerer, access: ts.Prop
482
488
  type: IrType;
483
489
  } | null;
484
490
  /** `C.x` where C is a class declared in the program and x a static
485
- * member of its chain: field reads are the module global, static
486
- * methods become interned closures, and `.name` folds to the class's
487
- * compile-time name. Null for everything else — unresolved members
488
- * fall through to the ordinary chain so the static fence or the
489
- * generic member rejection names the site. */
491
+ * member of its chain: field reads are the module global, static
492
+ * methods become interned closures, and `.name` folds to the class's
493
+ * compile-time name. Null for everything else — unresolved members
494
+ * fall through to the ordinary chain so the static fence or the
495
+ * generic member rejection names the site. */
490
496
  export declare function lowerStaticFieldRead(lowerer: Lowerer, expr: ts.PropertyAccessExpression): IrExpr | null;
491
497
  /** Collect a class expression once per enclosing specialization. Function-local
492
498
  * evaluations allocate fresh constructor objects; top-level expressions use
@@ -494,57 +500,57 @@ export declare function lowerStaticFieldRead(lowerer: Lowerer, expr: ts.Property
494
500
  * initializers, where pendingClassExprInits preserves its evaluation point. */
495
501
  export declare function lowerClassExpressionInfo(lowerer: Lowerer, expr: ts.ClassLikeDeclaration): ClassInfo;
496
502
  /** `class {…}` in expression position: a class definition bound to no
497
- * statement — once the static side is a value, the expression IS the
498
- * definition plus a classRef over it. A DECORATED class expression
499
- * whose decoration provably throws (the ambient-decorator shape) never
500
- * mints a class at all: evaluating the expression IS the
501
- * ReferenceError, so it lowers to exactly that read — every evaluation
502
- * throws identically, which is why the once-evaluated restriction and
503
- * the member fences don't apply. */
503
+ * statement — once the static side is a value, the expression IS the
504
+ * definition plus a classRef over it. A DECORATED class expression
505
+ * whose decoration provably throws (the ambient-decorator shape) never
506
+ * mints a class at all: evaluating the expression IS the
507
+ * ReferenceError, so it lowers to exactly that read — every evaluation
508
+ * throws identically, which is why the once-evaluated restriction and
509
+ * the member fences don't apply. */
504
510
  export declare function lowerClassExpression(lowerer: Lowerer, expr: ts.ClassLikeDeclaration): IrExpr;
505
511
  /** The EXACT class a receiver expression is statically known to BE (not
506
- * merely be typed by): the class name itself, or a `const` binding
507
- * whose initializer is a class expression / class name. Such receivers
508
- * can never hold a subclass at runtime, so static WRITES through them
509
- * hit the declaring class's storage exactly (the shadowing hazards of
510
- * general class values don't arise). Null for everything else. */
512
+ * merely be typed by): the class name itself, or a `const` binding
513
+ * whose initializer is a class expression / class name. Such receivers
514
+ * can never hold a subclass at runtime, so static WRITES through them
515
+ * hit the declaring class's storage exactly (the shadowing hazards of
516
+ * general class values don't arise). Null for everything else. */
511
517
  export declare function exactClassOfReceiver(lowerer: Lowerer, expr: ts.Expression): ClassInfo | null;
512
518
  /** The class a PROPERTY-ASSIGNMENT binding pins — the salsa/CJS
513
- * declaration forms of a class expression: `Common.I = class {…}`
514
- * (expando members of a plain object), `exports.I = class {…}` /
515
- * `module.exports.I = class {…}` (CJS member exports), and
516
- * `module.exports = class {…}` (the whole-export replacement, whose
517
- * export symbol requirer bindings alias to). The symbol arrives in two
518
- * shapes — an ALIAS resolving to the class expression's own symbol
519
- * (valueDeclaration IS the ts.ClassExpression), or the expando property
520
- * symbol whose declarations are the assignment BinaryExpressions — and
521
- * both pin the class exactly when ONE top-level assignment declares it:
522
- * a reassigned property is a dynamic binding (the runtime class is
523
- * whichever assignment ran last), so it answers null and the caller's
524
- * fence names it. Collection is on demand and idempotent
525
- * (lowerClassExpressionInfo), so resolution order between files and
526
- * passes never matters. */
519
+ * declaration forms of a class expression: `Common.I = class {…}`
520
+ * (expando members of a plain object), `exports.I = class {…}` /
521
+ * `module.exports.I = class {…}` (CJS member exports), and
522
+ * `module.exports = class {…}` (the whole-export replacement, whose
523
+ * export symbol requirer bindings alias to). The symbol arrives in two
524
+ * shapes — an ALIAS resolving to the class expression's own symbol
525
+ * (valueDeclaration IS the ts.ClassExpression), or the expando property
526
+ * symbol whose declarations are the assignment BinaryExpressions — and
527
+ * both pin the class exactly when ONE top-level assignment declares it:
528
+ * a reassigned property is a dynamic binding (the runtime class is
529
+ * whichever assignment ran last), so it answers null and the caller's
530
+ * fence names it. Collection is on demand and idempotent
531
+ * (lowerClassExpressionInfo), so resolution order between files and
532
+ * passes never matters. */
527
533
  export declare function propertyAssignedClassInfoOf(lowerer: Lowerer, symbol: ts.Symbol | null | undefined): ClassInfo | null;
528
534
  /** `C.m(args)` / `X.m(args)` — static method calls, on the class name
529
- * directly or through a class VALUE. Resolution walks the chain
530
- * (nearest declarer, the compile-time prototype chain); through a
531
- * VALUE the call devirtualizes exactly when no strict descendant
532
- * redeclares the member (values never leave the static class's
533
- * subtree). A func-typed static FIELD in call position reads the
534
- * global and calls through the value. Null when the receiver isn't a
535
- * class name/value or the member doesn't resolve (the fences name the
536
- * site downstream). */
535
+ * directly or through a class VALUE. Resolution walks the chain
536
+ * (nearest declarer, the compile-time prototype chain); through a
537
+ * VALUE the call devirtualizes exactly when no strict descendant
538
+ * redeclares the member (values never leave the static class's
539
+ * subtree). A func-typed static FIELD in call position reads the
540
+ * global and calls through the value. Null when the receiver isn't a
541
+ * class name/value or the member doesn't resolve (the fences name the
542
+ * site downstream). */
537
543
  export declare function lowerStaticMethodCall(lowerer: Lowerer, call: ts.CallExpression, access: ts.PropertyAccessExpression): IrExpr | null;
538
544
  /** Static member access through a class VALUE (`X.m` where X is
539
- * classval-typed): devirtualized — the member resolves against the
540
- * static class's chain, exact when no strict descendant redeclares it
541
- * (values in the slot never leave the subtree). `X.name` is the one
542
- * genuinely dynamic member: the class.name libCall reads the runtime
543
- * class object's stored name. Null when the receiver isn't a class
544
- * value or the member doesn't resolve. */
545
+ * classval-typed): devirtualized — the member resolves against the
546
+ * static class's chain, exact when no strict descendant redeclares it
547
+ * (values in the slot never leave the subtree). `X.name` is the one
548
+ * genuinely dynamic member: the class.name libCall reads the runtime
549
+ * class object's stored name. Null when the receiver isn't a class
550
+ * value or the member doesn't resolve. */
545
551
  export declare function lowerClassValueProperty(lowerer: Lowerer, expr: ts.PropertyAccessExpression): IrExpr | null;
546
552
  /** The nearest declaration of `name` at or above `info` — the method a
547
- * receiver of that static class runs when nothing below overrides it. */
553
+ * receiver of that static class runs when nothing below overrides it. */
548
554
  export declare function findMethodOn(lowerer: Lowerer, info: ClassInfo | null, name: string): {
549
555
  declarer: ClassInfo;
550
556
  sig: {
@@ -558,26 +564,26 @@ export declare function findMethodOn(lowerer: Lowerer, info: ClassInfo | null, n
558
564
  /** True when `sub` is a STRICT descendant of `sup` in the class graph. */
559
565
  export declare function isSubclassOf(lowerer: Lowerer, sub: string, sup: string): boolean;
560
566
  /** In an extends-hierarchy (as base or derived): the class carries a
561
- * vtable and participates in dynamic instanceof; standalone classes keep
562
- * their exact pre-inheritance layout and behavior. */
567
+ * vtable and participates in dynamic instanceof; standalone classes keep
568
+ * their exact pre-inheritance layout and behavior. */
563
569
  export declare function inHierarchy(lowerer: Lowerer, info: ClassInfo): boolean;
564
570
  /** True when some STRICT descendant of `info` declares `name` with a BODY
565
- * — the whole-program devirtualization test: a call through this static
566
- * class can reach a distinct implementation, so it must dispatch
567
- * dynamically. Abstract re-declarations don't count (they carry no
568
- * implementation; the concrete ones below them do, via the recursion). */
571
+ * — the whole-program devirtualization test: a call through this static
572
+ * class can reach a distinct implementation, so it must dispatch
573
+ * dynamically. Abstract re-declarations don't count (they carry no
574
+ * implementation; the concrete ones below them do, via the recursion). */
569
575
  export declare function overrideBelow(lowerer: Lowerer, info: ClassInfo, name: string): boolean;
570
576
  /** The nearest GENERIC-method declaration of `name` at/above `info` —
571
- * findMethodOn's twin over the genericMethods tables. */
577
+ * findMethodOn's twin over the genericMethods tables. */
572
578
  export declare function findGenericMethodOn(lowerer: Lowerer, info: ClassInfo | null, name: string): {
573
579
  declarer: ClassInfo;
574
580
  info: GenericFnInfo;
575
581
  } | null;
576
582
  /** True when some STRICT descendant of `info` re-declares the generic
577
- * method `name` — overrideBelow's twin: generic methods have no vtable
578
- * slot, so a call that could reach an override compiles only when the
579
- * receiver's runtime class is statically exact. */
580
- export declare function genericOverrideBelow(lowerer: Lowerer, info: ClassInfo, name: string): boolean;
583
+ * method `name` — overrideBelow's twin: generic methods have no vtable
584
+ * slot, so a call that could reach an override compiles only when the
585
+ * receiver's runtime class is statically exact. */
586
+ export declare function genericOverrideBelow(info: ClassInfo, name: string): boolean;
581
587
  /** Discover inherited data writes before any base storage ABI is chosen.
582
588
  * The checker does not widen a base field for assignments in JS subclasses. */
583
589
  export declare function collectInheritedJsFieldWrites(lowerer: Lowerer, files: readonly ts.SourceFile[]): void;
@@ -587,69 +593,69 @@ export declare function collectInheritedJsFieldWrites(lowerer: Lowerer, files: r
587
593
  * hierarchy identifies the original declarations through aliases as well. */
588
594
  export declare function collectVirtualJsMethods(lowerer: Lowerer, files: readonly ts.SourceFile[]): void;
589
595
  /** The receiver's EXACT runtime class, when the expression proves it: a
590
- * `new C(...)` expression directly, or a const binding initialized with
591
- * one (the binding can never be reassigned to a subclass instance).
592
- * The class is read off the mapped INITIALIZER type — a `const b: Base =
593
- * new D()` receiver is exactly D, not its annotation. Distinct from
594
- * exactClassOfReceiver, which answers for CLASS-VALUE receivers. */
596
+ * `new C(...)` expression directly, or a const binding initialized with
597
+ * one (the binding can never be reassigned to a subclass instance).
598
+ * The class is read off the mapped INITIALIZER type — a `const b: Base =
599
+ * new D()` receiver is exactly D, not its annotation. Distinct from
600
+ * exactClassOfReceiver, which answers for CLASS-VALUE receivers. */
595
601
  export declare function exactInstanceClassOf(lowerer: Lowerer, expr: ts.Expression): ClassInfo | null;
596
602
  /** `const r: Repo = new MemRepo()` where EVERY member of the annotation's
597
- * checker type is a generic-callable method (`interface Repo { get<T>(id:
598
- * string): T }`): the record shape maps EMPTY — generic members are
599
- * excluded (no closure slot can hold a generic function) — so the
600
- * copy-reshape width coercion would DROP the exact class the method
601
- * calls monomorphize against, and in JS the binding IS the instance (no
602
- * copy exists). The binding keeps the initializer's class
603
- * representation instead: generic-method calls resolve like class-typed
604
- * receivers (exactInstanceClassOf reads the same const+new discipline),
605
- * and uses that want the empty record width-coerce at the use site.
606
- * Const + direct `new` only — a reassignable binding or a produced
607
- * value keeps today's record story and its fences. */
603
+ * checker type is a generic-callable method (`interface Repo { get<T>(id:
604
+ * string): T }`): the record shape maps EMPTY — generic members are
605
+ * excluded (no closure slot can hold a generic function) — so the
606
+ * copy-reshape width coercion would DROP the exact class the method
607
+ * calls monomorphize against, and in JS the binding IS the instance (no
608
+ * copy exists). The binding keeps the initializer's class
609
+ * representation instead: generic-method calls resolve like class-typed
610
+ * receivers (exactInstanceClassOf reads the same const+new discipline),
611
+ * and uses that want the empty record width-coerce at the use site.
612
+ * Const + direct `new` only — a reassignable binding or a produced
613
+ * value keeps today's record story and its fences. */
608
614
  export declare function genericIfaceBindingKeepsClass(lowerer: Lowerer, decl: ts.VariableDeclaration, declaredType: IrType): boolean;
609
615
  /** `recv.m<T>(args)` — a GENERIC method call, dispatched STATICALLY: the
610
- * checker's resolved signature (type arguments substituted, inferred or
611
- * explicit) keys one instantiation of the nearest declarer's body, and
612
- * the call is a direct `call` of `%C.m%n` over the (up/down)cast
613
- * receiver. No per-instantiation vtable slots exist, so a receiver whose
614
- * runtime class could OVERRIDE the method (genericOverrideBelow) must be
615
- * statically exact (exactInstanceClassOf) — the override set then
616
- * resolves at compile time — or fences by name. */
616
+ * checker's resolved signature (type arguments substituted, inferred or
617
+ * explicit) keys one instantiation of the nearest declarer's body, and
618
+ * the call is a direct `call` of `%C.m%n` over the (up/down)cast
619
+ * receiver. No per-instantiation vtable slots exist, so a receiver whose
620
+ * runtime class could OVERRIDE the method (genericOverrideBelow) must be
621
+ * statically exact (exactInstanceClassOf) — the override set then
622
+ * resolves at compile time — or fences by name. */
617
623
  export declare function lowerClassGenericMethodCall(lowerer: Lowerer, call: ts.CallExpression, access: ts.PropertyAccessExpression, recvInfo: ClassInfo, found: {
618
624
  declarer: ClassInfo;
619
625
  info: GenericFnInfo;
620
626
  }, recvIr?: IrExpr): IrExpr;
621
627
  /** Wraps a derived-class expression in an upcast when the target base
622
- * class differs (a no-op reinterpret at runtime; keeps IR types exact). */
628
+ * class differs (a no-op reinterpret at runtime; keeps IR types exact). */
623
629
  export declare function upcastTo(lowerer: Lowerer, expr: IrExpr, className: string): IrExpr;
624
630
  export declare function lowerClassMembers(lowerer: Lowerer, info: ClassInfo): IrFunction[];
625
631
  /** The constructor function `%C.constructor`. Synthesized when absent: a
626
- * base class runs just its field initializers; a derived class inherits
627
- * the base's signature — forward every param to super(), then run own
628
- * field initializers. */
632
+ * base class runs just its field initializers; a derived class inherits
633
+ * the base's signature — forward every param to super(), then run own
634
+ * field initializers. */
629
635
  export declare function lowerClassCtor(lowerer: Lowerer, info: ClassInfo): IrFunction;
630
636
  /** The lowered method-map name of a class member: identifier text, a
631
- * COMPUTED name that folds to one compile-time string
632
- * (foldedStringKeyOf — the object-literal computed-key machinery
633
- * applied to method positions; tsc late-bound the member under exactly
634
- * that name), or a reserved `sym:*` slot for the well-known symbols the
635
- * compiler consumes as language protocols (iterator and explicit
636
- * resource management). These names are unspellable as user identifiers,
637
- * like the accessor `get:x` convention. Null for genuinely
638
- * runtime-keyed names — the computed-member fences stay. */
637
+ * COMPUTED name that folds to one compile-time string
638
+ * (foldedStringKeyOf — the object-literal computed-key machinery
639
+ * applied to method positions; tsc late-bound the member under exactly
640
+ * that name), or a reserved `sym:*` slot for the well-known symbols the
641
+ * compiler consumes as language protocols (iterator and explicit
642
+ * resource management). These names are unspellable as user identifiers,
643
+ * like the accessor `get:x` convention. Null for genuinely
644
+ * runtime-keyed names — the computed-member fences stay. */
639
645
  export declare function classMemberNameOf(lowerer: Lowerer, name: ts.PropertyName): string | null;
640
646
  /** A class type's ITERATOR PROTOCOL shape, statically resolved: the
641
- * receiver declares (or inherits) `[Symbol.iterator]()` (the
642
- * "sym:iterator" method slot) returning a class whose zero-parameter
643
- * `next()` returns a record with a `value` field and an optional
644
- * boolean `done` field (`{ value, done: false }` — the self-iterator
645
- * idiom returns `this`, so the iterator class is usually the receiver
646
- * itself). A MISSING done field never terminates — exactly JS, where
647
- * `undefined` is falsy forever (Node loops forever too; corpus
648
- * iterators of that shape are deliberately infinite). Iterator classes
649
- * declaring `return`/`throw` members stay out — the desugars below
650
- * never call IteratorClose, and silently skipping a declared return()
651
- * would drop user cleanup. Null when the shape doesn't hold — callers
652
- * keep their fences. */
647
+ * receiver declares (or inherits) `[Symbol.iterator]()` (the
648
+ * "sym:iterator" method slot) returning a class whose zero-parameter
649
+ * `next()` returns a record with a `value` field and an optional
650
+ * boolean `done` field (`{ value, done: false }` — the self-iterator
651
+ * idiom returns `this`, so the iterator class is usually the receiver
652
+ * itself). A MISSING done field never terminates — exactly JS, where
653
+ * `undefined` is falsy forever (Node loops forever too; corpus
654
+ * iterators of that shape are deliberately infinite). Iterator classes
655
+ * declaring `return`/`throw` members stay out — the desugars below
656
+ * never call IteratorClose, and silently skipping a declared return()
657
+ * would drop user cleanup. Null when the shape doesn't hold — callers
658
+ * keep their fences. */
653
659
  export interface ClassIteratorInfo {
654
660
  /** The `[Symbol.iterator]()` call's receiver class + its declarer. */
655
661
  className: string;
@@ -667,78 +673,78 @@ export interface ClassIteratorInfo {
667
673
  }
668
674
  export declare function classIteratorOf(lowerer: Lowerer, t: IrType): ClassIteratorInfo | null;
669
675
  /** The `it.next()` step of a class iterator as an ordinary (possibly
670
- * virtual) method call. */
676
+ * virtual) method call. */
671
677
  export declare function classIteratorNextCall(lowerer: Lowerer, cit: ClassIteratorInfo, itRef: IrExpr, loc: SrcLoc): IrExpr;
672
678
  /** `recv[Symbol.iterator]()` as an ordinary method call. */
673
679
  export declare function classIteratorOpenCall(lowerer: Lowerer, cit: ClassIteratorInfo, recv: IrExpr, loc: SrcLoc): IrExpr;
674
680
  /** `[...new C]` / `f(...new C)` over a CLASS ITERABLE: the eager drain —
675
- * an interned `%iter.drain.<n>(recv)` lifted function running the
676
- * whole protocol into a fresh element array (a doneless iterator loops
677
- * forever, exactly Node's spread of an infinite iterator). `elemT`
678
- * (default: the iterator's own value type) is the DESTINATION element —
679
- * a spread into a union-element literal (`[...numbers, ...symbols]` as
680
- * `(number | symbol)[]`) pushes each value wrapped into its arm. Null
681
- * when the value isn't a recognized class iterable or the element
682
- * doesn't coerce — spread fences stay. */
681
+ * an interned `%iter.drain.<n>(recv)` lifted function running the
682
+ * whole protocol into a fresh element array (a doneless iterator loops
683
+ * forever, exactly Node's spread of an infinite iterator). `elemT`
684
+ * (default: the iterator's own value type) is the DESTINATION element —
685
+ * a spread into a union-element literal (`[...numbers, ...symbols]` as
686
+ * `(number | symbol)[]`) pushes each value wrapped into its arm. Null
687
+ * when the value isn't a recognized class iterable or the element
688
+ * doesn't coerce — spread fences stay. */
683
689
  export declare function classIteratorDrainCall(lowerer: Lowerer, src: IrExpr, loc: SrcLoc, elemT?: IrType): IrExpr | null;
684
690
  /** The tail of a class iterable's protocol from an already-open ITERATOR
685
- * object (`var [a, ...rest] = new C` — the rest element drains whatever
686
- * next() still yields): the drain loop keyed by the iterator class. */
691
+ * object (`var [a, ...rest] = new C` — the rest element drains whatever
692
+ * next() still yields): the drain loop keyed by the iterator class. */
687
693
  export declare function classIteratorRestDrainCall(lowerer: Lowerer, cit: ClassIteratorInfo, itVal: IrExpr, loc: SrcLoc): IrExpr;
688
694
  /** One method or accessor body as its module function `%C.name`
689
- * (accessors are methods with property syntax: "get:x"/"set:x" entries —
690
- * see collectClassShape). */
695
+ * (accessors are methods with property syntax: "get:x"/"set:x" entries —
696
+ * see collectClassShape). */
691
697
  export declare function lowerClassMethodMember(lowerer: Lowerer, info: ClassInfo, fnLike: ts.MethodDeclaration | ts.AccessorDeclaration): IrFunction | null;
692
698
  /** One static method body as its module function `%C.static:m` — an
693
- * ordinary function with NO `this` param. `this` and `super` inside
694
- * name the RECEIVER class in JS (dynamic — `F.who()` sees F even when
695
- * who() is declared on E), which has no static story here: both are
696
- * named fences, with arrow functions transparent (they inherit the
697
- * method's `this`) and this-binding function forms opaque — the static-
698
- * block rule verbatim. */
699
+ * ordinary function with NO `this` param. `this` and `super` inside
700
+ * name the RECEIVER class in JS (dynamic — `F.who()` sees F even when
701
+ * who() is declared on E), which has no static story here: both are
702
+ * named fences, with arrow functions transparent (they inherit the
703
+ * method's `this`) and this-binding function forms opaque — the static-
704
+ * block rule verbatim. */
699
705
  export declare function lowerStaticMethod(lowerer: Lowerer, info: ClassInfo, name: string): IrFunction | null;
700
706
  /** A synthesized throwing setter: a getter-only override shadows the
701
- * inherited pair (JS), so a base-typed write dispatches HERE and must
702
- * throw exactly like Node's TypeError — a real instance (a typed catch's
703
- * `e instanceof TypeError` matches), catchable, exit 1 uncaught (message
704
- * text is compiler-worded; stdout and exit code are the contract). */
707
+ * inherited pair (JS), so a base-typed write dispatches HERE and must
708
+ * throw exactly like Node's TypeError — a real instance (a typed catch's
709
+ * `e instanceof TypeError` matches), catchable, exit 1 uncaught (message
710
+ * text is compiler-worded; stdout and exit code are the contract). */
705
711
  export declare function throwingSetterFn(lowerer: Lowerer, info: ClassInfo, prop: string): IrFunction;
706
712
  /** The class's OWN field initializers as fieldSet statements (declaration
707
- * order) — a base constructor's prologue, a derived constructor's
708
- * super()-return continuation. */
713
+ * order) — a base constructor's prologue, a derived constructor's
714
+ * super()-return continuation. */
709
715
  export declare function fieldInitStmts(lowerer: Lowerer, info: ClassInfo, thisLocal: IrLocal): IrStmt[];
710
716
  /** Super statements initialize the base and then the derived fields on
711
- * whichever control-flow path executes. Repeated calls are explicitly
712
- * refused until native layouts can allocate a second receiver. */
717
+ * whichever control-flow path executes. Repeated calls are explicitly
718
+ * refused until native layouts can allocate a second receiver. */
713
719
  export declare function lowerDerivedCtorBody(lowerer: Lowerer, info: ClassInfo, thisLocal: IrLocal, forward?: IrExpr[]): IrStmt[];
714
720
  /** `super(args)` → direct call of the base constructor with the SAME
715
- * `this` (upcast; retained by the varRef read — the callee owns and
716
- * releases its param per the universal convention). */
721
+ * `this` (upcast; retained by the varRef read — the callee owns and
722
+ * releases its param per the universal convention). */
717
723
  export declare function superCallStmt(lowerer: Lowerer, info: ClassInfo, thisLocal: IrLocal, args: IrExpr[], loc: SrcLoc): IrStmt;
718
724
  /** `super.method(args)`: the base chain's implementation, called
719
- * DIRECTLY over this method's own `this` (upcast to the declarer) —
720
- * super dispatch is static in JS too, never through the dynamic class. */
725
+ * DIRECTLY over this method's own `this` (upcast to the declarer) —
726
+ * super dispatch is static in JS too, never through the dynamic class. */
721
727
  export declare function lowerSuperMethodCall(lowerer: Lowerer, call: ts.CallExpression, access: ts.PropertyAccessExpression): IrExpr;
722
728
  /** The `this` reference for super accessor reads/writes, with the shared
723
- * validity checks (derived-class body, resolvable this). */
729
+ * validity checks (derived-class body, resolvable this). */
724
730
  export declare function superThisRef(lowerer: Lowerer, access: ts.PropertyAccessExpression): {
725
731
  thisRef: IrExpr;
726
732
  base: ClassInfo;
727
733
  };
728
734
  /** `super.x` read: a DIRECT call of the base chain's getter over this
729
- * method's own `this` (upcast to the declarer) — like super.method(),
730
- * never through the vtable. */
735
+ * method's own `this` (upcast to the declarer) — like super.method(),
736
+ * never through the vtable. */
731
737
  export declare function lowerSuperAccessorRead(lowerer: Lowerer, access: ts.PropertyAccessExpression): IrExpr;
732
738
  /** `super.x = v`: a DIRECT call of the base chain's setter (same
733
- * static-dispatch rule as every super member access). */
739
+ * static-dispatch rule as every super member access). */
734
740
  export declare function lowerSuperAccessorWrite(lowerer: Lowerer, access: ts.PropertyAccessExpression, rhs: ts.Expression, loc: SrcLoc): IrStmt;
735
741
  /** True when `info`'s EFFECTIVE constructor — its own, or the one
736
- * inherited through ctor-less bases — is a builtin error class's. Such
737
- * classes construct with the error argument rule, and their synthesized
738
- * constructors forward both checked-dynamic values to error.ctorOptions. */
742
+ * inherited through ctor-less bases — is a builtin error class's. Such
743
+ * classes construct with the error argument rule, and their synthesized
744
+ * constructors forward both checked-dynamic values to error.ctorOptions. */
739
745
  export declare function inheritsBuiltinErrorCtor(lowerer: Lowerer, info: ClassInfo): boolean;
740
746
  /** The EventEmitter twin: a ctor-less chain into the emitter base
741
- * inherits `new C()` — zero arguments (the options bag fences). */
747
+ * inherits `new C()` — zero arguments (the options bag fences). */
742
748
  export declare function inheritsBuiltinEmitterCtor(lowerer: Lowerer, info: ClassInfo): boolean;
743
749
  /** Preserve argument evaluation order and option presence through builtin
744
750
  * and inherited Error constructors. Checked-dynamic conversion retains
@@ -746,8 +752,8 @@ export declare function inheritsBuiltinEmitterCtor(lowerer: Lowerer, info: Class
746
752
  export declare function errorConstructorArgs(lowerer: Lowerer, args: readonly ts.Expression[], loc: SrcLoc, blame: ts.Node): IrExpr[];
747
753
  export declare function lowerNew(lowerer: Lowerer, expr: ts.NewExpression): IrExpr;
748
754
  /** A getter/setter invocation over an accessor target's receiver — the
749
- * same whole-program devirtualization as method calls: a virtualCall
750
- * when some strict subclass of the receiver's static class overrides
751
- * this HALF of the accessor (get and set devirtualize independently),
752
- * a direct call of the nearest declaration otherwise. */
755
+ * same whole-program devirtualization as method calls: a virtualCall
756
+ * when some strict subclass of the receiver's static class overrides
757
+ * this HALF of the accessor (get and set devirtualize independently),
758
+ * a direct call of the nearest declaration otherwise. */
753
759
  export declare function accessorCall(lowerer: Lowerer, className: string, member: string, obj: IrExpr, extraArgs: IrExpr[], ret: IrType, loc: SrcLoc): IrExpr;