@scriptc/compiler 0.2.4 → 0.2.5

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