@scriptc/compiler 0.3.6 → 0.4.1

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 (1358) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +717 -55
  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 +20 -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 +9 -0
  14. package/dist/backend/library-pack.js.map +1 -1
  15. package/dist/backend/link-plan-core.d.ts +2 -0
  16. package/dist/backend/link-plan-core.js +2 -0
  17. package/dist/backend/link-plan-core.js.map +1 -1
  18. package/dist/backend/link-plan.d.ts +1 -0
  19. package/dist/backend/link-plan.js +1 -0
  20. package/dist/backend/link-plan.js.map +1 -1
  21. package/dist/backend/llvm/alloc.d.ts +41 -4
  22. package/dist/backend/llvm/alloc.js +138 -7
  23. package/dist/backend/llvm/alloc.js.map +1 -1
  24. package/dist/backend/llvm/alloc.test.js +30 -1
  25. package/dist/backend/llvm/alloc.test.js.map +1 -1
  26. package/dist/backend/llvm/appended-array-literals.test.js +1 -1
  27. package/dist/backend/llvm/array-search.js +3 -1
  28. package/dist/backend/llvm/array-search.js.map +1 -1
  29. package/dist/backend/llvm/array-search.test.js +1 -1
  30. package/dist/backend/llvm/blocks.d.ts +8 -0
  31. package/dist/backend/llvm/blocks.js +43 -1
  32. package/dist/backend/llvm/blocks.js.map +1 -1
  33. package/dist/backend/llvm/blocks.test.js +22 -1
  34. package/dist/backend/llvm/blocks.test.js.map +1 -1
  35. package/dist/backend/llvm/byte-numbers.js +15 -5
  36. package/dist/backend/llvm/byte-numbers.js.map +1 -1
  37. package/dist/backend/llvm/bytes-alias.d.ts +14 -0
  38. package/dist/backend/llvm/bytes-alias.js +20 -0
  39. package/dist/backend/llvm/bytes-alias.js.map +1 -0
  40. package/dist/backend/llvm/bytes-loop-versions.d.ts +86 -0
  41. package/dist/backend/llvm/bytes-loop-versions.js +506 -0
  42. package/dist/backend/llvm/bytes-loop-versions.js.map +1 -0
  43. package/dist/backend/llvm/bytes-loop-versions.test.d.ts +1 -0
  44. package/dist/backend/llvm/bytes-loop-versions.test.js +244 -0
  45. package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -0
  46. package/dist/backend/llvm/call-lifetimes.js +50 -1
  47. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  48. package/dist/backend/llvm/call-lifetimes.test.js +34 -0
  49. package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
  50. package/dist/backend/llvm/checked-narrows.test.js +1 -1
  51. package/dist/backend/llvm/checked-value-lifetimes.js +4 -1
  52. package/dist/backend/llvm/checked-value-lifetimes.js.map +1 -1
  53. package/dist/backend/llvm/classes.d.ts +38 -1
  54. package/dist/backend/llvm/classes.js +185 -35
  55. package/dist/backend/llvm/classes.js.map +1 -1
  56. package/dist/backend/llvm/classes.test.js +79 -17
  57. package/dist/backend/llvm/classes.test.js.map +1 -1
  58. package/dist/backend/llvm/common.d.ts +21 -3
  59. package/dist/backend/llvm/common.js +51 -3
  60. package/dist/backend/llvm/common.js.map +1 -1
  61. package/dist/backend/llvm/constant-callbacks.d.ts +5 -1
  62. package/dist/backend/llvm/constant-callbacks.js +55 -12
  63. package/dist/backend/llvm/constant-callbacks.js.map +1 -1
  64. package/dist/backend/llvm/constant-callbacks.test.js +88 -1
  65. package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
  66. package/dist/backend/llvm/counted-loops.d.ts +4 -0
  67. package/dist/backend/llvm/counted-loops.js +37 -0
  68. package/dist/backend/llvm/counted-loops.js.map +1 -1
  69. package/dist/backend/llvm/dense-array-access.d.ts +15 -4
  70. package/dist/backend/llvm/dense-array-access.js +125 -44
  71. package/dist/backend/llvm/dense-array-access.js.map +1 -1
  72. package/dist/backend/llvm/dense-array-access.test.js +63 -3
  73. package/dist/backend/llvm/dense-array-access.test.js.map +1 -1
  74. package/dist/backend/llvm/dense-array-loops.d.ts +51 -0
  75. package/dist/backend/llvm/dense-array-loops.js +162 -0
  76. package/dist/backend/llvm/dense-array-loops.js.map +1 -0
  77. package/dist/backend/llvm/dense-array-loops.test.d.ts +1 -0
  78. package/dist/backend/llvm/dense-array-loops.test.js +128 -0
  79. package/dist/backend/llvm/dense-array-loops.test.js.map +1 -0
  80. package/dist/backend/llvm/dyn-handle-tags.test.d.ts +1 -0
  81. package/dist/backend/llvm/dyn-handle-tags.test.js +38 -0
  82. package/dist/backend/llvm/dyn-handle-tags.test.js.map +1 -0
  83. package/dist/backend/llvm/dyn.d.ts +37 -4
  84. package/dist/backend/llvm/dyn.js +354 -183
  85. package/dist/backend/llvm/dyn.js.map +1 -1
  86. package/dist/backend/llvm/emit-function.d.ts +64 -0
  87. package/dist/backend/llvm/emit-function.js +1193 -0
  88. package/dist/backend/llvm/emit-function.js.map +1 -0
  89. package/dist/backend/llvm/emit-module.d.ts +24 -0
  90. package/dist/backend/llvm/emit-module.js +1557 -0
  91. package/dist/backend/llvm/emit-module.js.map +1 -0
  92. package/dist/backend/llvm/emit-statements.d.ts +59 -0
  93. package/dist/backend/llvm/emit-statements.js +2041 -0
  94. package/dist/backend/llvm/emit-statements.js.map +1 -0
  95. package/dist/backend/llvm/emitter.d.ts +566 -291
  96. package/dist/backend/llvm/emitter.js +728 -4671
  97. package/dist/backend/llvm/emitter.js.map +1 -1
  98. package/dist/backend/llvm/emitter.test.js +57 -3
  99. package/dist/backend/llvm/emitter.test.js.map +1 -1
  100. package/dist/backend/llvm/expr-async.js +73 -46
  101. package/dist/backend/llvm/expr-async.js.map +1 -1
  102. package/dist/backend/llvm/expr-async.test.js +1 -1
  103. package/dist/backend/llvm/expr-bytes.d.ts +2 -0
  104. package/dist/backend/llvm/expr-bytes.js +76 -29
  105. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  106. package/dist/backend/llvm/expr-callbacks.d.ts +6 -2
  107. package/dist/backend/llvm/expr-callbacks.js +48 -11
  108. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  109. package/dist/backend/llvm/expr-calls.d.ts +1 -1
  110. package/dist/backend/llvm/expr-calls.js +87 -56
  111. package/dist/backend/llvm/expr-calls.js.map +1 -1
  112. package/dist/backend/llvm/expr-calls.test.js +1 -1
  113. package/dist/backend/llvm/expr-containers.js +45 -24
  114. package/dist/backend/llvm/expr-containers.js.map +1 -1
  115. package/dist/backend/llvm/expr-control.js +16 -16
  116. package/dist/backend/llvm/expr-control.js.map +1 -1
  117. package/dist/backend/llvm/expr-dynamic.d.ts +3 -0
  118. package/dist/backend/llvm/expr-dynamic.js +113 -66
  119. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  120. package/dist/backend/llvm/expr-primitives.js +124 -28
  121. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  122. package/dist/backend/llvm/expr-primitives.test.js +57 -2
  123. package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
  124. package/dist/backend/llvm/expr-records.d.ts +1 -1
  125. package/dist/backend/llvm/expr-records.js +32 -11
  126. package/dist/backend/llvm/expr-records.js.map +1 -1
  127. package/dist/backend/llvm/expr-stream-bridges.js +65 -27
  128. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  129. package/dist/backend/llvm/expr-stream-bridges.test.js +2 -2
  130. package/dist/backend/llvm/expr-stream-callbacks.js +22 -1
  131. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  132. package/dist/backend/llvm/int32-abi.test.js +2 -2
  133. package/dist/backend/llvm/integer-clones.js +3 -3
  134. package/dist/backend/llvm/integer-clones.js.map +1 -1
  135. package/dist/backend/llvm/integer-clones.test.js +3 -3
  136. package/dist/backend/llvm/integer-remainder.d.ts +34 -13
  137. package/dist/backend/llvm/integer-remainder.js +156 -22
  138. package/dist/backend/llvm/integer-remainder.js.map +1 -1
  139. package/dist/backend/llvm/intern-tables.test.js +1 -1
  140. package/dist/backend/llvm/js-ic.d.ts +18 -0
  141. package/dist/backend/llvm/js-ic.js +712 -0
  142. package/dist/backend/llvm/js-ic.js.map +1 -0
  143. package/dist/backend/llvm/jsval-encoding.d.ts +21 -0
  144. package/dist/backend/llvm/jsval-encoding.js +20 -0
  145. package/dist/backend/llvm/jsval-encoding.js.map +1 -0
  146. package/dist/backend/llvm/jsval.d.ts +12 -0
  147. package/dist/backend/llvm/jsval.js +616 -0
  148. package/dist/backend/llvm/jsval.js.map +1 -0
  149. package/dist/backend/llvm/lazy-captures.d.ts +12 -2
  150. package/dist/backend/llvm/lazy-captures.js +39 -17
  151. package/dist/backend/llvm/lazy-captures.js.map +1 -1
  152. package/dist/backend/llvm/lib-abi.js +1 -1
  153. package/dist/backend/llvm/lib-abi.js.map +1 -1
  154. package/dist/backend/llvm/lib-connect.js +1 -1
  155. package/dist/backend/llvm/lib-connect.js.map +1 -1
  156. package/dist/backend/llvm/lib-datagram.js +14 -8
  157. package/dist/backend/llvm/lib-datagram.js.map +1 -1
  158. package/dist/backend/llvm/lib-dispatch.js +189 -23
  159. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  160. package/dist/backend/llvm/lib-filesystem.js +42 -13
  161. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  162. package/dist/backend/llvm/lib-http2.js +3 -3
  163. package/dist/backend/llvm/lib-http2.js.map +1 -1
  164. package/dist/backend/llvm/lib-lookup.js +2 -2
  165. package/dist/backend/llvm/lib-lookup.js.map +1 -1
  166. package/dist/backend/llvm/lib-network.js +56 -22
  167. package/dist/backend/llvm/lib-network.js.map +1 -1
  168. package/dist/backend/llvm/lib-process.js +94 -53
  169. package/dist/backend/llvm/lib-process.js.map +1 -1
  170. package/dist/backend/llvm/lib-shared.d.ts +12 -0
  171. package/dist/backend/llvm/lib-shared.js +209 -6
  172. package/dist/backend/llvm/lib-shared.js.map +1 -1
  173. package/dist/backend/llvm/lib-stream.js +46 -16
  174. package/dist/backend/llvm/lib-stream.js.map +1 -1
  175. package/dist/backend/llvm/lib-test.js +43 -7
  176. package/dist/backend/llvm/lib-test.js.map +1 -1
  177. package/dist/backend/llvm/lib-tls.js +4 -9
  178. package/dist/backend/llvm/lib-tls.js.map +1 -1
  179. package/dist/backend/llvm/local-array-reads.js +42 -33
  180. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  181. package/dist/backend/llvm/local-array-reads.test.js +1 -1
  182. package/dist/backend/llvm/local-extents.d.ts +19 -0
  183. package/dist/backend/llvm/local-extents.js +169 -0
  184. package/dist/backend/llvm/local-extents.js.map +1 -0
  185. package/dist/backend/llvm/local-extents.test.d.ts +1 -0
  186. package/dist/backend/llvm/local-extents.test.js +92 -0
  187. package/dist/backend/llvm/local-extents.test.js.map +1 -0
  188. package/dist/backend/llvm/local-union-storage.js +7 -7
  189. package/dist/backend/llvm/local-union-storage.js.map +1 -1
  190. package/dist/backend/llvm/local-union-storage.test.js +2 -2
  191. package/dist/backend/llvm/map-entry-fusion.test.js +1 -1
  192. package/dist/backend/llvm/map-number-lookup.d.ts +20 -4
  193. package/dist/backend/llvm/map-number-lookup.js +45 -9
  194. package/dist/backend/llvm/map-number-lookup.js.map +1 -1
  195. package/dist/backend/llvm/map-number-lookup.test.js +2 -2
  196. package/dist/backend/llvm/map-read-lifetimes.test.js +2 -2
  197. package/dist/backend/llvm/narrow-guards.d.ts +38 -0
  198. package/dist/backend/llvm/narrow-guards.js +215 -0
  199. package/dist/backend/llvm/narrow-guards.js.map +1 -0
  200. package/dist/backend/llvm/nullable-unions.d.ts +64 -6
  201. package/dist/backend/llvm/nullable-unions.js +103 -6
  202. package/dist/backend/llvm/nullable-unions.js.map +1 -1
  203. package/dist/backend/llvm/nullable-unions.test.d.ts +1 -0
  204. package/dist/backend/llvm/nullable-unions.test.js +65 -0
  205. package/dist/backend/llvm/nullable-unions.test.js.map +1 -0
  206. package/dist/backend/llvm/publish.d.ts +7 -0
  207. package/dist/backend/llvm/publish.js +50 -19
  208. package/dist/backend/llvm/publish.js.map +1 -1
  209. package/dist/backend/llvm/publish.test.js +1 -1
  210. package/dist/backend/llvm/receivers.d.ts +31 -0
  211. package/dist/backend/llvm/receivers.js +395 -0
  212. package/dist/backend/llvm/receivers.js.map +1 -0
  213. package/dist/backend/llvm/record-results.d.ts +12 -1
  214. package/dist/backend/llvm/record-results.js +64 -4
  215. package/dist/backend/llvm/record-results.js.map +1 -1
  216. package/dist/backend/llvm/reference-effects.js +9 -0
  217. package/dist/backend/llvm/reference-effects.js.map +1 -1
  218. package/dist/backend/llvm/reference-writes.d.ts +4 -0
  219. package/dist/backend/llvm/reference-writes.js +142 -6
  220. package/dist/backend/llvm/reference-writes.js.map +1 -1
  221. package/dist/backend/llvm/reference-writes.test.d.ts +1 -0
  222. package/dist/backend/llvm/reference-writes.test.js +88 -0
  223. package/dist/backend/llvm/reference-writes.test.js.map +1 -0
  224. package/dist/backend/llvm/regex-matchers.d.ts +8 -0
  225. package/dist/backend/llvm/regex-matchers.js +33 -0
  226. package/dist/backend/llvm/regex-matchers.js.map +1 -1
  227. package/dist/backend/llvm/regex-matchers.test.js +23 -1
  228. package/dist/backend/llvm/regex-matchers.test.js.map +1 -1
  229. package/dist/backend/llvm/regions.d.ts +1 -1
  230. package/dist/backend/llvm/regions.js +10 -7
  231. package/dist/backend/llvm/regions.js.map +1 -1
  232. package/dist/backend/llvm/regions.test.js +8 -2
  233. package/dist/backend/llvm/regions.test.js.map +1 -1
  234. package/dist/backend/llvm/shapes.d.ts +74 -45
  235. package/dist/backend/llvm/shapes.js +289 -28
  236. package/dist/backend/llvm/shapes.js.map +1 -1
  237. package/dist/backend/llvm/shapes.test.js +37 -3
  238. package/dist/backend/llvm/shapes.test.js.map +1 -1
  239. package/dist/backend/llvm/speculative-integers.d.ts +20 -1
  240. package/dist/backend/llvm/speculative-integers.js +94 -6
  241. package/dist/backend/llvm/speculative-integers.js.map +1 -1
  242. package/dist/backend/llvm/speculative-integers.test.js +55 -1
  243. package/dist/backend/llvm/speculative-integers.test.js.map +1 -1
  244. package/dist/backend/llvm/split-loops.js +2 -2
  245. package/dist/backend/llvm/split-loops.js.map +1 -1
  246. package/dist/backend/llvm/stack-objects.d.ts +26 -6
  247. package/dist/backend/llvm/stack-objects.js +133 -10
  248. package/dist/backend/llvm/stack-objects.js.map +1 -1
  249. package/dist/backend/llvm/stack-objects.test.js +55 -1
  250. package/dist/backend/llvm/stack-objects.test.js.map +1 -1
  251. package/dist/backend/llvm/stack-unions.test.js +1 -1
  252. package/dist/backend/llvm/string-construction.test.js +1 -1
  253. package/dist/backend/llvm/string-lifetimes.test.js +15 -14
  254. package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
  255. package/dist/backend/llvm/string-reads.d.ts +1 -1
  256. package/dist/backend/llvm/string-reads.js +4 -4
  257. package/dist/backend/llvm/string-reads.js.map +1 -1
  258. package/dist/backend/llvm/string-slices.d.ts +25 -0
  259. package/dist/backend/llvm/string-slices.js +207 -1
  260. package/dist/backend/llvm/string-slices.js.map +1 -1
  261. package/dist/backend/llvm/string-slices.test.js +139 -2
  262. package/dist/backend/llvm/string-slices.test.js.map +1 -1
  263. package/dist/backend/llvm/switch-dispatch.test.js +2 -2
  264. package/dist/backend/llvm/thread-slots.d.ts +5 -0
  265. package/dist/backend/llvm/thread-slots.js +142 -0
  266. package/dist/backend/llvm/thread-slots.js.map +1 -0
  267. package/dist/backend/llvm/thread-slots.test.d.ts +1 -0
  268. package/dist/backend/llvm/thread-slots.test.js +111 -0
  269. package/dist/backend/llvm/thread-slots.test.js.map +1 -0
  270. package/dist/backend/llvm/union-repr.d.ts +7 -7
  271. package/dist/backend/llvm/union-repr.js +18 -2
  272. package/dist/backend/llvm/union-repr.js.map +1 -1
  273. package/dist/backend/llvm/union-retype.test.js +17 -3
  274. package/dist/backend/llvm/union-retype.test.js.map +1 -1
  275. package/dist/backend/llvm/walkers.d.ts +2 -2
  276. package/dist/backend/llvm/walkers.js +51 -26
  277. package/dist/backend/llvm/walkers.js.map +1 -1
  278. package/dist/backend/llvm/wasm-modules.d.ts +16 -0
  279. package/dist/backend/llvm/wasm-modules.js +66 -0
  280. package/dist/backend/llvm/wasm-modules.js.map +1 -0
  281. package/dist/backend/llvm/wrapping-sums.d.ts +7 -0
  282. package/dist/backend/llvm/wrapping-sums.js +11 -3
  283. package/dist/backend/llvm/wrapping-sums.js.map +1 -1
  284. package/dist/backend/mangle.d.ts +12 -0
  285. package/dist/backend/mangle.js +18 -0
  286. package/dist/backend/mangle.js.map +1 -1
  287. package/dist/backend/may-throw.d.ts +3 -0
  288. package/dist/backend/may-throw.js +4 -2
  289. package/dist/backend/may-throw.js.map +1 -1
  290. package/dist/backend/may-throw.test.js +1 -1
  291. package/dist/backend/native/contracts.d.ts +57 -0
  292. package/dist/backend/native/executable.js +211 -139
  293. package/dist/backend/native/executable.js.map +1 -1
  294. package/dist/backend/native/library.js +2 -0
  295. package/dist/backend/native/library.js.map +1 -1
  296. package/dist/backend/native/runtime-inputs.d.ts +1 -1
  297. package/dist/backend/native/runtime-inputs.js +1 -0
  298. package/dist/backend/native/runtime-inputs.js.map +1 -1
  299. package/dist/backend/native-codegen.d.ts +6 -0
  300. package/dist/backend/native-codegen.js +19 -0
  301. package/dist/backend/native-codegen.js.map +1 -1
  302. package/dist/backend/native-codegen.test.js +27 -0
  303. package/dist/backend/native-codegen.test.js.map +1 -1
  304. package/dist/backend/native-link-info-core.d.ts +48 -0
  305. package/dist/backend/native-link-info-core.js.map +1 -1
  306. package/dist/backend/native-profile.d.ts +32 -0
  307. package/dist/backend/native-profile.js +39 -0
  308. package/dist/backend/native-profile.js.map +1 -0
  309. package/dist/backend/native-profile.test.d.ts +1 -0
  310. package/dist/backend/native-profile.test.js +58 -0
  311. package/dist/backend/native-profile.test.js.map +1 -0
  312. package/dist/backend/native-tools.d.ts +14 -0
  313. package/dist/backend/native-tools.js +13 -0
  314. package/dist/backend/native-tools.js.map +1 -1
  315. package/dist/backend/publication.test.js +1 -1
  316. package/dist/backend/runtime-abi.d.ts +2 -2
  317. package/dist/backend/runtime-abi.js +2 -2
  318. package/dist/backend/runtime-pack-core.d.ts +13 -1
  319. package/dist/backend/runtime-pack-core.js +14 -1
  320. package/dist/backend/runtime-pack-core.js.map +1 -1
  321. package/dist/backend/runtime-pack-native.js +1 -1
  322. package/dist/backend/runtime-pack-native.js.map +1 -1
  323. package/dist/backend/runtime-pack-native.test.d.ts +1 -0
  324. package/dist/backend/runtime-pack-native.test.js +31 -0
  325. package/dist/backend/runtime-pack-native.test.js.map +1 -0
  326. package/dist/backend/runtime-pack-targets.test.js +9 -1
  327. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  328. package/dist/backend/runtime-pack.test.js +9 -1
  329. package/dist/backend/runtime-pack.test.js.map +1 -1
  330. package/dist/backend/stack-observations.d.ts +22 -0
  331. package/dist/backend/stack-observations.js +382 -0
  332. package/dist/backend/stack-observations.js.map +1 -0
  333. package/dist/backend/stack-observations.test.d.ts +1 -0
  334. package/dist/backend/stack-observations.test.js +233 -0
  335. package/dist/backend/stack-observations.test.js.map +1 -0
  336. package/dist/backend/target-diagnostics.js +15 -0
  337. package/dist/backend/target-diagnostics.js.map +1 -1
  338. package/dist/backend/target-diagnostics.test.js +1 -1
  339. package/dist/backend/warm-cache.js +8 -0
  340. package/dist/backend/warm-cache.js.map +1 -1
  341. package/dist/backend/young-nursery.d.ts +7 -0
  342. package/dist/backend/young-nursery.js +10 -0
  343. package/dist/backend/young-nursery.js.map +1 -0
  344. package/dist/cli/command.js +106 -4
  345. package/dist/cli/command.js.map +1 -1
  346. package/dist/cli/host.d.ts +3 -0
  347. package/dist/cli/output-options.d.ts +2 -0
  348. package/dist/cli/output-options.js +9 -0
  349. package/dist/cli/output-options.js.map +1 -1
  350. package/dist/cli/usage.d.ts +21 -1
  351. package/dist/cli/usage.js +43 -1
  352. package/dist/cli/usage.js.map +1 -1
  353. package/dist/compat/fetch-profile.js +10 -1
  354. package/dist/compat/fetch-profile.js.map +1 -1
  355. package/dist/compile-types.d.ts +22 -0
  356. package/dist/contracts/check.js +25 -8
  357. package/dist/contracts/check.js.map +1 -1
  358. package/dist/contracts/int32-elements.d.ts +115 -0
  359. package/dist/contracts/int32-elements.js +1179 -0
  360. package/dist/contracts/int32-elements.js.map +1 -0
  361. package/dist/coverage/report.d.ts +16 -0
  362. package/dist/coverage/report.js +182 -1
  363. package/dist/coverage/report.js.map +1 -1
  364. package/dist/coverage/surface-manifest.js +16 -3
  365. package/dist/coverage/surface-manifest.js.map +1 -1
  366. package/dist/coverage/verdict-cache.d.ts +2 -0
  367. package/dist/coverage/verdict-cache.js +12 -0
  368. package/dist/coverage/verdict-cache.js.map +1 -1
  369. package/dist/coverage/verdict-cache.test.js +2 -1
  370. package/dist/coverage/verdict-cache.test.js.map +1 -1
  371. package/dist/diagnostics/diagnostic.d.ts +10 -6
  372. package/dist/diagnostics/diagnostic.js +29 -21
  373. package/dist/diagnostics/diagnostic.js.map +1 -1
  374. package/dist/diagnostics/envelope.d.ts +39 -2
  375. package/dist/diagnostics/envelope.js.map +1 -1
  376. package/dist/diagnostics/render.d.ts +7 -0
  377. package/dist/diagnostics/render.js +50 -13
  378. package/dist/diagnostics/render.js.map +1 -1
  379. package/dist/diagnostics/render.test.d.ts +1 -0
  380. package/dist/diagnostics/render.test.js +49 -0
  381. package/dist/diagnostics/render.test.js.map +1 -0
  382. package/dist/executable/executable-cache.d.ts +27 -0
  383. package/dist/executable/executable-cache.js +19 -1
  384. package/dist/executable/executable-cache.js.map +1 -1
  385. package/dist/executable/executable-cache.test.js +12 -1
  386. package/dist/executable/executable-cache.test.js.map +1 -1
  387. package/dist/executable/prepare.js +2 -1
  388. package/dist/executable/prepare.js.map +1 -1
  389. package/dist/frontend/analysis.js +6 -1
  390. package/dist/frontend/analysis.js.map +1 -1
  391. package/dist/frontend/arguments-usage.d.ts +8 -0
  392. package/dist/frontend/arguments-usage.js +98 -0
  393. package/dist/frontend/arguments-usage.js.map +1 -1
  394. package/dist/frontend/arguments-usage.test.d.ts +1 -0
  395. package/dist/frontend/arguments-usage.test.js +32 -0
  396. package/dist/frontend/arguments-usage.test.js.map +1 -0
  397. package/dist/frontend/builtin-modules.d.ts +16 -2
  398. package/dist/frontend/builtin-modules.js +40 -7
  399. package/dist/frontend/builtin-modules.js.map +1 -1
  400. package/dist/frontend/builtin-package-aliases.d.ts +24 -0
  401. package/dist/frontend/builtin-package-aliases.js +133 -0
  402. package/dist/frontend/builtin-package-aliases.js.map +1 -0
  403. package/dist/frontend/builtin-package-aliases.test.d.ts +1 -0
  404. package/dist/frontend/builtin-package-aliases.test.js +48 -0
  405. package/dist/frontend/builtin-package-aliases.test.js.map +1 -0
  406. package/dist/frontend/cjs-syntax.js +52 -51
  407. package/dist/frontend/cjs-syntax.js.map +1 -1
  408. package/dist/frontend/contract-types.d.ts +3 -0
  409. package/dist/frontend/contract-types.js +36 -7
  410. package/dist/frontend/contract-types.js.map +1 -1
  411. package/dist/frontend/dts-paths.d.ts +4 -0
  412. package/dist/frontend/dts-paths.js +9 -1
  413. package/dist/frontend/dts-paths.js.map +1 -1
  414. package/dist/frontend/experimental-import.d.ts +5 -1
  415. package/dist/frontend/experimental-import.js +26 -7
  416. package/dist/frontend/experimental-import.js.map +1 -1
  417. package/dist/frontend/fork-target.js +20 -22
  418. package/dist/frontend/fork-target.js.map +1 -1
  419. package/dist/frontend/fork-target.test.js +2 -1
  420. package/dist/frontend/fork-target.test.js.map +1 -1
  421. package/dist/frontend/function-completion.js +6 -6
  422. package/dist/frontend/function-completion.js.map +1 -1
  423. package/dist/frontend/helper-tokens.js +15 -3
  424. package/dist/frontend/helper-tokens.js.map +1 -1
  425. package/dist/frontend/helper-tokens.test.js +7 -1
  426. package/dist/frontend/helper-tokens.test.js.map +1 -1
  427. package/dist/frontend/inferred-js-diagnostics.js +14 -17
  428. package/dist/frontend/inferred-js-diagnostics.js.map +1 -1
  429. package/dist/frontend/input-tracker.d.ts +3 -0
  430. package/dist/frontend/input-tracker.js +32 -3
  431. package/dist/frontend/input-tracker.js.map +1 -1
  432. package/dist/frontend/lib-contract.js +36 -32
  433. package/dist/frontend/lib-contract.js.map +1 -1
  434. package/dist/frontend/lib-exports.js +3 -3
  435. package/dist/frontend/lib-exports.js.map +1 -1
  436. package/dist/frontend/lowering/array-values.d.ts +8 -3
  437. package/dist/frontend/lowering/array-values.js +60 -11
  438. package/dist/frontend/lowering/array-values.js.map +1 -1
  439. package/dist/frontend/lowering/assert-instances.js +4 -4
  440. package/dist/frontend/lowering/assert-instances.js.map +1 -1
  441. package/dist/frontend/lowering/assertion-identity.d.ts +12 -0
  442. package/dist/frontend/lowering/assertion-identity.js +70 -0
  443. package/dist/frontend/lowering/assertion-identity.js.map +1 -0
  444. package/dist/frontend/lowering/assertion-members.d.ts +28 -0
  445. package/dist/frontend/lowering/assertion-members.js +185 -0
  446. package/dist/frontend/lowering/assertion-members.js.map +1 -0
  447. package/dist/frontend/lowering/binding-analysis.js +27 -20
  448. package/dist/frontend/lowering/binding-analysis.js.map +1 -1
  449. package/dist/frontend/lowering/builtin-calls.js +63 -5
  450. package/dist/frontend/lowering/builtin-calls.js.map +1 -1
  451. package/dist/frontend/lowering/builtin-function-fences.d.ts +14 -0
  452. package/dist/frontend/lowering/builtin-function-fences.js +42 -0
  453. package/dist/frontend/lowering/builtin-function-fences.js.map +1 -0
  454. package/dist/frontend/lowering/builtins/arguments.js +1 -1
  455. package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
  456. package/dist/frontend/lowering/builtins/async-context.js +53 -52
  457. package/dist/frontend/lowering/builtins/async-context.js.map +1 -1
  458. package/dist/frontend/lowering/builtins/atomics.js +6 -6
  459. package/dist/frontend/lowering/builtins/atomics.js.map +1 -1
  460. package/dist/frontend/lowering/builtins/blob.js +8 -6
  461. package/dist/frontend/lowering/builtins/blob.js.map +1 -1
  462. package/dist/frontend/lowering/builtins/builtin-class-dyn.d.ts +31 -0
  463. package/dist/frontend/lowering/builtins/builtin-class-dyn.js +205 -0
  464. package/dist/frontend/lowering/builtins/builtin-class-dyn.js.map +1 -0
  465. package/dist/frontend/lowering/builtins/callable-aliases.js +17 -5
  466. package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -1
  467. package/dist/frontend/lowering/builtins/child-process-async.js +7 -7
  468. package/dist/frontend/lowering/builtins/child-process-async.js.map +1 -1
  469. package/dist/frontend/lowering/builtins/child-process-methods.d.ts +6 -4
  470. package/dist/frontend/lowering/builtins/child-process-methods.js +310 -57
  471. package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
  472. package/dist/frontend/lowering/builtins/child-process-sync.js +16 -10
  473. package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -1
  474. package/dist/frontend/lowering/builtins/child-process.d.ts +6 -4
  475. package/dist/frontend/lowering/builtins/child-process.js +85 -61
  476. package/dist/frontend/lowering/builtins/child-process.js.map +1 -1
  477. package/dist/frontend/lowering/builtins/class-values.d.ts +60 -0
  478. package/dist/frontend/lowering/builtins/class-values.js +226 -0
  479. package/dist/frontend/lowering/builtins/class-values.js.map +1 -0
  480. package/dist/frontend/lowering/builtins/compression.d.ts +9 -0
  481. package/dist/frontend/lowering/builtins/compression.js +107 -44
  482. package/dist/frontend/lowering/builtins/compression.js.map +1 -1
  483. package/dist/frontend/lowering/builtins/constants.d.ts +9 -1
  484. package/dist/frontend/lowering/builtins/constants.js +28 -7
  485. package/dist/frontend/lowering/builtins/constants.js.map +1 -1
  486. package/dist/frontend/lowering/builtins/crypto.d.ts +22 -0
  487. package/dist/frontend/lowering/builtins/crypto.js +215 -38
  488. package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
  489. package/dist/frontend/lowering/builtins/dates.d.ts +7 -1
  490. package/dist/frontend/lowering/builtins/dates.js +92 -16
  491. package/dist/frontend/lowering/builtins/dates.js.map +1 -1
  492. package/dist/frontend/lowering/builtins/disposable-stack.d.ts +18 -0
  493. package/dist/frontend/lowering/builtins/disposable-stack.js +137 -0
  494. package/dist/frontend/lowering/builtins/disposable-stack.js.map +1 -0
  495. package/dist/frontend/lowering/builtins/ecdh.d.ts +10 -0
  496. package/dist/frontend/lowering/builtins/ecdh.js +208 -0
  497. package/dist/frontend/lowering/builtins/ecdh.js.map +1 -0
  498. package/dist/frontend/lowering/builtins/environment.js +3 -3
  499. package/dist/frontend/lowering/builtins/environment.js.map +1 -1
  500. package/dist/frontend/lowering/builtins/errors.d.ts +14 -10
  501. package/dist/frontend/lowering/builtins/errors.js +169 -3
  502. package/dist/frontend/lowering/builtins/errors.js.map +1 -1
  503. package/dist/frontend/lowering/builtins/filesystem-calls.js +128 -116
  504. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
  505. package/dist/frontend/lowering/builtins/filesystem.js +77 -77
  506. package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
  507. package/dist/frontend/lowering/builtins/fs-glob.js +3 -3
  508. package/dist/frontend/lowering/builtins/fs-glob.js.map +1 -1
  509. package/dist/frontend/lowering/builtins/fs-streams.js +10 -11
  510. package/dist/frontend/lowering/builtins/fs-streams.js.map +1 -1
  511. package/dist/frontend/lowering/builtins/ipc.js +45 -8
  512. package/dist/frontend/lowering/builtins/ipc.js.map +1 -1
  513. package/dist/frontend/lowering/builtins/json.js +284 -24
  514. package/dist/frontend/lowering/builtins/json.js.map +1 -1
  515. package/dist/frontend/lowering/builtins/key-object.js +4 -4
  516. package/dist/frontend/lowering/builtins/key-object.js.map +1 -1
  517. package/dist/frontend/lowering/builtins/module-bindings.d.ts +8 -0
  518. package/dist/frontend/lowering/builtins/module-bindings.js +71 -22
  519. package/dist/frontend/lowering/builtins/module-bindings.js.map +1 -1
  520. package/dist/frontend/lowering/builtins/module-calls.js +55 -44
  521. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  522. package/dist/frontend/lowering/builtins/module-resolution.d.ts +4 -3
  523. package/dist/frontend/lowering/builtins/module-resolution.js +24 -23
  524. package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -1
  525. package/dist/frontend/lowering/builtins/navigator.d.ts +13 -0
  526. package/dist/frontend/lowering/builtins/navigator.js +40 -0
  527. package/dist/frontend/lowering/builtins/navigator.js.map +1 -0
  528. package/dist/frontend/lowering/builtins/net-address.d.ts +19 -0
  529. package/dist/frontend/lowering/builtins/net-address.js +156 -0
  530. package/dist/frontend/lowering/builtins/net-address.js.map +1 -0
  531. package/dist/frontend/lowering/builtins/numbers.js +25 -9
  532. package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
  533. package/dist/frontend/lowering/builtins/operating-system.d.ts +4 -0
  534. package/dist/frontend/lowering/builtins/operating-system.js +25 -12
  535. package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
  536. package/dist/frontend/lowering/builtins/performance.d.ts +12 -0
  537. package/dist/frontend/lowering/builtins/performance.js +259 -8
  538. package/dist/frontend/lowering/builtins/performance.js.map +1 -1
  539. package/dist/frontend/lowering/builtins/process.d.ts +41 -1
  540. package/dist/frontend/lowering/builtins/process.js +505 -99
  541. package/dist/frontend/lowering/builtins/process.js.map +1 -1
  542. package/dist/frontend/lowering/builtins/promises.d.ts +5 -1
  543. package/dist/frontend/lowering/builtins/promises.js +326 -43
  544. package/dist/frontend/lowering/builtins/promises.js.map +1 -1
  545. package/dist/frontend/lowering/builtins/promisify-callback.d.ts +40 -0
  546. package/dist/frontend/lowering/builtins/promisify-callback.js +338 -0
  547. package/dist/frontend/lowering/builtins/promisify-callback.js.map +1 -0
  548. package/dist/frontend/lowering/builtins/properties.js +37 -1
  549. package/dist/frontend/lowering/builtins/properties.js.map +1 -1
  550. package/dist/frontend/lowering/builtins/querystring.js +14 -14
  551. package/dist/frontend/lowering/builtins/querystring.js.map +1 -1
  552. package/dist/frontend/lowering/builtins/readline.d.ts +12 -2
  553. package/dist/frontend/lowering/builtins/readline.js +136 -39
  554. package/dist/frontend/lowering/builtins/readline.js.map +1 -1
  555. package/dist/frontend/lowering/builtins/receiver-types.js +3 -5
  556. package/dist/frontend/lowering/builtins/receiver-types.js.map +1 -1
  557. package/dist/frontend/lowering/builtins/reflection.js +42 -14
  558. package/dist/frontend/lowering/builtins/reflection.js.map +1 -1
  559. package/dist/frontend/lowering/builtins/runtime-constructor.d.ts +26 -0
  560. package/dist/frontend/lowering/builtins/runtime-constructor.js +165 -0
  561. package/dist/frontend/lowering/builtins/runtime-constructor.js.map +1 -0
  562. package/dist/frontend/lowering/builtins/strings.js +101 -12
  563. package/dist/frontend/lowering/builtins/strings.js.map +1 -1
  564. package/dist/frontend/lowering/builtins/text-codecs.js +41 -38
  565. package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -1
  566. package/dist/frontend/lowering/builtins/timers.js +79 -30
  567. package/dist/frontend/lowering/builtins/timers.js.map +1 -1
  568. package/dist/frontend/lowering/builtins/typed-array-members.d.ts +7 -0
  569. package/dist/frontend/lowering/builtins/typed-array-members.js +160 -0
  570. package/dist/frontend/lowering/builtins/typed-array-members.js.map +1 -0
  571. package/dist/frontend/lowering/builtins/url.d.ts +3 -0
  572. package/dist/frontend/lowering/builtins/url.js +120 -17
  573. package/dist/frontend/lowering/builtins/url.js.map +1 -1
  574. package/dist/frontend/lowering/builtins/util-types.js +20 -4
  575. package/dist/frontend/lowering/builtins/util-types.js.map +1 -1
  576. package/dist/frontend/lowering/builtins/v8.d.ts +11 -0
  577. package/dist/frontend/lowering/builtins/v8.js +105 -0
  578. package/dist/frontend/lowering/builtins/v8.js.map +1 -0
  579. package/dist/frontend/lowering/builtins/webassembly.d.ts +33 -0
  580. package/dist/frontend/lowering/builtins/webassembly.js +388 -0
  581. package/dist/frontend/lowering/builtins/webassembly.js.map +1 -0
  582. package/dist/frontend/lowering/builtins/webcrypto.d.ts +20 -0
  583. package/dist/frontend/lowering/builtins/webcrypto.js +112 -0
  584. package/dist/frontend/lowering/builtins/webcrypto.js.map +1 -0
  585. package/dist/frontend/lowering/builtins/workers.d.ts +12 -0
  586. package/dist/frontend/lowering/builtins/workers.js +193 -8
  587. package/dist/frontend/lowering/builtins/workers.js.map +1 -1
  588. package/dist/frontend/lowering/call-arguments.js +69 -14
  589. package/dist/frontend/lowering/call-arguments.js.map +1 -1
  590. package/dist/frontend/lowering/call-signatures.d.ts +23 -1
  591. package/dist/frontend/lowering/call-signatures.js +379 -55
  592. package/dist/frontend/lowering/call-signatures.js.map +1 -1
  593. package/dist/frontend/lowering/checked-promise-all.d.ts +3 -0
  594. package/dist/frontend/lowering/checked-promise-all.js +1 -1
  595. package/dist/frontend/lowering/checked-promise-all.js.map +1 -1
  596. package/dist/frontend/lowering/cjs-exports-object.d.ts +53 -0
  597. package/dist/frontend/lowering/cjs-exports-object.js +561 -0
  598. package/dist/frontend/lowering/cjs-exports-object.js.map +1 -0
  599. package/dist/frontend/lowering/cjs-inline-require.d.ts +86 -0
  600. package/dist/frontend/lowering/cjs-inline-require.js +314 -0
  601. package/dist/frontend/lowering/cjs-inline-require.js.map +1 -0
  602. package/dist/frontend/lowering/cjs-tsc-interop.d.ts +28 -0
  603. package/dist/frontend/lowering/cjs-tsc-interop.js +208 -0
  604. package/dist/frontend/lowering/cjs-tsc-interop.js.map +1 -0
  605. package/dist/frontend/lowering/class-attributes.d.ts +19 -0
  606. package/dist/frontend/lowering/class-attributes.js +378 -0
  607. package/dist/frontend/lowering/class-attributes.js.map +1 -0
  608. package/dist/frontend/lowering/class-callbacks.d.ts +3 -1
  609. package/dist/frontend/lowering/class-callbacks.js +21 -10
  610. package/dist/frontend/lowering/class-callbacks.js.map +1 -1
  611. package/dist/frontend/lowering/class-construction.js +49 -4
  612. package/dist/frontend/lowering/class-construction.js.map +1 -1
  613. package/dist/frontend/lowering/class-descriptors.d.ts +2 -0
  614. package/dist/frontend/lowering/class-descriptors.js +8 -8
  615. package/dist/frontend/lowering/class-descriptors.js.map +1 -1
  616. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +64 -0
  617. package/dist/frontend/lowering/class-dynamic-dispatch.js +1124 -90
  618. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  619. package/dist/frontend/lowering/class-instance-constructor.js +1 -1
  620. package/dist/frontend/lowering/class-instance-constructor.js.map +1 -1
  621. package/dist/frontend/lowering/class-iterables.d.ts +11 -0
  622. package/dist/frontend/lowering/class-iterables.js +31 -0
  623. package/dist/frontend/lowering/class-iterables.js.map +1 -0
  624. package/dist/frontend/lowering/class-method-mutations.js +73 -35
  625. package/dist/frontend/lowering/class-method-mutations.js.map +1 -1
  626. package/dist/frontend/lowering/class-method-values.js +56 -10
  627. package/dist/frontend/lowering/class-method-values.js.map +1 -1
  628. package/dist/frontend/lowering/class-protocol-dispatch.js +24 -22
  629. package/dist/frontend/lowering/class-protocol-dispatch.js.map +1 -1
  630. package/dist/frontend/lowering/class-protocols.d.ts +10 -0
  631. package/dist/frontend/lowering/class-protocols.js +76 -45
  632. package/dist/frontend/lowering/class-protocols.js.map +1 -1
  633. package/dist/frontend/lowering/class-prototypes.d.ts +6 -0
  634. package/dist/frontend/lowering/class-prototypes.js +86 -19
  635. package/dist/frontend/lowering/class-prototypes.js.map +1 -1
  636. package/dist/frontend/lowering/class-runtime-statics.js +1 -1
  637. package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
  638. package/dist/frontend/lowering/class-static-data.js +2 -2
  639. package/dist/frontend/lowering/class-static-data.js.map +1 -1
  640. package/dist/frontend/lowering/class-to-primitive.d.ts +25 -0
  641. package/dist/frontend/lowering/class-to-primitive.js +264 -0
  642. package/dist/frontend/lowering/class-to-primitive.js.map +1 -0
  643. package/dist/frontend/lowering/class-unions.d.ts +25 -0
  644. package/dist/frontend/lowering/class-unions.js +102 -1
  645. package/dist/frontend/lowering/class-unions.js.map +1 -1
  646. package/dist/frontend/lowering/code-generation.d.ts +14 -0
  647. package/dist/frontend/lowering/code-generation.js +127 -0
  648. package/dist/frontend/lowering/code-generation.js.map +1 -0
  649. package/dist/frontend/lowering/coercions/fresh-spread.d.ts +13 -0
  650. package/dist/frontend/lowering/coercions/fresh-spread.js +95 -0
  651. package/dist/frontend/lowering/coercions/fresh-spread.js.map +1 -0
  652. package/dist/frontend/lowering/coercions/function-adapters.d.ts +16 -2
  653. package/dist/frontend/lowering/coercions/function-adapters.js +239 -68
  654. package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
  655. package/dist/frontend/lowering/coercions/structural-plans.js +25 -3
  656. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
  657. package/dist/frontend/lowering/coercions/structural.js +35 -3
  658. package/dist/frontend/lowering/coercions/structural.js.map +1 -1
  659. package/dist/frontend/lowering/coercions/unions.d.ts +15 -0
  660. package/dist/frontend/lowering/coercions/unions.js +57 -1
  661. package/dist/frontend/lowering/coercions/unions.js.map +1 -1
  662. package/dist/frontend/lowering/collection-ingestion.js +2 -2
  663. package/dist/frontend/lowering/collection-ingestion.js.map +1 -1
  664. package/dist/frontend/lowering/collection-narrowing.js +2 -4
  665. package/dist/frontend/lowering/collection-narrowing.js.map +1 -1
  666. package/dist/frontend/lowering/construction-escapes.js +8 -8
  667. package/dist/frontend/lowering/construction-escapes.js.map +1 -1
  668. package/dist/frontend/lowering/construction-escapes.test.js +4 -4
  669. package/dist/frontend/lowering/construction-escapes.test.js.map +1 -1
  670. package/dist/frontend/lowering/constructor-returns.d.ts +61 -0
  671. package/dist/frontend/lowering/constructor-returns.js +477 -0
  672. package/dist/frontend/lowering/constructor-returns.js.map +1 -0
  673. package/dist/frontend/lowering/containers/array-callback-call.js +1 -1
  674. package/dist/frontend/lowering/containers/array-callback-call.js.map +1 -1
  675. package/dist/frontend/lowering/containers/array-callbacks.d.ts +17 -0
  676. package/dist/frontend/lowering/containers/array-callbacks.js +287 -118
  677. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  678. package/dist/frontend/lowering/containers/array-concat.js +1 -1
  679. package/dist/frontend/lowering/containers/array-concat.js.map +1 -1
  680. package/dist/frontend/lowering/containers/array-construction.d.ts +0 -1
  681. package/dist/frontend/lowering/containers/array-construction.js +58 -13
  682. package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
  683. package/dist/frontend/lowering/containers/array-from-async.d.ts +6 -5
  684. package/dist/frontend/lowering/containers/array-from-async.js +159 -14
  685. package/dist/frontend/lowering/containers/array-from-async.js.map +1 -1
  686. package/dist/frontend/lowering/containers/array-methods.js +94 -77
  687. package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
  688. package/dist/frontend/lowering/containers/array-pipelines.js +1 -0
  689. package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -1
  690. package/dist/frontend/lowering/containers/bytes.d.ts +9 -0
  691. package/dist/frontend/lowering/containers/bytes.js +649 -113
  692. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  693. package/dist/frontend/lowering/containers/callback-arguments.d.ts +9 -1
  694. package/dist/frontend/lowering/containers/callback-arguments.js +55 -5
  695. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
  696. package/dist/frontend/lowering/containers/collection-grouping.d.ts +7 -8
  697. package/dist/frontend/lowering/containers/collection-grouping.js +217 -26
  698. package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -1
  699. package/dist/frontend/lowering/containers/collection-methods.js +126 -28
  700. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
  701. package/dist/frontend/lowering/containers/dynamic-receivers.js +1 -1
  702. package/dist/frontend/lowering/containers/dynamic-receivers.js.map +1 -1
  703. package/dist/frontend/lowering/containers/exec-result-uses.js +2 -2
  704. package/dist/frontend/lowering/containers/exec-result-uses.js.map +1 -1
  705. package/dist/frontend/lowering/containers/for-of.d.ts +6 -0
  706. package/dist/frontend/lowering/containers/for-of.js +19 -19
  707. package/dist/frontend/lowering/containers/for-of.js.map +1 -1
  708. package/dist/frontend/lowering/containers/indexed-objects.js +142 -57
  709. package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
  710. package/dist/frontend/lowering/containers/iterator-helpers.d.ts +53 -4
  711. package/dist/frontend/lowering/containers/iterator-helpers.js +1581 -462
  712. package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -1
  713. package/dist/frontend/lowering/containers/match-row-uses.d.ts +17 -0
  714. package/dist/frontend/lowering/containers/match-row-uses.js +264 -0
  715. package/dist/frontend/lowering/containers/match-row-uses.js.map +1 -0
  716. package/dist/frontend/lowering/containers/string-and-regexp.d.ts +14 -0
  717. package/dist/frontend/lowering/containers/string-and-regexp.js +455 -30
  718. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  719. package/dist/frontend/lowering/containers/string-replacement.js +1 -1
  720. package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
  721. package/dist/frontend/lowering/cycle-initialization.d.ts +30 -10
  722. package/dist/frontend/lowering/cycle-initialization.js +191 -35
  723. package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
  724. package/dist/frontend/lowering/deferred-module-initializers.js +47 -43
  725. package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
  726. package/dist/frontend/lowering/devirtualize.d.ts +1 -1
  727. package/dist/frontend/lowering/devirtualize.js +27 -7
  728. package/dist/frontend/lowering/devirtualize.js.map +1 -1
  729. package/dist/frontend/lowering/divergences.d.ts +0 -5
  730. package/dist/frontend/lowering/divergences.js +62 -125
  731. package/dist/frontend/lowering/divergences.js.map +1 -1
  732. package/dist/frontend/lowering/dyn-streams.d.ts +25 -0
  733. package/dist/frontend/lowering/dyn-streams.js +257 -0
  734. package/dist/frontend/lowering/dyn-streams.js.map +1 -0
  735. package/dist/frontend/lowering/error-methods.js +4 -1
  736. package/dist/frontend/lowering/error-methods.js.map +1 -1
  737. package/dist/frontend/lowering/error-name-order.d.ts +19 -0
  738. package/dist/frontend/lowering/error-name-order.js +93 -0
  739. package/dist/frontend/lowering/error-name-order.js.map +1 -0
  740. package/dist/frontend/lowering/expressions/array-literals.d.ts +21 -0
  741. package/dist/frontend/lowering/expressions/array-literals.js +723 -0
  742. package/dist/frontend/lowering/expressions/array-literals.js.map +1 -0
  743. package/dist/frontend/lowering/expressions/binary.d.ts +35 -0
  744. package/dist/frontend/lowering/expressions/binary.js +2557 -0
  745. package/dist/frontend/lowering/expressions/binary.js.map +1 -0
  746. package/dist/frontend/lowering/expressions/element-access.d.ts +31 -0
  747. package/dist/frontend/lowering/expressions/element-access.js +1804 -0
  748. package/dist/frontend/lowering/expressions/element-access.js.map +1 -0
  749. package/dist/frontend/lowering/expressions/evaluation-safety.js +4 -3
  750. package/dist/frontend/lowering/expressions/evaluation-safety.js.map +1 -1
  751. package/dist/frontend/lowering/expressions/hosted-narrowing.d.ts +38 -0
  752. package/dist/frontend/lowering/expressions/hosted-narrowing.js +160 -0
  753. package/dist/frontend/lowering/expressions/hosted-narrowing.js.map +1 -0
  754. package/dist/frontend/lowering/expressions/identifiers.d.ts +4 -0
  755. package/dist/frontend/lowering/expressions/identifiers.js +830 -0
  756. package/dist/frontend/lowering/expressions/identifiers.js.map +1 -0
  757. package/dist/frontend/lowering/expressions/keyed-field-targets.d.ts +52 -0
  758. package/dist/frontend/lowering/expressions/keyed-field-targets.js +307 -0
  759. package/dist/frontend/lowering/expressions/keyed-field-targets.js.map +1 -0
  760. package/dist/frontend/lowering/expressions/narrowing.d.ts +37 -0
  761. package/dist/frontend/lowering/expressions/narrowing.js +1337 -0
  762. package/dist/frontend/lowering/expressions/narrowing.js.map +1 -0
  763. package/dist/frontend/lowering/expressions/native-proxy.js +4 -4
  764. package/dist/frontend/lowering/expressions/native-proxy.js.map +1 -1
  765. package/dist/frontend/lowering/expressions/nullish-assignment.js +45 -0
  766. package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
  767. package/dist/frontend/lowering/expressions/object-literals.d.ts +10 -0
  768. package/dist/frontend/lowering/expressions/object-literals.js +301 -86
  769. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  770. package/dist/frontend/lowering/expressions/optional-chains.d.ts +3 -2
  771. package/dist/frontend/lowering/expressions/optional-chains.js +103 -17
  772. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
  773. package/dist/frontend/lowering/expressions/property-access.d.ts +115 -0
  774. package/dist/frontend/lowering/expressions/property-access.js +3787 -0
  775. package/dist/frontend/lowering/expressions/property-access.js.map +1 -0
  776. package/dist/frontend/lowering/expressions/relational.d.ts +28 -0
  777. package/dist/frontend/lowering/expressions/relational.js +1724 -0
  778. package/dist/frontend/lowering/expressions/relational.js.map +1 -0
  779. package/dist/frontend/lowering/expressions/typeof.d.ts +22 -0
  780. package/dist/frontend/lowering/expressions/typeof.js +551 -0
  781. package/dist/frontend/lowering/expressions/typeof.js.map +1 -0
  782. package/dist/frontend/lowering/expressions/union-fields.js +1 -1
  783. package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
  784. package/dist/frontend/lowering/expressions/updates.d.ts +21 -0
  785. package/dist/frontend/lowering/expressions/updates.js +780 -0
  786. package/dist/frontend/lowering/expressions/updates.js.map +1 -0
  787. package/dist/frontend/lowering/function-context.d.ts +10 -0
  788. package/dist/frontend/lowering/function-context.js +11 -1
  789. package/dist/frontend/lowering/function-context.js.map +1 -1
  790. package/dist/frontend/lowering/function-returns.js +52 -28
  791. package/dist/frontend/lowering/function-returns.js.map +1 -1
  792. package/dist/frontend/lowering/general-streams.d.ts +25 -0
  793. package/dist/frontend/lowering/general-streams.js +108 -0
  794. package/dist/frontend/lowering/general-streams.js.map +1 -0
  795. package/dist/frontend/lowering/generator-delegation.d.ts +8 -0
  796. package/dist/frontend/lowering/generator-delegation.js +191 -1
  797. package/dist/frontend/lowering/generator-delegation.js.map +1 -1
  798. package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +7 -0
  799. package/dist/frontend/lowering/generator-dynamic-dispatch.js +172 -69
  800. package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -1
  801. package/dist/frontend/lowering/generic-functions.d.ts +43 -0
  802. package/dist/frontend/lowering/generic-functions.js +593 -118
  803. package/dist/frontend/lowering/generic-functions.js.map +1 -1
  804. package/dist/frontend/lowering/handle-properties.d.ts +24 -0
  805. package/dist/frontend/lowering/handle-properties.js +281 -0
  806. package/dist/frontend/lowering/handle-properties.js.map +1 -0
  807. package/dist/frontend/lowering/import-meta.js +2 -2
  808. package/dist/frontend/lowering/import-meta.js.map +1 -1
  809. package/dist/frontend/lowering/intern-tables.js +10 -9
  810. package/dist/frontend/lowering/intern-tables.js.map +1 -1
  811. package/dist/frontend/lowering/iterable-spelling.d.ts +7 -0
  812. package/dist/frontend/lowering/iterable-spelling.js +38 -0
  813. package/dist/frontend/lowering/iterable-spelling.js.map +1 -0
  814. package/dist/frontend/lowering/iterator-adapters.d.ts +19 -0
  815. package/dist/frontend/lowering/iterator-adapters.js +331 -3
  816. package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
  817. package/dist/frontend/lowering/js-class-fields.d.ts +28 -0
  818. package/dist/frontend/lowering/js-class-fields.js +170 -0
  819. package/dist/frontend/lowering/js-class-fields.js.map +1 -0
  820. package/dist/frontend/lowering/js-dynamic-objects.d.ts +15 -0
  821. package/dist/frontend/lowering/js-dynamic-objects.js +299 -0
  822. package/dist/frontend/lowering/js-dynamic-objects.js.map +1 -0
  823. package/dist/frontend/lowering/js-dynamic-objects.test.d.ts +1 -0
  824. package/dist/frontend/lowering/js-dynamic-objects.test.js +35 -0
  825. package/dist/frontend/lowering/js-dynamic-objects.test.js.map +1 -0
  826. package/dist/frontend/lowering/json-require.d.ts +22 -0
  827. package/dist/frontend/lowering/json-require.js +131 -0
  828. package/dist/frontend/lowering/json-require.js.map +1 -0
  829. package/dist/frontend/lowering/key-order-witness.d.ts +44 -0
  830. package/dist/frontend/lowering/key-order-witness.js +641 -0
  831. package/dist/frontend/lowering/key-order-witness.js.map +1 -0
  832. package/dist/frontend/lowering/key-order-witness.test.d.ts +1 -0
  833. package/dist/frontend/lowering/key-order-witness.test.js +239 -0
  834. package/dist/frontend/lowering/key-order-witness.test.js.map +1 -0
  835. package/dist/frontend/lowering/lifetime-regions.js +7 -7
  836. package/dist/frontend/lowering/lifetime-regions.js.map +1 -1
  837. package/dist/frontend/lowering/lower-array-sort.d.ts +33 -15
  838. package/dist/frontend/lowering/lower-array-sort.js +117 -21
  839. package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
  840. package/dist/frontend/lowering/lower-array-sort.test.js +93 -14
  841. package/dist/frontend/lowering/lower-array-sort.test.js.map +1 -1
  842. package/dist/frontend/lowering/lower-assert.js +61 -60
  843. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  844. package/dist/frontend/lowering/lower-async-iteration.d.ts +10 -1
  845. package/dist/frontend/lowering/lower-async-iteration.js +34 -6
  846. package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
  847. package/dist/frontend/lowering/lower-builtin-values.d.ts +5 -0
  848. package/dist/frontend/lowering/lower-builtin-values.js +33 -3
  849. package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
  850. package/dist/frontend/lowering/lower-calls.js +1404 -448
  851. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  852. package/dist/frontend/lowering/lower-classes.d.ts +54 -3
  853. package/dist/frontend/lowering/lower-classes.js +1529 -472
  854. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  855. package/dist/frontend/lowering/lower-comptime.d.ts +4 -2
  856. package/dist/frontend/lowering/lower-comptime.js +111 -13
  857. package/dist/frontend/lowering/lower-comptime.js.map +1 -1
  858. package/dist/frontend/lowering/lower-console.js +13 -11
  859. package/dist/frontend/lowering/lower-console.js.map +1 -1
  860. package/dist/frontend/lowering/lower-dgram.d.ts +10 -0
  861. package/dist/frontend/lowering/lower-dgram.js +241 -21
  862. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  863. package/dist/frontend/lowering/lower-enums.js +113 -14
  864. package/dist/frontend/lowering/lower-enums.js.map +1 -1
  865. package/dist/frontend/lowering/lower-event-emitter.d.ts +16 -7
  866. package/dist/frontend/lowering/lower-event-emitter.js +258 -70
  867. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  868. package/dist/frontend/lowering/lower-event-target.js +2 -2
  869. package/dist/frontend/lowering/lower-event-target.js.map +1 -1
  870. package/dist/frontend/lowering/lower-expando.js +17 -13
  871. package/dist/frontend/lowering/lower-expando.js.map +1 -1
  872. package/dist/frontend/lowering/lower-exprs.d.ts +188 -186
  873. package/dist/frontend/lowering/lower-exprs.js +1509 -12486
  874. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  875. package/dist/frontend/lowering/lower-functions.js +72 -22
  876. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  877. package/dist/frontend/lowering/lower-generators.d.ts +6 -0
  878. package/dist/frontend/lowering/lower-generators.js +39 -20
  879. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  880. package/dist/frontend/lowering/lower-global-value.js +5 -1
  881. package/dist/frontend/lowering/lower-global-value.js.map +1 -1
  882. package/dist/frontend/lowering/lower-inspect.js +900 -107
  883. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  884. package/dist/frontend/lowering/lower-mixins.js +23 -20
  885. package/dist/frontend/lowering/lower-mixins.js.map +1 -1
  886. package/dist/frontend/lowering/lower-mock.d.ts +8 -1
  887. package/dist/frontend/lowering/lower-mock.js +185 -18
  888. package/dist/frontend/lowering/lower-mock.js.map +1 -1
  889. package/dist/frontend/lowering/lower-modules.d.ts +11 -3
  890. package/dist/frontend/lowering/lower-modules.js +445 -94
  891. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  892. package/dist/frontend/lowering/lower-namespaces.d.ts +6 -0
  893. package/dist/frontend/lowering/lower-namespaces.js +65 -33
  894. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  895. package/dist/frontend/lowering/lower-node-module.d.ts +16 -0
  896. package/dist/frontend/lowering/lower-node-module.js +147 -14
  897. package/dist/frontend/lowering/lower-node-module.js.map +1 -1
  898. package/dist/frontend/lowering/lower-server.d.ts +6 -6
  899. package/dist/frontend/lowering/lower-server.js +514 -101
  900. package/dist/frontend/lowering/lower-server.js.map +1 -1
  901. package/dist/frontend/lowering/lower-stdlib.d.ts +4 -0
  902. package/dist/frontend/lowering/lower-stdlib.js +179 -118
  903. package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
  904. package/dist/frontend/lowering/lower-stmts.d.ts +30 -7
  905. package/dist/frontend/lowering/lower-stmts.js +1950 -433
  906. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  907. package/dist/frontend/lowering/lower-stream.d.ts +3 -0
  908. package/dist/frontend/lowering/lower-stream.js +398 -56
  909. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  910. package/dist/frontend/lowering/lower-test.d.ts +3 -0
  911. package/dist/frontend/lowering/lower-test.js +437 -62
  912. package/dist/frontend/lowering/lower-test.js.map +1 -1
  913. package/dist/frontend/lowering/lower-timers.js +96 -32
  914. package/dist/frontend/lowering/lower-timers.js.map +1 -1
  915. package/dist/frontend/lowering/lower-url.js +1 -1
  916. package/dist/frontend/lowering/lower-url.js.map +1 -1
  917. package/dist/frontend/lowering/lowerer.d.ts +424 -27
  918. package/dist/frontend/lowering/lowerer.js +2062 -310
  919. package/dist/frontend/lowering/lowerer.js.map +1 -1
  920. package/dist/frontend/lowering/lowerer.test.js +10 -4
  921. package/dist/frontend/lowering/lowerer.test.js.map +1 -1
  922. package/dist/frontend/lowering/maybe-promise.d.ts +46 -0
  923. package/dist/frontend/lowering/maybe-promise.js +249 -0
  924. package/dist/frontend/lowering/maybe-promise.js.map +1 -0
  925. package/dist/frontend/lowering/module-member-this.d.ts +3 -0
  926. package/dist/frontend/lowering/module-member-this.js +262 -0
  927. package/dist/frontend/lowering/module-member-this.js.map +1 -0
  928. package/dist/frontend/lowering/module-namespace-elements.js +1 -1
  929. package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
  930. package/dist/frontend/lowering/nan-coded-reads.d.ts +3 -0
  931. package/dist/frontend/lowering/nan-coded-reads.js +45 -32
  932. package/dist/frontend/lowering/nan-coded-reads.js.map +1 -1
  933. package/dist/frontend/lowering/narrowing-stability.d.ts +18 -3
  934. package/dist/frontend/lowering/narrowing-stability.js +104 -32
  935. package/dist/frontend/lowering/narrowing-stability.js.map +1 -1
  936. package/dist/frontend/lowering/native-ffi.js +11 -11
  937. package/dist/frontend/lowering/native-ffi.js.map +1 -1
  938. package/dist/frontend/lowering/object-factory-new.js +6 -8
  939. package/dist/frontend/lowering/object-factory-new.js.map +1 -1
  940. package/dist/frontend/lowering/private-brands.d.ts +46 -0
  941. package/dist/frontend/lowering/private-brands.js +265 -0
  942. package/dist/frontend/lowering/private-brands.js.map +1 -0
  943. package/dist/frontend/lowering/promise-executor-adapter.d.ts +11 -0
  944. package/dist/frontend/lowering/promise-executor-adapter.js +87 -0
  945. package/dist/frontend/lowering/promise-executor-adapter.js.map +1 -0
  946. package/dist/frontend/lowering/rebindable-functions.d.ts +8 -0
  947. package/dist/frontend/lowering/rebindable-functions.js +54 -0
  948. package/dist/frontend/lowering/rebindable-functions.js.map +1 -0
  949. package/dist/frontend/lowering/require-initialization.d.ts +32 -0
  950. package/dist/frontend/lowering/require-initialization.js +246 -0
  951. package/dist/frontend/lowering/require-initialization.js.map +1 -0
  952. package/dist/frontend/lowering/runtime-optional-bounds.js +7 -7
  953. package/dist/frontend/lowering/runtime-optional-bounds.js.map +1 -1
  954. package/dist/frontend/lowering/runtime-optional-elements.js +12 -12
  955. package/dist/frontend/lowering/runtime-optional-elements.js.map +1 -1
  956. package/dist/frontend/lowering/runtime-optional-guards.js +10 -10
  957. package/dist/frontend/lowering/runtime-optional-guards.js.map +1 -1
  958. package/dist/frontend/lowering/runtime-optional-guards.test.js +1 -1
  959. package/dist/frontend/lowering/runtime-optional-guards.test.js.map +1 -1
  960. package/dist/frontend/lowering/runtime-optional-ownership.js +10 -9
  961. package/dist/frontend/lowering/runtime-optional-ownership.js.map +1 -1
  962. package/dist/frontend/lowering/runtime-optional-provenance.js +2 -2
  963. package/dist/frontend/lowering/runtime-optional-provenance.js.map +1 -1
  964. package/dist/frontend/lowering/runtime-optional-records.d.ts +35 -0
  965. package/dist/frontend/lowering/runtime-optional-records.js +205 -32
  966. package/dist/frontend/lowering/runtime-optional-records.js.map +1 -1
  967. package/dist/frontend/lowering/runtime-optional-records.test.js +19 -1
  968. package/dist/frontend/lowering/runtime-optional-records.test.js.map +1 -1
  969. package/dist/frontend/lowering/sanitize-class-types.test.js +2 -2
  970. package/dist/frontend/lowering/split-consumers.js +4 -4
  971. package/dist/frontend/lowering/split-consumers.js.map +1 -1
  972. package/dist/frontend/lowering/static-function-names.d.ts +28 -0
  973. package/dist/frontend/lowering/static-function-names.js +212 -0
  974. package/dist/frontend/lowering/static-function-names.js.map +1 -0
  975. package/dist/frontend/lowering/static-this.js +6 -6
  976. package/dist/frontend/lowering/static-this.js.map +1 -1
  977. package/dist/frontend/lowering/static-typeof.d.ts +26 -0
  978. package/dist/frontend/lowering/static-typeof.js +133 -0
  979. package/dist/frontend/lowering/static-typeof.js.map +1 -0
  980. package/dist/frontend/lowering/strict-mode.d.ts +5 -0
  981. package/dist/frontend/lowering/strict-mode.js +31 -0
  982. package/dist/frontend/lowering/strict-mode.js.map +1 -0
  983. package/dist/frontend/lowering/string-index-bounds.js +13 -12
  984. package/dist/frontend/lowering/string-index-bounds.js.map +1 -1
  985. package/dist/frontend/lowering/string-index.d.ts +12 -0
  986. package/dist/frontend/lowering/string-index.js +72 -1
  987. package/dist/frontend/lowering/string-index.js.map +1 -1
  988. package/dist/frontend/lowering/surfaces.d.ts +12 -3
  989. package/dist/frontend/lowering/surfaces.js +282 -45
  990. package/dist/frontend/lowering/surfaces.js.map +1 -1
  991. package/dist/frontend/lowering/symbol-fields.d.ts +7 -0
  992. package/dist/frontend/lowering/symbol-fields.js +204 -36
  993. package/dist/frontend/lowering/symbol-fields.js.map +1 -1
  994. package/dist/frontend/lowering/symbol-methods.d.ts +2 -1
  995. package/dist/frontend/lowering/symbol-methods.js +24 -6
  996. package/dist/frontend/lowering/symbol-methods.js.map +1 -1
  997. package/dist/frontend/lowering/thenables.d.ts +16 -0
  998. package/dist/frontend/lowering/thenables.js +124 -0
  999. package/dist/frontend/lowering/thenables.js.map +1 -0
  1000. package/dist/frontend/lowering/thread-slots.d.ts +13 -0
  1001. package/dist/frontend/lowering/thread-slots.js +208 -0
  1002. package/dist/frontend/lowering/thread-slots.js.map +1 -0
  1003. package/dist/frontend/lowering/typed-arguments.d.ts +74 -0
  1004. package/dist/frontend/lowering/typed-arguments.js +472 -0
  1005. package/dist/frontend/lowering/typed-arguments.js.map +1 -0
  1006. package/dist/frontend/lowering/union-retag.d.ts +8 -0
  1007. package/dist/frontend/lowering/union-retag.js +27 -0
  1008. package/dist/frontend/lowering/union-retag.js.map +1 -1
  1009. package/dist/frontend/lowering/union-retag.test.js +24 -1
  1010. package/dist/frontend/lowering/union-retag.test.js.map +1 -1
  1011. package/dist/frontend/lowering/var-hoisting.js +6 -6
  1012. package/dist/frontend/lowering/var-hoisting.js.map +1 -1
  1013. package/dist/frontend/lowering/width-lift.d.ts +4 -0
  1014. package/dist/frontend/mock-shapes.js +13 -6
  1015. package/dist/frontend/mock-shapes.js.map +1 -1
  1016. package/dist/frontend/module-source-candidates.js +1 -1
  1017. package/dist/frontend/module-source-candidates.js.map +1 -1
  1018. package/dist/frontend/module-source-candidates.test.js +2 -1
  1019. package/dist/frontend/module-source-candidates.test.js.map +1 -1
  1020. package/dist/frontend/module-syntax.js +8 -8
  1021. package/dist/frontend/module-syntax.js.map +1 -1
  1022. package/dist/frontend/npm-static-builtin-aliases.d.ts +8 -0
  1023. package/dist/frontend/npm-static-builtin-aliases.js +65 -0
  1024. package/dist/frontend/npm-static-builtin-aliases.js.map +1 -0
  1025. package/dist/frontend/npm-static-bundled-chunks.d.ts +58 -0
  1026. package/dist/frontend/npm-static-bundled-chunks.js +981 -0
  1027. package/dist/frontend/npm-static-bundled-chunks.js.map +1 -0
  1028. package/dist/frontend/npm-static-bundled-chunks.test.d.ts +1 -0
  1029. package/dist/frontend/npm-static-bundled-chunks.test.js +399 -0
  1030. package/dist/frontend/npm-static-bundled-chunks.test.js.map +1 -0
  1031. package/dist/frontend/npm-static-bundled-cjs.js +24 -23
  1032. package/dist/frontend/npm-static-bundled-cjs.js.map +1 -1
  1033. package/dist/frontend/npm-static-bundled-esm.d.ts +9 -0
  1034. package/dist/frontend/npm-static-bundled-esm.js +988 -0
  1035. package/dist/frontend/npm-static-bundled-esm.js.map +1 -0
  1036. package/dist/frontend/npm-static-bundled-esm.test.d.ts +1 -0
  1037. package/dist/frontend/npm-static-bundled-esm.test.js +336 -0
  1038. package/dist/frontend/npm-static-bundled-esm.test.js.map +1 -0
  1039. package/dist/frontend/npm-static-cjs-exports-alias.d.ts +2 -0
  1040. package/dist/frontend/npm-static-cjs-exports-alias.js +186 -0
  1041. package/dist/frontend/npm-static-cjs-exports-alias.js.map +1 -0
  1042. package/dist/frontend/npm-static-cjs-exports-alias.test.d.ts +1 -0
  1043. package/dist/frontend/npm-static-cjs-exports-alias.test.js +73 -0
  1044. package/dist/frontend/npm-static-cjs-exports-alias.test.js.map +1 -0
  1045. package/dist/frontend/npm-static-cjs-exports-var.d.ts +2 -0
  1046. package/dist/frontend/npm-static-cjs-exports-var.js +236 -0
  1047. package/dist/frontend/npm-static-cjs-exports-var.js.map +1 -0
  1048. package/dist/frontend/npm-static-declaration-syntax.js +102 -101
  1049. package/dist/frontend/npm-static-declaration-syntax.js.map +1 -1
  1050. package/dist/frontend/npm-static-enum-iife.d.ts +6 -0
  1051. package/dist/frontend/npm-static-enum-iife.js +280 -0
  1052. package/dist/frontend/npm-static-enum-iife.js.map +1 -0
  1053. package/dist/frontend/npm-static-enum-iife.test.d.ts +1 -0
  1054. package/dist/frontend/npm-static-enum-iife.test.js +116 -0
  1055. package/dist/frontend/npm-static-enum-iife.test.js.map +1 -0
  1056. package/dist/frontend/npm-static-prune.js +36 -24
  1057. package/dist/frontend/npm-static-prune.js.map +1 -1
  1058. package/dist/frontend/npm-static-rewrite-host.d.ts +4 -1
  1059. package/dist/frontend/npm-static-rewrite-host.js +14 -3
  1060. package/dist/frontend/npm-static-rewrite-host.js.map +1 -1
  1061. package/dist/frontend/npm-static-rewrite-syntax.d.ts +19 -0
  1062. package/dist/frontend/npm-static-rewrite-syntax.js +274 -101
  1063. package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
  1064. package/dist/frontend/npm-static-subtyping.js +7 -9
  1065. package/dist/frontend/npm-static-subtyping.js.map +1 -1
  1066. package/dist/frontend/npm-static.d.ts +25 -1
  1067. package/dist/frontend/npm-static.js +212 -16
  1068. package/dist/frontend/npm-static.js.map +1 -1
  1069. package/dist/frontend/npm-static.test.js +22 -1
  1070. package/dist/frontend/npm-static.test.js.map +1 -1
  1071. package/dist/frontend/npm.js +13 -0
  1072. package/dist/frontend/npm.js.map +1 -1
  1073. package/dist/frontend/package-shims.d.ts +47 -0
  1074. package/dist/frontend/package-shims.js +300 -0
  1075. package/dist/frontend/package-shims.js.map +1 -0
  1076. package/dist/frontend/pipeline.js +230 -26
  1077. package/dist/frontend/pipeline.js.map +1 -1
  1078. package/dist/frontend/pipeline.test.js +22 -1
  1079. package/dist/frontend/pipeline.test.js.map +1 -1
  1080. package/dist/frontend/program-analysis.d.ts +6 -1
  1081. package/dist/frontend/program-analysis.js +7 -0
  1082. package/dist/frontend/program-analysis.js.map +1 -1
  1083. package/dist/frontend/program.d.ts +100 -2
  1084. package/dist/frontend/program.js +1627 -262
  1085. package/dist/frontend/program.js.map +1 -1
  1086. package/dist/frontend/program.test.js +76 -6
  1087. package/dist/frontend/program.test.js.map +1 -1
  1088. package/dist/frontend/resolve.js +49 -2
  1089. package/dist/frontend/resolve.js.map +1 -1
  1090. package/dist/frontend/resolve.test.js +49 -0
  1091. package/dist/frontend/resolve.test.js.map +1 -1
  1092. package/dist/frontend/services.d.ts +26 -1
  1093. package/dist/frontend/services.js +59 -3
  1094. package/dist/frontend/services.js.map +1 -1
  1095. package/dist/frontend/services.test.js +2 -1
  1096. package/dist/frontend/services.test.js.map +1 -1
  1097. package/dist/frontend/threads-import.js +1 -1
  1098. package/dist/frontend/threads-import.js.map +1 -1
  1099. package/dist/frontend/tier-analysis.d.ts +71 -0
  1100. package/dist/frontend/tier-analysis.js +522 -0
  1101. package/dist/frontend/tier-analysis.js.map +1 -0
  1102. package/dist/frontend/ts7/api-conformance.d.ts +234 -0
  1103. package/dist/frontend/ts7/api-conformance.js +7 -0
  1104. package/dist/frontend/ts7/api-conformance.js.map +1 -0
  1105. package/dist/frontend/ts7/ast-guards.generated.js +2 -1
  1106. package/dist/frontend/ts7/ast-guards.generated.js.map +1 -1
  1107. package/dist/frontend/ts7/ast-node.d.ts +47 -25
  1108. package/dist/frontend/ts7/ast-node.js +64 -18
  1109. package/dist/frontend/ts7/ast-node.js.map +1 -1
  1110. package/dist/frontend/ts7/ast-node.test.js +36 -12
  1111. package/dist/frontend/ts7/ast-node.test.js.map +1 -1
  1112. package/dist/frontend/ts7/ast-types.d.ts +10 -3
  1113. package/dist/frontend/ts7/ast-types.generated.d.ts +39 -39
  1114. package/dist/frontend/ts7/ast.d.ts +1 -0
  1115. package/dist/frontend/ts7/ast.js +3 -2
  1116. package/dist/frontend/ts7/ast.js.map +1 -1
  1117. package/dist/frontend/ts7/checker-backend.d.ts +23 -0
  1118. package/dist/frontend/ts7/checker-backend.js +88 -0
  1119. package/dist/frontend/ts7/checker-backend.js.map +1 -0
  1120. package/dist/frontend/ts7/checker-backend.test.d.ts +1 -0
  1121. package/dist/frontend/ts7/checker-backend.test.js +63 -0
  1122. package/dist/frontend/ts7/checker-backend.test.js.map +1 -0
  1123. package/dist/frontend/ts7/checker-cache.d.ts +0 -3
  1124. package/dist/frontend/ts7/checker-cache.js +0 -6
  1125. package/dist/frontend/ts7/checker-cache.js.map +1 -1
  1126. package/dist/frontend/ts7/checker.d.ts +18 -11
  1127. package/dist/frontend/ts7/checker.js +42 -55
  1128. package/dist/frontend/ts7/checker.js.map +1 -1
  1129. package/dist/frontend/ts7/checker.test.js +10 -7
  1130. package/dist/frontend/ts7/checker.test.js.map +1 -1
  1131. package/dist/frontend/ts7/diagnostic.d.ts +19 -0
  1132. package/dist/frontend/ts7/diagnostic.js +22 -0
  1133. package/dist/frontend/ts7/diagnostic.js.map +1 -0
  1134. package/dist/frontend/ts7/node-functions.d.ts +8 -0
  1135. package/dist/frontend/ts7/node-functions.js +18 -0
  1136. package/dist/frontend/ts7/node-functions.js.map +1 -0
  1137. package/dist/frontend/ts7/program-host.d.ts +10 -5
  1138. package/dist/frontend/ts7/program-host.js +19 -0
  1139. package/dist/frontend/ts7/program-host.js.map +1 -1
  1140. package/dist/frontend/ts7/rpc-api.d.ts +5 -1
  1141. package/dist/frontend/ts7/rpc-api.js +8 -1
  1142. package/dist/frontend/ts7/rpc-api.js.map +1 -1
  1143. package/dist/frontend/ts7/semantic-checker.d.ts +13 -6
  1144. package/dist/frontend/ts7/semantic-checker.js +26 -8
  1145. package/dist/frontend/ts7/semantic-checker.js.map +1 -1
  1146. package/dist/frontend/ts7/semantic-checker.test.js +12 -9
  1147. package/dist/frontend/ts7/semantic-checker.test.js.map +1 -1
  1148. package/dist/frontend/ts7/semantic-model.d.ts +57 -24
  1149. package/dist/frontend/ts7/semantic-model.js +114 -16
  1150. package/dist/frontend/ts7/semantic-model.js.map +1 -1
  1151. package/dist/frontend/ts7/semantic-model.test.js +4 -4
  1152. package/dist/frontend/ts7/semantic-model.test.js.map +1 -1
  1153. package/dist/frontend/ts7/semantic-types.d.ts +7 -3
  1154. package/dist/frontend/ts7/semantic-types.js +1 -1
  1155. package/dist/frontend/ts7/semantic-types.js.map +1 -1
  1156. package/dist/frontend/ts7/session.d.ts +30 -15
  1157. package/dist/frontend/ts7/session.js +8 -5
  1158. package/dist/frontend/ts7/session.js.map +1 -1
  1159. package/dist/frontend/ts7/session.test.js +9 -5
  1160. package/dist/frontend/ts7/session.test.js.map +1 -1
  1161. package/dist/frontend/ts7/source-parser.d.ts +6 -2
  1162. package/dist/frontend/ts7/source-parser.js +24 -3
  1163. package/dist/frontend/ts7/source-parser.js.map +1 -1
  1164. package/dist/frontend/ts7/source-parser.test.js +38 -17
  1165. package/dist/frontend/ts7/source-parser.test.js.map +1 -1
  1166. package/dist/frontend/type-mapper.d.ts +122 -2
  1167. package/dist/frontend/type-mapper.js +2735 -723
  1168. package/dist/frontend/type-mapper.js.map +1 -1
  1169. package/dist/frontend/type-only-imports.d.ts +28 -0
  1170. package/dist/frontend/type-only-imports.js +122 -0
  1171. package/dist/frontend/type-only-imports.js.map +1 -0
  1172. package/dist/frontend/worker-target.js +8 -8
  1173. package/dist/frontend/worker-target.js.map +1 -1
  1174. package/dist/index.d.ts +4 -1
  1175. package/dist/index.js +87 -8
  1176. package/dist/index.js.map +1 -1
  1177. package/dist/ir/analysis.js +4 -2
  1178. package/dist/ir/analysis.js.map +1 -1
  1179. package/dist/ir/api.d.ts +1 -1
  1180. package/dist/ir/api.js +1 -1
  1181. package/dist/ir/api.js.map +1 -1
  1182. package/dist/ir/array-length-stability.d.ts +31 -0
  1183. package/dist/ir/array-length-stability.js +249 -0
  1184. package/dist/ir/array-length-stability.js.map +1 -0
  1185. package/dist/ir/array-length-stability.test.d.ts +1 -0
  1186. package/dist/ir/array-length-stability.test.js +134 -0
  1187. package/dist/ir/array-length-stability.test.js.map +1 -0
  1188. package/dist/ir/build.d.ts +2 -2
  1189. package/dist/ir/build.js +1 -1
  1190. package/dist/ir/build.js.map +1 -1
  1191. package/dist/ir/builtin-effects.js +116 -0
  1192. package/dist/ir/builtin-effects.js.map +1 -1
  1193. package/dist/ir/builtin-signatures.d.ts +1 -1
  1194. package/dist/ir/builtin-signatures.js +540 -29
  1195. package/dist/ir/builtin-signatures.js.map +1 -1
  1196. package/dist/ir/byte-numbers.js +3 -0
  1197. package/dist/ir/byte-numbers.js.map +1 -1
  1198. package/dist/ir/callback-specialization.d.ts +37 -0
  1199. package/dist/ir/callback-specialization.js +459 -0
  1200. package/dist/ir/callback-specialization.js.map +1 -0
  1201. package/dist/ir/callback-specialization.test.d.ts +1 -0
  1202. package/dist/ir/callback-specialization.test.js +208 -0
  1203. package/dist/ir/callback-specialization.test.js.map +1 -0
  1204. package/dist/ir/capture-values.d.ts +0 -1
  1205. package/dist/ir/capture-values.js +51 -40
  1206. package/dist/ir/capture-values.js.map +1 -1
  1207. package/dist/ir/constant-globals.test.js +1 -1
  1208. package/dist/ir/constant-tables.test.js +1 -1
  1209. package/dist/ir/field-values.test.js +1 -1
  1210. package/dist/ir/final-fields.test.js +1 -1
  1211. package/dist/ir/function-references.test.js +9 -1
  1212. package/dist/ir/function-references.test.js.map +1 -1
  1213. package/dist/ir/init-only-globals.test.js +1 -1
  1214. package/dist/ir/initializer-bindings.test.js +1 -1
  1215. package/dist/ir/int32-slots.d.ts +14 -0
  1216. package/dist/ir/int32-slots.js +97 -14
  1217. package/dist/ir/int32-slots.js.map +1 -1
  1218. package/dist/ir/int32-slots.test.js +1 -1
  1219. package/dist/ir/integer-loop-facts.d.ts +7 -0
  1220. package/dist/ir/integer-loop-facts.js +103 -17
  1221. package/dist/ir/integer-loop-facts.js.map +1 -1
  1222. package/dist/ir/integer-loops.d.ts +1 -1
  1223. package/dist/ir/integer-loops.js +39 -9
  1224. package/dist/ir/integer-loops.js.map +1 -1
  1225. package/dist/ir/integer-loops.test.js +104 -0
  1226. package/dist/ir/integer-loops.test.js.map +1 -1
  1227. package/dist/ir/integer-ranges.d.ts +13 -1
  1228. package/dist/ir/integer-ranges.js +125 -26
  1229. package/dist/ir/integer-ranges.js.map +1 -1
  1230. package/dist/ir/integer-ranges.test.js +273 -2
  1231. package/dist/ir/integer-ranges.test.js.map +1 -1
  1232. package/dist/ir/intrinsic-signatures.js +6 -0
  1233. package/dist/ir/intrinsic-signatures.js.map +1 -1
  1234. package/dist/ir/ir.d.ts +221 -58
  1235. package/dist/ir/ir.js +127 -12
  1236. package/dist/ir/ir.js.map +1 -1
  1237. package/dist/ir/ir.test.js +10 -0
  1238. package/dist/ir/ir.test.js.map +1 -1
  1239. package/dist/ir/js-ic.d.ts +52 -0
  1240. package/dist/ir/js-ic.js +199 -0
  1241. package/dist/ir/js-ic.js.map +1 -0
  1242. package/dist/ir/js-ic.test.d.ts +1 -0
  1243. package/dist/ir/js-ic.test.js +148 -0
  1244. package/dist/ir/js-ic.test.js.map +1 -0
  1245. package/dist/ir/jsval.d.ts +8 -0
  1246. package/dist/ir/jsval.js +399 -0
  1247. package/dist/ir/jsval.js.map +1 -0
  1248. package/dist/ir/jsval.test.d.ts +1 -0
  1249. package/dist/ir/jsval.test.js +239 -0
  1250. package/dist/ir/jsval.test.js.map +1 -0
  1251. package/dist/ir/runtime-features.d.ts +183 -33
  1252. package/dist/ir/runtime-features.js +795 -422
  1253. package/dist/ir/runtime-features.js.map +1 -1
  1254. package/dist/ir/scalar-records.test.js +1 -1
  1255. package/dist/ir/self-captures.d.ts +33 -0
  1256. package/dist/ir/self-captures.js +245 -0
  1257. package/dist/ir/self-captures.js.map +1 -0
  1258. package/dist/ir/self-captures.test.d.ts +1 -0
  1259. package/dist/ir/self-captures.test.js +135 -0
  1260. package/dist/ir/self-captures.test.js.map +1 -0
  1261. package/dist/ir/serialize.d.ts +1 -1
  1262. package/dist/ir/serialize.js +7 -4
  1263. package/dist/ir/serialize.js.map +1 -1
  1264. package/dist/ir/tiers.d.ts +26 -0
  1265. package/dist/ir/tiers.js +101 -0
  1266. package/dist/ir/tiers.js.map +1 -0
  1267. package/dist/ir/tiers.test.d.ts +1 -0
  1268. package/dist/ir/tiers.test.js +140 -0
  1269. package/dist/ir/tiers.test.js.map +1 -0
  1270. package/dist/ir/traverse.js +201 -150
  1271. package/dist/ir/traverse.js.map +1 -1
  1272. package/dist/ir/traverse.test.js +33 -30
  1273. package/dist/ir/traverse.test.js.map +1 -1
  1274. package/dist/ir/unshare.js +65 -3
  1275. package/dist/ir/unshare.js.map +1 -1
  1276. package/dist/ir/unshare.test.js +1 -1
  1277. package/dist/ir/validate.js +196 -76
  1278. package/dist/ir/validate.js.map +1 -1
  1279. package/dist/ir/validate.test.js +41 -11
  1280. package/dist/ir/validate.test.js.map +1 -1
  1281. package/dist/library/fence-eval.test.js +1 -1
  1282. package/dist/library/int-infer.test.js +4 -4
  1283. package/dist/library/ir-policy.js +14 -0
  1284. package/dist/library/ir-policy.js.map +1 -1
  1285. package/dist/library/library-cache.d.ts +1 -0
  1286. package/dist/library/library-cache.js.map +1 -1
  1287. package/dist/library/library-cache.test.js +5 -5
  1288. package/dist/library/library-profile.d.ts +4 -4
  1289. package/dist/library/library-profile.js +35 -7
  1290. package/dist/library/library-profile.js.map +1 -1
  1291. package/dist/library/prepare.js +13 -1
  1292. package/dist/library/prepare.js.map +1 -1
  1293. package/dist/native/cli.js +22 -0
  1294. package/dist/native/cli.js.map +1 -1
  1295. package/dist/native/compiler.js +35 -6
  1296. package/dist/native/compiler.js.map +1 -1
  1297. package/dist/native/compiler.test.js +2 -2
  1298. package/dist/native/executable-cache.js +3 -0
  1299. package/dist/native/executable-cache.js.map +1 -1
  1300. package/dist/native/prepare.js +10 -0
  1301. package/dist/native/prepare.js.map +1 -1
  1302. package/dist/native/sanitizer.test.js +19 -0
  1303. package/dist/native/sanitizer.test.js.map +1 -1
  1304. package/dist/native/toolchain.d.ts +2 -0
  1305. package/dist/native/toolchain.js +10 -1
  1306. package/dist/native/toolchain.js.map +1 -1
  1307. package/dist/native/toolchain.test.js +39 -1
  1308. package/dist/native/toolchain.test.js.map +1 -1
  1309. package/dist/startup-cache.d.ts +1 -0
  1310. package/dist/startup-cache.js +1 -0
  1311. package/dist/startup-cache.js.map +1 -1
  1312. package/dist/wasm/base64.d.ts +5 -0
  1313. package/dist/wasm/base64.js +62 -0
  1314. package/dist/wasm/base64.js.map +1 -0
  1315. package/dist/wasm/binary.d.ts +36 -0
  1316. package/dist/wasm/binary.js +1976 -0
  1317. package/dist/wasm/binary.js.map +1 -0
  1318. package/dist/wasm/binary.test.d.ts +1 -0
  1319. package/dist/wasm/binary.test.js +190 -0
  1320. package/dist/wasm/binary.test.js.map +1 -0
  1321. package/dist/wasm/discover.d.ts +38 -0
  1322. package/dist/wasm/discover.js +377 -0
  1323. package/dist/wasm/discover.js.map +1 -0
  1324. package/dist/wasm/discover.test.d.ts +1 -0
  1325. package/dist/wasm/discover.test.js +24 -0
  1326. package/dist/wasm/discover.test.js.map +1 -0
  1327. package/dist/wasm/module.d.ts +151 -0
  1328. package/dist/wasm/module.js +575 -0
  1329. package/dist/wasm/module.js.map +1 -0
  1330. package/dist/wasm/translate.d.ts +48 -0
  1331. package/dist/wasm/translate.js +2129 -0
  1332. package/dist/wasm/translate.js.map +1 -0
  1333. package/dist/wasm/translate.test.d.ts +1 -0
  1334. package/dist/wasm/translate.test.js +207 -0
  1335. package/dist/wasm/translate.test.js.map +1 -0
  1336. package/package.json +22 -20
  1337. package/shims/fs-extra/core/api.ts +1192 -0
  1338. package/shims/fs-extra/index.ts +9 -0
  1339. package/shims/undici/core/agent.ts +163 -0
  1340. package/shims/undici/core/api.ts +93 -0
  1341. package/shims/undici/core/client.ts +1304 -0
  1342. package/shims/undici/core/connector.ts +157 -0
  1343. package/shims/undici/core/diagnostics-types.ts +68 -0
  1344. package/shims/undici/core/diagnostics.ts +16 -0
  1345. package/shims/undici/core/dispatcher.ts +574 -0
  1346. package/shims/undici/core/errors-v5.ts +22 -0
  1347. package/shims/undici/core/errors-v7.ts +25 -0
  1348. package/shims/undici/core/errors.ts +255 -0
  1349. package/shims/undici/core/fetch.ts +635 -0
  1350. package/shims/undici/core/pool.ts +280 -0
  1351. package/shims/undici/core/readable.ts +268 -0
  1352. package/shims/undici/core/request.ts +313 -0
  1353. package/shims/undici/core/timers.ts +80 -0
  1354. package/shims/undici/core/types.ts +167 -0
  1355. package/shims/undici/core/util.ts +67 -0
  1356. package/shims/undici/v5.ts +119 -0
  1357. package/shims/undici/v7.ts +119 -0
  1358. package/surface-manifest.json +304 -22
@@ -0,0 +1,830 @@
1
+ /* Identifier references in expression position: lowerExprInner's identifier branch and its helpers. */
2
+ import { cjsMemberAliasValueOf } from "../cjs-exports-object.js";
3
+ import { builtinClassValue, builtinMemberClassKind } from "../builtins/builtin-class-dyn.js";
4
+ import * as ts from "../../ts7/adapter.js";
5
+ import { InternalCompilerError } from "../../../errors.js";
6
+ import * as posix from "node:path/posix";
7
+ import { PoisonError } from "../lowerer.js";
8
+ import { BOOL, BYTES_ELEMENT_NAME, DYN, F64, STRING, UNDEFINED_T, arrayOf, funcOf, isUnitType, recordTextCodecClass, } from "../../../ir/ir.js";
9
+ import { lowerNodeModuleIdentifier } from "../lower-node-module.js";
10
+ import { lowerCjsExportsObjectValue } from "../cjs-exports-object.js";
11
+ import { captureContextArguments } from "../function-context.js";
12
+ import { argumentsOwner, typedArgumentsCandidate } from "../typed-arguments.js";
13
+ import { isCjsExportTableLiteral, isCjsJsFile, isJsSourceFile, isNodeEsmFile, locOf, } from "../../program.js";
14
+ import { builtinClassAliasOwnsNoSlot, runtimeClassValueOf } from "../builtins/class-values.js";
15
+ import { cjsAccessorCall, cjsAccessorSnapshotOf, primitiveCtorClosure, runtimeOptionalElementKey, runtimeOptionalUseOf, } from "../lower-exprs.js";
16
+ import { runtimeOptionalReceiverRead } from "./narrowing.js";
17
+ import { builtinGlobalValueAt } from "./property-access.js";
18
+ import { varRef } from "../../../ir/build.js";
19
+ import { ambientUndefReadType, ambientUndefinedFnSymbolOf, contextualUndefReadType, fenceEarlyAliasUse, isTemporalGlobalRoot, lowerNsIdentifierValue, nsUndefRead, } from "../lower-namespaces.js";
20
+ import { blockedBindingUseDiag, unsupportedDiag, unsupportedPackageValueDiag, } from "../../../diagnostics/diagnostic.js";
21
+ import { dirname } from "node:path";
22
+ import { funcTypeFromParamShapes } from "../call-signatures.js";
23
+ import { threadsImportOf } from "../../threads-import.js";
24
+ import { experimentalImportOf } from "../../experimental-import.js";
25
+ import { lowerWorkerMetadata } from "../builtins/workers.js";
26
+ import { esmImportBindingKind } from "../builtins/module-bindings.js";
27
+ import { builtinConstLit, builtinFenceHintOf, builtinModuleConstOf, builtinModuleFnOf, builtinModulesArrayLit, stdlibGlobalNameOf, } from "../surfaces.js";
28
+ import { builtinConstantsObject } from "../lower-builtin-values.js";
29
+ import { lowerTlsRootCertificates } from "../lower-server.js";
30
+ import { builtinFunctionFenceValue } from "../builtin-function-fences.js";
31
+ import { unsupportedModuleFeatureOf } from "../../builtin-modules.js";
32
+ import { lowerGlobalValue } from "../lower-global-value.js";
33
+ import { fenceEnumObjectValue } from "../lower-enums.js";
34
+ import { mixinFnOfCallee } from "../lower-mixins.js";
35
+ import { isNavigatorGlobal, refuseNavigator } from "../builtins/navigator.js";
36
+ import { wasiGuestPath } from "../../../wasi-paths.js";
37
+ export function lowerIdentifierExpr(lowerer, expr, loc) {
38
+ if (lowerer.isStdlibGlobal(expr, "console")) {
39
+ return { kind: "libCall", fn: "console.native", args: [], type: DYN, loc };
40
+ }
41
+ const moduleValue = lowerNodeModuleIdentifier(lowerer, expr);
42
+ if (moduleValue)
43
+ return moduleValue;
44
+ if (expr.text === "exports") {
45
+ const exportsValue = lowerCjsExportsObjectValue(lowerer, expr);
46
+ if (exportsValue)
47
+ return exportsValue;
48
+ }
49
+ if (lowerer.isSelfReference(expr)) {
50
+ return { kind: "selfRef", type: lowerer.ctx.selfType, loc };
51
+ }
52
+ // `arguments` in a variadic JS function (the rest-marked form): the
53
+ // synthetic trailing dyn-array param — lambdaSignature marked the
54
+ // type and lowerLambda declared the local.
55
+ if (expr.text === "arguments") {
56
+ const binding = captureContextArguments(lowerer.fnStack);
57
+ if (binding && lowerer.ctx.pureTuples.has(binding.id)) {
58
+ throw new InternalCompilerError("lowerer bug: forwarded-only 'arguments' read as a value");
59
+ }
60
+ if (binding)
61
+ return { kind: "varRef", localId: binding.id, type: binding.type, loc };
62
+ const owner = argumentsOwner(expr);
63
+ if (owner && typedArgumentsCandidate(owner)) {
64
+ lowerer.unsupported("SC1090", expr, "'arguments' in a function expression whose value is not asserted to one fixed-arity signature (assert it, as in `function () { … } as F`, and the function lowers against that signature)");
65
+ }
66
+ }
67
+ // A compiler-projected adapter as a VALUE: the adapter has no
68
+ // runtime function object (its calls rewrite directly) — call it
69
+ // through its immutable binding instead.
70
+ {
71
+ const sym = lowerer.resolveValueSymbol(expr);
72
+ const projection = sym ? lowerer.staticCallables.get(sym) : undefined;
73
+ if (projection?.kind === "promisified-exec-file" ||
74
+ projection?.kind === "promisified-exec" ||
75
+ projection?.kind === "promisified-builtin" ||
76
+ projection?.kind === "promisified-zlib" ||
77
+ projection?.kind === "promisified-crypto" ||
78
+ projection?.kind === "promisified-dns") {
79
+ lowerer.unsupported("SC1090", expr, `a promisified builtin as a value (call '${expr.text}' directly)`);
80
+ }
81
+ if (projection?.kind === "builtin-function") {
82
+ if (!isJsSourceFile(ts.getSourceFileOfNode(expr))) {
83
+ const callable = lowerer.lowerBuiltinCallableValue({ module: projection.module, member: projection.member }, loc);
84
+ if (callable)
85
+ return callable;
86
+ }
87
+ lowerer.unsupported("SC1090", expr, `a builtin function alias as an escaping value (call '${expr.text}' directly)`);
88
+ }
89
+ // `EventEmitter`, `Readable` or `TypeError` (or a const alias of
90
+ // one) as a value in a TypeScript file: the runtime class's class
91
+ // object. JavaScript files keep the identity token.
92
+ if (!isJsSourceFile(ts.getSourceFileOfNode(expr))) {
93
+ const runtimeClass = runtimeClassValueOf(lowerer, expr);
94
+ if (runtimeClass)
95
+ return lowerer.classValueRef(runtimeClass, expr);
96
+ }
97
+ // `const E = EventEmitter` owns no runtime slot: construction,
98
+ // instanceof, typeof and .name lower at their use sites.
99
+ if (sym && builtinClassAliasOwnsNoSlot(lowerer, sym)) {
100
+ lowerer.unsupported("SC1090", expr, `a builtin class alias as an escaping value (use '${expr.text}' with new, instanceof, typeof or .name)`);
101
+ }
102
+ }
103
+ // Union-typed bindings read through tsc's control-flow narrowing:
104
+ // when the checker types this USE as a single arm, maybeNarrow
105
+ // bridges the tagged representation with a unionNarrow.
106
+ const local = lowerer.resolveLocal(expr);
107
+ if (local) {
108
+ // A switch can dispatch past a lexical declaration. Keep this
109
+ // previously refused codec form out until switch-scope TDZ boxes
110
+ // model that skipped initialization, including value aliases.
111
+ if (local.type.kind === "record" &&
112
+ recordTextCodecClass(lowerer.shapes.get(local.type.shapeId)) !== null) {
113
+ const symbol = lowerer.resolveValueSymbol(expr);
114
+ const decl = symbol ? symbol.valueDeclaration : undefined;
115
+ if (decl &&
116
+ ts.isVariableDeclaration(decl) &&
117
+ ts.isVariableDeclarationList(decl.parent) &&
118
+ (decl.parent.flags & ts.NodeFlags.BlockScoped) !== 0 &&
119
+ ts.isVariableStatement(decl.parent.parent)) {
120
+ const clause = decl.parent.parent.parent;
121
+ if ((ts.isCaseClause(clause) || ts.isDefaultClause(clause)) &&
122
+ !(ts.tokenStartOfNode(expr) >= ts.tokenStartOfNode(clause) && expr.end <= clause.end)) {
123
+ lowerer.unsupported("SC1090", expr, "codec bindings read from another switch clause before initialization is proven");
124
+ }
125
+ }
126
+ }
127
+ if (local.type.kind === "caught")
128
+ return lowerer.caughtRead(expr, local, loc);
129
+ const symbol = lowerer.resolveValueSymbol(expr);
130
+ const runtimeOptionalRoot = lowerer.runtimeOptionalRootOf(local);
131
+ const active = lowerer.runtimeOptionalLocals.has(runtimeOptionalRoot);
132
+ const arithmetic = lowerer.runtimeOptionalArithmeticLocals.has(runtimeOptionalRoot);
133
+ const captured = !!symbol &&
134
+ lowerer.runtimeOptionalStorageLocals.has(runtimeOptionalRoot) &&
135
+ (local.boxed === true ||
136
+ lowerer.ctx.captureBySymbol.get(symbol) === local ||
137
+ runtimeOptionalRoot !== local);
138
+ if (arithmetic && !runtimeOptionalUseOf(expr)) {
139
+ return { kind: "varRef", localId: local.id, type: local.type, loc };
140
+ }
141
+ if (active || captured) {
142
+ const use = runtimeOptionalUseOf(expr);
143
+ if (use?.complex) {
144
+ lowerer.unsupported("SC1090", expr, "a logical or conditional receiver containing a runtime-optional capture");
145
+ }
146
+ if (use?.optional)
147
+ return { kind: "varRef", localId: local.id, type: local.type, loc };
148
+ if (use?.kind === "property")
149
+ return runtimeOptionalReceiverRead(lowerer, expr, local, use.access.name.text, loc);
150
+ if (use?.kind === "element") {
151
+ const key = runtimeOptionalElementKey(use.access.argumentExpression);
152
+ if (key === null) {
153
+ return varRef(local.id, local.type, loc);
154
+ }
155
+ return runtimeOptionalReceiverRead(lowerer, expr, local, key, loc);
156
+ }
157
+ if (use?.kind === "call") {
158
+ if (use.comma && !use.optional) {
159
+ lowerer.unsupported("SC1090", use.access, "a direct call through a comma-wrapped runtime-optional capture");
160
+ }
161
+ return runtimeOptionalReceiverRead(lowerer, expr, local, null, loc);
162
+ }
163
+ if (runtimeOptionalObjectWalkerArg(lowerer, expr)) {
164
+ const narrowed = lowerer.mapTypeOf(lowerer.typeOf(expr));
165
+ if (local.type.kind === "union" && narrowed) {
166
+ const helper = narrowed.kind === "union"
167
+ ? lowerer.narrowedRetagHelper(expr, local.type.unionId, narrowed.unionId, loc)
168
+ : !isUnitType(narrowed)
169
+ ? lowerer.narrowedArmHelper(local.type.unionId, narrowed, loc)
170
+ : null;
171
+ if (helper) {
172
+ return lowerer.checkedNarrowCall(helper, varRef(local.id, local.type, loc), narrowed, loc);
173
+ }
174
+ }
175
+ }
176
+ return { kind: "varRef", localId: local.id, type: local.type, loc };
177
+ }
178
+ const narrowed = lowerer.maybeNarrow({ kind: "varRef", localId: local.id, type: local.type, loc }, expr);
179
+ if (narrowed.type.kind === "union" &&
180
+ lowerer.runtimeOptionalStorageLocals.has(runtimeOptionalRoot) &&
181
+ lowerer.mapTypeOf(lowerer.typeOf(expr))?.kind === "record") {
182
+ // A presence guard can be followed by a predicate strengthening
183
+ // the record's fields. Its refined shape is not a stored union
184
+ // arm: extract the original layout before reading a member.
185
+ const use = runtimeOptionalUseOf(expr);
186
+ if (use && !use.complex && !use.optional) {
187
+ if (use.kind === "property")
188
+ return runtimeOptionalReceiverRead(lowerer, expr, local, use.access.name.text, loc);
189
+ if (use.kind === "element") {
190
+ const key = runtimeOptionalElementKey(use.access.argumentExpression);
191
+ if (key !== null)
192
+ return runtimeOptionalReceiverRead(lowerer, expr, local, key, loc);
193
+ }
194
+ }
195
+ }
196
+ return narrowed;
197
+ }
198
+ // `import x = N.y` aliases resolve transparently through globalOf/
199
+ // fnSigOf below; their source-order guards live here (a no-op for
200
+ // every non-import= binding — see lower-namespaces.ts).
201
+ fenceEarlyAliasUse(lowerer, expr, expr);
202
+ const g = lowerer.globalOf(expr);
203
+ if (g) {
204
+ // A global typed by a class that never REGISTERED (its collection
205
+ // fenced): the initializing assignment never lowered, so the read
206
+ // can only observe garbage — and the emitter would name a struct
207
+ // that does not exist. The blocked-binding cascade names the use;
208
+ // without this the validator's registration check ICEs on the live
209
+ // reference (`@this {T}` inference — signature 07).
210
+ const unregistered = lowerer.unregisteredClassOf(g.type, new Set());
211
+ if (unregistered !== null) {
212
+ // The class's own rejection is the root cause the cascade names.
213
+ lowerer.flushDeferredClass(unregistered);
214
+ lowerer.pushDiag(blockedBindingUseDiag(expr.text, loc));
215
+ throw new PoisonError();
216
+ }
217
+ const ref = { kind: "varRef", localId: g.id, type: g.type, loc };
218
+ if (lowerer.isRuntimeOptionalArithmeticGlobal(g) && !runtimeOptionalUseOf(expr)) {
219
+ return ref;
220
+ }
221
+ const storageHasUndefined = g.type.kind === "union" && lowerer.armTag(g.type.unionId, UNDEFINED_T) >= 0;
222
+ if (lowerer.isRuntimeOptionalGlobal(g) || storageHasUndefined) {
223
+ // A checker-narrowed global receiver (`if (tags !== undefined)
224
+ // tags[tags.length] = ...`, or `a ? Object.keys(a) : ...`) is
225
+ // still stored as the runtime optional union. Extract the proven
226
+ // value arm before routing the member/element operation so dynamic
227
+ // keys and builtin record walkers do not see a union receiver.
228
+ const narrowed = lowerer.mapTypeOf(lowerer.typeOf(expr));
229
+ const arithmeticUnion = g.type.kind === "union" &&
230
+ lowerer.unions.get(g.type.unionId)?.arms.length === 2 &&
231
+ lowerer.unions.get(g.type.unionId).arms.some((a) => a.kind === "f64") &&
232
+ lowerer.unions.get(g.type.unionId).arms.some((a) => a.kind === "string");
233
+ const symbol = lowerer.resolveValueSymbol(expr);
234
+ if (!arithmeticUnion &&
235
+ !(symbol !== null && lowerer.earlyReadVars.has(symbol)) &&
236
+ g.type.kind === "union" &&
237
+ narrowed &&
238
+ narrowed.kind !== "union" &&
239
+ !isUnitType(narrowed) &&
240
+ !(narrowed.kind === "record" &&
241
+ recordTextCodecClass(lowerer.shapes.get(narrowed.shapeId)) !== null) &&
242
+ narrowed.kind !== "f64" &&
243
+ narrowed.kind !== "string" &&
244
+ narrowed.kind !== "bool" &&
245
+ lowerer.armTag(g.type.unionId, narrowed) >= 0) {
246
+ const helper = lowerer.narrowedArmHelper(g.type.unionId, narrowed, loc);
247
+ if (helper)
248
+ return lowerer.checkedNarrowCall(helper, ref, narrowed, loc);
249
+ }
250
+ const use = runtimeOptionalUseOf(expr);
251
+ // The enclosing logical/conditional expression consumes the union
252
+ // before any member operation runs (`(value ?? fallback).length`).
253
+ // Keep the tagged value intact and let that lazy expression decide
254
+ // its branch; extracting here would evaluate or throw too early.
255
+ if (use?.complex)
256
+ return ref;
257
+ if (use?.optional)
258
+ return ref;
259
+ if (use?.kind === "property")
260
+ return runtimeOptionalReceiverRead(lowerer, expr, g, use.access.name.text, loc);
261
+ if (use?.kind === "element") {
262
+ const key = runtimeOptionalElementKey(use.access.argumentExpression);
263
+ if (key === null)
264
+ lowerer.unsupported("SC1090", use.access, "a computed read from a runtime-optional global (use a literal key)");
265
+ return runtimeOptionalReceiverRead(lowerer, expr, g, key, loc);
266
+ }
267
+ if (use?.kind === "call")
268
+ return runtimeOptionalReceiverRead(lowerer, expr, g, null, loc);
269
+ return ref;
270
+ }
271
+ return lowerer.maybeNarrow(ref, expr);
272
+ }
273
+ // `undefined` — tsc's intrinsic global (a local shadowing the name
274
+ // resolved above): a unit literal, exactly like the `null` keyword.
275
+ if (expr.text === "undefined" && lowerer.typeOf(expr).flags & ts.TypeFlags.Undefined) {
276
+ return { kind: "unitLit", unit: "undefined", type: UNDEFINED_T, loc };
277
+ }
278
+ // `__dirname` / `__filename` — the CommonJS module globals: per-
279
+ // MODULE compile-time constants, the containing file's location
280
+ // (Node's exact values when the same tree runs in place; WASI uses
281
+ // the equivalent guest-visible path; locals shadowing the names
282
+ // resolved above), the same strings as import.meta.dirname/filename.
283
+ // In a JavaScript ES module Node never defines them, so the read throws
284
+ // Node's catchable ReferenceError. A .ts/.tsx file keeps them even when
285
+ // Node's strip-types rule would load it as ESM: TypeScript projects are
286
+ // commonly built as CommonJS bundles (tsc, esbuild, tsx) where these
287
+ // globals exist, and @types/node declares them for every file.
288
+ if ((expr.text === "__dirname" || expr.text === "__filename") &&
289
+ lowerer.isStdlibGlobal(expr, expr.text)) {
290
+ const sf = ts.getSourceFileOfNode(expr);
291
+ if (isNodeEsmFile(sf, lowerer.program) && !/\.tsx?$/.test(sf.fileName)) {
292
+ return {
293
+ kind: "libCall",
294
+ fn: "global.undefRead",
295
+ args: [{ kind: "strLit", value: expr.text, type: STRING, loc }],
296
+ type: STRING,
297
+ loc,
298
+ };
299
+ }
300
+ // The WASI runner mounts the host cwd at guest `/` and the host temp
301
+ // directory at `/tmp`. Bake the matching GUEST spelling so resource
302
+ // lookups relative to these CommonJS globals stay inside the exposed
303
+ // capability instead of naming an unreachable host-absolute path.
304
+ const fileName = moduleFileName(lowerer, sf);
305
+ const value = expr.text === "__dirname"
306
+ ? lowerer.targetPlatform === "wasi"
307
+ ? posix.dirname(fileName)
308
+ : dirname(fileName)
309
+ : fileName;
310
+ return { kind: "strLit", value, type: STRING, loc };
311
+ }
312
+ const sig = lowerer.fnSigOf(expr);
313
+ if (sig && lowerer.isTopLevelFnSymbol(expr)) {
314
+ // A declared function used as a value: a zero-capture closure. The
315
+ // backend interns one per function so `f === f` holds (JS identity).
316
+ // The value's type is the completed ABI signature; optional/default
317
+ // slots and typed rest arrays pass the value fence first.
318
+ lowerer.noteEdge(sig.name);
319
+ // dynRest slots stay out of the VALUE type's param list (fn.length
320
+ // semantics); the rest marker carries the trailing dyn-array ABI.
321
+ const funcType = funcTypeFromParamShapes(sig.params, sig.returnType);
322
+ lowerer.requireExactArityValue(expr, expr, sig.params, funcType);
323
+ return { kind: "closure", fnName: sig.name, captures: [], type: funcType, loc };
324
+ }
325
+ {
326
+ // A generic function as a VALUE: monomorphized by flow — the
327
+ // reference's pinned concrete signature (contextual type or an
328
+ // instantiation expression) names the instance; unpinned
329
+ // references fence inside (lowerGenericFnValue).
330
+ const gfn = lowerer.genericFnOf(expr);
331
+ if (gfn)
332
+ return lowerer.lowerGenericFnValue(expr, gfn);
333
+ }
334
+ // A CJS export-table ACCESSOR read (`tmpdir.path`, or a destructured
335
+ // binding aliasing one): the getter is a real function of module
336
+ // scope — its body reads module globals, so it lifts like a lambda
337
+ // (interned per declaration) and every read is a call. Node runs the
338
+ // getter per read; so does this.
339
+ {
340
+ const acc = cjsExportAccessorRead(lowerer, expr);
341
+ if (acc)
342
+ return acc;
343
+ }
344
+ // A binding destructured from a baked constants object
345
+ // (http2.constants / crypto.constants): the literal — the
346
+ // declaration emitted nothing (builtinConstantsDestructureDecl).
347
+ {
348
+ const h2c = lowerer.builtinConstantBindingOf(expr);
349
+ if (h2c)
350
+ return h2c;
351
+ }
352
+ // Builtin-module import bindings: constants (path.sep, os.EOL) read
353
+ // as interned string literals; functions have no closure
354
+ // representation (they lower to libCall at call sites only); members
355
+ // with no lowering at all fence with the module-qualified name.
356
+ {
357
+ const member = threadsImportOf(lowerer.program, expr);
358
+ // scriptc delivers published graphs by reference.
359
+ if (member === "sharesPublishedGraphs")
360
+ return { kind: "boolLit", value: true, type: BOOL, loc };
361
+ if (member === "publish")
362
+ lowerer.noLowering("publish (@scriptc/threads) as a value", expr, "call publish(value) directly");
363
+ if (experimentalImportOf(lowerer.program, expr) === "LifetimeRegion")
364
+ lowerer.noLowering("LifetimeRegion (@scriptc/experimental) as a value", expr, "construct regions with new LifetimeRegion()");
365
+ if (experimentalImportOf(lowerer.program, expr) === "InternTable")
366
+ lowerer.noLowering("InternTable (@scriptc/experimental) as a value", expr, 'open tables with new InternTable("name")');
367
+ if (experimentalImportOf(lowerer.program, expr) === "ThreadSlots")
368
+ lowerer.noLowering("ThreadSlots (@scriptc/experimental) as a value", expr, 'open slots with new ThreadSlots("name")');
369
+ }
370
+ {
371
+ const bi = lowerer.builtinImportOf(expr);
372
+ if (bi) {
373
+ if (bi.module === "worker_threads") {
374
+ const value = lowerWorkerMetadata(bi.member, loc);
375
+ if (value)
376
+ return value;
377
+ }
378
+ // A named import of defaultMaxListeners reads the ES module
379
+ // namespace's copy. A CommonJS destructured or member binding holds
380
+ // the value read when its declaration ran, which these bindings do
381
+ // not store.
382
+ if (bi.module === "events" && bi.member === "defaultMaxListeners") {
383
+ if (esmImportBindingKind(lowerer, expr) === "named") {
384
+ return { kind: "libCall", fn: "emitter.esmDefaultMax", args: [], type: F64, loc };
385
+ }
386
+ lowerer.noLowering("events.defaultMaxListeners through a CommonJS destructured or member binding", expr, "read require('events').defaultMaxListeners or EventEmitter.defaultMaxListeners where the value is needed");
387
+ }
388
+ const c = builtinModuleConstOf(lowerer, bi.module, bi.member);
389
+ if (c !== undefined)
390
+ return builtinConstLit(c, loc);
391
+ // module.builtinModules — the baked Node v24 list, a fresh
392
+ // string[] per read.
393
+ if (bi.module === "module" && bi.member === "builtinModules") {
394
+ return builtinModulesArrayLit(loc);
395
+ }
396
+ if (bi.module === "http" && bi.member === "METHODS") {
397
+ return { kind: "libCall", fn: "http.methods", args: [], type: arrayOf(STRING), loc };
398
+ }
399
+ if ((bi.module === "http" || bi.module === "https") && bi.member === "globalAgent") {
400
+ return {
401
+ kind: "libCall",
402
+ fn: "http.globalAgent",
403
+ args: [{ kind: "boolLit", value: bi.module === "https", type: BOOL, loc }],
404
+ type: DYN,
405
+ loc,
406
+ };
407
+ }
408
+ if (bi.module === "http" && bi.member === "STATUS_CODES") {
409
+ return { kind: "libCall", fn: "http.statusCodes", args: [], type: DYN, loc };
410
+ }
411
+ if (bi.module === "os" && bi.member === "constants") {
412
+ return { kind: "libCall", fn: "os.constants", args: [], type: DYN, loc };
413
+ }
414
+ if (bi.module === "fs" && bi.member === "constants")
415
+ return { kind: "libCall", fn: "fs.constants", args: [], type: DYN, loc };
416
+ // `import { O_RDONLY } from "constants"`: the member of the frozen
417
+ // module object.
418
+ if (bi.module === "constants") {
419
+ return {
420
+ kind: "dynKeyGet",
421
+ value: builtinConstantsObject(lowerer, loc),
422
+ key: { kind: "strLit", value: bi.member, type: STRING, loc },
423
+ type: DYN,
424
+ loc,
425
+ };
426
+ }
427
+ // tls.rootCertificates: a runtime-valued module constant (the
428
+ // cached bundled-CA array) — the one member read that lowers
429
+ // to a libCall instead of a baked literal.
430
+ {
431
+ const roots = lowerTlsRootCertificates(lowerer, bi, loc);
432
+ if (roots)
433
+ return roots;
434
+ }
435
+ {
436
+ const callable = lowerer.lowerBuiltinCallableValue(bi, loc);
437
+ if (callable)
438
+ return callable;
439
+ }
440
+ // JavaScript sources: an otherwise unsupported builtin VALUE is
441
+ // the same identity-token story as stdlib globals above (the
442
+ // harness adds worker_threads.Worker to its identity Set).
443
+ if (isJsSourceFile(ts.getSourceFileOfNode(expr))) {
444
+ // EventEmitter and the stream classes are the runtime's untyped
445
+ // constructors, so constructor functions can inherit from them.
446
+ const classKind = builtinMemberClassKind(bi.module, bi.member);
447
+ if (classKind !== null)
448
+ return builtinClassValue(classKind, loc);
449
+ // A function member is a function value that fences when called.
450
+ if (builtinModuleFnOf(lowerer, bi.module, bi.member))
451
+ return builtinFunctionFenceValue(lowerer, bi, expr, loc);
452
+ return {
453
+ kind: "strLit",
454
+ // node:stream/web exports the web stream globals themselves:
455
+ // the same identity token as the global spelling.
456
+ value: bi.module === "stream/web"
457
+ ? `[builtin ${bi.member}]`
458
+ : `[builtin ${bi.module}.${bi.member}]`,
459
+ type: STRING,
460
+ loc,
461
+ };
462
+ }
463
+ if (builtinModuleFnOf(lowerer, bi.module, bi.member)) {
464
+ lowerer.unsupported("SC1090", expr, `library functions as values (call '${expr.text}' directly)`);
465
+ }
466
+ lowerer.noLowering(`${bi.module}.${bi.member}`, expr, builtinFenceHintOf(bi.module, bi.member), lowerer.resolveValueSymbol(expr));
467
+ }
468
+ }
469
+ // A builtin namespace import used as a bare VALUE (`const f = fs`):
470
+ // the namespace object has no representation — members lower at
471
+ // their access sites only. The CommonJS namespace binding
472
+ // (`const lib = require("./lib.js")`) gets the same fence.
473
+ const builtinNamespace = lowerer.builtinNamespaceModuleOf(expr);
474
+ if (builtinNamespace === "constants")
475
+ return builtinConstantsObject(lowerer, loc);
476
+ if (builtinNamespace !== null) {
477
+ const type = { kind: "moduleNs", moduleId: `builtin:${builtinNamespace}` };
478
+ return { kind: "moduleNsRef", moduleId: type.moduleId, type, loc };
479
+ }
480
+ if (lowerer.cjsLocalModuleBindingOf(expr)) {
481
+ lowerer.unsupported("SC1090", expr, `module namespace objects as values (access '${expr.text}' members directly)`);
482
+ }
483
+ if (lowerer.stdlibGlobalFnOf(expr)) {
484
+ lowerer.unsupported("SC1090", expr, `library functions as values (call '${expr.text}' directly)`);
485
+ }
486
+ // A declaration-only npm binding has no compiled runtime value.
487
+ {
488
+ const pkg = lowerer.npmPackageOfSymbol(lowerer.resolveValueSymbol(expr) ?? undefined);
489
+ if (pkg) {
490
+ lowerer.pushDiag(unsupportedPackageValueDiag(pkg, loc));
491
+ throw new PoisonError();
492
+ }
493
+ }
494
+ // Bindings imported from an UNSUPPORTED builtin module: coverage
495
+ // analyzes past import fences, so uses of `spawn` from
496
+ // child_process reach lowering — the use site reports the same
497
+ // "the '<module>' module" diagnostic as the import line, and the
498
+ // report groups them into one blocker. (Builds never get here: the
499
+ // import already failed preflight.)
500
+ {
501
+ const spec = lowerer.fencedBuiltinImportOf(expr);
502
+ if (spec !== null) {
503
+ lowerer.pushDiag(unsupportedDiag("SC1010", loc, unsupportedModuleFeatureOf(spec)));
504
+ throw new PoisonError();
505
+ }
506
+ }
507
+ // The globals `Infinity` and `NaN` (lib-declared, provenance-checked
508
+ // like every stdlib name): non-finite numLits — `-Infinity` arrives
509
+ // through the unary-minus literal fold. Arithmetic, comparisons, and
510
+ // formatting are IEEE-exact in C (String(Infinity) is "Infinity" and
511
+ // String(NaN) is "NaN" in the number formatter; `NaN !== NaN` holds
512
+ // because f64 compares are IEEE compares).
513
+ if (expr.text === "Infinity" || expr.text === "NaN") {
514
+ const sym = lowerer.checker.getSymbolAtLocation(expr);
515
+ if (lowerer.isStdlibSymbol(sym)) {
516
+ return { kind: "numLit", value: expr.text === "NaN" ? NaN : Infinity, type: F64, loc };
517
+ }
518
+ }
519
+ // The primitive constructors as VALUES (`const f = String`, an
520
+ // option table's `type: Boolean` field, `opt.type === Number`): the
521
+ // interned coercion closure — one synthesized module function per
522
+ // constructor per program, so every reference is the SAME zero-
523
+ // capture closure and `===` is JS identity (the type mapping in
524
+ // type-mapper.ts pins the one concrete signature `(value: string) =>
525
+ // primitive`; direct calls `String(x)` never reach here — the call
526
+ // lowering intercepts them with the wider static coercions).
527
+ const jsPrimitiveCtorSelector = isJsSourceFile(ts.getSourceFileOfNode(expr));
528
+ const primitiveName = stdlibGlobalNameOf(lowerer, expr);
529
+ if (primitiveName === "String" ||
530
+ primitiveName === "Number" ||
531
+ primitiveName === "Boolean" ||
532
+ primitiveName === "BigInt") {
533
+ return primitiveCtorClosure(lowerer, primitiveName, loc, jsPrimitiveCtorSelector);
534
+ }
535
+ if (lowerer.isStdlibGlobal(expr, "ArrayBuffer"))
536
+ return { kind: "libCall", fn: "arrayBuffer.constructor", args: [], type: DYN, loc };
537
+ if (isJsSourceFile(ts.getSourceFileOfNode(expr)) && lowerer.isStdlibGlobal(expr, "Array"))
538
+ return { kind: "libCall", fn: "dyn.arrayConstructor", args: [], type: DYN, loc };
539
+ if (Object.values(BYTES_ELEMENT_NAME).includes(expr.text) &&
540
+ lowerer.isStdlibSymbol(lowerer.checker.getSymbolAtLocation(expr))) {
541
+ return {
542
+ kind: "libCall",
543
+ fn: "bytes.constructor",
544
+ args: [{ kind: "strLit", value: expr.text, type: STRING, loc }],
545
+ type: DYN,
546
+ loc,
547
+ };
548
+ }
549
+ if ((expr.text === "encodeURIComponent" ||
550
+ expr.text === "encodeURI" ||
551
+ expr.text === "decodeURIComponent" ||
552
+ expr.text === "decodeURI") &&
553
+ lowerer.isStdlibGlobal(expr, expr.text)) {
554
+ const name = `%builtin.${expr.text}`;
555
+ const type = funcOf([DYN], STRING);
556
+ if (!lowerer.liftedFns.some((fn) => fn.name === name)) {
557
+ const value = {
558
+ kind: "libCall",
559
+ fn: "dyn.toStringCoerce",
560
+ args: [varRef("value", DYN, loc)],
561
+ type: STRING,
562
+ loc,
563
+ };
564
+ const fn = expr.text === "encodeURIComponent"
565
+ ? "str.encodeUriComponent"
566
+ : expr.text === "encodeURI"
567
+ ? "str.encodeUri"
568
+ : expr.text === "decodeURI"
569
+ ? "str.decodeUri"
570
+ : "str.decodeUriComponent";
571
+ lowerer.liftedFns.push({
572
+ name,
573
+ params: [{ localId: "value", name: "value", type: DYN }],
574
+ locals: [{ id: "value", name: "value", type: DYN, mutable: false }],
575
+ returnType: STRING,
576
+ body: [
577
+ {
578
+ kind: "return",
579
+ value: { kind: "libCall", fn, args: [value], type: STRING, loc },
580
+ loc,
581
+ },
582
+ ],
583
+ loc,
584
+ });
585
+ }
586
+ return { kind: "closure", fnName: name, captures: [], type, loc };
587
+ }
588
+ if (lowerer.isStdlibGlobal(expr, "crypto"))
589
+ return { kind: "libCall", fn: "crypto.native", args: [], type: DYN, loc };
590
+ const nativeAlias = stdlibGlobalNameOf(lowerer, expr);
591
+ if (nativeAlias === "Buffer" && expr.text !== "Buffer") {
592
+ return { kind: "strLit", value: "[builtin Buffer]", type: STRING, loc };
593
+ }
594
+ if (lowerer.isStdlibGlobal(expr, "fetch")) {
595
+ return { kind: "libCall", fn: "fetch.function", args: [], type: DYN, loc };
596
+ }
597
+ // The lib fence's IDENTIFIER chokepoint: the real standard library
598
+ // resolves names the old minimal ambient world never declared
599
+ // (Symbol, Reflect, Infinity, Date, ...) — and the adopted
600
+ // @types/node resolves its whole global surface (Buffer, fetch,
601
+ // setInterval, URL, ...). Reaching one that no lowering above
602
+ // claimed is SC2020, never an ICE — EXCEPT in JavaScript sources,
603
+ // where a stdlib global taken as a VALUE (never called through this
604
+ // path — call sites lower earlier) becomes an opaque IDENTITY TOKEN:
605
+ // an interned string naming the global. Identity flows (the
606
+ // harness's knownGlobals Set, === comparisons) are exact — one
607
+ // global, one token; what a token cannot do (be called, answer
608
+ // typeof "function") meets per-site fences/divergences, and
609
+ // SEMANTICS.md documents the stance.
610
+ if (stdlibGlobalNameOf(lowerer, expr) === "globalThis") {
611
+ return lowerGlobalValue(lowerer, expr);
612
+ }
613
+ {
614
+ const sym = lowerer.checker.getSymbolAtLocation(expr);
615
+ // The temporal global is typed (TS 7's lib slice) but Node 24 does
616
+ // not define it: the read throws Node's ReferenceError.
617
+ if (isTemporalGlobalRoot(lowerer, expr, sym)) {
618
+ const t = ambientUndefReadType(lowerer, expr) ?? contextualUndefReadType(lowerer, expr) ?? F64;
619
+ return nsUndefRead(lowerer, expr.text, expr, t);
620
+ }
621
+ if (lowerer.isStdlibSymbol(sym) || expr.text === "globalThis") {
622
+ const canonical = stdlibGlobalNameOf(lowerer, expr) ?? expr.text;
623
+ // Builtin constructors have real function values in both source
624
+ // languages (TypeScript reads them as dynamic values).
625
+ const builtinValue = builtinGlobalValueAt(lowerer, expr, canonical, loc, isJsSourceFile(ts.getSourceFileOfNode(expr)));
626
+ if (builtinValue !== null)
627
+ return builtinValue;
628
+ if (isJsSourceFile(ts.getSourceFileOfNode(expr))) {
629
+ return { kind: "strLit", value: `[builtin ${canonical}]`, type: STRING, loc };
630
+ }
631
+ // The families with a WHY: each hint states what makes the
632
+ // surface genuinely non-static (or what to use instead).
633
+ const globalHints = {
634
+ Proxy: "Proxy constructor values have no native lowering; use a direct new Proxy with checked-native plain objects",
635
+ Reflect: "reflective property access has no static lowering — read and call members directly",
636
+ Intl: 'native Intl supports default Unicode grapheme segmentation and the composed new Intl.NumberFormat("en-US").format(x); locale negotiation and other ICU-backed operations remain unsupported',
637
+ SharedArrayBuffer: "use direct new SharedArrayBuffer(length) for fixed shared storage",
638
+ ArrayBuffer: "ArrayBuffer constructor values have no native lowering; use new ArrayBuffer(length) for fixed-length shared storage",
639
+ WeakRef: "deref()-after-collect exposes GC timing — genuinely dynamic; hold a strong reference instead",
640
+ FinalizationRegistry: "finalization callbacks expose GC timing — genuinely dynamic; release resources explicitly instead",
641
+ eval: "runtime code evaluation cannot be compiled ahead of time",
642
+ };
643
+ lowerer.noLowering(expr.text, expr, globalHints[expr.text], sym ?? undefined);
644
+ }
645
+ }
646
+ // An ambient global nothing defines compiles to exactly what Node does
647
+ // at the access: the catchable ReferenceError "<name> is not defined".
648
+ // Stdlib/@types/node ambients never reach here (their chokepoint
649
+ // is above); only user-file declares do.
650
+ {
651
+ const sym = lowerer.resolveValueSymbol(expr);
652
+ const decl = sym ? sym.declarations[0] : undefined;
653
+ if (decl !== undefined &&
654
+ ts.isVariableDeclaration(decl) &&
655
+ decl.initializer === undefined &&
656
+ ts.getCombinedModifierFlags(decl) & ts.ModifierFlags.Ambient) {
657
+ const declared = lowerer.mapTypeOf(lowerer.typeOf(expr));
658
+ if (declared && declared.kind !== "void") {
659
+ return {
660
+ kind: "libCall",
661
+ fn: "global.undefRead",
662
+ args: [{ kind: "strLit", value: expr.text, type: STRING, loc }],
663
+ type: declared,
664
+ loc,
665
+ };
666
+ }
667
+ }
668
+ }
669
+ // An ambient `declare function` nothing defines, taken as a VALUE
670
+ // (call sites lower earlier, in lowerCall): the same story as the
671
+ // ambient `declare const` above — Node erases the declaration and
672
+ // the read throws the catchable ReferenceError at the access.
673
+ {
674
+ if (ambientUndefinedFnSymbolOf(lowerer, expr)) {
675
+ const t = ambientUndefReadType(lowerer, expr);
676
+ if (t)
677
+ return nsUndefRead(lowerer, expr.text, expr, t);
678
+ }
679
+ }
680
+ // A read of a TRAP binding — a declaration whose own initializer
681
+ // provably threw (module init unwound there), so this reference can
682
+ // never execute: any lowering is sound, and the trap keeps the
683
+ // shape honest. Typed by the use site when it maps, the F64 dummy
684
+ // otherwise (never observed — never even reached).
685
+ {
686
+ const sym = lowerer.resolveValueSymbol(expr);
687
+ if (sym !== null && lowerer.trapBindings.has(sym)) {
688
+ const t = ambientUndefReadType(lowerer, expr) ?? contextualUndefReadType(lowerer, expr) ?? F64;
689
+ return nsUndefRead(lowerer, expr.text, expr, t);
690
+ }
691
+ }
692
+ // A program CLASS NAME as a value: the classRef over the class's
693
+ // immortal class object (member accesses and construction never
694
+ // reach here — their hooks claim the property/new forms first).
695
+ {
696
+ const sym = lowerer.resolveValueSymbol(expr);
697
+ const classInfo = sym ? lowerer.classBySymbol.get(sym) : undefined;
698
+ // A GENERIC class name whose CONTEXTUAL type pins one instantiation
699
+ // (`const B: new (v: string) => Counter<string> = Counter`): the
700
+ // value is that instantiation's class object — the generic-fn
701
+ // pinning rule on the static side. Unpinned references fall
702
+ // through to classValueRef's family fence.
703
+ if (classInfo?.generic) {
704
+ const ctxT = lowerer.checker.getContextualType(expr);
705
+ const mapped = ctxT ? lowerer.mapTypeOf(ctxT) : null;
706
+ const instInfo = mapped?.kind === "classval" ? lowerer.classes.get(mapped.className) : undefined;
707
+ if (instInfo && instInfo.genericInstance?.family === classInfo) {
708
+ return lowerer.classValueRef(instInfo, expr);
709
+ }
710
+ }
711
+ if (classInfo) {
712
+ // A decorated name a replacing decorator can REBIND: the value
713
+ // is the decoration result — the mutable classval global %init
714
+ // assigned at the class statement (TC39's name binding), never
715
+ // the declaration's own class object.
716
+ const decoratedGlobal = classInfo.classDecorators?.valueGlobalId;
717
+ if (decoratedGlobal !== undefined) {
718
+ return {
719
+ kind: "varRef",
720
+ localId: decoratedGlobal,
721
+ type: { kind: "classval", className: classInfo.def.name },
722
+ loc,
723
+ };
724
+ }
725
+ return lowerer.classValueRef(classInfo, expr);
726
+ }
727
+ // The enum OBJECT as a value (member reads never reach here — the
728
+ // access hooks fold them): iteration, storage, reverse lookups
729
+ // through variables all land on this pointed fence.
730
+ if (sym)
731
+ fenceEnumObjectValue(lowerer, expr, sym);
732
+ // A MIXIN function as a first-class value: no runtime function
733
+ // exists — calls instantiate a class per call site
734
+ // (lower-mixins.ts). Generic mixins took the generic-fn value
735
+ // fence above; this names the non-generic spelling.
736
+ if (mixinFnOfCallee(lowerer, expr)) {
737
+ lowerer.unsupported("SC1090", expr, `the mixin function '${expr.text}' as a value (mixin calls compile per call site — call it directly)`);
738
+ }
739
+ }
740
+ // A NAMESPACE object as a first-class value: members lower at their
741
+ // qualified access sites; the object itself has no runtime
742
+ // representation (ambient namespaces compile to Node's
743
+ // ReferenceError instead — the object never exists at runtime).
744
+ {
745
+ const moduleNs = lowerer.mapTypeOf(lowerer.typeOf(expr));
746
+ if (moduleNs?.kind === "moduleNs") {
747
+ return { kind: "moduleNsRef", moduleId: moduleNs.moduleId, type: moduleNs, loc };
748
+ }
749
+ const builtinNs = lowerer.builtinNamespaceModuleOf(expr);
750
+ if (builtinNs === "constants")
751
+ return builtinConstantsObject(lowerer, loc);
752
+ if (builtinNs !== null) {
753
+ const type = { kind: "moduleNs", moduleId: `builtin:${builtinNs}` };
754
+ return { kind: "moduleNsRef", moduleId: type.moduleId, type, loc };
755
+ }
756
+ const ns = lowerNsIdentifierValue(lowerer, expr);
757
+ if (ns)
758
+ return ns;
759
+ }
760
+ if (isNavigatorGlobal(lowerer, expr)) {
761
+ refuseNavigator(lowerer, expr, "the navigator object as a value", lowerer.checker.getSymbolAtLocation(expr));
762
+ }
763
+ // An import of a CommonJS member export whose value is a binding of the
764
+ // exporting module (`module.exports = Client; module.exports.StatsD =
765
+ // Client`): the member holds that binding's value.
766
+ const memberAlias = cjsMemberAliasValueOf(lowerer, expr);
767
+ if (memberAlias !== null)
768
+ return lowerer.lowerExpr(memberAlias);
769
+ // Preflight guarantees no unresolved identifiers; anything else here
770
+ // is a blocked declaration's binding (the SC2004 cascade) or a
771
+ // binding form we don't model yet.
772
+ lowerer.rejectUnresolved(expr, `the reference to '${expr.text}' (a binding form with no lowering)`);
773
+ }
774
+ function moduleFileName(lowerer, sf) {
775
+ return lowerer.targetPlatform === "wasi"
776
+ ? (wasiGuestPath(sf.fileName) ?? sf.fileName.replace(/\\/g, "/"))
777
+ : sf.fileName;
778
+ }
779
+ /** Object.keys/Object.entries require an object receiver, but their first
780
+ * argument is not syntactically a member receiver. Recognize that one
781
+ * standard-library position so a runtime-optional loop element can be
782
+ * checked against the checker-narrowed record arm before builtin lowering. */
783
+ function runtimeOptionalObjectWalkerArg(lowerer, expr) {
784
+ let arg = expr;
785
+ while ((ts.isParenthesizedExpression(arg.parent) ||
786
+ ts.isAssertionExpression(arg.parent) ||
787
+ ts.isSatisfiesExpression(arg.parent) ||
788
+ ts.isNonNullExpression(arg.parent)) &&
789
+ arg.parent.expression === arg) {
790
+ arg = arg.parent;
791
+ }
792
+ const call = arg.parent;
793
+ if (!ts.isCallExpression(call) ||
794
+ call.arguments.nodes[0] !== arg ||
795
+ !ts.isPropertyAccessExpression(call.expression))
796
+ return false;
797
+ const access = call.expression;
798
+ return ((access.name.text === "keys" || access.name.text === "entries") &&
799
+ lowerer.isStdlibMember(access));
800
+ }
801
+ /** A read that resolves to a CJS export-table ACCESSOR property
802
+ * (`module.exports = { get path() {...}, set path(v) {...} }`): the
803
+ * getter lifts as a module-level function (module globals need no
804
+ * captures) — interned per declaration so every read site calls ONE
805
+ * function — and the read IS the call, Node's per-read evaluation
806
+ * exactly. Null when the identifier doesn't resolve to such a property
807
+ * (or it has no getter: a setter-only read answers undefined in Node —
808
+ * rare enough to keep fenced). */
809
+ function cjsExportAccessorRead(lowerer, ident) {
810
+ const symbol = lowerer.resolveValueSymbol(ident);
811
+ const getter = symbol ? symbol.declarations.find(ts.isGetAccessorDeclaration) : undefined;
812
+ if (!getter)
813
+ return null;
814
+ if (!ts.isObjectLiteralExpression(getter.parent) || !isCjsExportTableLiteral(getter.parent)) {
815
+ return null;
816
+ }
817
+ // An ES-module import binding reads the value Node copied when the
818
+ // importer linked the CommonJS module (cjsAccessorSnapshotStores).
819
+ const raw = lowerer.checker.getSymbolAtLocation(ident);
820
+ const binding = raw ? raw.declarations[0] : undefined;
821
+ if (binding !== undefined &&
822
+ (ts.isImportSpecifier(binding) || ts.isExportSpecifier(binding)) &&
823
+ !isCjsJsFile(ts.getSourceFileOfNode(binding), lowerer.program)) {
824
+ const snapshot = cjsAccessorSnapshotOf(lowerer, getter);
825
+ if (snapshot !== null)
826
+ return { kind: "varRef", localId: snapshot.id, type: snapshot.type, loc: locOf(ident) };
827
+ }
828
+ return cjsAccessorCall(lowerer, getter, locOf(ident));
829
+ }
830
+ //# sourceMappingURL=identifiers.js.map