@scriptc/compiler 0.3.5 → 0.4.0

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 (1243) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +960 -82
  2. package/ambient/scriptc.d.ts +134 -0
  3. package/dist/backend/cycle-analysis.d.ts +1 -1
  4. package/dist/backend/cycle-analysis.js +1 -0
  5. package/dist/backend/cycle-analysis.js.map +1 -1
  6. package/dist/backend/cycle-analysis.test.js +13 -1
  7. package/dist/backend/cycle-analysis.test.js.map +1 -1
  8. package/dist/backend/cycle-mutability.js +16 -5
  9. package/dist/backend/cycle-mutability.js.map +1 -1
  10. package/dist/backend/executable-features.js +13 -0
  11. package/dist/backend/executable-features.js.map +1 -1
  12. package/dist/backend/immutability.test.js +1 -1
  13. package/dist/backend/library-pack.js +6 -0
  14. package/dist/backend/library-pack.js.map +1 -1
  15. package/dist/backend/llvm/alloc.d.ts +41 -4
  16. package/dist/backend/llvm/alloc.js +138 -7
  17. package/dist/backend/llvm/alloc.js.map +1 -1
  18. package/dist/backend/llvm/alloc.test.js +30 -1
  19. package/dist/backend/llvm/alloc.test.js.map +1 -1
  20. package/dist/backend/llvm/appended-array-literals.test.js +1 -1
  21. package/dist/backend/llvm/array-search.test.js +1 -1
  22. package/dist/backend/llvm/blocks.d.ts +8 -0
  23. package/dist/backend/llvm/blocks.js +43 -1
  24. package/dist/backend/llvm/blocks.js.map +1 -1
  25. package/dist/backend/llvm/blocks.test.js +22 -1
  26. package/dist/backend/llvm/blocks.test.js.map +1 -1
  27. package/dist/backend/llvm/byte-numbers.js +15 -5
  28. package/dist/backend/llvm/byte-numbers.js.map +1 -1
  29. package/dist/backend/llvm/bytes-alias.d.ts +14 -0
  30. package/dist/backend/llvm/bytes-alias.js +20 -0
  31. package/dist/backend/llvm/bytes-alias.js.map +1 -0
  32. package/dist/backend/llvm/bytes-loop-versions.d.ts +86 -0
  33. package/dist/backend/llvm/bytes-loop-versions.js +506 -0
  34. package/dist/backend/llvm/bytes-loop-versions.js.map +1 -0
  35. package/dist/backend/llvm/bytes-loop-versions.test.d.ts +1 -0
  36. package/dist/backend/llvm/bytes-loop-versions.test.js +244 -0
  37. package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -0
  38. package/dist/backend/llvm/call-lifetimes.js +50 -1
  39. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  40. package/dist/backend/llvm/call-lifetimes.test.js +34 -0
  41. package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
  42. package/dist/backend/llvm/checked-narrows.test.js +1 -1
  43. package/dist/backend/llvm/checked-value-lifetimes.js +4 -1
  44. package/dist/backend/llvm/checked-value-lifetimes.js.map +1 -1
  45. package/dist/backend/llvm/classes.d.ts +11 -0
  46. package/dist/backend/llvm/classes.js +71 -14
  47. package/dist/backend/llvm/classes.js.map +1 -1
  48. package/dist/backend/llvm/classes.test.js +58 -8
  49. package/dist/backend/llvm/classes.test.js.map +1 -1
  50. package/dist/backend/llvm/common.js +1 -0
  51. package/dist/backend/llvm/common.js.map +1 -1
  52. package/dist/backend/llvm/constant-callbacks.d.ts +5 -1
  53. package/dist/backend/llvm/constant-callbacks.js +55 -12
  54. package/dist/backend/llvm/constant-callbacks.js.map +1 -1
  55. package/dist/backend/llvm/constant-callbacks.test.js +88 -1
  56. package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
  57. package/dist/backend/llvm/counted-loops.d.ts +4 -0
  58. package/dist/backend/llvm/counted-loops.js +37 -0
  59. package/dist/backend/llvm/counted-loops.js.map +1 -1
  60. package/dist/backend/llvm/dense-array-access.d.ts +12 -3
  61. package/dist/backend/llvm/dense-array-access.js +72 -14
  62. package/dist/backend/llvm/dense-array-access.js.map +1 -1
  63. package/dist/backend/llvm/dense-array-access.test.js +59 -3
  64. package/dist/backend/llvm/dense-array-access.test.js.map +1 -1
  65. package/dist/backend/llvm/dense-array-loops.d.ts +51 -0
  66. package/dist/backend/llvm/dense-array-loops.js +162 -0
  67. package/dist/backend/llvm/dense-array-loops.js.map +1 -0
  68. package/dist/backend/llvm/dense-array-loops.test.d.ts +1 -0
  69. package/dist/backend/llvm/dense-array-loops.test.js +128 -0
  70. package/dist/backend/llvm/dense-array-loops.test.js.map +1 -0
  71. package/dist/backend/llvm/dyn-handle-tags.test.d.ts +1 -0
  72. package/dist/backend/llvm/dyn-handle-tags.test.js +38 -0
  73. package/dist/backend/llvm/dyn-handle-tags.test.js.map +1 -0
  74. package/dist/backend/llvm/dyn.d.ts +28 -4
  75. package/dist/backend/llvm/dyn.js +324 -179
  76. package/dist/backend/llvm/dyn.js.map +1 -1
  77. package/dist/backend/llvm/emit-function.d.ts +64 -0
  78. package/dist/backend/llvm/emit-function.js +1190 -0
  79. package/dist/backend/llvm/emit-function.js.map +1 -0
  80. package/dist/backend/llvm/emit-module.d.ts +24 -0
  81. package/dist/backend/llvm/emit-module.js +1535 -0
  82. package/dist/backend/llvm/emit-module.js.map +1 -0
  83. package/dist/backend/llvm/emit-statements.d.ts +58 -0
  84. package/dist/backend/llvm/emit-statements.js +1964 -0
  85. package/dist/backend/llvm/emit-statements.js.map +1 -0
  86. package/dist/backend/llvm/emitter.d.ts +576 -268
  87. package/dist/backend/llvm/emitter.js +801 -4447
  88. package/dist/backend/llvm/emitter.js.map +1 -1
  89. package/dist/backend/llvm/emitter.test.js +57 -3
  90. package/dist/backend/llvm/emitter.test.js.map +1 -1
  91. package/dist/backend/llvm/expr-async.js +73 -46
  92. package/dist/backend/llvm/expr-async.js.map +1 -1
  93. package/dist/backend/llvm/expr-async.test.js +1 -1
  94. package/dist/backend/llvm/expr-bytes.d.ts +2 -0
  95. package/dist/backend/llvm/expr-bytes.js +76 -29
  96. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  97. package/dist/backend/llvm/expr-callbacks.d.ts +6 -2
  98. package/dist/backend/llvm/expr-callbacks.js +48 -11
  99. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  100. package/dist/backend/llvm/expr-calls.d.ts +1 -1
  101. package/dist/backend/llvm/expr-calls.js +71 -53
  102. package/dist/backend/llvm/expr-calls.js.map +1 -1
  103. package/dist/backend/llvm/expr-calls.test.js +1 -1
  104. package/dist/backend/llvm/expr-containers.js +39 -15
  105. package/dist/backend/llvm/expr-containers.js.map +1 -1
  106. package/dist/backend/llvm/expr-control.js +16 -16
  107. package/dist/backend/llvm/expr-control.js.map +1 -1
  108. package/dist/backend/llvm/expr-dispatch.js +1 -0
  109. package/dist/backend/llvm/expr-dispatch.js.map +1 -1
  110. package/dist/backend/llvm/expr-dynamic.d.ts +3 -0
  111. package/dist/backend/llvm/expr-dynamic.js +92 -63
  112. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  113. package/dist/backend/llvm/expr-primitives.d.ts +1 -1
  114. package/dist/backend/llvm/expr-primitives.js +132 -25
  115. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  116. package/dist/backend/llvm/expr-primitives.test.js +2 -2
  117. package/dist/backend/llvm/expr-records.d.ts +1 -1
  118. package/dist/backend/llvm/expr-records.js +32 -11
  119. package/dist/backend/llvm/expr-records.js.map +1 -1
  120. package/dist/backend/llvm/expr-stream-bridges.js +54 -12
  121. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  122. package/dist/backend/llvm/expr-stream-bridges.test.js +2 -2
  123. package/dist/backend/llvm/expr-stream-callbacks.js +22 -1
  124. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  125. package/dist/backend/llvm/int32-abi.test.js +2 -2
  126. package/dist/backend/llvm/integer-clones.test.js +3 -3
  127. package/dist/backend/llvm/integer-remainder.d.ts +34 -13
  128. package/dist/backend/llvm/integer-remainder.js +156 -22
  129. package/dist/backend/llvm/integer-remainder.js.map +1 -1
  130. package/dist/backend/llvm/intern-tables.test.js +1 -1
  131. package/dist/backend/llvm/jsval-encoding.d.ts +21 -0
  132. package/dist/backend/llvm/jsval-encoding.js +20 -0
  133. package/dist/backend/llvm/jsval-encoding.js.map +1 -0
  134. package/dist/backend/llvm/jsval.d.ts +12 -0
  135. package/dist/backend/llvm/jsval.js +488 -0
  136. package/dist/backend/llvm/jsval.js.map +1 -0
  137. package/dist/backend/llvm/lazy-captures.d.ts +12 -2
  138. package/dist/backend/llvm/lazy-captures.js +39 -17
  139. package/dist/backend/llvm/lazy-captures.js.map +1 -1
  140. package/dist/backend/llvm/lib-abi.js +1 -1
  141. package/dist/backend/llvm/lib-abi.js.map +1 -1
  142. package/dist/backend/llvm/lib-connect.js +1 -1
  143. package/dist/backend/llvm/lib-connect.js.map +1 -1
  144. package/dist/backend/llvm/lib-datagram.js +14 -8
  145. package/dist/backend/llvm/lib-datagram.js.map +1 -1
  146. package/dist/backend/llvm/lib-dispatch.js +217 -24
  147. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  148. package/dist/backend/llvm/lib-filesystem.js +102 -13
  149. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  150. package/dist/backend/llvm/lib-http2.js +3 -3
  151. package/dist/backend/llvm/lib-http2.js.map +1 -1
  152. package/dist/backend/llvm/lib-lookup.js +2 -2
  153. package/dist/backend/llvm/lib-lookup.js.map +1 -1
  154. package/dist/backend/llvm/lib-network.js +77 -25
  155. package/dist/backend/llvm/lib-network.js.map +1 -1
  156. package/dist/backend/llvm/lib-process.js +100 -50
  157. package/dist/backend/llvm/lib-process.js.map +1 -1
  158. package/dist/backend/llvm/lib-shared.d.ts +12 -0
  159. package/dist/backend/llvm/lib-shared.js +229 -5
  160. package/dist/backend/llvm/lib-shared.js.map +1 -1
  161. package/dist/backend/llvm/lib-stream.js +46 -16
  162. package/dist/backend/llvm/lib-stream.js.map +1 -1
  163. package/dist/backend/llvm/lib-test.js +57 -8
  164. package/dist/backend/llvm/lib-test.js.map +1 -1
  165. package/dist/backend/llvm/lib-tls.js +4 -9
  166. package/dist/backend/llvm/lib-tls.js.map +1 -1
  167. package/dist/backend/llvm/local-array-reads.js +2 -2
  168. package/dist/backend/llvm/local-array-reads.test.js +1 -1
  169. package/dist/backend/llvm/local-extents.d.ts +19 -0
  170. package/dist/backend/llvm/local-extents.js +169 -0
  171. package/dist/backend/llvm/local-extents.js.map +1 -0
  172. package/dist/backend/llvm/local-extents.test.d.ts +1 -0
  173. package/dist/backend/llvm/local-extents.test.js +92 -0
  174. package/dist/backend/llvm/local-extents.test.js.map +1 -0
  175. package/dist/backend/llvm/local-union-storage.js +7 -7
  176. package/dist/backend/llvm/local-union-storage.js.map +1 -1
  177. package/dist/backend/llvm/local-union-storage.test.js +2 -2
  178. package/dist/backend/llvm/map-entry-fusion.test.js +1 -1
  179. package/dist/backend/llvm/map-number-lookup.js +2 -2
  180. package/dist/backend/llvm/map-number-lookup.test.js +2 -2
  181. package/dist/backend/llvm/map-read-lifetimes.test.js +2 -2
  182. package/dist/backend/llvm/narrow-guards.d.ts +38 -0
  183. package/dist/backend/llvm/narrow-guards.js +151 -0
  184. package/dist/backend/llvm/narrow-guards.js.map +1 -0
  185. package/dist/backend/llvm/nullable-unions.d.ts +70 -9
  186. package/dist/backend/llvm/nullable-unions.js +105 -6
  187. package/dist/backend/llvm/nullable-unions.js.map +1 -1
  188. package/dist/backend/llvm/nullable-unions.test.d.ts +1 -0
  189. package/dist/backend/llvm/nullable-unions.test.js +65 -0
  190. package/dist/backend/llvm/nullable-unions.test.js.map +1 -0
  191. package/dist/backend/llvm/publish.d.ts +4 -0
  192. package/dist/backend/llvm/publish.js +14 -2
  193. package/dist/backend/llvm/publish.js.map +1 -1
  194. package/dist/backend/llvm/publish.test.js +1 -1
  195. package/dist/backend/llvm/receivers.d.ts +31 -0
  196. package/dist/backend/llvm/receivers.js +395 -0
  197. package/dist/backend/llvm/receivers.js.map +1 -0
  198. package/dist/backend/llvm/record-results.d.ts +13 -2
  199. package/dist/backend/llvm/record-results.js +66 -6
  200. package/dist/backend/llvm/record-results.js.map +1 -1
  201. package/dist/backend/llvm/reference-effects.js +9 -0
  202. package/dist/backend/llvm/reference-effects.js.map +1 -1
  203. package/dist/backend/llvm/reference-writes.d.ts +4 -0
  204. package/dist/backend/llvm/reference-writes.js +143 -6
  205. package/dist/backend/llvm/reference-writes.js.map +1 -1
  206. package/dist/backend/llvm/reference-writes.test.d.ts +1 -0
  207. package/dist/backend/llvm/reference-writes.test.js +88 -0
  208. package/dist/backend/llvm/reference-writes.test.js.map +1 -0
  209. package/dist/backend/llvm/regex-matchers.d.ts +8 -0
  210. package/dist/backend/llvm/regex-matchers.js +33 -0
  211. package/dist/backend/llvm/regex-matchers.js.map +1 -1
  212. package/dist/backend/llvm/regex-matchers.test.js +23 -1
  213. package/dist/backend/llvm/regex-matchers.test.js.map +1 -1
  214. package/dist/backend/llvm/regions.d.ts +1 -1
  215. package/dist/backend/llvm/regions.js +9 -6
  216. package/dist/backend/llvm/regions.js.map +1 -1
  217. package/dist/backend/llvm/regions.test.js +1 -1
  218. package/dist/backend/llvm/shapes.d.ts +69 -43
  219. package/dist/backend/llvm/shapes.js +285 -21
  220. package/dist/backend/llvm/shapes.js.map +1 -1
  221. package/dist/backend/llvm/shapes.test.js +37 -3
  222. package/dist/backend/llvm/shapes.test.js.map +1 -1
  223. package/dist/backend/llvm/speculative-integers.d.ts +74 -0
  224. package/dist/backend/llvm/speculative-integers.js +571 -0
  225. package/dist/backend/llvm/speculative-integers.js.map +1 -0
  226. package/dist/backend/llvm/speculative-integers.test.d.ts +1 -0
  227. package/dist/backend/llvm/speculative-integers.test.js +148 -0
  228. package/dist/backend/llvm/speculative-integers.test.js.map +1 -0
  229. package/dist/backend/llvm/split-loops.js +2 -2
  230. package/dist/backend/llvm/split-loops.js.map +1 -1
  231. package/dist/backend/llvm/stack-objects.d.ts +26 -6
  232. package/dist/backend/llvm/stack-objects.js +133 -10
  233. package/dist/backend/llvm/stack-objects.js.map +1 -1
  234. package/dist/backend/llvm/stack-objects.test.js +55 -1
  235. package/dist/backend/llvm/stack-objects.test.js.map +1 -1
  236. package/dist/backend/llvm/stack-unions.test.js +1 -1
  237. package/dist/backend/llvm/string-construction.test.js +1 -1
  238. package/dist/backend/llvm/string-lifetimes.test.js +15 -14
  239. package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
  240. package/dist/backend/llvm/string-slices.d.ts +25 -0
  241. package/dist/backend/llvm/string-slices.js +207 -1
  242. package/dist/backend/llvm/string-slices.js.map +1 -1
  243. package/dist/backend/llvm/string-slices.test.js +139 -2
  244. package/dist/backend/llvm/string-slices.test.js.map +1 -1
  245. package/dist/backend/llvm/switch-dispatch.test.js +2 -2
  246. package/dist/backend/llvm/thread-slots.d.ts +5 -0
  247. package/dist/backend/llvm/thread-slots.js +142 -0
  248. package/dist/backend/llvm/thread-slots.js.map +1 -0
  249. package/dist/backend/llvm/thread-slots.test.d.ts +1 -0
  250. package/dist/backend/llvm/thread-slots.test.js +110 -0
  251. package/dist/backend/llvm/thread-slots.test.js.map +1 -0
  252. package/dist/backend/llvm/union-repr.d.ts +7 -7
  253. package/dist/backend/llvm/union-repr.js +18 -2
  254. package/dist/backend/llvm/union-repr.js.map +1 -1
  255. package/dist/backend/llvm/union-retype.test.js +17 -3
  256. package/dist/backend/llvm/union-retype.test.js.map +1 -1
  257. package/dist/backend/llvm/walkers.d.ts +2 -2
  258. package/dist/backend/llvm/walkers.js +51 -26
  259. package/dist/backend/llvm/walkers.js.map +1 -1
  260. package/dist/backend/llvm/wasm-modules.d.ts +16 -0
  261. package/dist/backend/llvm/wasm-modules.js +66 -0
  262. package/dist/backend/llvm/wasm-modules.js.map +1 -0
  263. package/dist/backend/llvm/wrapping-sums.d.ts +7 -0
  264. package/dist/backend/llvm/wrapping-sums.js +11 -3
  265. package/dist/backend/llvm/wrapping-sums.js.map +1 -1
  266. package/dist/backend/mangle.d.ts +7 -0
  267. package/dist/backend/mangle.js +11 -0
  268. package/dist/backend/mangle.js.map +1 -1
  269. package/dist/backend/may-throw.d.ts +3 -0
  270. package/dist/backend/may-throw.js +6 -2
  271. package/dist/backend/may-throw.js.map +1 -1
  272. package/dist/backend/may-throw.test.js +1 -1
  273. package/dist/backend/native/contracts.d.ts +37 -0
  274. package/dist/backend/native/executable.js +192 -134
  275. package/dist/backend/native/executable.js.map +1 -1
  276. package/dist/backend/native/library.js +1 -0
  277. package/dist/backend/native/library.js.map +1 -1
  278. package/dist/backend/native/runtime-inputs.d.ts +1 -1
  279. package/dist/backend/native/runtime-inputs.js +2 -0
  280. package/dist/backend/native/runtime-inputs.js.map +1 -1
  281. package/dist/backend/native-link-info-core.d.ts +30 -0
  282. package/dist/backend/native-link-info-core.js.map +1 -1
  283. package/dist/backend/publication.test.js +1 -1
  284. package/dist/backend/runtime-pack-core.d.ts +9 -1
  285. package/dist/backend/runtime-pack-core.js +10 -1
  286. package/dist/backend/runtime-pack-core.js.map +1 -1
  287. package/dist/backend/runtime-pack-native.js +1 -1
  288. package/dist/backend/runtime-pack-native.js.map +1 -1
  289. package/dist/backend/runtime-pack-native.test.d.ts +1 -0
  290. package/dist/backend/runtime-pack-native.test.js +31 -0
  291. package/dist/backend/runtime-pack-native.test.js.map +1 -0
  292. package/dist/backend/runtime-pack-targets.test.js +5 -0
  293. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  294. package/dist/backend/runtime-pack.d.ts +7 -3
  295. package/dist/backend/runtime-pack.js +12 -6
  296. package/dist/backend/runtime-pack.js.map +1 -1
  297. package/dist/backend/runtime-pack.test.js +20 -6
  298. package/dist/backend/runtime-pack.test.js.map +1 -1
  299. package/dist/backend/stack-observations.d.ts +22 -0
  300. package/dist/backend/stack-observations.js +382 -0
  301. package/dist/backend/stack-observations.js.map +1 -0
  302. package/dist/backend/stack-observations.test.d.ts +1 -0
  303. package/dist/backend/stack-observations.test.js +233 -0
  304. package/dist/backend/stack-observations.test.js.map +1 -0
  305. package/dist/backend/target-diagnostics.js +8 -0
  306. package/dist/backend/target-diagnostics.js.map +1 -1
  307. package/dist/backend/target-diagnostics.test.js +1 -1
  308. package/dist/backend/warm-cache.js +5 -0
  309. package/dist/backend/warm-cache.js.map +1 -1
  310. package/dist/backend/young-nursery.d.ts +7 -0
  311. package/dist/backend/young-nursery.js +10 -0
  312. package/dist/backend/young-nursery.js.map +1 -0
  313. package/dist/cli/command.js +44 -4
  314. package/dist/cli/command.js.map +1 -1
  315. package/dist/cli/usage.d.ts +11 -1
  316. package/dist/cli/usage.js +20 -1
  317. package/dist/cli/usage.js.map +1 -1
  318. package/dist/compat/fetch-profile.js +10 -1
  319. package/dist/compat/fetch-profile.js.map +1 -1
  320. package/dist/compile-types.d.ts +13 -0
  321. package/dist/contracts/check.js +25 -6
  322. package/dist/contracts/check.js.map +1 -1
  323. package/dist/contracts/int32-elements.d.ts +115 -0
  324. package/dist/contracts/int32-elements.js +1179 -0
  325. package/dist/contracts/int32-elements.js.map +1 -0
  326. package/dist/coverage/report.d.ts +16 -0
  327. package/dist/coverage/report.js +182 -1
  328. package/dist/coverage/report.js.map +1 -1
  329. package/dist/coverage/surface-manifest.js +19 -6
  330. package/dist/coverage/surface-manifest.js.map +1 -1
  331. package/dist/coverage/verdict-cache.d.ts +2 -0
  332. package/dist/coverage/verdict-cache.js +12 -0
  333. package/dist/coverage/verdict-cache.js.map +1 -1
  334. package/dist/coverage/verdict-cache.test.js +2 -1
  335. package/dist/coverage/verdict-cache.test.js.map +1 -1
  336. package/dist/diagnostics/diagnostic.d.ts +11 -7
  337. package/dist/diagnostics/diagnostic.js +35 -23
  338. package/dist/diagnostics/diagnostic.js.map +1 -1
  339. package/dist/diagnostics/envelope.d.ts +39 -2
  340. package/dist/diagnostics/envelope.js.map +1 -1
  341. package/dist/diagnostics/render.d.ts +7 -0
  342. package/dist/diagnostics/render.js +50 -13
  343. package/dist/diagnostics/render.js.map +1 -1
  344. package/dist/diagnostics/render.test.d.ts +1 -0
  345. package/dist/diagnostics/render.test.js +49 -0
  346. package/dist/diagnostics/render.test.js.map +1 -0
  347. package/dist/executable/executable-cache.d.ts +17 -0
  348. package/dist/executable/executable-cache.js +13 -1
  349. package/dist/executable/executable-cache.js.map +1 -1
  350. package/dist/executable/executable-cache.test.js +7 -1
  351. package/dist/executable/executable-cache.test.js.map +1 -1
  352. package/dist/executable/prepare.js +2 -1
  353. package/dist/executable/prepare.js.map +1 -1
  354. package/dist/frontend/analysis.js +6 -1
  355. package/dist/frontend/analysis.js.map +1 -1
  356. package/dist/frontend/builtin-modules.d.ts +16 -2
  357. package/dist/frontend/builtin-modules.js +40 -7
  358. package/dist/frontend/builtin-modules.js.map +1 -1
  359. package/dist/frontend/cjs-syntax.js +52 -51
  360. package/dist/frontend/cjs-syntax.js.map +1 -1
  361. package/dist/frontend/contract-types.d.ts +3 -0
  362. package/dist/frontend/contract-types.js +36 -7
  363. package/dist/frontend/contract-types.js.map +1 -1
  364. package/dist/frontend/experimental-import.d.ts +5 -1
  365. package/dist/frontend/experimental-import.js +26 -7
  366. package/dist/frontend/experimental-import.js.map +1 -1
  367. package/dist/frontend/fork-target.js +20 -22
  368. package/dist/frontend/fork-target.js.map +1 -1
  369. package/dist/frontend/fork-target.test.js +2 -1
  370. package/dist/frontend/fork-target.test.js.map +1 -1
  371. package/dist/frontend/function-completion.js +6 -6
  372. package/dist/frontend/function-completion.js.map +1 -1
  373. package/dist/frontend/helper-tokens.js +15 -3
  374. package/dist/frontend/helper-tokens.js.map +1 -1
  375. package/dist/frontend/helper-tokens.test.js +7 -1
  376. package/dist/frontend/helper-tokens.test.js.map +1 -1
  377. package/dist/frontend/inferred-js-diagnostics.js +14 -17
  378. package/dist/frontend/inferred-js-diagnostics.js.map +1 -1
  379. package/dist/frontend/input-tracker.d.ts +3 -0
  380. package/dist/frontend/input-tracker.js +32 -3
  381. package/dist/frontend/input-tracker.js.map +1 -1
  382. package/dist/frontend/lib-contract.js +36 -32
  383. package/dist/frontend/lib-contract.js.map +1 -1
  384. package/dist/frontend/lib-exports.js +3 -3
  385. package/dist/frontend/lib-exports.js.map +1 -1
  386. package/dist/frontend/lowering/array-values.d.ts +8 -3
  387. package/dist/frontend/lowering/array-values.js +60 -11
  388. package/dist/frontend/lowering/array-values.js.map +1 -1
  389. package/dist/frontend/lowering/assert-instances.js +4 -4
  390. package/dist/frontend/lowering/assert-instances.js.map +1 -1
  391. package/dist/frontend/lowering/assertion-identity.d.ts +12 -0
  392. package/dist/frontend/lowering/assertion-identity.js +70 -0
  393. package/dist/frontend/lowering/assertion-identity.js.map +1 -0
  394. package/dist/frontend/lowering/assertion-members.d.ts +28 -0
  395. package/dist/frontend/lowering/assertion-members.js +185 -0
  396. package/dist/frontend/lowering/assertion-members.js.map +1 -0
  397. package/dist/frontend/lowering/binding-analysis.js +27 -20
  398. package/dist/frontend/lowering/binding-analysis.js.map +1 -1
  399. package/dist/frontend/lowering/builtin-calls.js +72 -4
  400. package/dist/frontend/lowering/builtin-calls.js.map +1 -1
  401. package/dist/frontend/lowering/builtin-function-fences.d.ts +14 -0
  402. package/dist/frontend/lowering/builtin-function-fences.js +42 -0
  403. package/dist/frontend/lowering/builtin-function-fences.js.map +1 -0
  404. package/dist/frontend/lowering/builtins/arguments.js +1 -1
  405. package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
  406. package/dist/frontend/lowering/builtins/async-context.js +53 -52
  407. package/dist/frontend/lowering/builtins/async-context.js.map +1 -1
  408. package/dist/frontend/lowering/builtins/atomics.js +6 -6
  409. package/dist/frontend/lowering/builtins/atomics.js.map +1 -1
  410. package/dist/frontend/lowering/builtins/blob.js +8 -6
  411. package/dist/frontend/lowering/builtins/blob.js.map +1 -1
  412. package/dist/frontend/lowering/builtins/builtin-class-dyn.d.ts +23 -0
  413. package/dist/frontend/lowering/builtins/builtin-class-dyn.js +156 -0
  414. package/dist/frontend/lowering/builtins/builtin-class-dyn.js.map +1 -0
  415. package/dist/frontend/lowering/builtins/callable-aliases.js +45 -6
  416. package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -1
  417. package/dist/frontend/lowering/builtins/child-process-async.js +7 -7
  418. package/dist/frontend/lowering/builtins/child-process-async.js.map +1 -1
  419. package/dist/frontend/lowering/builtins/child-process-methods.d.ts +6 -4
  420. package/dist/frontend/lowering/builtins/child-process-methods.js +310 -57
  421. package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
  422. package/dist/frontend/lowering/builtins/child-process-sync.js +16 -10
  423. package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -1
  424. package/dist/frontend/lowering/builtins/child-process.d.ts +6 -4
  425. package/dist/frontend/lowering/builtins/child-process.js +85 -61
  426. package/dist/frontend/lowering/builtins/child-process.js.map +1 -1
  427. package/dist/frontend/lowering/builtins/class-values.d.ts +60 -0
  428. package/dist/frontend/lowering/builtins/class-values.js +226 -0
  429. package/dist/frontend/lowering/builtins/class-values.js.map +1 -0
  430. package/dist/frontend/lowering/builtins/compression.d.ts +18 -0
  431. package/dist/frontend/lowering/builtins/compression.js +230 -52
  432. package/dist/frontend/lowering/builtins/compression.js.map +1 -1
  433. package/dist/frontend/lowering/builtins/constants.d.ts +9 -1
  434. package/dist/frontend/lowering/builtins/constants.js +28 -7
  435. package/dist/frontend/lowering/builtins/constants.js.map +1 -1
  436. package/dist/frontend/lowering/builtins/crypto.d.ts +19 -0
  437. package/dist/frontend/lowering/builtins/crypto.js +223 -38
  438. package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
  439. package/dist/frontend/lowering/builtins/dates.d.ts +7 -1
  440. package/dist/frontend/lowering/builtins/dates.js +92 -16
  441. package/dist/frontend/lowering/builtins/dates.js.map +1 -1
  442. package/dist/frontend/lowering/builtins/disposable-stack.d.ts +18 -0
  443. package/dist/frontend/lowering/builtins/disposable-stack.js +137 -0
  444. package/dist/frontend/lowering/builtins/disposable-stack.js.map +1 -0
  445. package/dist/frontend/lowering/builtins/environment.js +3 -3
  446. package/dist/frontend/lowering/builtins/environment.js.map +1 -1
  447. package/dist/frontend/lowering/builtins/errors.d.ts +14 -10
  448. package/dist/frontend/lowering/builtins/errors.js +174 -6
  449. package/dist/frontend/lowering/builtins/errors.js.map +1 -1
  450. package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +4 -0
  451. package/dist/frontend/lowering/builtins/filesystem-calls.js +136 -113
  452. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
  453. package/dist/frontend/lowering/builtins/filesystem.d.ts +8 -0
  454. package/dist/frontend/lowering/builtins/filesystem.js +213 -76
  455. package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
  456. package/dist/frontend/lowering/builtins/fs-glob.js +3 -3
  457. package/dist/frontend/lowering/builtins/fs-glob.js.map +1 -1
  458. package/dist/frontend/lowering/builtins/fs-streams.js +10 -11
  459. package/dist/frontend/lowering/builtins/fs-streams.js.map +1 -1
  460. package/dist/frontend/lowering/builtins/hash-stream.d.ts +12 -0
  461. package/dist/frontend/lowering/builtins/hash-stream.js +80 -0
  462. package/dist/frontend/lowering/builtins/hash-stream.js.map +1 -0
  463. package/dist/frontend/lowering/builtins/ipc.js +45 -8
  464. package/dist/frontend/lowering/builtins/ipc.js.map +1 -1
  465. package/dist/frontend/lowering/builtins/json.js +232 -24
  466. package/dist/frontend/lowering/builtins/json.js.map +1 -1
  467. package/dist/frontend/lowering/builtins/key-object.js +4 -4
  468. package/dist/frontend/lowering/builtins/key-object.js.map +1 -1
  469. package/dist/frontend/lowering/builtins/module-bindings.d.ts +8 -0
  470. package/dist/frontend/lowering/builtins/module-bindings.js +71 -22
  471. package/dist/frontend/lowering/builtins/module-bindings.js.map +1 -1
  472. package/dist/frontend/lowering/builtins/module-calls.js +67 -46
  473. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  474. package/dist/frontend/lowering/builtins/module-resolution.d.ts +4 -3
  475. package/dist/frontend/lowering/builtins/module-resolution.js +24 -23
  476. package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -1
  477. package/dist/frontend/lowering/builtins/navigator.d.ts +13 -0
  478. package/dist/frontend/lowering/builtins/navigator.js +40 -0
  479. package/dist/frontend/lowering/builtins/navigator.js.map +1 -0
  480. package/dist/frontend/lowering/builtins/net-address.d.ts +19 -0
  481. package/dist/frontend/lowering/builtins/net-address.js +156 -0
  482. package/dist/frontend/lowering/builtins/net-address.js.map +1 -0
  483. package/dist/frontend/lowering/builtins/numbers.js +25 -9
  484. package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
  485. package/dist/frontend/lowering/builtins/operating-system.d.ts +4 -0
  486. package/dist/frontend/lowering/builtins/operating-system.js +25 -12
  487. package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
  488. package/dist/frontend/lowering/builtins/performance.d.ts +12 -0
  489. package/dist/frontend/lowering/builtins/performance.js +259 -8
  490. package/dist/frontend/lowering/builtins/performance.js.map +1 -1
  491. package/dist/frontend/lowering/builtins/process.d.ts +32 -1
  492. package/dist/frontend/lowering/builtins/process.js +468 -99
  493. package/dist/frontend/lowering/builtins/process.js.map +1 -1
  494. package/dist/frontend/lowering/builtins/promises.d.ts +5 -1
  495. package/dist/frontend/lowering/builtins/promises.js +326 -43
  496. package/dist/frontend/lowering/builtins/promises.js.map +1 -1
  497. package/dist/frontend/lowering/builtins/promisify-callback.d.ts +37 -0
  498. package/dist/frontend/lowering/builtins/promisify-callback.js +320 -0
  499. package/dist/frontend/lowering/builtins/promisify-callback.js.map +1 -0
  500. package/dist/frontend/lowering/builtins/properties.js +37 -1
  501. package/dist/frontend/lowering/builtins/properties.js.map +1 -1
  502. package/dist/frontend/lowering/builtins/querystring.js +14 -14
  503. package/dist/frontend/lowering/builtins/querystring.js.map +1 -1
  504. package/dist/frontend/lowering/builtins/readline.d.ts +55 -13
  505. package/dist/frontend/lowering/builtins/readline.js +931 -69
  506. package/dist/frontend/lowering/builtins/readline.js.map +1 -1
  507. package/dist/frontend/lowering/builtins/receiver-types.js +3 -5
  508. package/dist/frontend/lowering/builtins/receiver-types.js.map +1 -1
  509. package/dist/frontend/lowering/builtins/reflection.js +16 -14
  510. package/dist/frontend/lowering/builtins/reflection.js.map +1 -1
  511. package/dist/frontend/lowering/builtins/runtime-constructor.d.ts +26 -0
  512. package/dist/frontend/lowering/builtins/runtime-constructor.js +165 -0
  513. package/dist/frontend/lowering/builtins/runtime-constructor.js.map +1 -0
  514. package/dist/frontend/lowering/builtins/strings.js +101 -12
  515. package/dist/frontend/lowering/builtins/strings.js.map +1 -1
  516. package/dist/frontend/lowering/builtins/text-codecs.js +41 -38
  517. package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -1
  518. package/dist/frontend/lowering/builtins/timers.js +75 -30
  519. package/dist/frontend/lowering/builtins/timers.js.map +1 -1
  520. package/dist/frontend/lowering/builtins/url.d.ts +3 -0
  521. package/dist/frontend/lowering/builtins/url.js +120 -17
  522. package/dist/frontend/lowering/builtins/url.js.map +1 -1
  523. package/dist/frontend/lowering/builtins/util-types.js +20 -4
  524. package/dist/frontend/lowering/builtins/util-types.js.map +1 -1
  525. package/dist/frontend/lowering/builtins/v8.d.ts +11 -0
  526. package/dist/frontend/lowering/builtins/v8.js +105 -0
  527. package/dist/frontend/lowering/builtins/v8.js.map +1 -0
  528. package/dist/frontend/lowering/builtins/webassembly.d.ts +33 -0
  529. package/dist/frontend/lowering/builtins/webassembly.js +388 -0
  530. package/dist/frontend/lowering/builtins/webassembly.js.map +1 -0
  531. package/dist/frontend/lowering/builtins/webcrypto.d.ts +20 -0
  532. package/dist/frontend/lowering/builtins/webcrypto.js +112 -0
  533. package/dist/frontend/lowering/builtins/webcrypto.js.map +1 -0
  534. package/dist/frontend/lowering/builtins/workers.d.ts +16 -0
  535. package/dist/frontend/lowering/builtins/workers.js +246 -3
  536. package/dist/frontend/lowering/builtins/workers.js.map +1 -1
  537. package/dist/frontend/lowering/call-arguments.js +69 -14
  538. package/dist/frontend/lowering/call-arguments.js.map +1 -1
  539. package/dist/frontend/lowering/call-signatures.d.ts +19 -1
  540. package/dist/frontend/lowering/call-signatures.js +254 -47
  541. package/dist/frontend/lowering/call-signatures.js.map +1 -1
  542. package/dist/frontend/lowering/checked-promise-all.d.ts +3 -0
  543. package/dist/frontend/lowering/checked-promise-all.js +1 -1
  544. package/dist/frontend/lowering/checked-promise-all.js.map +1 -1
  545. package/dist/frontend/lowering/cjs-exports-object.d.ts +53 -0
  546. package/dist/frontend/lowering/cjs-exports-object.js +528 -0
  547. package/dist/frontend/lowering/cjs-exports-object.js.map +1 -0
  548. package/dist/frontend/lowering/cjs-inline-require.d.ts +86 -0
  549. package/dist/frontend/lowering/cjs-inline-require.js +314 -0
  550. package/dist/frontend/lowering/cjs-inline-require.js.map +1 -0
  551. package/dist/frontend/lowering/cjs-tsc-interop.d.ts +28 -0
  552. package/dist/frontend/lowering/cjs-tsc-interop.js +208 -0
  553. package/dist/frontend/lowering/cjs-tsc-interop.js.map +1 -0
  554. package/dist/frontend/lowering/class-attributes.d.ts +19 -0
  555. package/dist/frontend/lowering/class-attributes.js +378 -0
  556. package/dist/frontend/lowering/class-attributes.js.map +1 -0
  557. package/dist/frontend/lowering/class-callbacks.d.ts +3 -1
  558. package/dist/frontend/lowering/class-callbacks.js +21 -10
  559. package/dist/frontend/lowering/class-callbacks.js.map +1 -1
  560. package/dist/frontend/lowering/class-construction.js +49 -4
  561. package/dist/frontend/lowering/class-construction.js.map +1 -1
  562. package/dist/frontend/lowering/class-descriptors.d.ts +2 -0
  563. package/dist/frontend/lowering/class-descriptors.js +8 -8
  564. package/dist/frontend/lowering/class-descriptors.js.map +1 -1
  565. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +64 -0
  566. package/dist/frontend/lowering/class-dynamic-dispatch.js +1115 -89
  567. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  568. package/dist/frontend/lowering/class-instance-constructor.js +1 -1
  569. package/dist/frontend/lowering/class-instance-constructor.js.map +1 -1
  570. package/dist/frontend/lowering/class-iterables.d.ts +11 -0
  571. package/dist/frontend/lowering/class-iterables.js +31 -0
  572. package/dist/frontend/lowering/class-iterables.js.map +1 -0
  573. package/dist/frontend/lowering/class-method-mutations.js +73 -35
  574. package/dist/frontend/lowering/class-method-mutations.js.map +1 -1
  575. package/dist/frontend/lowering/class-method-values.js +56 -10
  576. package/dist/frontend/lowering/class-method-values.js.map +1 -1
  577. package/dist/frontend/lowering/class-protocol-dispatch.js +24 -22
  578. package/dist/frontend/lowering/class-protocol-dispatch.js.map +1 -1
  579. package/dist/frontend/lowering/class-protocols.d.ts +55 -0
  580. package/dist/frontend/lowering/class-protocols.js +738 -22
  581. package/dist/frontend/lowering/class-protocols.js.map +1 -1
  582. package/dist/frontend/lowering/class-prototypes.d.ts +6 -0
  583. package/dist/frontend/lowering/class-prototypes.js +80 -18
  584. package/dist/frontend/lowering/class-prototypes.js.map +1 -1
  585. package/dist/frontend/lowering/class-runtime-statics.js +1 -1
  586. package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
  587. package/dist/frontend/lowering/class-static-data.js +2 -2
  588. package/dist/frontend/lowering/class-static-data.js.map +1 -1
  589. package/dist/frontend/lowering/class-to-primitive.d.ts +25 -0
  590. package/dist/frontend/lowering/class-to-primitive.js +261 -0
  591. package/dist/frontend/lowering/class-to-primitive.js.map +1 -0
  592. package/dist/frontend/lowering/class-unions.d.ts +25 -0
  593. package/dist/frontend/lowering/class-unions.js +102 -1
  594. package/dist/frontend/lowering/class-unions.js.map +1 -1
  595. package/dist/frontend/lowering/code-generation.d.ts +14 -0
  596. package/dist/frontend/lowering/code-generation.js +127 -0
  597. package/dist/frontend/lowering/code-generation.js.map +1 -0
  598. package/dist/frontend/lowering/coercions/function-adapters.d.ts +16 -2
  599. package/dist/frontend/lowering/coercions/function-adapters.js +145 -3
  600. package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
  601. package/dist/frontend/lowering/coercions/structural-plans.js +25 -3
  602. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
  603. package/dist/frontend/lowering/coercions/structural.js +35 -3
  604. package/dist/frontend/lowering/coercions/structural.js.map +1 -1
  605. package/dist/frontend/lowering/coercions/unions.d.ts +15 -0
  606. package/dist/frontend/lowering/coercions/unions.js +57 -1
  607. package/dist/frontend/lowering/coercions/unions.js.map +1 -1
  608. package/dist/frontend/lowering/collection-ingestion.js +2 -2
  609. package/dist/frontend/lowering/collection-ingestion.js.map +1 -1
  610. package/dist/frontend/lowering/collection-narrowing.js +2 -4
  611. package/dist/frontend/lowering/collection-narrowing.js.map +1 -1
  612. package/dist/frontend/lowering/construction-escapes.js +8 -8
  613. package/dist/frontend/lowering/construction-escapes.js.map +1 -1
  614. package/dist/frontend/lowering/construction-escapes.test.js +4 -4
  615. package/dist/frontend/lowering/construction-escapes.test.js.map +1 -1
  616. package/dist/frontend/lowering/constructor-returns.d.ts +61 -0
  617. package/dist/frontend/lowering/constructor-returns.js +477 -0
  618. package/dist/frontend/lowering/constructor-returns.js.map +1 -0
  619. package/dist/frontend/lowering/containers/array-callback-call.js +1 -1
  620. package/dist/frontend/lowering/containers/array-callback-call.js.map +1 -1
  621. package/dist/frontend/lowering/containers/array-callbacks.d.ts +9 -0
  622. package/dist/frontend/lowering/containers/array-callbacks.js +266 -100
  623. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  624. package/dist/frontend/lowering/containers/array-concat.js +1 -1
  625. package/dist/frontend/lowering/containers/array-concat.js.map +1 -1
  626. package/dist/frontend/lowering/containers/array-construction.d.ts +0 -1
  627. package/dist/frontend/lowering/containers/array-construction.js +51 -13
  628. package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
  629. package/dist/frontend/lowering/containers/array-from-async.d.ts +19 -0
  630. package/dist/frontend/lowering/containers/array-from-async.js +427 -0
  631. package/dist/frontend/lowering/containers/array-from-async.js.map +1 -0
  632. package/dist/frontend/lowering/containers/array-methods.js +89 -77
  633. package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
  634. package/dist/frontend/lowering/containers/array-pipelines.js +1 -0
  635. package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -1
  636. package/dist/frontend/lowering/containers/bytes.js +161 -101
  637. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  638. package/dist/frontend/lowering/containers/callback-arguments.d.ts +9 -1
  639. package/dist/frontend/lowering/containers/callback-arguments.js +55 -5
  640. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
  641. package/dist/frontend/lowering/containers/collection-grouping.d.ts +7 -8
  642. package/dist/frontend/lowering/containers/collection-grouping.js +219 -27
  643. package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -1
  644. package/dist/frontend/lowering/containers/collection-methods.js +81 -48
  645. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
  646. package/dist/frontend/lowering/containers/dynamic-receivers.js +1 -1
  647. package/dist/frontend/lowering/containers/dynamic-receivers.js.map +1 -1
  648. package/dist/frontend/lowering/containers/exec-result-uses.js +2 -2
  649. package/dist/frontend/lowering/containers/exec-result-uses.js.map +1 -1
  650. package/dist/frontend/lowering/containers/for-of.d.ts +6 -0
  651. package/dist/frontend/lowering/containers/for-of.js +19 -19
  652. package/dist/frontend/lowering/containers/for-of.js.map +1 -1
  653. package/dist/frontend/lowering/containers/indexed-objects.js +142 -57
  654. package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
  655. package/dist/frontend/lowering/containers/iterator-helpers.d.ts +53 -4
  656. package/dist/frontend/lowering/containers/iterator-helpers.js +1581 -462
  657. package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -1
  658. package/dist/frontend/lowering/containers/match-row-uses.d.ts +17 -0
  659. package/dist/frontend/lowering/containers/match-row-uses.js +264 -0
  660. package/dist/frontend/lowering/containers/match-row-uses.js.map +1 -0
  661. package/dist/frontend/lowering/containers/string-and-regexp.d.ts +14 -0
  662. package/dist/frontend/lowering/containers/string-and-regexp.js +419 -30
  663. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  664. package/dist/frontend/lowering/containers/string-replacement.js +1 -1
  665. package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
  666. package/dist/frontend/lowering/cycle-initialization.d.ts +4 -0
  667. package/dist/frontend/lowering/cycle-initialization.js +39 -0
  668. package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
  669. package/dist/frontend/lowering/deferred-module-initializers.js +47 -43
  670. package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
  671. package/dist/frontend/lowering/devirtualize.d.ts +1 -1
  672. package/dist/frontend/lowering/devirtualize.js +27 -7
  673. package/dist/frontend/lowering/devirtualize.js.map +1 -1
  674. package/dist/frontend/lowering/divergences.d.ts +0 -5
  675. package/dist/frontend/lowering/divergences.js +238 -128
  676. package/dist/frontend/lowering/divergences.js.map +1 -1
  677. package/dist/frontend/lowering/dyn-streams.d.ts +25 -0
  678. package/dist/frontend/lowering/dyn-streams.js +257 -0
  679. package/dist/frontend/lowering/dyn-streams.js.map +1 -0
  680. package/dist/frontend/lowering/error-methods.js +4 -1
  681. package/dist/frontend/lowering/error-methods.js.map +1 -1
  682. package/dist/frontend/lowering/error-name-order.d.ts +19 -0
  683. package/dist/frontend/lowering/error-name-order.js +93 -0
  684. package/dist/frontend/lowering/error-name-order.js.map +1 -0
  685. package/dist/frontend/lowering/expressions/array-literals.d.ts +21 -0
  686. package/dist/frontend/lowering/expressions/array-literals.js +703 -0
  687. package/dist/frontend/lowering/expressions/array-literals.js.map +1 -0
  688. package/dist/frontend/lowering/expressions/binary.d.ts +35 -0
  689. package/dist/frontend/lowering/expressions/binary.js +2483 -0
  690. package/dist/frontend/lowering/expressions/binary.js.map +1 -0
  691. package/dist/frontend/lowering/expressions/element-access.d.ts +31 -0
  692. package/dist/frontend/lowering/expressions/element-access.js +1797 -0
  693. package/dist/frontend/lowering/expressions/element-access.js.map +1 -0
  694. package/dist/frontend/lowering/expressions/evaluation-safety.js +4 -3
  695. package/dist/frontend/lowering/expressions/evaluation-safety.js.map +1 -1
  696. package/dist/frontend/lowering/expressions/hosted-narrowing.d.ts +38 -0
  697. package/dist/frontend/lowering/expressions/hosted-narrowing.js +160 -0
  698. package/dist/frontend/lowering/expressions/hosted-narrowing.js.map +1 -0
  699. package/dist/frontend/lowering/expressions/identifiers.d.ts +4 -0
  700. package/dist/frontend/lowering/expressions/identifiers.js +830 -0
  701. package/dist/frontend/lowering/expressions/identifiers.js.map +1 -0
  702. package/dist/frontend/lowering/expressions/keyed-field-targets.d.ts +40 -0
  703. package/dist/frontend/lowering/expressions/keyed-field-targets.js +226 -0
  704. package/dist/frontend/lowering/expressions/keyed-field-targets.js.map +1 -0
  705. package/dist/frontend/lowering/expressions/narrowing.d.ts +37 -0
  706. package/dist/frontend/lowering/expressions/narrowing.js +1322 -0
  707. package/dist/frontend/lowering/expressions/narrowing.js.map +1 -0
  708. package/dist/frontend/lowering/expressions/native-proxy.js +4 -4
  709. package/dist/frontend/lowering/expressions/native-proxy.js.map +1 -1
  710. package/dist/frontend/lowering/expressions/nullish-assignment.js +45 -0
  711. package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
  712. package/dist/frontend/lowering/expressions/object-literals.d.ts +10 -0
  713. package/dist/frontend/lowering/expressions/object-literals.js +253 -85
  714. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  715. package/dist/frontend/lowering/expressions/optional-chains.d.ts +2 -1
  716. package/dist/frontend/lowering/expressions/optional-chains.js +91 -14
  717. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
  718. package/dist/frontend/lowering/expressions/property-access.d.ts +110 -0
  719. package/dist/frontend/lowering/expressions/property-access.js +3544 -0
  720. package/dist/frontend/lowering/expressions/property-access.js.map +1 -0
  721. package/dist/frontend/lowering/expressions/relational.d.ts +28 -0
  722. package/dist/frontend/lowering/expressions/relational.js +1679 -0
  723. package/dist/frontend/lowering/expressions/relational.js.map +1 -0
  724. package/dist/frontend/lowering/expressions/typeof.d.ts +22 -0
  725. package/dist/frontend/lowering/expressions/typeof.js +538 -0
  726. package/dist/frontend/lowering/expressions/typeof.js.map +1 -0
  727. package/dist/frontend/lowering/expressions/union-fields.js +1 -1
  728. package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
  729. package/dist/frontend/lowering/expressions/updates.d.ts +21 -0
  730. package/dist/frontend/lowering/expressions/updates.js +780 -0
  731. package/dist/frontend/lowering/expressions/updates.js.map +1 -0
  732. package/dist/frontend/lowering/function-context.d.ts +10 -0
  733. package/dist/frontend/lowering/function-context.js +11 -1
  734. package/dist/frontend/lowering/function-context.js.map +1 -1
  735. package/dist/frontend/lowering/function-returns.js +52 -28
  736. package/dist/frontend/lowering/function-returns.js.map +1 -1
  737. package/dist/frontend/lowering/general-streams.d.ts +25 -0
  738. package/dist/frontend/lowering/general-streams.js +108 -0
  739. package/dist/frontend/lowering/general-streams.js.map +1 -0
  740. package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +7 -0
  741. package/dist/frontend/lowering/generator-dynamic-dispatch.js +172 -69
  742. package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -1
  743. package/dist/frontend/lowering/generic-functions.d.ts +39 -0
  744. package/dist/frontend/lowering/generic-functions.js +393 -75
  745. package/dist/frontend/lowering/generic-functions.js.map +1 -1
  746. package/dist/frontend/lowering/import-meta.js +2 -2
  747. package/dist/frontend/lowering/import-meta.js.map +1 -1
  748. package/dist/frontend/lowering/intern-tables.js +10 -9
  749. package/dist/frontend/lowering/intern-tables.js.map +1 -1
  750. package/dist/frontend/lowering/iterator-adapters.d.ts +19 -0
  751. package/dist/frontend/lowering/iterator-adapters.js +331 -3
  752. package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
  753. package/dist/frontend/lowering/js-class-fields.d.ts +28 -0
  754. package/dist/frontend/lowering/js-class-fields.js +170 -0
  755. package/dist/frontend/lowering/js-class-fields.js.map +1 -0
  756. package/dist/frontend/lowering/js-dynamic-objects.d.ts +15 -0
  757. package/dist/frontend/lowering/js-dynamic-objects.js +299 -0
  758. package/dist/frontend/lowering/js-dynamic-objects.js.map +1 -0
  759. package/dist/frontend/lowering/js-dynamic-objects.test.d.ts +1 -0
  760. package/dist/frontend/lowering/js-dynamic-objects.test.js +35 -0
  761. package/dist/frontend/lowering/js-dynamic-objects.test.js.map +1 -0
  762. package/dist/frontend/lowering/json-require.d.ts +22 -0
  763. package/dist/frontend/lowering/json-require.js +131 -0
  764. package/dist/frontend/lowering/json-require.js.map +1 -0
  765. package/dist/frontend/lowering/key-order-witness.d.ts +44 -0
  766. package/dist/frontend/lowering/key-order-witness.js +641 -0
  767. package/dist/frontend/lowering/key-order-witness.js.map +1 -0
  768. package/dist/frontend/lowering/key-order-witness.test.d.ts +1 -0
  769. package/dist/frontend/lowering/key-order-witness.test.js +239 -0
  770. package/dist/frontend/lowering/key-order-witness.test.js.map +1 -0
  771. package/dist/frontend/lowering/lifetime-regions.js +7 -7
  772. package/dist/frontend/lowering/lifetime-regions.js.map +1 -1
  773. package/dist/frontend/lowering/lower-assert.js +61 -60
  774. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  775. package/dist/frontend/lowering/lower-async-iteration.d.ts +10 -1
  776. package/dist/frontend/lowering/lower-async-iteration.js +34 -6
  777. package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
  778. package/dist/frontend/lowering/lower-builtin-values.d.ts +5 -0
  779. package/dist/frontend/lowering/lower-builtin-values.js +32 -3
  780. package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
  781. package/dist/frontend/lowering/lower-calls.js +1298 -452
  782. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  783. package/dist/frontend/lowering/lower-classes.d.ts +50 -3
  784. package/dist/frontend/lowering/lower-classes.js +1499 -456
  785. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  786. package/dist/frontend/lowering/lower-comptime.d.ts +4 -2
  787. package/dist/frontend/lowering/lower-comptime.js +111 -13
  788. package/dist/frontend/lowering/lower-comptime.js.map +1 -1
  789. package/dist/frontend/lowering/lower-console.js +13 -11
  790. package/dist/frontend/lowering/lower-console.js.map +1 -1
  791. package/dist/frontend/lowering/lower-dgram.d.ts +10 -0
  792. package/dist/frontend/lowering/lower-dgram.js +179 -8
  793. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  794. package/dist/frontend/lowering/lower-enums.js +113 -14
  795. package/dist/frontend/lowering/lower-enums.js.map +1 -1
  796. package/dist/frontend/lowering/lower-event-emitter.d.ts +16 -7
  797. package/dist/frontend/lowering/lower-event-emitter.js +268 -71
  798. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  799. package/dist/frontend/lowering/lower-event-target.js +2 -2
  800. package/dist/frontend/lowering/lower-event-target.js.map +1 -1
  801. package/dist/frontend/lowering/lower-expando.js +17 -13
  802. package/dist/frontend/lowering/lower-expando.js.map +1 -1
  803. package/dist/frontend/lowering/lower-exprs.d.ts +188 -186
  804. package/dist/frontend/lowering/lower-exprs.js +1493 -12407
  805. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  806. package/dist/frontend/lowering/lower-functions.js +68 -22
  807. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  808. package/dist/frontend/lowering/lower-generators.d.ts +6 -0
  809. package/dist/frontend/lowering/lower-generators.js +29 -16
  810. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  811. package/dist/frontend/lowering/lower-global-value.js +5 -1
  812. package/dist/frontend/lowering/lower-global-value.js.map +1 -1
  813. package/dist/frontend/lowering/lower-inspect.js +354 -99
  814. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  815. package/dist/frontend/lowering/lower-mixins.js +23 -20
  816. package/dist/frontend/lowering/lower-mixins.js.map +1 -1
  817. package/dist/frontend/lowering/lower-mock.d.ts +19 -2
  818. package/dist/frontend/lowering/lower-mock.js +557 -74
  819. package/dist/frontend/lowering/lower-mock.js.map +1 -1
  820. package/dist/frontend/lowering/lower-modules.js +268 -61
  821. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  822. package/dist/frontend/lowering/lower-namespaces.d.ts +6 -0
  823. package/dist/frontend/lowering/lower-namespaces.js +45 -33
  824. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  825. package/dist/frontend/lowering/lower-node-module.d.ts +16 -0
  826. package/dist/frontend/lowering/lower-node-module.js +147 -14
  827. package/dist/frontend/lowering/lower-node-module.js.map +1 -1
  828. package/dist/frontend/lowering/lower-server.d.ts +6 -6
  829. package/dist/frontend/lowering/lower-server.js +638 -105
  830. package/dist/frontend/lowering/lower-server.js.map +1 -1
  831. package/dist/frontend/lowering/lower-stdlib.d.ts +4 -0
  832. package/dist/frontend/lowering/lower-stdlib.js +151 -109
  833. package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
  834. package/dist/frontend/lowering/lower-stmts.d.ts +28 -2
  835. package/dist/frontend/lowering/lower-stmts.js +1589 -398
  836. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  837. package/dist/frontend/lowering/lower-stream.d.ts +4 -3
  838. package/dist/frontend/lowering/lower-stream.js +714 -75
  839. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  840. package/dist/frontend/lowering/lower-test.d.ts +3 -0
  841. package/dist/frontend/lowering/lower-test.js +574 -100
  842. package/dist/frontend/lowering/lower-test.js.map +1 -1
  843. package/dist/frontend/lowering/lower-timers.js +80 -32
  844. package/dist/frontend/lowering/lower-timers.js.map +1 -1
  845. package/dist/frontend/lowering/lower-url.js +1 -1
  846. package/dist/frontend/lowering/lower-url.js.map +1 -1
  847. package/dist/frontend/lowering/lowerer.d.ts +409 -26
  848. package/dist/frontend/lowering/lowerer.js +1918 -305
  849. package/dist/frontend/lowering/lowerer.js.map +1 -1
  850. package/dist/frontend/lowering/lowerer.test.js +10 -4
  851. package/dist/frontend/lowering/lowerer.test.js.map +1 -1
  852. package/dist/frontend/lowering/maybe-promise.d.ts +46 -0
  853. package/dist/frontend/lowering/maybe-promise.js +249 -0
  854. package/dist/frontend/lowering/maybe-promise.js.map +1 -0
  855. package/dist/frontend/lowering/module-member-this.d.ts +3 -0
  856. package/dist/frontend/lowering/module-member-this.js +262 -0
  857. package/dist/frontend/lowering/module-member-this.js.map +1 -0
  858. package/dist/frontend/lowering/module-namespace-elements.js +1 -1
  859. package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
  860. package/dist/frontend/lowering/nan-coded-reads.d.ts +3 -0
  861. package/dist/frontend/lowering/nan-coded-reads.js +45 -32
  862. package/dist/frontend/lowering/nan-coded-reads.js.map +1 -1
  863. package/dist/frontend/lowering/narrowing-stability.d.ts +18 -3
  864. package/dist/frontend/lowering/narrowing-stability.js +104 -32
  865. package/dist/frontend/lowering/narrowing-stability.js.map +1 -1
  866. package/dist/frontend/lowering/native-ffi.js +11 -11
  867. package/dist/frontend/lowering/native-ffi.js.map +1 -1
  868. package/dist/frontend/lowering/null-prototype.d.ts +13 -0
  869. package/dist/frontend/lowering/null-prototype.js +33 -0
  870. package/dist/frontend/lowering/null-prototype.js.map +1 -0
  871. package/dist/frontend/lowering/object-factory-new.js +6 -8
  872. package/dist/frontend/lowering/object-factory-new.js.map +1 -1
  873. package/dist/frontend/lowering/private-brands.d.ts +46 -0
  874. package/dist/frontend/lowering/private-brands.js +265 -0
  875. package/dist/frontend/lowering/private-brands.js.map +1 -0
  876. package/dist/frontend/lowering/promise-executor-adapter.d.ts +11 -0
  877. package/dist/frontend/lowering/promise-executor-adapter.js +87 -0
  878. package/dist/frontend/lowering/promise-executor-adapter.js.map +1 -0
  879. package/dist/frontend/lowering/require-initialization.d.ts +32 -0
  880. package/dist/frontend/lowering/require-initialization.js +246 -0
  881. package/dist/frontend/lowering/require-initialization.js.map +1 -0
  882. package/dist/frontend/lowering/runtime-optional-bounds.js +7 -7
  883. package/dist/frontend/lowering/runtime-optional-bounds.js.map +1 -1
  884. package/dist/frontend/lowering/runtime-optional-elements.js +12 -12
  885. package/dist/frontend/lowering/runtime-optional-elements.js.map +1 -1
  886. package/dist/frontend/lowering/runtime-optional-guards.js +10 -10
  887. package/dist/frontend/lowering/runtime-optional-guards.js.map +1 -1
  888. package/dist/frontend/lowering/runtime-optional-guards.test.js +1 -1
  889. package/dist/frontend/lowering/runtime-optional-guards.test.js.map +1 -1
  890. package/dist/frontend/lowering/runtime-optional-ownership.js +10 -9
  891. package/dist/frontend/lowering/runtime-optional-ownership.js.map +1 -1
  892. package/dist/frontend/lowering/runtime-optional-provenance.js +2 -2
  893. package/dist/frontend/lowering/runtime-optional-provenance.js.map +1 -1
  894. package/dist/frontend/lowering/runtime-optional-records.d.ts +35 -0
  895. package/dist/frontend/lowering/runtime-optional-records.js +205 -32
  896. package/dist/frontend/lowering/runtime-optional-records.js.map +1 -1
  897. package/dist/frontend/lowering/runtime-optional-records.test.js +19 -1
  898. package/dist/frontend/lowering/runtime-optional-records.test.js.map +1 -1
  899. package/dist/frontend/lowering/sanitize-class-types.test.js +2 -2
  900. package/dist/frontend/lowering/split-consumers.js +4 -4
  901. package/dist/frontend/lowering/split-consumers.js.map +1 -1
  902. package/dist/frontend/lowering/static-function-names.d.ts +28 -0
  903. package/dist/frontend/lowering/static-function-names.js +212 -0
  904. package/dist/frontend/lowering/static-function-names.js.map +1 -0
  905. package/dist/frontend/lowering/static-this.js +6 -6
  906. package/dist/frontend/lowering/static-this.js.map +1 -1
  907. package/dist/frontend/lowering/strict-mode.d.ts +5 -0
  908. package/dist/frontend/lowering/strict-mode.js +31 -0
  909. package/dist/frontend/lowering/strict-mode.js.map +1 -0
  910. package/dist/frontend/lowering/string-index-bounds.js +10 -10
  911. package/dist/frontend/lowering/string-index-bounds.js.map +1 -1
  912. package/dist/frontend/lowering/string-index.d.ts +12 -0
  913. package/dist/frontend/lowering/string-index.js +72 -1
  914. package/dist/frontend/lowering/string-index.js.map +1 -1
  915. package/dist/frontend/lowering/surfaces.d.ts +15 -6
  916. package/dist/frontend/lowering/surfaces.js +278 -45
  917. package/dist/frontend/lowering/surfaces.js.map +1 -1
  918. package/dist/frontend/lowering/symbol-fields.d.ts +7 -0
  919. package/dist/frontend/lowering/symbol-fields.js +204 -36
  920. package/dist/frontend/lowering/symbol-fields.js.map +1 -1
  921. package/dist/frontend/lowering/symbol-methods.d.ts +2 -1
  922. package/dist/frontend/lowering/symbol-methods.js +24 -6
  923. package/dist/frontend/lowering/symbol-methods.js.map +1 -1
  924. package/dist/frontend/lowering/thread-slots.d.ts +13 -0
  925. package/dist/frontend/lowering/thread-slots.js +208 -0
  926. package/dist/frontend/lowering/thread-slots.js.map +1 -0
  927. package/dist/frontend/lowering/typed-arguments.d.ts +74 -0
  928. package/dist/frontend/lowering/typed-arguments.js +472 -0
  929. package/dist/frontend/lowering/typed-arguments.js.map +1 -0
  930. package/dist/frontend/lowering/union-retag.d.ts +8 -0
  931. package/dist/frontend/lowering/union-retag.js +27 -0
  932. package/dist/frontend/lowering/union-retag.js.map +1 -1
  933. package/dist/frontend/lowering/union-retag.test.js +24 -1
  934. package/dist/frontend/lowering/union-retag.test.js.map +1 -1
  935. package/dist/frontend/lowering/var-hoisting.js +6 -6
  936. package/dist/frontend/lowering/var-hoisting.js.map +1 -1
  937. package/dist/frontend/lowering/width-lift.d.ts +4 -0
  938. package/dist/frontend/mock-shapes.d.ts +5 -0
  939. package/dist/frontend/mock-shapes.js +39 -7
  940. package/dist/frontend/mock-shapes.js.map +1 -1
  941. package/dist/frontend/module-source-candidates.js +1 -1
  942. package/dist/frontend/module-source-candidates.js.map +1 -1
  943. package/dist/frontend/module-source-candidates.test.js +2 -1
  944. package/dist/frontend/module-source-candidates.test.js.map +1 -1
  945. package/dist/frontend/module-syntax.js +8 -8
  946. package/dist/frontend/module-syntax.js.map +1 -1
  947. package/dist/frontend/npm-static-bundled-chunks.d.ts +51 -0
  948. package/dist/frontend/npm-static-bundled-chunks.js +810 -0
  949. package/dist/frontend/npm-static-bundled-chunks.js.map +1 -0
  950. package/dist/frontend/npm-static-bundled-chunks.test.d.ts +1 -0
  951. package/dist/frontend/npm-static-bundled-chunks.test.js +287 -0
  952. package/dist/frontend/npm-static-bundled-chunks.test.js.map +1 -0
  953. package/dist/frontend/npm-static-bundled-cjs.js +24 -23
  954. package/dist/frontend/npm-static-bundled-cjs.js.map +1 -1
  955. package/dist/frontend/npm-static-bundled-esm.d.ts +9 -0
  956. package/dist/frontend/npm-static-bundled-esm.js +768 -0
  957. package/dist/frontend/npm-static-bundled-esm.js.map +1 -0
  958. package/dist/frontend/npm-static-bundled-esm.test.d.ts +1 -0
  959. package/dist/frontend/npm-static-bundled-esm.test.js +207 -0
  960. package/dist/frontend/npm-static-bundled-esm.test.js.map +1 -0
  961. package/dist/frontend/npm-static-cjs-exports-alias.d.ts +2 -0
  962. package/dist/frontend/npm-static-cjs-exports-alias.js +186 -0
  963. package/dist/frontend/npm-static-cjs-exports-alias.js.map +1 -0
  964. package/dist/frontend/npm-static-cjs-exports-alias.test.d.ts +1 -0
  965. package/dist/frontend/npm-static-cjs-exports-alias.test.js +73 -0
  966. package/dist/frontend/npm-static-cjs-exports-alias.test.js.map +1 -0
  967. package/dist/frontend/npm-static-cjs-exports-var.d.ts +2 -0
  968. package/dist/frontend/npm-static-cjs-exports-var.js +236 -0
  969. package/dist/frontend/npm-static-cjs-exports-var.js.map +1 -0
  970. package/dist/frontend/npm-static-declaration-syntax.js +102 -101
  971. package/dist/frontend/npm-static-declaration-syntax.js.map +1 -1
  972. package/dist/frontend/npm-static-prune.js +36 -24
  973. package/dist/frontend/npm-static-prune.js.map +1 -1
  974. package/dist/frontend/npm-static-rewrite-host.d.ts +4 -1
  975. package/dist/frontend/npm-static-rewrite-host.js +14 -3
  976. package/dist/frontend/npm-static-rewrite-host.js.map +1 -1
  977. package/dist/frontend/npm-static-rewrite-syntax.d.ts +19 -0
  978. package/dist/frontend/npm-static-rewrite-syntax.js +274 -101
  979. package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
  980. package/dist/frontend/npm-static-subtyping.js +7 -9
  981. package/dist/frontend/npm-static-subtyping.js.map +1 -1
  982. package/dist/frontend/npm-static.d.ts +17 -1
  983. package/dist/frontend/npm-static.js +167 -16
  984. package/dist/frontend/npm-static.js.map +1 -1
  985. package/dist/frontend/npm-static.test.js +22 -1
  986. package/dist/frontend/npm-static.test.js.map +1 -1
  987. package/dist/frontend/pipeline.js +164 -26
  988. package/dist/frontend/pipeline.js.map +1 -1
  989. package/dist/frontend/pipeline.test.js +22 -1
  990. package/dist/frontend/pipeline.test.js.map +1 -1
  991. package/dist/frontend/program-analysis.d.ts +6 -1
  992. package/dist/frontend/program-analysis.js +7 -0
  993. package/dist/frontend/program-analysis.js.map +1 -1
  994. package/dist/frontend/program.d.ts +92 -2
  995. package/dist/frontend/program.js +1557 -254
  996. package/dist/frontend/program.js.map +1 -1
  997. package/dist/frontend/program.test.js +76 -6
  998. package/dist/frontend/program.test.js.map +1 -1
  999. package/dist/frontend/resolve.js +36 -2
  1000. package/dist/frontend/resolve.js.map +1 -1
  1001. package/dist/frontend/resolve.test.js +49 -0
  1002. package/dist/frontend/resolve.test.js.map +1 -1
  1003. package/dist/frontend/services.d.ts +20 -1
  1004. package/dist/frontend/services.js +40 -3
  1005. package/dist/frontend/services.js.map +1 -1
  1006. package/dist/frontend/services.test.js +2 -1
  1007. package/dist/frontend/services.test.js.map +1 -1
  1008. package/dist/frontend/threads-import.js +1 -1
  1009. package/dist/frontend/threads-import.js.map +1 -1
  1010. package/dist/frontend/tier-analysis.d.ts +71 -0
  1011. package/dist/frontend/tier-analysis.js +522 -0
  1012. package/dist/frontend/tier-analysis.js.map +1 -0
  1013. package/dist/frontend/ts7/api-conformance.d.ts +234 -0
  1014. package/dist/frontend/ts7/api-conformance.js +7 -0
  1015. package/dist/frontend/ts7/api-conformance.js.map +1 -0
  1016. package/dist/frontend/ts7/ast-guards.generated.js +2 -1
  1017. package/dist/frontend/ts7/ast-guards.generated.js.map +1 -1
  1018. package/dist/frontend/ts7/ast-node.d.ts +47 -25
  1019. package/dist/frontend/ts7/ast-node.js +64 -18
  1020. package/dist/frontend/ts7/ast-node.js.map +1 -1
  1021. package/dist/frontend/ts7/ast-node.test.js +36 -12
  1022. package/dist/frontend/ts7/ast-node.test.js.map +1 -1
  1023. package/dist/frontend/ts7/ast-types.d.ts +10 -3
  1024. package/dist/frontend/ts7/ast-types.generated.d.ts +39 -39
  1025. package/dist/frontend/ts7/ast.d.ts +1 -0
  1026. package/dist/frontend/ts7/ast.js +3 -2
  1027. package/dist/frontend/ts7/ast.js.map +1 -1
  1028. package/dist/frontend/ts7/checker-backend.d.ts +23 -0
  1029. package/dist/frontend/ts7/checker-backend.js +88 -0
  1030. package/dist/frontend/ts7/checker-backend.js.map +1 -0
  1031. package/dist/frontend/ts7/checker-backend.test.d.ts +1 -0
  1032. package/dist/frontend/ts7/checker-backend.test.js +63 -0
  1033. package/dist/frontend/ts7/checker-backend.test.js.map +1 -0
  1034. package/dist/frontend/ts7/checker-cache.d.ts +0 -3
  1035. package/dist/frontend/ts7/checker-cache.js +0 -6
  1036. package/dist/frontend/ts7/checker-cache.js.map +1 -1
  1037. package/dist/frontend/ts7/checker.d.ts +18 -11
  1038. package/dist/frontend/ts7/checker.js +42 -55
  1039. package/dist/frontend/ts7/checker.js.map +1 -1
  1040. package/dist/frontend/ts7/checker.test.js +10 -7
  1041. package/dist/frontend/ts7/checker.test.js.map +1 -1
  1042. package/dist/frontend/ts7/diagnostic.d.ts +19 -0
  1043. package/dist/frontend/ts7/diagnostic.js +22 -0
  1044. package/dist/frontend/ts7/diagnostic.js.map +1 -0
  1045. package/dist/frontend/ts7/node-functions.d.ts +8 -0
  1046. package/dist/frontend/ts7/node-functions.js +18 -0
  1047. package/dist/frontend/ts7/node-functions.js.map +1 -0
  1048. package/dist/frontend/ts7/program-host.d.ts +5 -1
  1049. package/dist/frontend/ts7/program-host.js +12 -0
  1050. package/dist/frontend/ts7/program-host.js.map +1 -1
  1051. package/dist/frontend/ts7/rpc-api.d.ts +5 -1
  1052. package/dist/frontend/ts7/rpc-api.js +8 -1
  1053. package/dist/frontend/ts7/rpc-api.js.map +1 -1
  1054. package/dist/frontend/ts7/semantic-checker.d.ts +13 -6
  1055. package/dist/frontend/ts7/semantic-checker.js +26 -8
  1056. package/dist/frontend/ts7/semantic-checker.js.map +1 -1
  1057. package/dist/frontend/ts7/semantic-checker.test.js +12 -9
  1058. package/dist/frontend/ts7/semantic-checker.test.js.map +1 -1
  1059. package/dist/frontend/ts7/semantic-model.d.ts +54 -24
  1060. package/dist/frontend/ts7/semantic-model.js +88 -16
  1061. package/dist/frontend/ts7/semantic-model.js.map +1 -1
  1062. package/dist/frontend/ts7/semantic-model.test.js +4 -4
  1063. package/dist/frontend/ts7/semantic-model.test.js.map +1 -1
  1064. package/dist/frontend/ts7/semantic-types.d.ts +7 -3
  1065. package/dist/frontend/ts7/semantic-types.js +1 -1
  1066. package/dist/frontend/ts7/semantic-types.js.map +1 -1
  1067. package/dist/frontend/ts7/session.d.ts +11 -11
  1068. package/dist/frontend/ts7/session.js +8 -5
  1069. package/dist/frontend/ts7/session.js.map +1 -1
  1070. package/dist/frontend/ts7/session.test.js +9 -5
  1071. package/dist/frontend/ts7/session.test.js.map +1 -1
  1072. package/dist/frontend/ts7/source-parser.d.ts +6 -2
  1073. package/dist/frontend/ts7/source-parser.js +24 -3
  1074. package/dist/frontend/ts7/source-parser.js.map +1 -1
  1075. package/dist/frontend/ts7/source-parser.test.js +38 -17
  1076. package/dist/frontend/ts7/source-parser.test.js.map +1 -1
  1077. package/dist/frontend/type-mapper.d.ts +122 -2
  1078. package/dist/frontend/type-mapper.js +2612 -695
  1079. package/dist/frontend/type-mapper.js.map +1 -1
  1080. package/dist/frontend/type-only-imports.d.ts +28 -0
  1081. package/dist/frontend/type-only-imports.js +122 -0
  1082. package/dist/frontend/type-only-imports.js.map +1 -0
  1083. package/dist/frontend/worker-target.js +8 -8
  1084. package/dist/frontend/worker-target.js.map +1 -1
  1085. package/dist/index.d.ts +3 -1
  1086. package/dist/index.js +47 -10
  1087. package/dist/index.js.map +1 -1
  1088. package/dist/ir/analysis.js +4 -2
  1089. package/dist/ir/analysis.js.map +1 -1
  1090. package/dist/ir/api.d.ts +1 -1
  1091. package/dist/ir/api.js +1 -1
  1092. package/dist/ir/api.js.map +1 -1
  1093. package/dist/ir/array-length-stability.d.ts +30 -0
  1094. package/dist/ir/array-length-stability.js +236 -0
  1095. package/dist/ir/array-length-stability.js.map +1 -0
  1096. package/dist/ir/array-length-stability.test.d.ts +1 -0
  1097. package/dist/ir/array-length-stability.test.js +113 -0
  1098. package/dist/ir/array-length-stability.test.js.map +1 -0
  1099. package/dist/ir/build.d.ts +2 -2
  1100. package/dist/ir/build.js +1 -1
  1101. package/dist/ir/build.js.map +1 -1
  1102. package/dist/ir/builtin-effects.js +139 -0
  1103. package/dist/ir/builtin-effects.js.map +1 -1
  1104. package/dist/ir/builtin-signatures.d.ts +1 -1
  1105. package/dist/ir/builtin-signatures.js +655 -25
  1106. package/dist/ir/builtin-signatures.js.map +1 -1
  1107. package/dist/ir/byte-numbers.js +3 -0
  1108. package/dist/ir/byte-numbers.js.map +1 -1
  1109. package/dist/ir/callback-specialization.d.ts +37 -0
  1110. package/dist/ir/callback-specialization.js +459 -0
  1111. package/dist/ir/callback-specialization.js.map +1 -0
  1112. package/dist/ir/callback-specialization.test.d.ts +1 -0
  1113. package/dist/ir/callback-specialization.test.js +208 -0
  1114. package/dist/ir/callback-specialization.test.js.map +1 -0
  1115. package/dist/ir/capture-values.d.ts +0 -1
  1116. package/dist/ir/capture-values.js +51 -40
  1117. package/dist/ir/capture-values.js.map +1 -1
  1118. package/dist/ir/constant-globals.test.js +1 -1
  1119. package/dist/ir/constant-tables.test.js +1 -1
  1120. package/dist/ir/field-values.test.js +1 -1
  1121. package/dist/ir/final-fields.test.js +1 -1
  1122. package/dist/ir/function-references.test.js +10 -1
  1123. package/dist/ir/function-references.test.js.map +1 -1
  1124. package/dist/ir/init-only-globals.test.js +1 -1
  1125. package/dist/ir/initializer-bindings.test.js +1 -1
  1126. package/dist/ir/int32-slots.d.ts +14 -0
  1127. package/dist/ir/int32-slots.js +119 -14
  1128. package/dist/ir/int32-slots.js.map +1 -1
  1129. package/dist/ir/int32-slots.test.js +29 -1
  1130. package/dist/ir/int32-slots.test.js.map +1 -1
  1131. package/dist/ir/integer-loop-facts.d.ts +16 -6
  1132. package/dist/ir/integer-loop-facts.js +143 -38
  1133. package/dist/ir/integer-loop-facts.js.map +1 -1
  1134. package/dist/ir/integer-loops.d.ts +1 -1
  1135. package/dist/ir/integer-loops.js +39 -9
  1136. package/dist/ir/integer-loops.js.map +1 -1
  1137. package/dist/ir/integer-loops.test.js +104 -0
  1138. package/dist/ir/integer-loops.test.js.map +1 -1
  1139. package/dist/ir/integer-ranges.d.ts +3 -0
  1140. package/dist/ir/integer-ranges.js +4 -6
  1141. package/dist/ir/integer-ranges.js.map +1 -1
  1142. package/dist/ir/integer-ranges.test.js +142 -1
  1143. package/dist/ir/integer-ranges.test.js.map +1 -1
  1144. package/dist/ir/intrinsic-signatures.js +6 -0
  1145. package/dist/ir/intrinsic-signatures.js.map +1 -1
  1146. package/dist/ir/ir.d.ts +234 -58
  1147. package/dist/ir/ir.js +123 -12
  1148. package/dist/ir/ir.js.map +1 -1
  1149. package/dist/ir/ir.test.js +10 -0
  1150. package/dist/ir/ir.test.js.map +1 -1
  1151. package/dist/ir/jsval.d.ts +8 -0
  1152. package/dist/ir/jsval.js +365 -0
  1153. package/dist/ir/jsval.js.map +1 -0
  1154. package/dist/ir/jsval.test.d.ts +1 -0
  1155. package/dist/ir/jsval.test.js +239 -0
  1156. package/dist/ir/jsval.test.js.map +1 -0
  1157. package/dist/ir/runtime-features.d.ts +150 -33
  1158. package/dist/ir/runtime-features.js +672 -339
  1159. package/dist/ir/runtime-features.js.map +1 -1
  1160. package/dist/ir/runtime-features.test.js +62 -0
  1161. package/dist/ir/runtime-features.test.js.map +1 -1
  1162. package/dist/ir/scalar-records.test.js +1 -1
  1163. package/dist/ir/self-captures.d.ts +33 -0
  1164. package/dist/ir/self-captures.js +245 -0
  1165. package/dist/ir/self-captures.js.map +1 -0
  1166. package/dist/ir/self-captures.test.d.ts +1 -0
  1167. package/dist/ir/self-captures.test.js +135 -0
  1168. package/dist/ir/self-captures.test.js.map +1 -0
  1169. package/dist/ir/serialize.d.ts +1 -1
  1170. package/dist/ir/serialize.js +7 -4
  1171. package/dist/ir/serialize.js.map +1 -1
  1172. package/dist/ir/tiers.d.ts +26 -0
  1173. package/dist/ir/tiers.js +101 -0
  1174. package/dist/ir/tiers.js.map +1 -0
  1175. package/dist/ir/tiers.test.d.ts +1 -0
  1176. package/dist/ir/tiers.test.js +140 -0
  1177. package/dist/ir/tiers.test.js.map +1 -0
  1178. package/dist/ir/traverse.js +107 -94
  1179. package/dist/ir/traverse.js.map +1 -1
  1180. package/dist/ir/traverse.test.js +33 -30
  1181. package/dist/ir/traverse.test.js.map +1 -1
  1182. package/dist/ir/unshare.js +65 -3
  1183. package/dist/ir/unshare.js.map +1 -1
  1184. package/dist/ir/unshare.test.js +1 -1
  1185. package/dist/ir/validate.js +220 -71
  1186. package/dist/ir/validate.js.map +1 -1
  1187. package/dist/ir/validate.test.js +64 -9
  1188. package/dist/ir/validate.test.js.map +1 -1
  1189. package/dist/library/fence-eval.test.js +1 -1
  1190. package/dist/library/int-infer.test.js +4 -4
  1191. package/dist/library/ir-policy.js +18 -0
  1192. package/dist/library/ir-policy.js.map +1 -1
  1193. package/dist/library/library-cache.d.ts +1 -0
  1194. package/dist/library/library-cache.js.map +1 -1
  1195. package/dist/library/library-cache.test.js +5 -5
  1196. package/dist/library/library-profile.d.ts +4 -4
  1197. package/dist/library/library-profile.js +35 -7
  1198. package/dist/library/library-profile.js.map +1 -1
  1199. package/dist/library/prepare.js +13 -1
  1200. package/dist/library/prepare.js.map +1 -1
  1201. package/dist/native/cli.js +5 -0
  1202. package/dist/native/cli.js.map +1 -1
  1203. package/dist/native/compiler.js +2 -2
  1204. package/dist/native/compiler.js.map +1 -1
  1205. package/dist/native/compiler.test.js +2 -2
  1206. package/dist/native/prepare.js +7 -0
  1207. package/dist/native/prepare.js.map +1 -1
  1208. package/dist/native/sanitizer.test.js +12 -0
  1209. package/dist/native/sanitizer.test.js.map +1 -1
  1210. package/dist/native/toolchain.d.ts +2 -0
  1211. package/dist/native/toolchain.js +10 -1
  1212. package/dist/native/toolchain.js.map +1 -1
  1213. package/dist/native/toolchain.test.js +39 -1
  1214. package/dist/native/toolchain.test.js.map +1 -1
  1215. package/dist/startup-cache.d.ts +1 -0
  1216. package/dist/startup-cache.js +1 -0
  1217. package/dist/startup-cache.js.map +1 -1
  1218. package/dist/wasm/base64.d.ts +5 -0
  1219. package/dist/wasm/base64.js +62 -0
  1220. package/dist/wasm/base64.js.map +1 -0
  1221. package/dist/wasm/binary.d.ts +36 -0
  1222. package/dist/wasm/binary.js +1976 -0
  1223. package/dist/wasm/binary.js.map +1 -0
  1224. package/dist/wasm/binary.test.d.ts +1 -0
  1225. package/dist/wasm/binary.test.js +190 -0
  1226. package/dist/wasm/binary.test.js.map +1 -0
  1227. package/dist/wasm/discover.d.ts +38 -0
  1228. package/dist/wasm/discover.js +377 -0
  1229. package/dist/wasm/discover.js.map +1 -0
  1230. package/dist/wasm/discover.test.d.ts +1 -0
  1231. package/dist/wasm/discover.test.js +24 -0
  1232. package/dist/wasm/discover.test.js.map +1 -0
  1233. package/dist/wasm/module.d.ts +151 -0
  1234. package/dist/wasm/module.js +575 -0
  1235. package/dist/wasm/module.js.map +1 -0
  1236. package/dist/wasm/translate.d.ts +48 -0
  1237. package/dist/wasm/translate.js +2129 -0
  1238. package/dist/wasm/translate.js.map +1 -0
  1239. package/dist/wasm/translate.test.d.ts +1 -0
  1240. package/dist/wasm/translate.test.js +207 -0
  1241. package/dist/wasm/translate.test.js.map +1 -0
  1242. package/package.json +21 -20
  1243. package/surface-manifest.json +332 -36
@@ -1,4 +1,9 @@
1
+ import type { ConstructorReturnPlan } from "./constructor-returns.js";
1
2
  import { type CycleInitFlag } from "./cycle-initialization.js";
3
+ import { type JsonRequireModule } from "./json-require.js";
4
+ import { type EarlyReference, type RequireInitFlag } from "./require-initialization.js";
5
+ import { KeyOrderNotes } from "./key-order-witness.js";
6
+ import { type WasmModuleReport } from "../../wasm/discover.js";
2
7
  import type { FieldLift } from "./coercions/structural-plans.js";
3
8
  import { CoercionState } from "./coercions/state.js";
4
9
  import { NarrowingStability } from "./narrowing-stability.js";
@@ -10,8 +15,10 @@ import type { WidthLift } from "./width-lift.js";
10
15
  import { type FnCtx } from "./function-context.js";
11
16
  import type { FrontendServices } from "../services.js";
12
17
  import { type ProtocolDispatch } from "./class-protocol-dispatch.js";
18
+ import { type DynamicFunction } from "../../ir/tiers.js";
19
+ import { type TierMode, type TierReport } from "../tier-analysis.js";
13
20
  import { DeferredModuleInitializers } from "./deferred-module-initializers.js";
14
- import type { ClassSymbolKey } from "./symbol-fields.js";
21
+ import { type ClassSymbolKey } from "./symbol-fields.js";
15
22
  import type { HttpClientFnBinding } from "./lower-server.js";
16
23
  export type { WidthLift } from "./width-lift.js";
17
24
  export { newFnCtx, type FnCtx } from "./function-context.js";
@@ -23,6 +30,7 @@ import type { IrClassDef, IrExpr, IrFfiImport, IrFunction, IrGlobal, IrLocal, Ir
23
30
  import { type StartupCrash } from "../program.js";
24
31
  import { ShapeRegistry, type TypeMapperCtx, UnionRegistry } from "../type-mapper.js";
25
32
  import { type CompoundOp, type StdlibFnEntry, type BuiltinModuleFn } from "./surfaces.js";
33
+ import { type BuiltinClassRef } from "./builtins/class-values.js";
26
34
  import { type FileParts } from "./lower-modules.js";
27
35
  import { type ClassInfo, type ClassIteratorInfo, type GenericClassInfo, findStaticOn } from "./lower-classes.js";
28
36
  import { type MixinFnShape } from "./lower-mixins.js";
@@ -59,6 +67,15 @@ export type StaticCallableProjection = {
59
67
  kind: "promisified-builtin";
60
68
  module: string;
61
69
  member: string;
70
+ } | {
71
+ kind: "promisified-zlib";
72
+ member: string;
73
+ } | {
74
+ kind: "promisified-crypto";
75
+ member: string;
76
+ } | {
77
+ kind: "promisified-dns";
78
+ member: string;
62
79
  };
63
80
  /** Own-property lookup for the surface tables. They are plain object
64
81
  * literals, so a bare `table[name]` would also find Object.prototype
@@ -73,6 +90,9 @@ export interface LowerStats {
73
90
  statementsFailed: number;
74
91
  /** Functions whose signature couldn't be analyzed (bodies not counted). */
75
92
  functionsSkipped: number;
93
+ /** Coverage only: reached statements that compile into dynamic-tier
94
+ * functions (tier-analysis.ts), a subset of the compiled statements. */
95
+ statementsDynamic?: number;
76
96
  }
77
97
  /** Every identifier a binding name binds: the identifier itself, or all
78
98
  * identifiers of a (possibly nested) destructuring pattern in source
@@ -110,18 +130,29 @@ export interface LowerResult {
110
130
  stats: LowerStats;
111
131
  runtimeFences?: ScrDiagnostic[];
112
132
  };
133
+ /** Coverage only: the WebAssembly modules the build can see (wasm/discover.ts). */
134
+ wasmModules?: WasmModuleReport[];
113
135
  /** Compile-time-detectable behavior differences from Node (SC6xxx
114
136
  * divergence warnings) in the program's own modules. Never failures. */
115
137
  divergences?: ScrDiagnostic[];
138
+ /** Functions lowering placed in the dynamic tier (ir/tiers.ts), present
139
+ * when there are any. */
140
+ dynamicFunctions?: DynamicFunction[];
141
+ /** LowerOptions.tierReport: the report-only tier assignment. */
142
+ tiers?: TierReport;
116
143
  }
117
144
  export interface LowerOptions {
118
145
  /** Parser/checker services owned by the load; required for npm graph analysis. */
119
146
  frontendServices?: FrontendServices | undefined;
147
+ /** The project's tsconfig sets `checkJs` (see isCheckedJsSourceFile). */
148
+ projectCheckJs?: boolean;
120
149
  /** Coverage: additionally lower the unreached remainder (bodies nothing
121
150
  * on the entry path reaches) in a throwaway pass and report its
122
151
  * diagnostics and stats under `unreached` — the whole-program analysis
123
152
  * builds deliberately gave up. */
124
153
  coverage?: boolean;
154
+ /** Coverage only: module files named by --wasm (absolute). */
155
+ wasmFiles?: readonly string[];
125
156
  /** The platform the build TARGETS ("win32" under a windows cross triple,
126
157
  * the host platform otherwise — see buildTargetPlatform in index.ts).
127
158
  * The whole program compiles for one platform, so the platform-keyed
@@ -134,6 +165,8 @@ export interface LowerOptions {
134
165
  * resolution walk and named-import link checks): the program
135
166
  * compiles to that startup crash. */
136
167
  startupCrash?: StartupCrash | null;
168
+ /** LoadResult.inlineRequireCycleCalls. */
169
+ inlineRequireCycleCalls?: ReadonlySet<ts.Node> | undefined;
137
170
  /** LIBRARY mode's reachability roots: the profile-mapped exports of the
138
171
  * entry module. Executable builds root at the entry's top level alone
139
172
  * (an unreferenced export dead-strips); a library's exports are called from
@@ -159,6 +192,14 @@ export interface LowerOptions {
159
192
  /** The mapped entries plus relative declaration dependencies, attributed
160
193
  * to their owning external specifier. */
161
194
  externalTypeSpecifiersByFile?: ReadonlyMap<string, readonly string[]>;
195
+ /** `--tier` (tier-analysis.ts); "auto" when absent. */
196
+ tierMode?: TierMode;
197
+ /** Coverage only: compute the tier-assignment report (`--explain-dynamic`).
198
+ * `preflight` holds the import and package refusals coverage reports
199
+ * beside the lowering's own blockers; they request module demotions. */
200
+ tierReport?: {
201
+ preflight: readonly ScrDiagnostic[];
202
+ };
162
203
  }
163
204
  interface RuntimeFenceFallback {
164
205
  code: `SC${number}`;
@@ -192,38 +233,52 @@ interface RuntimeFenceClosureTarget extends Omit<RuntimeFenceFunctionTarget, "ki
192
233
  }
193
234
  /** The Lowerer's pass configuration (see lowerToIr). */
194
235
  export interface LowererMode {
236
+ /** Symbols whose deferred diagnostics reachable emit already flushed —
237
+ * the remainder must not report them a second time. */
238
+ alreadyFlushed?: ReadonlySet<ts.Symbol>;
239
+ /** LowerOptions.externalTypes, threaded through every lowering pass. */
240
+ externalTypes?: ReadonlyMap<string, string>;
241
+ /** LowerOptions.externalTypeSpecifiersByFile, shared by every pass. */
242
+ externalTypeSpecifiersByFile?: ReadonlyMap<string, readonly string[]>;
243
+ /** Program-validated ambient declaration symbols for each FFI name.
244
+ * Undefined in discovery's legacy call-local validation path. */
245
+ ffiBindingSymbols?: ReadonlyMap<string, ReadonlySet<ts.Symbol>>;
246
+ /** The build's outbound native FFI declarations. */
247
+ ffiImports?: readonly IrFfiImport[];
248
+ /** Statically resolved child_process.fork program roots, in stable target-id order. */
249
+ forkTargets?: readonly ts.SourceFile[];
195
250
  frontendServices?: FrontendServices | undefined;
251
+ /** The program's general stream representation (TypeMapperCtx.
252
+ * generalNodeStreams). lowerToIr turns it on only after a pass without
253
+ * it saw a stream flow that needs it (requiresGeneralNodeStreams). */
254
+ generalNodeStreams?: boolean;
255
+ /** With generalNodeStreams, the checked-dynamic stream slots
256
+ * (TypeMapperCtx.dynNodeStreams). lowerToIr turns it on only after a
257
+ * pass saw an untyped value flow into a stream slot
258
+ * (requiresDynNodeStreams). */
259
+ dynNodeStreams?: boolean;
260
+ /** LoadResult.inlineRequireCycleCalls. */
261
+ inlineRequireCycleCalls?: ReadonlySet<ts.Node> | undefined;
262
+ /** LowerOptions.libraryCallbacks (see there). */
263
+ libraryCallbacks?: boolean;
264
+ projectCheckJs?: boolean;
196
265
  /** Names of bodies a prior reachability pass reached; null lowers everything. */
197
266
  reachable?: ReadonlySet<string> | null;
198
267
  /** Coverage remainder: lower ONLY bodies outside `reachable`, skip the
199
268
  * always-reachable init bodies and module building, and report deferred
200
269
  * collection diagnostics nothing flushed. */
201
270
  remainder?: boolean;
202
- /** Symbols whose deferred diagnostics reachable emit already flushed —
203
- * the remainder must not report them a second time. */
204
- alreadyFlushed?: ReadonlySet<ts.Symbol>;
205
- /** The build's target platform (LowerOptions.targetPlatform — lowerToIr
206
- * passes it to every pass). Defaults to the host. */
207
- targetPlatform?: string;
208
271
  /** Node's startup refusal (preflight's resolution walk / named-import
209
272
  * link checks): %main opens with exactly this throw, before any
210
273
  * module init — Node refuses the whole graph before anything evaluates,
211
274
  * so nothing runs. */
212
275
  startupCrash?: StartupCrash | null;
213
- /** The build's outbound native FFI declarations. */
214
- ffiImports?: readonly IrFfiImport[];
215
- /** LowerOptions.libraryCallbacks (see there). */
216
- libraryCallbacks?: boolean;
217
- /** Statically resolved child_process.fork program roots, in stable target-id order. */
218
- forkTargets?: readonly ts.SourceFile[];
276
+ /** The build's target platform (LowerOptions.targetPlatform — lowerToIr
277
+ * passes it to every pass). Defaults to the host. */
278
+ targetPlatform?: string;
279
+ /** LowerOptions.tierMode, shared by every pass. */
280
+ tierMode?: TierMode;
219
281
  workerTargets?: readonly ts.SourceFile[];
220
- /** Program-validated ambient declaration symbols for each FFI name.
221
- * Undefined in discovery's legacy call-local validation path. */
222
- ffiBindingSymbols?: ReadonlyMap<string, ReadonlySet<ts.Symbol>>;
223
- /** LowerOptions.externalTypes, threaded through every lowering pass. */
224
- externalTypes?: ReadonlyMap<string, string>;
225
- /** LowerOptions.externalTypeSpecifiersByFile, shared by every pass. */
226
- externalTypeSpecifiersByFile?: ReadonlyMap<string, readonly string[]>;
227
282
  }
228
283
  /** Build lowering runs as a reachability worklist over the ts.Program:
229
284
  *
@@ -292,6 +347,15 @@ export declare class Lowerer {
292
347
  readonly checker: ts.TypeChecker;
293
348
  readonly diags: ScrDiagnostic[];
294
349
  readonly fnSigsBySymbol: Map<ts.Symbol, FnSig>;
350
+ /** Per file: whether it assigns `exports` and `module.exports`
351
+ * (cjs-exports-object.ts). */
352
+ readonly cjsExportsAssignments: Map<ts.SourceFile, {
353
+ exports: boolean;
354
+ moduleExports: boolean;
355
+ }>;
356
+ /** Inline require() calls whose module edge closes a require cycle
357
+ * (LoadResult.inlineRequireCycleCalls). */
358
+ readonly inlineRequireCycleCalls: ReadonlySet<ts.Node>;
295
359
  /** Immutable callable aliases and compiler-generated adapters. The map
296
360
  * is symbol-keyed, so shadowing and cross-module imports keep the same
297
361
  * exact binding discipline as globals/functions. */
@@ -380,10 +444,32 @@ export declare class Lowerer {
380
444
  /** Non-null while an instance body lowers: type-parameter symbol →
381
445
  * concrete IR type, consulted inside mapType's recursion. */
382
446
  typeParamBindings: Map<ts.Symbol, IrType> | null;
447
+ /** Generic lambdas lowering as erased values (lowerLambda): their own
448
+ * type parameters are bound to `unknown`, so lambdaSignature admits
449
+ * them. */
450
+ readonly erasingLambdas: Set<import("../ts7/ast-node.js").AstNode>;
451
+ /** Function expressions lowered against a fixed target signature with a
452
+ * tuple-typed `arguments` (typed-arguments.ts). */
453
+ readonly typedArgumentsLambdas: Set<import("../ts7/ast-node.js").AstNode>;
454
+ /** Const bindings holding a forwarded fixed tuple (`const args =
455
+ * arguments as any` in a typed-arguments function) → the tuple type. */
456
+ readonly tupleAliasSymbols: Map<ts.Symbol, IrType>;
457
+ /** `??` expressions whose result is the optional callback's own function
458
+ * type (an adapted function default); their bindings take that type. */
459
+ readonly nullishFuncResults: Set<import("../ts7/ast-node.js").AstNode>;
460
+ /** The static names of the current generic instance's name-keyed
461
+ * function parameters (static-function-names.ts). */
462
+ staticFnNames: Map<ts.Symbol, string | null> | null;
463
+ /** Nesting depth of erased generic bodies being lowered (erased lambdas
464
+ * and erased instances). */
465
+ erasingDepth: number;
383
466
  localClassInstantiations: {
384
467
  owner: ts.FunctionLikeDeclaration;
385
468
  name: string;
386
469
  }[];
470
+ /** Instance types (by checker type id) of the local classes generic
471
+ * factory calls return, and the per-instance class each names. */
472
+ readonly localClassInstanceTypes: Map<number, string>;
387
473
  /** The ts-level twin of typeParamBindings, non-null while a CALL-keyed
388
474
  * instance body lowers: type-parameter symbol → the bound CHECKER type,
389
475
  * consulted where the mapped IrType has already widened away information
@@ -397,6 +483,19 @@ export declare class Lowerer {
397
483
  * typeParamBindings — the checker has no `T` to substitute, so the
398
484
  * binding rides the node-type accessor instead of mapType. */
399
485
  implicitParamTypes: Map<ts.Symbol, ts.Type> | null;
486
+ /** The builtin class each binding names (`const E = EventEmitter`,
487
+ * `const C = zlib.Gzip`), keyed by the binding's symbol; null for
488
+ * bindings that name none (builtinClassAliasOf). new, instanceof,
489
+ * typeof, .name and === resolve at compile time. */
490
+ readonly builtinClassAliases: Map<ts.Symbol, BuiltinClassRef | null>;
491
+ /** Whether some net.Socket in this program may get an encoding: a
492
+ * setEncoding call whose receiver is a socket or an untyped value.
493
+ * Computed once on first use (null until then). */
494
+ socketEncodingReachable: boolean | null;
495
+ /** Whether some server in this program may listen on a Unix socket: a
496
+ * listen call whose first argument is a string. Computed once on first
497
+ * use (null until then); address() answers the path only when true. */
498
+ unixListenReachable: boolean | null;
400
499
  /** IMPLICIT-ANY instances lowered EAGERLY at first demand (their return
401
500
  * types are inferred from the body — the call site needs them settled),
402
501
  * collected here for run()'s function list (the liftedFns discipline). */
@@ -412,8 +511,13 @@ export declare class Lowerer {
412
511
  * their symbol/node keys; no module-level cache should retain a pass. */
413
512
  readonly classSymbolKeys: Map<ts.Symbol, ClassSymbolKey | null>;
414
513
  readonly registeredClassSymbols: Map<string, ts.Symbol>;
514
+ /** Symbol-key identities by description, in resolution order (the slot
515
+ * ordinals of key-table keys — symbolKeyOf). */
516
+ readonly symbolFieldIdentities: Map<string, ts.Symbol[]>;
415
517
  readonly httpClientFnBindings: Map<ts.Symbol, HttpClientFnBinding>;
416
518
  streamPropMutatedSyms: Set<ts.Symbol> | null;
519
+ /** Whether some source reads process.exitCode (processReadsExitCode). */
520
+ readsExitCode: boolean | null;
417
521
  requestInitPropMutatedSyms: Set<ts.Symbol> | null;
418
522
  emitterEventTable: Map<string, EventSig> | null;
419
523
  emitterComputedPatterns: ComputedEventPattern[];
@@ -442,6 +546,12 @@ export declare class Lowerer {
442
546
  * carry undefined at runtime. Identifier reads keep the union tag so
443
547
  * typeof and later boundaries observe the real value. */
444
548
  readonly runtimeOptionalGlobals: Set<IrGlobal>;
549
+ /** Per CommonJS file using top-level `this`: the global holding the
550
+ * object that stands for its original exports (lowerCjsTopLevelThis). */
551
+ readonly cjsExportsThis: Map<ts.SourceFile, IrGlobal>;
552
+ /** Inline program-module require calls whose %init the enclosing member
553
+ * read or member call is already sequencing (cjs-inline-require.ts). */
554
+ readonly inlineRequireInitDone: Set<ts.CallExpression>;
445
555
  /** Bindings whose unchecked string arithmetic can produce either a number
446
556
  * (NaN for an absent read) or a string. Preserve that result union at bare
447
557
  * reads instead of applying the checker-bare string narrowing adapter. */
@@ -454,7 +564,9 @@ export declare class Lowerer {
454
564
  /** A pipeline() function stage's `source` parameter: the IR type of what
455
565
  * the pipeline passes it (the previous stage as an async iterable), set
456
566
  * while the stage lowers. Parameter typing and `for await` heads read
457
- * it before the checker's `AsyncIterable<T>`. */
567
+ * it before the checker's `AsyncIterable<T>`. A stream option callback's
568
+ * completion parameter declared with an any-typed `data` is pinned here
569
+ * too while the callback lowers (pinAnyDataCompletion). */
458
570
  readonly stageSourceTypes: Map<ts.Symbol, IrType>;
459
571
  /** Set when a match result lowers to execGroups/matchGroups, the inputs
460
572
  * of regex span folding. */
@@ -464,6 +576,10 @@ export declare class Lowerer {
464
576
  * declared optional binding to that read's bare type, so presence tests
465
577
  * on these bindings consult the stored tag instead. */
466
578
  readonly runtimeOptionalAssignedSymbols: Set<ts.Symbol>;
579
+ /** Generic function declarations whose body can return an indexed read
580
+ * that misses.
581
+ * Each instance's result admits undefined (generic-functions.ts). */
582
+ readonly runtimeOptionalGenericReturns: Set<import("../ts7/ast-node.js").AstNode>;
467
583
  /** Concise callback/lambda returns promoted by the HOF callback prepass;
468
584
  * arrows have no declaration symbol to key in fnSigsBySymbol. */
469
585
  readonly runtimeOptionalFunctionReturns: Map<import("../ts7/ast-node.js").AstNode, IrType>;
@@ -477,6 +593,8 @@ export declare class Lowerer {
477
593
  /** Record fields promoted to an undefined-armed union by an indexed-read
478
594
  * value. The key is the concrete emitted shape and field name. */
479
595
  readonly runtimeOptionalFields: Set<string>;
596
+ /** Bindings initialized by a Date's `toJSON()` (analyzeDateJsonResults). */
597
+ readonly dateJsonBindings: Set<ts.Symbol>;
480
598
  /** Record bindings whose flow class reaches storage outside the class:
481
599
  * they keep the declared layout, so an initializer from unchecked reads
482
600
  * converts once instead of the binding adopting the widened variant. */
@@ -505,11 +623,29 @@ export declare class Lowerer {
505
623
  runtimeOptionalRootOf(local: IrLocal): IrLocal;
506
624
  runtimeOptionalBindingType(node: ts.Node): IrType | null;
507
625
  runtimeOptionalBindingType(node: ts.Node, fallback: IrType): IrType;
626
+ /** A TypeScript object literal handed to a JavaScript checked-value
627
+ * parameter whose inferred type is open (`constructor({ factory, ...options
628
+ * } = {})` — the rest element admits any property): the literal names a
629
+ * property the contextual JS type does not declare, so it has no record
630
+ * layout there and is built as the plain object the JS side receives. */
631
+ private excessJsContextualProperty;
632
+ /** The index value of a keyed read of a record's index signature that
633
+ * can answer undefined for a missing key while its checker type does not
634
+ * admit undefined, or null. A literal key naming a declared field is a
635
+ * field read. */
636
+ optionalIndexSignatureRead(e: ts.ElementAccessExpression): IrType | null;
508
637
  runtimeOptionalIdentifierValue(node: ts.Expression): {
509
638
  value: IrExpr;
510
639
  present: IrType;
511
640
  unionId: string;
512
641
  } | null;
642
+ /** True when `node`'s lowered value can hold a hidden `undefined` the
643
+ * checker type does not admit: an unchecked element or member read, a call
644
+ * whose lowered return admits undefined, or a binding whose storage the
645
+ * optional-read analysis marked. Whether the value actually carries the
646
+ * undefined arm is only known once it is lowered
647
+ * (runtimeOptionalSourceValue); this is the syntactic precondition. */
648
+ isRuntimeOptionalOrigin(node: ts.Expression): boolean;
513
649
  /** Recover the original optional union when a checked single-arm helper
514
650
  * was installed before a strict property consumer could name its member.
515
651
  * Recovery covers member reads and storage roots marked by the
@@ -520,7 +656,7 @@ export declare class Lowerer {
520
656
  * value. Reuse a plain read directly or stabilize an effectful receiver
521
657
  * once, throw Node's member-read TypeError for a unit arm, and extract the
522
658
  * expected present arm otherwise. */
523
- runtimeOptionalPropertyReceiver(node: ts.Expression, value: IrExpr, expected: IrType, member: string): IrExpr | null;
659
+ runtimeOptionalPropertyReceiver(node: ts.Expression, value: IrExpr, expected: IrType, member: string, action?: "read" | "set"): IrExpr | null;
524
660
  runtimeOptionalFieldKey(shapeId: string, field: string): string;
525
661
  isRuntimeOptionalField(shapeId: string, field: string): boolean;
526
662
  isRuntimeOptionalGlobal(global: IrGlobal): boolean;
@@ -571,10 +707,28 @@ export declare class Lowerer {
571
707
  /** Settled generic class-rest metadata requires the historical emit
572
708
  * fallback so its fence can poison the original statement atomically. */
573
709
  requiresHistoricalOrderRelower: boolean;
710
+ /** A general stream value (a runtime stream class instance) reached a
711
+ * slot the child/process stdio handles represent — NodeJS.ReadableStream,
712
+ * NodeJS.WritableStream, or @types/node's stream.Readable/Writable — or
713
+ * a stdio handle reached an 'unknown' slot. lowerToIr then lowers the
714
+ * program again under the general stream representation. */
715
+ requiresGeneralNodeStreams: boolean;
716
+ /** An untyped value reached a stream slot (a checked unwrap into a
717
+ * runtime stream class, or an untyped pipe/pipeline stage). lowerToIr
718
+ * then lowers the program again with checked-dynamic stream slots
719
+ * (dyn-streams.ts). */
720
+ requiresDynNodeStreams: boolean;
721
+ /** Receiver representations forced by the per-value stream dispatch
722
+ * (dyn-streams.ts): the native arm lowers a member call on the unboxed
723
+ * stream through the ordinary class-method path. */
724
+ readonly receiverTypeOverrides: Map<import("../ts7/ast-node.js").AstNode, IrType>;
574
725
  /** Helpers that snapshot shape declaration order into their bodies.
575
726
  * Reachability lowers inits before the declarations they discover, so
576
727
  * these rebuild after the worklist restores historical shape metadata. */
577
728
  readonly shapeOrderHelperFinalizers: (() => void)[];
729
+ /** Construction witnesses that choose each shape's enumeration order
730
+ * once lowering settles (key-order-witness.ts). */
731
+ readonly keyOrder: KeyOrderNotes;
578
732
  /** Emit-override specializations (`%C.emit:<event>` — lower-event-emitter.ts's
579
733
  * emit-overrides block): interned names, the drive-loop queue, and the
580
734
  * currently-lowering specialization's context (the super-forward
@@ -586,6 +740,9 @@ export declare class Lowerer {
586
740
  /** Generated value helpers, keyed by operation and type. Callers own
587
741
  * their key prefixes; this includes more than structural conversions. */
588
742
  readonly valueHelpers: Map<string, string>;
743
+ /** structuralNarrowing's assignable classes, keyed by static and
744
+ * narrowed class name. */
745
+ readonly structuralClassPeers: Map<string, readonly string[]>;
589
746
  /** Interned node:assert helpers (deep-equality comparisons keyed by
590
747
  * typeKey, throws wrappers keyed by callback type + expected class) —
591
748
  * the valueHelpers pattern with its own namespace. */
@@ -606,6 +763,16 @@ export declare class Lowerer {
606
763
  /** Method adapter names are owned by class-method-values. Looking them
607
764
  * up must not scan and retain every unrelated lifted function. */
608
765
  readonly classMethodValueHelpers: Set<string>;
766
+ /** Reflected class methods whose lambda is lowering right now (null
767
+ * until lowerLambda named it), with the closure it will produce: a
768
+ * method that reads itself as a value inside its own body
769
+ * (`o.create = K.create`) takes this closure instead of lowering the
770
+ * method again. */
771
+ readonly methodLambdasInProgress: Map<import("../ts7/ast-node.js").AstNode, {
772
+ fnName: string;
773
+ type: IrType;
774
+ selfReads: number;
775
+ } | null>;
609
776
  readonly classMethodValueSelections: Map<string, import("./class-method-values.js").ClassMethodValueSelection>;
610
777
  /** Callee names of every interned coercion helper whose CALL mints a
611
778
  * FRESH closure per evaluation (%fn.width.*, %fn.adapt.*,
@@ -632,6 +799,13 @@ export declare class Lowerer {
632
799
  kind: "func";
633
800
  };
634
801
  }>;
802
+ /** Accessor exports' link-time values for ES-module importers, and the
803
+ * per-module flag that the copy already ran (cjsAccessorSnapshotStores). */
804
+ readonly cjsAccessorSnapshots: Map<import("../ts7/ast-node.js").AstNode, {
805
+ id: string;
806
+ type: IrType;
807
+ }>;
808
+ readonly cjsSnapshotReady: Map<ts.SourceFile, string>;
635
809
  /** Interned `%iter.drain.<n>` helpers (classIteratorDrainCall): one per
636
810
  * receiver class — the eager drain of a class iterable's protocol into
637
811
  * a fresh element array, behind array/call spreads. */
@@ -656,6 +830,8 @@ export declare class Lowerer {
656
830
  * so named imports, namespace reads, CommonJS bindings, and alias chains
657
831
  * all reuse one immortal zero-capture closure. */
658
832
  readonly builtinCallableValueFns: Map<string, string>;
833
+ /** Each builtin function-value adapter's Node name, for boxed values. */
834
+ readonly builtinCallableValueNames: Map<string, string>;
659
835
  /** Optional-chain lowering state. While a chain body lowers, the guarded
660
836
  * receiver NODE reads as a chainRecv (typed by the narrowed arm) instead
661
837
  * of re-lowering, its checker type reads non-nullish (typeOf), and the
@@ -709,6 +885,10 @@ export declare class Lowerer {
709
885
  /** Named method slots observed before class collection need a callable
710
886
  * ABI and shared prototype descriptors instead of call-site specialization. */
711
887
  readonly prototypeMethodAccesses: Map<string, import("../ts7/ast-node.js").AstNode>;
888
+ /** Well-known symbol methods (`sym:iterator`) the program may replace
889
+ * through a symbol-keyed write: an instance or prototype property, or a
890
+ * reflection call. */
891
+ readonly replacedSymbolMethods: Set<string>;
712
892
  /** Typed calls through class-backed protocols, by signature; class
713
893
  * dynamic dispatch adds their native arms (class-protocol-dispatch.ts). */
714
894
  readonly protocolDispatches: Map<string, ProtocolDispatch>;
@@ -726,6 +906,9 @@ export declare class Lowerer {
726
906
  * base vtable signature is collected. Unused checked slots carry undefined. */
727
907
  readonly virtualJsMethodArity: Map<ts.MethodDeclaration, number>;
728
908
  readonly checkedVirtualJsMethods: Set<ts.MethodDeclaration>;
909
+ /** Overrides whose return narrows part of the base's union return; they
910
+ * return through the base's union ABI (overrideReturnAbi). */
911
+ readonly unionReturnOverrides: Set<ts.MethodDeclaration>;
729
912
  readonly checkedVirtualJsAccessors: Set<ts.GetAccessorDeclaration | ts.SetAccessorDeclaration>;
730
913
  readonly checkedVirtualJsValueReturns: Set<ts.MethodDeclaration>;
731
914
  /** The class whose members are lowering — `super` binds lexically to it
@@ -749,6 +932,10 @@ export declare class Lowerer {
749
932
  * prepended by lowerFileInit so the bindings are live before any
750
933
  * top-level statement runs. */
751
934
  readonly jsonInitActions: Map<ts.SourceFile, IrStmt[]>;
935
+ /** CommonJS require() of JSON documents: the shared object per document
936
+ * and the calls reading it (json-require.ts). */
937
+ readonly jsonRequireModules: Map<string, JsonRequireModule>;
938
+ readonly jsonRequireCalls: Map<ts.CallExpression, JsonRequireModule>;
752
939
  /** Dynamic `import("literal")` resolutions, keyed
753
940
  * `fileName\u0000specifier` (collectDynamicImports fills it during npm
754
941
  * collection; lowerDynamicImportCall reads it per site). */
@@ -770,6 +957,13 @@ export declare class Lowerer {
770
957
  /** Inline Promise.then parameters whose contextual type is a builtin
771
958
  * module namespace anonymous object. The settled native token is the
772
959
  * ABI truth even when the checker type has no stable module symbol. */
960
+ /** Receivers of a stream call on a Hash or Hmac (lowerHashStreamCall):
961
+ * for the duration of that call, the receiver lowers to the Transform of
962
+ * the value held in the named local. */
963
+ readonly hashStreamReceivers: Map<ts.ExpressionBase, {
964
+ localId: string;
965
+ type: IrType;
966
+ }>;
773
967
  readonly moduleNsParamOverrides: Map<ts.ParameterDeclaration, {
774
968
  kind: "moduleNs";
775
969
  moduleId: string;
@@ -783,6 +977,12 @@ export declare class Lowerer {
783
977
  readonly workerTargets: readonly ts.SourceFile[];
784
978
  readonly workerTargetIdByPath: Map<string, number>;
785
979
  usesWorkers: boolean;
980
+ /** The program uses the WebAssembly API (builtins/webassembly.ts): the
981
+ * build translates the modules it discovers. */
982
+ usesWebAssembly: boolean;
983
+ /** The program calls WebAssembly.Module.customSections: translated
984
+ * modules keep their custom sections. */
985
+ usesWasmCustomSections: boolean;
786
986
  /** The program constructs a LifetimeRegion (lifetime-regions.ts). */
787
987
  usesLifetimeRegions: boolean;
788
988
  /** Per-directory answers of experimental-import.ts's declaration-file test. */
@@ -796,6 +996,16 @@ export declare class Lowerer {
796
996
  key: string;
797
997
  node: ts.Node;
798
998
  }>;
999
+ /** Each ThreadSlots name's type arguments (thread-slots.ts). */
1000
+ readonly threadSlotNames: Map<string, string>;
1001
+ /** The family each `new ThreadSlots(...)` opens. */
1002
+ readonly threadSlotFamilies: Map<ts.NewExpression, {
1003
+ name: string;
1004
+ key: IrType;
1005
+ value: IrType;
1006
+ }>;
1007
+ /** Classes used as ThreadSlots keys: their hierarchies carry a slot word. */
1008
+ readonly threadSlotKeys: Set<string>;
799
1009
  readonly forkTargetIdByPath: Map<string, number>;
800
1010
  /** Namespace ModuleBlocks this program lowers, filled by splitFiles:
801
1011
  * "flattened" — an instantiated namespace whose body joined the file's
@@ -874,6 +1084,9 @@ export declare class Lowerer {
874
1084
  deferredModuleInitializers: DeferredModuleInitializers | null;
875
1085
  fnStack: FnCtx[];
876
1086
  readonly liftedFns: IrFunction[];
1087
+ /** Runtime-provided classes used as values (defineClassValueConstruct),
1088
+ * by IR class name. */
1089
+ readonly runtimeClassValues: Map<string, ClassInfo>;
877
1090
  /** One Error-method helper belongs to this lowering session. Its cached
878
1091
  * dispatch revision needs no weak-key identity or process-global state. */
879
1092
  errorMethodDispatchRevision: string | null;
@@ -906,6 +1119,21 @@ export declare class Lowerer {
906
1119
  * by class name (cycle-initialization.ts). */
907
1120
  readonly classInitFlags: Map<string, CycleInitFlag>;
908
1121
  readonly cycleInitDeclarations: Map<ts.StatementBase, CycleInitFlag[]>;
1122
+ /** Each class's constructor return plan by class name
1123
+ * (constructor-returns.ts); null when no return can yield an object. */
1124
+ readonly constructorReturnPlans: Map<string, ConstructorReturnPlan | null>;
1125
+ /** Pointer-guarded (`tdz`) module bindings declared without an
1126
+ * initializer (`let f: T;`): an initialization flag tracks their
1127
+ * declaration (markCycleEarlyBindings). */
1128
+ readonly uninitializedLexicalGlobals: Map<string, {
1129
+ name: ts.Identifier;
1130
+ module: ts.SourceFile;
1131
+ symbol: ts.Symbol;
1132
+ }>;
1133
+ /** CommonJS require declarations whose bindings code running before the
1134
+ * require can read, and those references (require-initialization.ts). */
1135
+ readonly requireInitFlags: Map<ts.VariableDeclaration, RequireInitFlag>;
1136
+ readonly requireEarlyReferences: EarlyReference[];
909
1137
  get ctx(): FnCtx;
910
1138
  get scopes(): Map<ts.Symbol, IrLocal>[];
911
1139
  /** Names of bodies a prior reachability pass reached; null lowers everything. */
@@ -929,6 +1157,16 @@ export declare class Lowerer {
929
1157
  /** Coverage remainder mode: the reachability gate inverts (see wantBody)
930
1158
  * and no module is built. */
931
1159
  readonly remainder: boolean;
1160
+ /** `--tier` (tier-analysis.ts). Stage S2 is report-only: both modes
1161
+ * refuse and fence exactly as before. Stage S6 demotes the units of
1162
+ * committed refusals in "auto" and keeps them refusals in "static-only". */
1163
+ readonly tierMode: TierMode;
1164
+ readonly generalNodeStreams: boolean;
1165
+ readonly dynNodeStreams: boolean;
1166
+ /** Functions finishModule placed in the dynamic tier (ir/tiers.ts). */
1167
+ dynamicFunctions: DynamicFunction[];
1168
+ /** Their IR, for coverage's dynamic statement count. */
1169
+ dynamicBodies: IrFunction[];
932
1170
  /** Deferred collection diagnostics (failed signatures/class shapes) by
933
1171
  * declaration symbol: an unreached declaration must not fail the build,
934
1172
  * so its diagnostics wait until a reference makes them relevant. */
@@ -956,6 +1194,9 @@ export declare class Lowerer {
956
1194
  readonly targetPlatform: string;
957
1195
  /** LowererMode.startupCrash — buildMain opens %main with the throw. */
958
1196
  readonly startupCrash: StartupCrash | null;
1197
+ /** The project's tsconfig sets `checkJs`. */
1198
+ readonly projectCheckJs: boolean;
1199
+ private readonly checkedJsFiles;
959
1200
  /** Outbound native bindings by their source-level ambient name. */
960
1201
  readonly ffiImports: readonly IrFfiImport[];
961
1202
  readonly libraryCallbacks: boolean;
@@ -997,18 +1238,45 @@ export declare class Lowerer {
997
1238
  total: number;
998
1239
  failed: number;
999
1240
  }>;
1241
+ /** Statements and field initializers already in the coverage totals, and
1242
+ * those already counted as failed. Speculative lowering can lower one
1243
+ * function body several times: each receiver probe of
1244
+ * `(function () { ... }).call(this)` lowers it. A source statement counts
1245
+ * once however many times it lowers. */
1246
+ private readonly countedStatements;
1247
+ private readonly failedStatements;
1248
+ /** Adds `node` to the coverage totals unless it is already counted (the
1249
+ * caller checks suppressStats). */
1250
+ countStatement(node: ts.Node, file: string | undefined): void;
1251
+ /** Counts `node` as failed unless it already is (the caller checks
1252
+ * suppressStats). */
1253
+ countStatementFailed(node: ts.Node, file: string | undefined): void;
1000
1254
  /** Bumps the per-file attribution counter (no-op unless provenance is
1001
1255
  * active and this is the emit/discovery lane — mirror the CALLER's
1002
1256
  * suppressStats guard, this method only gates remainder). */
1003
1257
  bumpFileStat(file: string, kind: "total" | "failed"): void;
1004
1258
  constructor(program: ts.Program, entry: ts.SourceFile, moduleOrder: ts.SourceFile[], mode?: LowererMode);
1259
+ /** A JavaScript file TypeScript type-checks (`// @ts-check`, or the
1260
+ * project's `checkJs`). Its JSDoc types are enforced like TypeScript
1261
+ * annotations, so its classes use them as a TypeScript file would. */
1262
+ checkedJsFile(sf: ts.SourceFile): boolean;
1005
1263
  registerBuiltinErrorClasses(): void;
1006
1264
  private classProtocols;
1007
1265
  classImplementedProtocol(type: ts.Type): boolean;
1008
1266
  /** Declared class fields may store a DYN value only when its static type
1009
- * names checked protocol identity or an owned runtime handle (a Worker
1010
- * or MessagePort); `unknown` and `any` fields stay refused. */
1267
+ * is `unknown` or `object` (also with `null` or `undefined`, or an array
1268
+ * of those), names checked protocol identity, is an owned runtime
1269
+ * handle (a Worker or MessagePort, or a fetch Headers/Request/Response),
1270
+ * or is a WeakMap/WeakSet (native weak collections live in
1271
+ * checked-dynamic storage, as locals of those types do); `any` fields
1272
+ * stay refused. */
1011
1273
  classFieldStoresDyn(type: ts.Type): boolean;
1274
+ /** A stdlib WeakMap or WeakSet, alone or with `null`/`undefined`. */
1275
+ private weakCollectionType;
1276
+ /** `unknown`, `object`, an array of those, or a union of those with
1277
+ * `null` and `undefined`: types whose values use checked-dynamic storage
1278
+ * as they do in JavaScript class fields. */
1279
+ private opaqueValueType;
1012
1280
  /** The nominal identity of a checker module-namespace type. Program
1013
1281
  * modules use their normalized absolute source name; supported builtins
1014
1282
  * use the lowering tables' canonical bare name. */
@@ -1017,6 +1285,8 @@ export declare class Lowerer {
1017
1285
  builtinErrorInfoOf(symbol: ts.Symbol | null | undefined): ClassInfo | null;
1018
1286
  builtinEmitterInfoOf(symbol: ts.Symbol | null | undefined): ClassInfo | null;
1019
1287
  builtinStreamInfoOf(symbol: ts.Symbol | null | undefined): ClassInfo | null;
1288
+ builtinClassAliasOf(symbol: ts.Symbol): BuiltinClassRef | null;
1289
+ defineClassValueConstruct(info: ClassInfo): void;
1020
1290
  /** Program-wide qualified name for a top-level declaration. */
1021
1291
  qualify(sf: ts.SourceFile, name: string): string;
1022
1292
  /** The IR name mapType gives class instance types — must agree with
@@ -1080,6 +1350,11 @@ export declare class Lowerer {
1080
1350
  * JS module, the statement is not discarded by a later table, and the
1081
1351
  * identifier resolves to a class declaration. Null otherwise. */
1082
1352
  cjsMemberExportClassSymbol(d: ts.Node): ts.Symbol | null;
1353
+ /** For an inline program `require("./c")`: the class symbol its module's
1354
+ * kept `module.exports = <class identifier>` names, or null when the
1355
+ * whole export is something else. Undefined when `expr` is not such a
1356
+ * require. */
1357
+ memberExportRequiredClass(expr: ts.Expression): ts.Symbol | null | undefined;
1083
1358
  /** The CommonJS JS module a DEFAULT-import binding's declaration loads
1084
1359
  * (`import d from "./lib.cjs"`), or null: Node's ESM-CJS interop binds
1085
1360
  * the default to module.exports — exactly a require binding — so those
@@ -1087,6 +1362,12 @@ export declare class Lowerer {
1087
1362
  * (any .ts, ESM-syntax .js/.mjs) answer null and keep the ESM default
1088
1363
  * machinery. */
1089
1364
  private cjsDefaultImportDepOf;
1365
+ /** The table module a non-identifier module reference names: an inline
1366
+ * `require("./x")` (cjs-inline-require.ts) or tsc's unstamped
1367
+ * `x_1.default` interop read (cjs-tsc-interop.ts). */
1368
+ cjsModuleRefDepOf(expr: ts.Expression): ts.SourceFile | null;
1369
+ /** The table module a CommonJS module binding identifier names. */
1370
+ cjsModuleBindingDepOf(expr: ts.Identifier): ts.SourceFile | null;
1090
1371
  /** The compiled module behind a require-like namespace binding: an
1091
1372
  * ordinary CommonJS require declaration, a canonical createRequire
1092
1373
  * declaration, or an ESM default import of CommonJS. One resolver keeps
@@ -1129,6 +1410,17 @@ export declare class Lowerer {
1129
1410
  * calls of these names. Runs in every pass so the ids are
1130
1411
  * deterministic. */
1131
1412
  prepareModuleInits(parts: FileParts[]): void;
1413
+ /** node:punycode's load at a require() call: the module body reports
1414
+ * DEP0040 when it first runs, unless isInsideNodeModules() finds the
1415
+ * requiring frame in a dependency, and process.emitWarning delivers the
1416
+ * report on the next tick. Later loads are cache hits either way. */
1417
+ punycodeRequireWarning(node: ts.Node): IrStmt;
1418
+ /** node:punycode's DEP0040 for a static ES import anywhere in the module
1419
+ * graph: Node links builtins before any module evaluates, so the report
1420
+ * comes first, before the program can register a 'warning' listener —
1421
+ * whichever file imports it (a dependency's ES import has no requiring
1422
+ * frame either). Prepended to the entry's %init. */
1423
+ punycodeLinkWarning(): IrStmt[];
1132
1424
  /** The lowering of a CommonJS `require("./local")` occurrence: a call of
1133
1425
  * the required module's run-once %init at exactly this statement's
1134
1426
  * position — Node's inline evaluation, with the guard supplying the
@@ -1149,6 +1441,16 @@ export declare class Lowerer {
1149
1441
  * TypeScript's default indexed-access type is a useful source annotation,
1150
1442
  * but it is not a runtime proof; promoting only the affected slots keeps
1151
1443
  * the rest of the dense ABI unchanged. */
1444
+ /** A Date's `toJSON()` answers null for an invalid date while the lib
1445
+ * types say `string`: unannotated bindings initialized by such a call,
1446
+ * and object-literal fields holding one, keep `string | null`. */
1447
+ analyzeDateJsonResults(parts: FileParts[]): void;
1448
+ /** A file-scope get-or-create read (`let e = map[k]; if (e ===
1449
+ * undefined) ...` over an index-signature record) keeps a missing key as
1450
+ * undefined (isGuardedRecordRead). Its pre-registered global takes the
1451
+ * undefined arm before any body reads it; the declaration lowers its
1452
+ * initializer as the matching absence probe. */
1453
+ analyzeGuardedRecordReadGlobals(parts: FileParts[]): void;
1152
1454
  analyzeRuntimeOptionalArrayReads(parts: FileParts[]): void;
1153
1455
  run(): LowerResult;
1154
1456
  /** Final retention, pruning, and module assembly shared by ordinary emit
@@ -1215,6 +1517,21 @@ export declare class Lowerer {
1215
1517
  deferToRuntimeFence(diagsBefore: number, node: ts.Node, target: RuntimeFenceStatementTarget): IrStmt | null;
1216
1518
  deferToRuntimeFence(diagsBefore: number, node: ts.Node, target: RuntimeFenceFunctionTarget): IrFunction | null;
1217
1519
  deferToRuntimeFence(diagsBefore: number, node: ts.Node, target: RuntimeFenceClosureTarget): IrExpr | null;
1520
+ /** The runtimeFence statement that throws `first`'s message (or the
1521
+ * fallback's) at `node`. */
1522
+ private runtimeFenceStmt;
1523
+ /** The current length of the capture buffer (diagSink), or 0 without one:
1524
+ * the mark capturedRuntimeFence reads the refusal from. */
1525
+ diagSinkMark(): number;
1526
+ /** The runtimeFence for a JavaScript statement refused while a capture
1527
+ * buffer (diagSink) is active. The buffer's owner decides whether its
1528
+ * diagnostics report, and some owners keep the lowered result (a
1529
+ * successful tryLowerExpression candidate, a computed class base whose
1530
+ * diagnostics defer to the class). Without a fence the refused statement
1531
+ * would vanish from that result; with one it throws the refusal when it
1532
+ * runs, exactly like the fence lowerStmts emits outside a buffer. The
1533
+ * diagnostics stay in the buffer for its owner. Null without a buffer. */
1534
+ capturedRuntimeFence(sinkMark: number, node: ts.Node): IrStmt | null;
1218
1535
  /** All diagnostics land here; while a generic instance body is lowering,
1219
1536
  * the instantiation context is appended so the user knows which concrete
1220
1537
  * types made the (source-anchored) construct fail. */
@@ -1245,6 +1562,10 @@ export declare class Lowerer {
1245
1562
  * body lowers) type-parameter bindings threaded through. A supplied mapper
1246
1563
  * retains interface-view substitutions while sharing ABI normalization. */
1247
1564
  mapTypeOf(t: ts.Type, mapper?: (type: ts.Type) => IrType | null): IrType | null;
1565
+ /** The runtime type of a record member slot typed `t`: an overloaded
1566
+ * member's erased function (erasedOverloadMemberType — the type a record
1567
+ * shape stores for it), otherwise mapTypeOf. */
1568
+ memberSlotTypeOf(t: ts.Type): IrType | null;
1248
1569
  /** The one position where a contextual UNION must not be adopted over the
1249
1570
  * expression's own: the LEFT operand of `&&`, `||`, or `??`. Adopting a
1250
1571
  * contextual union is normally safe because tsc proved the value
@@ -1425,6 +1746,9 @@ export declare class Lowerer {
1425
1746
  recordUnionWrapHelper(source: IrType & {
1426
1747
  kind: "record";
1427
1748
  }, toId: string, loc: SrcLoc): string | null;
1749
+ recordUnionRouteHelper(source: IrType & {
1750
+ kind: "record";
1751
+ }, toId: string, loc: SrcLoc): string | null;
1428
1752
  unionRetagHelper(fromId: string, toId: string, loc: SrcLoc, trappable?: ReadonlySet<number>): string | null;
1429
1753
  narrowedArmHelper(fromId: string, target: IrType, loc: SrcLoc): string | null;
1430
1754
  checkedNarrowCall(helper: string, value: IrExpr, type: IrType, loc: SrcLoc): IrExpr;
@@ -1456,6 +1780,10 @@ export declare class Lowerer {
1456
1780
  /** Lower for a known destination, then apply ordinary value coercion.
1457
1781
  * Fresh arrays and records use the destination layout directly. */
1458
1782
  lowerExprExpecting(node: ts.Expression, expected: IrType | undefined): IrExpr;
1783
+ /** The conversion lowerExprExpecting applies to `e`, the lowered value
1784
+ * of `node` when it is not fresh construction the destination directs
1785
+ * (a literal, conditional, or empty collection). */
1786
+ coerceExistingInto(node: ts.Expression, e: IrExpr, expected: IrType): IrExpr;
1459
1787
  /** An unannotated empty collection has no existing elements or aliases
1460
1788
  * that constrain its layout. An explicit type argument still wins. */
1461
1789
  emptyCollectionFor(node: ts.Expression, expected: IrType): IrExpr | null;
@@ -1471,6 +1799,14 @@ export declare class Lowerer {
1471
1799
  * declared result type of an index-signature read under
1472
1800
  * noUncheckedIndexedAccess. Null when the type cannot take the arm. */
1473
1801
  withUndefinedArmOf(t: IrType): IrType | null;
1802
+ /** Whether a promise of `from` converts to a promise of `to` through the
1803
+ * checked payload widening (coerceToExpected's boxed-settlement rule,
1804
+ * which keeps the promise's identity and settlement turn). */
1805
+ promisePayloadWidens(from: IrType & {
1806
+ kind: "promise";
1807
+ }, to: IrType & {
1808
+ kind: "promise";
1809
+ }): boolean;
1474
1810
  /** True when a static type converts to a dyn value (the dynFrom
1475
1811
  * walker's domain): JSON-safe, bytes<u8> (Uint8Array/Buffer — the checked-dynamic tree's
1476
1812
  * bytes kind, payload copied; stdin chunks into unknown-typed helpers),
@@ -1492,6 +1828,13 @@ export declare class Lowerer {
1492
1828
  * undefined, which the void slot drops. Units are pure literals, so
1493
1829
  * nothing evaluates; unit-typed non-literals keep the fences. */
1494
1830
  lowerReturnValue(node: ts.Expression): IrExpr | null;
1831
+ /** A fresh JS object literal returned into a checked-native (dyn) result,
1832
+ * which lowers straight into that storage. */
1833
+ private returnsLiteralIntoDyn;
1834
+ /** The value of `return <e>` (already lowered untyped) in an async or
1835
+ * void context: a promise flattens through the returned-promise await,
1836
+ * everything else converts into the declared result. */
1837
+ private asyncReturnValueOf;
1495
1838
  /** Whether a promise returned here resolves the function's own promise
1496
1839
  * by adoption (async functions; async generators await their return
1497
1840
  * operand instead). */
@@ -1510,6 +1853,10 @@ export declare class Lowerer {
1510
1853
  * caller never sees a value, so the return goes out bare. Async
1511
1854
  * void-inner returns still resolve a returned promise first. */
1512
1855
  lowerReturnStmt(node: ts.Expression, loc: SrcLoc): IrStmt;
1856
+ /** `return u` of a promise-armed union (maybe-promise, or promise-or-
1857
+ * unit) in an async function: adopt the promise arm, fulfill with the
1858
+ * others (maybe-promise.ts). Null when the return is not that shape. */
1859
+ maybePromiseReturn(node: ts.Expression, e: IrExpr, expected: IrType): IrStmt | null;
1513
1860
  private lowerReturnOf;
1514
1861
  maybeNarrow(expr: IrExpr, node: ts.Node): IrExpr;
1515
1862
  lowerUnitComparison(left: IrExpr, right: IrExpr, negated: boolean, loc: SrcLoc): IrExpr | null;
@@ -1609,6 +1956,21 @@ export declare class Lowerer {
1609
1956
  ordinal: number;
1610
1957
  }): void;
1611
1958
  lowerClassExpressionInfo(expr: ts.ClassLikeDeclaration): ClassInfo;
1959
+ /** Depth of the whole-program analyses that query types across every
1960
+ * file before reachability is known (speculativeTypeQueries). */
1961
+ private speculativeTypeQueryDepth;
1962
+ /** Runs a whole-program analysis whose type queries are speculative: they
1963
+ * visit every file, reached or not, and no statement or declaration owns
1964
+ * a refusal they trigger (collectLocalClassForType). */
1965
+ speculativeTypeQueries(analysis: () => void): void;
1966
+ /** Collects a function-local class because a type query named its
1967
+ * instance type. Collection and body lowering own a refusal of that
1968
+ * class: the poison reaches the declaration or statement that asked, as
1969
+ * before. A speculative whole-program analysis owns none, so there the
1970
+ * refusal stays reported (the build fails with it, as it did where such
1971
+ * an analysis already caught the poison) and the class is unmappable for
1972
+ * the query instead of the poison escaping the compiler. */
1973
+ collectLocalClassForType(decl: ts.ClassLikeDeclaration): boolean;
1612
1974
  lowerClassExpression(expr: ts.ClassLikeDeclaration): IrExpr;
1613
1975
  findMethodOn(info: ClassInfo | null, name: string): {
1614
1976
  declarer: ClassInfo;
@@ -1620,6 +1982,9 @@ export declare class Lowerer {
1620
1982
  gen?: NonNullable<IrFunction["generator"]>;
1621
1983
  };
1622
1984
  } | null;
1985
+ /** A class whose root is the runtime's %Error (builtin errors and their
1986
+ * program subclasses). */
1987
+ isErrorRootedClass(className: string): boolean;
1623
1988
  isSubclassOf(sub: string, sup: string): boolean;
1624
1989
  inHierarchy(info: ClassInfo): boolean;
1625
1990
  overrideBelow(info: ClassInfo, name: string): boolean;
@@ -1722,6 +2087,9 @@ export declare class Lowerer {
1722
2087
  collectGlobals(sf: ts.SourceFile, topStmts: ts.Statement[]): void;
1723
2088
  lowerFileInit(sf: ts.SourceFile, stmts: ts.Statement[], name: string): IrFunction;
1724
2089
  lowerDefaultExport(stmt: ts.ExportAssignment): IrStmt | null;
2090
+ /** Statements %main runs before any module initializer: runtime
2091
+ * registrations the lowering passes add. */
2092
+ readonly mainPrelude: IrStmt[];
1725
2093
  buildMain(): IrFunction;
1726
2094
  declareLocal(nameNode: ts.Node, name: string, type: IrType, mutable: boolean): IrLocal;
1727
2095
  /** A never-returning call in a value position of type `expected`: the
@@ -1733,6 +2101,21 @@ export declare class Lowerer {
1733
2101
  * defaulted parameter (the parameter's symbol binds to the separately-
1734
2102
  * declared body local; nothing in the source can name this one). */
1735
2103
  declareHiddenLocal(name: string, type: IrType): IrLocal;
2104
+ /** The body binding of a fixed-tuple rest parameter: one native slot per
2105
+ * position (the flattened ABI), rebuilt into the tuple the source names.
2106
+ * The empty tuple rides the empty-array representation. */
2107
+ declareRestTupleParam(decl: ts.ParameterDeclaration, nameNode: ts.Identifier, elemShapes: readonly ParamShape[], params: IrParam[], prologue: IrStmt[]): void;
2108
+ /** `value as never` flowing into a typed slot: `never` is assignable to
2109
+ * every type, so the assertion promises the slot's type. A dynamic value
2110
+ * takes the checked extraction to it, as `value as T` would. Null for
2111
+ * every other form, and for numeric, dynamic and union slots, which
2112
+ * keep the existing lowering. */
2113
+ private neverAssertionInto;
2114
+ /** The tuple record of a forwarded-only rest tuple's native slots. */
2115
+ private forwardedSlotsTuple;
2116
+ /** A fresh tuple holding the given positional slots, typed `tupleType`
2117
+ * (a tuple record, or the empty-array form of `[]`). */
2118
+ tupleOfSlots(slots: readonly IrLocal[], tupleType: IrType, blame: ts.Node, loc: SrcLoc): IrExpr;
1736
2119
  /** Declares a callee's parameter locals from its ParamShapes and builds
1737
2120
  * the DEFAULT-PARAM PROLOGUE. Required/optional/rest params bind their
1738
2121
  * symbol directly (one local of the ABI type). A defaulted param `x: T = e`
@@ -1763,7 +2146,7 @@ export declare class Lowerer {
1763
2146
  /** Lexical `this` — the enclosing method's this-param, possibly captured
1764
2147
  * through arrows (function expressions/declarations reset `this` in JS;
1765
2148
  * their bodies never see an enclosing method's binding). */
1766
- resolveThis(): IrLocal | null;
2149
+ resolveThis(blame?: ts.Node): IrLocal | null;
1767
2150
  peekLocal(ident: ts.Identifier): IrLocal | null;
1768
2151
  resolveKey(symbol: ts.Symbol | undefined, blame?: ts.Node): IrLocal | null;
1769
2152
  isSelfReference(ident: ts.Identifier): boolean;
@@ -1980,7 +2363,7 @@ export declare class Lowerer {
1980
2363
  }, loc: SrcLoc): IrExpr | null;
1981
2364
  lowerSpawnSyncCall(expr: ts.CallExpression, loc: SrcLoc): IrExpr;
1982
2365
  lowerSpawnCall(expr: ts.CallExpression, loc: SrcLoc): IrExpr;
1983
- lowerExecFileCall(expr: ts.CallExpression, loc: SrcLoc): IrExpr;
2366
+ lowerExecFileCall(expr: ts.CallExpression, loc: SrcLoc, shell?: boolean): IrExpr;
1984
2367
  lowerExecSyncCall(expr: ts.CallExpression, shell: boolean, loc: SrcLoc): IrExpr;
1985
2368
  envToPairsHelper(shapeId: string, loc: SrcLoc): string | null;
1986
2369
  lowerJsonMethodCall(call: ts.CallExpression, access: ts.PropertyAccessExpression): IrExpr | null;