@scriptc/compiler 0.4.2 → 0.4.4

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 (726) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +470 -66
  2. package/dist/backend/cycle-analysis.d.ts +4 -1
  3. package/dist/backend/cycle-analysis.js +6 -4
  4. package/dist/backend/cycle-analysis.js.map +1 -1
  5. package/dist/backend/cycle-analysis.test.js +55 -0
  6. package/dist/backend/cycle-analysis.test.js.map +1 -1
  7. package/dist/backend/cycle-mutability.d.ts +7 -0
  8. package/dist/backend/cycle-mutability.js +19 -1
  9. package/dist/backend/cycle-mutability.js.map +1 -1
  10. package/dist/backend/executable-features.js +2 -0
  11. package/dist/backend/executable-features.js.map +1 -1
  12. package/dist/backend/immutability.d.ts +6 -3
  13. package/dist/backend/immutability.js +33 -29
  14. package/dist/backend/immutability.js.map +1 -1
  15. package/dist/backend/library-pack.js +1 -0
  16. package/dist/backend/library-pack.js.map +1 -1
  17. package/dist/backend/llvm/alloc.d.ts +16 -1
  18. package/dist/backend/llvm/alloc.js +54 -4
  19. package/dist/backend/llvm/alloc.js.map +1 -1
  20. package/dist/backend/llvm/appended-array-literals.d.ts +2 -1
  21. package/dist/backend/llvm/appended-array-literals.js +44 -36
  22. package/dist/backend/llvm/appended-array-literals.js.map +1 -1
  23. package/dist/backend/llvm/appended-array-literals.test.js +4 -3
  24. package/dist/backend/llvm/appended-array-literals.test.js.map +1 -1
  25. package/dist/backend/llvm/array-search.d.ts +4 -3
  26. package/dist/backend/llvm/array-search.js +21 -9
  27. package/dist/backend/llvm/array-search.js.map +1 -1
  28. package/dist/backend/llvm/blocks.d.ts +1 -1
  29. package/dist/backend/llvm/blocks.js +2 -2
  30. package/dist/backend/llvm/blocks.js.map +1 -1
  31. package/dist/backend/llvm/byte-windows.js +2 -0
  32. package/dist/backend/llvm/byte-windows.js.map +1 -1
  33. package/dist/backend/llvm/bytes-alias.d.ts +6 -1
  34. package/dist/backend/llvm/bytes-alias.js +8 -2
  35. package/dist/backend/llvm/bytes-alias.js.map +1 -1
  36. package/dist/backend/llvm/bytes-loop-versions.d.ts +47 -5
  37. package/dist/backend/llvm/bytes-loop-versions.js +479 -32
  38. package/dist/backend/llvm/bytes-loop-versions.js.map +1 -1
  39. package/dist/backend/llvm/bytes-loop-versions.test.js +263 -2
  40. package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -1
  41. package/dist/backend/llvm/checked-value-lifetimes.js +2 -0
  42. package/dist/backend/llvm/checked-value-lifetimes.js.map +1 -1
  43. package/dist/backend/llvm/classes.d.ts +7 -5
  44. package/dist/backend/llvm/classes.js +44 -20
  45. package/dist/backend/llvm/classes.js.map +1 -1
  46. package/dist/backend/llvm/classes.test.js +167 -7
  47. package/dist/backend/llvm/classes.test.js.map +1 -1
  48. package/dist/backend/llvm/common.d.ts +9 -3
  49. package/dist/backend/llvm/common.js +9 -3
  50. package/dist/backend/llvm/common.js.map +1 -1
  51. package/dist/backend/llvm/constant-callbacks.d.ts +2 -1
  52. package/dist/backend/llvm/constant-callbacks.js +83 -52
  53. package/dist/backend/llvm/constant-callbacks.js.map +1 -1
  54. package/dist/backend/llvm/counted-loops.d.ts +7 -0
  55. package/dist/backend/llvm/counted-loops.js +18 -0
  56. package/dist/backend/llvm/counted-loops.js.map +1 -1
  57. package/dist/backend/llvm/debug-info.js +2 -5
  58. package/dist/backend/llvm/debug-info.js.map +1 -1
  59. package/dist/backend/llvm/dense-array-access.d.ts +39 -8
  60. package/dist/backend/llvm/dense-array-access.js +222 -52
  61. package/dist/backend/llvm/dense-array-access.js.map +1 -1
  62. package/dist/backend/llvm/dense-array-access.test.js +36 -0
  63. package/dist/backend/llvm/dense-array-access.test.js.map +1 -1
  64. package/dist/backend/llvm/dense-array-loops.d.ts +17 -1
  65. package/dist/backend/llvm/dense-array-loops.js +194 -5
  66. package/dist/backend/llvm/dense-array-loops.js.map +1 -1
  67. package/dist/backend/llvm/dense-array-loops.test.js +90 -1
  68. package/dist/backend/llvm/dense-array-loops.test.js.map +1 -1
  69. package/dist/backend/llvm/dyn-handle-tags.test.js +6 -1
  70. package/dist/backend/llvm/dyn-handle-tags.test.js.map +1 -1
  71. package/dist/backend/llvm/dyn.d.ts +30 -0
  72. package/dist/backend/llvm/dyn.js +373 -70
  73. package/dist/backend/llvm/dyn.js.map +1 -1
  74. package/dist/backend/llvm/emit-function.js +13 -28
  75. package/dist/backend/llvm/emit-function.js.map +1 -1
  76. package/dist/backend/llvm/emit-journal.d.ts +93 -0
  77. package/dist/backend/llvm/emit-journal.js +170 -0
  78. package/dist/backend/llvm/emit-journal.js.map +1 -0
  79. package/dist/backend/llvm/emit-module.js +211 -33
  80. package/dist/backend/llvm/emit-module.js.map +1 -1
  81. package/dist/backend/llvm/emit-statements.d.ts +0 -4
  82. package/dist/backend/llvm/emit-statements.js +268 -84
  83. package/dist/backend/llvm/emit-statements.js.map +1 -1
  84. package/dist/backend/llvm/emitter-state.d.ts +7 -0
  85. package/dist/backend/llvm/emitter-state.js +14 -0
  86. package/dist/backend/llvm/emitter-state.js.map +1 -0
  87. package/dist/backend/llvm/emitter.d.ts +186 -37
  88. package/dist/backend/llvm/emitter.js +733 -90
  89. package/dist/backend/llvm/emitter.js.map +1 -1
  90. package/dist/backend/llvm/emitter.test.js +65 -7
  91. package/dist/backend/llvm/emitter.test.js.map +1 -1
  92. package/dist/backend/llvm/expr-async.js +11 -13
  93. package/dist/backend/llvm/expr-async.js.map +1 -1
  94. package/dist/backend/llvm/expr-bytes.js +48 -20
  95. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  96. package/dist/backend/llvm/expr-callbacks.js +47 -0
  97. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  98. package/dist/backend/llvm/expr-calls.js +28 -14
  99. package/dist/backend/llvm/expr-calls.js.map +1 -1
  100. package/dist/backend/llvm/expr-containers.d.ts +14 -2
  101. package/dist/backend/llvm/expr-containers.js +143 -37
  102. package/dist/backend/llvm/expr-containers.js.map +1 -1
  103. package/dist/backend/llvm/expr-context.d.ts +14 -0
  104. package/dist/backend/llvm/expr-dynamic.js +18 -11
  105. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  106. package/dist/backend/llvm/expr-primitives.js +119 -38
  107. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  108. package/dist/backend/llvm/expr-primitives.test.js +11 -6
  109. package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
  110. package/dist/backend/llvm/expr-records.d.ts +12 -0
  111. package/dist/backend/llvm/expr-records.js +106 -0
  112. package/dist/backend/llvm/expr-records.js.map +1 -1
  113. package/dist/backend/llvm/expr-stream-bridges.d.ts +2 -2
  114. package/dist/backend/llvm/expr-stream-bridges.js +210 -69
  115. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  116. package/dist/backend/llvm/expr-stream-bridges.test.js +1 -1
  117. package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -1
  118. package/dist/backend/llvm/expr-stream-callbacks.d.ts +2 -2
  119. package/dist/backend/llvm/expr-stream-callbacks.js +74 -20
  120. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  121. package/dist/backend/llvm/int32-kind-loops.d.ts +39 -0
  122. package/dist/backend/llvm/int32-kind-loops.js +106 -0
  123. package/dist/backend/llvm/int32-kind-loops.js.map +1 -0
  124. package/dist/backend/llvm/integer-or-nan-indexes.test.d.ts +1 -0
  125. package/dist/backend/llvm/integer-or-nan-indexes.test.js +118 -0
  126. package/dist/backend/llvm/integer-or-nan-indexes.test.js.map +1 -0
  127. package/dist/backend/llvm/integer-values.d.ts +25 -1
  128. package/dist/backend/llvm/integer-values.js +95 -0
  129. package/dist/backend/llvm/integer-values.js.map +1 -1
  130. package/dist/backend/llvm/js-ic.d.ts +1 -1
  131. package/dist/backend/llvm/js-ic.js +1 -1
  132. package/dist/backend/llvm/js-ic.js.map +1 -1
  133. package/dist/backend/llvm/key-orders.d.ts +7 -0
  134. package/dist/backend/llvm/key-orders.js +33 -0
  135. package/dist/backend/llvm/key-orders.js.map +1 -0
  136. package/dist/backend/llvm/lib-connect.js +4 -0
  137. package/dist/backend/llvm/lib-connect.js.map +1 -1
  138. package/dist/backend/llvm/lib-datagram.js +11 -0
  139. package/dist/backend/llvm/lib-datagram.js.map +1 -1
  140. package/dist/backend/llvm/lib-dispatch.js +213 -5
  141. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  142. package/dist/backend/llvm/lib-filesystem.js +4 -4
  143. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  144. package/dist/backend/llvm/lib-http2.js +4 -0
  145. package/dist/backend/llvm/lib-http2.js.map +1 -1
  146. package/dist/backend/llvm/lib-lookup.js +16 -6
  147. package/dist/backend/llvm/lib-lookup.js.map +1 -1
  148. package/dist/backend/llvm/lib-process.js +37 -1
  149. package/dist/backend/llvm/lib-process.js.map +1 -1
  150. package/dist/backend/llvm/lib-shared.js +94 -2
  151. package/dist/backend/llvm/lib-shared.js.map +1 -1
  152. package/dist/backend/llvm/lib-stream.js +35 -5
  153. package/dist/backend/llvm/lib-stream.js.map +1 -1
  154. package/dist/backend/llvm/local-array-reads.js +115 -19
  155. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  156. package/dist/backend/llvm/local-array-reads.test.js +14 -0
  157. package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
  158. package/dist/backend/llvm/loop-state.d.ts +33 -0
  159. package/dist/backend/llvm/loop-state.js +42 -0
  160. package/dist/backend/llvm/loop-state.js.map +1 -0
  161. package/dist/backend/llvm/map-number-lookup.d.ts +26 -8
  162. package/dist/backend/llvm/map-number-lookup.js +91 -31
  163. package/dist/backend/llvm/map-number-lookup.js.map +1 -1
  164. package/dist/backend/llvm/map-number-lookup.test.js +55 -0
  165. package/dist/backend/llvm/map-number-lookup.test.js.map +1 -1
  166. package/dist/backend/llvm/map-read-lifetimes.js +4 -2
  167. package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
  168. package/dist/backend/llvm/nullable-unions.d.ts +2 -1
  169. package/dist/backend/llvm/nullable-unions.js +15 -3
  170. package/dist/backend/llvm/nullable-unions.js.map +1 -1
  171. package/dist/backend/llvm/publish.d.ts +10 -0
  172. package/dist/backend/llvm/publish.js +15 -3
  173. package/dist/backend/llvm/publish.js.map +1 -1
  174. package/dist/backend/llvm/receivers.js +6 -1
  175. package/dist/backend/llvm/receivers.js.map +1 -1
  176. package/dist/backend/llvm/record-results.d.ts +1 -9
  177. package/dist/backend/llvm/record-results.js +2 -11
  178. package/dist/backend/llvm/record-results.js.map +1 -1
  179. package/dist/backend/llvm/reference-effects.js +3 -0
  180. package/dist/backend/llvm/reference-effects.js.map +1 -1
  181. package/dist/backend/llvm/reference-writes.d.ts +7 -2
  182. package/dist/backend/llvm/reference-writes.js +89 -72
  183. package/dist/backend/llvm/reference-writes.js.map +1 -1
  184. package/dist/backend/llvm/running-extrema.d.ts +11 -0
  185. package/dist/backend/llvm/running-extrema.js +115 -0
  186. package/dist/backend/llvm/running-extrema.js.map +1 -0
  187. package/dist/backend/llvm/running-extrema.test.d.ts +1 -0
  188. package/dist/backend/llvm/running-extrema.test.js +89 -0
  189. package/dist/backend/llvm/running-extrema.test.js.map +1 -0
  190. package/dist/backend/llvm/shapes.d.ts +71 -15
  191. package/dist/backend/llvm/shapes.js +224 -40
  192. package/dist/backend/llvm/shapes.js.map +1 -1
  193. package/dist/backend/llvm/shapes.test.js +53 -7
  194. package/dist/backend/llvm/shapes.test.js.map +1 -1
  195. package/dist/backend/llvm/speculative-integers.d.ts +6 -0
  196. package/dist/backend/llvm/speculative-integers.js +2 -2
  197. package/dist/backend/llvm/speculative-integers.js.map +1 -1
  198. package/dist/backend/llvm/stack-captures.js +1 -5
  199. package/dist/backend/llvm/stack-captures.js.map +1 -1
  200. package/dist/backend/llvm/stack-objects.d.ts +3 -2
  201. package/dist/backend/llvm/stack-objects.js +5 -2
  202. package/dist/backend/llvm/stack-objects.js.map +1 -1
  203. package/dist/backend/llvm/string-reads.d.ts +12 -0
  204. package/dist/backend/llvm/string-reads.js +44 -0
  205. package/dist/backend/llvm/string-reads.js.map +1 -1
  206. package/dist/backend/llvm/union-repr.d.ts +4 -3
  207. package/dist/backend/llvm/union-repr.js +6 -5
  208. package/dist/backend/llvm/union-repr.js.map +1 -1
  209. package/dist/backend/llvm/walk-borrows.d.ts +3 -0
  210. package/dist/backend/llvm/walk-borrows.js +46 -41
  211. package/dist/backend/llvm/walk-borrows.js.map +1 -1
  212. package/dist/backend/llvm/walkers.d.ts +3 -0
  213. package/dist/backend/llvm/walkers.js +101 -65
  214. package/dist/backend/llvm/walkers.js.map +1 -1
  215. package/dist/backend/llvm/wrapping-sums.d.ts +16 -1
  216. package/dist/backend/llvm/wrapping-sums.js +126 -0
  217. package/dist/backend/llvm/wrapping-sums.js.map +1 -1
  218. package/dist/backend/may-throw.d.ts +8 -10
  219. package/dist/backend/may-throw.js +14 -10
  220. package/dist/backend/may-throw.js.map +1 -1
  221. package/dist/backend/native/contracts.d.ts +5 -0
  222. package/dist/backend/native/executable.js +7 -0
  223. package/dist/backend/native/executable.js.map +1 -1
  224. package/dist/backend/native/runtime-inputs.d.ts +1 -1
  225. package/dist/backend/native/runtime-inputs.js +1 -0
  226. package/dist/backend/native/runtime-inputs.js.map +1 -1
  227. package/dist/backend/native-codegen-core.d.ts +5 -3
  228. package/dist/backend/native-codegen-core.js +13 -6
  229. package/dist/backend/native-codegen-core.js.map +1 -1
  230. package/dist/backend/native-codegen.test.js +6 -4
  231. package/dist/backend/native-codegen.test.js.map +1 -1
  232. package/dist/backend/native-link-info-core.d.ts +4 -0
  233. package/dist/backend/native-link-info-core.js.map +1 -1
  234. package/dist/backend/publication.d.ts +12 -1
  235. package/dist/backend/publication.js +37 -14
  236. package/dist/backend/publication.js.map +1 -1
  237. package/dist/backend/publication.test.js +30 -0
  238. package/dist/backend/publication.test.js.map +1 -1
  239. package/dist/backend/result-slots.d.ts +16 -0
  240. package/dist/backend/result-slots.js +23 -0
  241. package/dist/backend/result-slots.js.map +1 -0
  242. package/dist/backend/runtime-abi.d.ts +2 -2
  243. package/dist/backend/runtime-abi.js +2 -2
  244. package/dist/backend/runtime-pack-core.d.ts +1 -0
  245. package/dist/backend/runtime-pack-core.js +1 -0
  246. package/dist/backend/runtime-pack-core.js.map +1 -1
  247. package/dist/backend/runtime-pack-targets.test.js +2 -1
  248. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  249. package/dist/backend/runtime-pack.test.js +2 -1
  250. package/dist/backend/runtime-pack.test.js.map +1 -1
  251. package/dist/backend/stack-observations.d.ts +2 -1
  252. package/dist/backend/stack-observations.js +67 -42
  253. package/dist/backend/stack-observations.js.map +1 -1
  254. package/dist/backend/target-cpu.d.ts +26 -0
  255. package/dist/backend/target-cpu.js +98 -0
  256. package/dist/backend/target-cpu.js.map +1 -0
  257. package/dist/backend/target-cpu.test.d.ts +1 -0
  258. package/dist/backend/target-cpu.test.js +38 -0
  259. package/dist/backend/target-cpu.test.js.map +1 -0
  260. package/dist/backend/target-diagnostics.js +5 -3
  261. package/dist/backend/target-diagnostics.js.map +1 -1
  262. package/dist/backend/warm-cache.js +1 -0
  263. package/dist/backend/warm-cache.js.map +1 -1
  264. package/dist/cli/command.js +20 -1
  265. package/dist/cli/command.js.map +1 -1
  266. package/dist/cli/usage.d.ts +4 -1
  267. package/dist/cli/usage.js +10 -3
  268. package/dist/cli/usage.js.map +1 -1
  269. package/dist/compat/fetch-profile.js +1 -1
  270. package/dist/compat/fetch-profile.js.map +1 -1
  271. package/dist/compile-types.d.ts +7 -0
  272. package/dist/contracts/check.js +4 -3
  273. package/dist/contracts/check.js.map +1 -1
  274. package/dist/contracts/int32-elements.js +10 -2
  275. package/dist/contracts/int32-elements.js.map +1 -1
  276. package/dist/coverage/report.js +12 -3
  277. package/dist/coverage/report.js.map +1 -1
  278. package/dist/diagnostics/diagnostic.d.ts +4 -0
  279. package/dist/diagnostics/diagnostic.js +1 -1
  280. package/dist/diagnostics/diagnostic.js.map +1 -1
  281. package/dist/diagnostics/envelope.d.ts +3 -0
  282. package/dist/diagnostics/envelope.js +1 -0
  283. package/dist/diagnostics/envelope.js.map +1 -1
  284. package/dist/executable/executable-cache.d.ts +5 -0
  285. package/dist/executable/executable-cache.js +5 -0
  286. package/dist/executable/executable-cache.js.map +1 -1
  287. package/dist/executable/executable-cache.test.js +3 -0
  288. package/dist/executable/executable-cache.test.js.map +1 -1
  289. package/dist/frontend/decl-projection.d.ts +41 -0
  290. package/dist/frontend/decl-projection.js +949 -0
  291. package/dist/frontend/decl-projection.js.map +1 -0
  292. package/dist/frontend/decl-projection.test.d.ts +1 -0
  293. package/dist/frontend/decl-projection.test.js +30 -0
  294. package/dist/frontend/decl-projection.test.js.map +1 -0
  295. package/dist/frontend/dts-paths.d.ts +15 -0
  296. package/dist/frontend/dts-paths.js +25 -0
  297. package/dist/frontend/dts-paths.js.map +1 -1
  298. package/dist/frontend/input-tracker.d.ts +6 -0
  299. package/dist/frontend/input-tracker.js +51 -28
  300. package/dist/frontend/input-tracker.js.map +1 -1
  301. package/dist/frontend/input-tracker.test.js +19 -0
  302. package/dist/frontend/input-tracker.test.js.map +1 -1
  303. package/dist/frontend/lowering/array-values.js +100 -2
  304. package/dist/frontend/lowering/array-values.js.map +1 -1
  305. package/dist/frontend/lowering/builtins/async-context.d.ts +8 -2
  306. package/dist/frontend/lowering/builtins/async-context.js +62 -3
  307. package/dist/frontend/lowering/builtins/async-context.js.map +1 -1
  308. package/dist/frontend/lowering/builtins/child-process-methods.js +46 -15
  309. package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
  310. package/dist/frontend/lowering/builtins/child-process.js +13 -2
  311. package/dist/frontend/lowering/builtins/child-process.js.map +1 -1
  312. package/dist/frontend/lowering/builtins/crypto.js +87 -10
  313. package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
  314. package/dist/frontend/lowering/builtins/dates.js +4 -1
  315. package/dist/frontend/lowering/builtins/dates.js.map +1 -1
  316. package/dist/frontend/lowering/builtins/filesystem-calls.js +3 -3
  317. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
  318. package/dist/frontend/lowering/builtins/fs-glob.js +6 -3
  319. package/dist/frontend/lowering/builtins/fs-glob.js.map +1 -1
  320. package/dist/frontend/lowering/builtins/fs-paths.d.ts +43 -5
  321. package/dist/frontend/lowering/builtins/fs-paths.js +245 -93
  322. package/dist/frontend/lowering/builtins/fs-paths.js.map +1 -1
  323. package/dist/frontend/lowering/builtins/global-namespace-keys.d.ts +3 -0
  324. package/dist/frontend/lowering/builtins/global-namespace-keys.js +122 -0
  325. package/dist/frontend/lowering/builtins/global-namespace-keys.js.map +1 -0
  326. package/dist/frontend/lowering/builtins/module-calls.js +6 -3
  327. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  328. package/dist/frontend/lowering/builtins/numbers.js +9 -1
  329. package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
  330. package/dist/frontend/lowering/builtins/promises.d.ts +7 -1
  331. package/dist/frontend/lowering/builtins/promises.js +236 -139
  332. package/dist/frontend/lowering/builtins/promises.js.map +1 -1
  333. package/dist/frontend/lowering/builtins/readline.d.ts +5 -1
  334. package/dist/frontend/lowering/builtins/readline.js +35 -3
  335. package/dist/frontend/lowering/builtins/readline.js.map +1 -1
  336. package/dist/frontend/lowering/builtins/url.js +24 -1
  337. package/dist/frontend/lowering/builtins/url.js.map +1 -1
  338. package/dist/frontend/lowering/builtins/webassembly.js +6 -3
  339. package/dist/frontend/lowering/builtins/webassembly.js.map +1 -1
  340. package/dist/frontend/lowering/call-signatures.js +0 -1
  341. package/dist/frontend/lowering/call-signatures.js.map +1 -1
  342. package/dist/frontend/lowering/cjs-exports-object.js +1 -1
  343. package/dist/frontend/lowering/cjs-exports-object.js.map +1 -1
  344. package/dist/frontend/lowering/cjs-inline-require.d.ts +32 -0
  345. package/dist/frontend/lowering/cjs-inline-require.js +307 -4
  346. package/dist/frontend/lowering/cjs-inline-require.js.map +1 -1
  347. package/dist/frontend/lowering/class-callbacks.d.ts +5 -2
  348. package/dist/frontend/lowering/class-callbacks.js +82 -12
  349. package/dist/frontend/lowering/class-callbacks.js.map +1 -1
  350. package/dist/frontend/lowering/class-construction.d.ts +4 -1
  351. package/dist/frontend/lowering/class-construction.js +17 -3
  352. package/dist/frontend/lowering/class-construction.js.map +1 -1
  353. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +49 -2
  354. package/dist/frontend/lowering/class-dynamic-dispatch.js +880 -108
  355. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  356. package/dist/frontend/lowering/class-dynamic-dispatch.test.js +47 -0
  357. package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
  358. package/dist/frontend/lowering/class-iterables.d.ts +2 -1
  359. package/dist/frontend/lowering/class-iterables.js +9 -1
  360. package/dist/frontend/lowering/class-iterables.js.map +1 -1
  361. package/dist/frontend/lowering/class-method-mutations.js +83 -24
  362. package/dist/frontend/lowering/class-method-mutations.js.map +1 -1
  363. package/dist/frontend/lowering/class-protocols.d.ts +25 -0
  364. package/dist/frontend/lowering/class-protocols.js +183 -1
  365. package/dist/frontend/lowering/class-protocols.js.map +1 -1
  366. package/dist/frontend/lowering/class-prototypes.js +31 -2
  367. package/dist/frontend/lowering/class-prototypes.js.map +1 -1
  368. package/dist/frontend/lowering/class-runtime-statics.d.ts +9 -3
  369. package/dist/frontend/lowering/class-runtime-statics.js +29 -4
  370. package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
  371. package/dist/frontend/lowering/coercions/structural-plans.js +48 -1
  372. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
  373. package/dist/frontend/lowering/coercions/structural.js +91 -1
  374. package/dist/frontend/lowering/coercions/structural.js.map +1 -1
  375. package/dist/frontend/lowering/completion-callbacks.d.ts +4 -0
  376. package/dist/frontend/lowering/completion-callbacks.js +146 -0
  377. package/dist/frontend/lowering/completion-callbacks.js.map +1 -0
  378. package/dist/frontend/lowering/containers/array-callback-call.js +2 -2
  379. package/dist/frontend/lowering/containers/array-callback-call.js.map +1 -1
  380. package/dist/frontend/lowering/containers/array-callbacks.d.ts +5 -4
  381. package/dist/frontend/lowering/containers/array-callbacks.js +345 -24
  382. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  383. package/dist/frontend/lowering/containers/array-concat.js +10 -0
  384. package/dist/frontend/lowering/containers/array-concat.js.map +1 -1
  385. package/dist/frontend/lowering/containers/array-construction.js +5 -0
  386. package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
  387. package/dist/frontend/lowering/containers/array-methods.js +26 -3
  388. package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
  389. package/dist/frontend/lowering/containers/array-pipelines.js +19 -8
  390. package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -1
  391. package/dist/frontend/lowering/containers/bytes.d.ts +25 -17
  392. package/dist/frontend/lowering/containers/bytes.js +455 -46
  393. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  394. package/dist/frontend/lowering/containers/callback-arguments.js +3 -0
  395. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
  396. package/dist/frontend/lowering/containers/collection-methods.js +7 -2
  397. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
  398. package/dist/frontend/lowering/containers/filter-predicates.d.ts +6 -0
  399. package/dist/frontend/lowering/containers/filter-predicates.js +205 -0
  400. package/dist/frontend/lowering/containers/filter-predicates.js.map +1 -0
  401. package/dist/frontend/lowering/containers/indexed-objects.d.ts +0 -12
  402. package/dist/frontend/lowering/containers/indexed-objects.js +46 -7
  403. package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
  404. package/dist/frontend/lowering/containers/string-and-regexp.js +55 -9
  405. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  406. package/dist/frontend/lowering/containers/string-replacement.js +43 -19
  407. package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
  408. package/dist/frontend/lowering/date-values.d.ts +11 -0
  409. package/dist/frontend/lowering/date-values.js +207 -0
  410. package/dist/frontend/lowering/date-values.js.map +1 -0
  411. package/dist/frontend/lowering/dispatch-sites.js +15 -1
  412. package/dist/frontend/lowering/dispatch-sites.js.map +1 -1
  413. package/dist/frontend/lowering/divergences.js +9 -1
  414. package/dist/frontend/lowering/divergences.js.map +1 -1
  415. package/dist/frontend/lowering/error-methods.js +47 -2
  416. package/dist/frontend/lowering/error-methods.js.map +1 -1
  417. package/dist/frontend/lowering/expressions/array-literals.js +53 -0
  418. package/dist/frontend/lowering/expressions/array-literals.js.map +1 -1
  419. package/dist/frontend/lowering/expressions/binary.js +100 -28
  420. package/dist/frontend/lowering/expressions/binary.js.map +1 -1
  421. package/dist/frontend/lowering/expressions/element-access.js +169 -13
  422. package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
  423. package/dist/frontend/lowering/expressions/identifiers.js +64 -5
  424. package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
  425. package/dist/frontend/lowering/expressions/narrowing.js +95 -1
  426. package/dist/frontend/lowering/expressions/narrowing.js.map +1 -1
  427. package/dist/frontend/lowering/expressions/nullish-assignment.js +3 -1
  428. package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
  429. package/dist/frontend/lowering/expressions/object-literals.d.ts +10 -0
  430. package/dist/frontend/lowering/expressions/object-literals.js +138 -51
  431. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  432. package/dist/frontend/lowering/expressions/optional-chains.js +12 -0
  433. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
  434. package/dist/frontend/lowering/expressions/property-access.js +168 -10
  435. package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
  436. package/dist/frontend/lowering/expressions/relational.js +212 -33
  437. package/dist/frontend/lowering/expressions/relational.js.map +1 -1
  438. package/dist/frontend/lowering/expressions/typeof.js +6 -0
  439. package/dist/frontend/lowering/expressions/typeof.js.map +1 -1
  440. package/dist/frontend/lowering/expressions/union-fields.js +4 -0
  441. package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
  442. package/dist/frontend/lowering/expressions/updates.js +39 -3
  443. package/dist/frontend/lowering/expressions/updates.js.map +1 -1
  444. package/dist/frontend/lowering/frozen-records.d.ts +28 -0
  445. package/dist/frontend/lowering/frozen-records.js +322 -0
  446. package/dist/frontend/lowering/frozen-records.js.map +1 -0
  447. package/dist/frontend/lowering/function-returns.js +64 -0
  448. package/dist/frontend/lowering/function-returns.js.map +1 -1
  449. package/dist/frontend/lowering/generic-functions.js +7 -2
  450. package/dist/frontend/lowering/generic-functions.js.map +1 -1
  451. package/dist/frontend/lowering/indexed-unions.d.ts +54 -0
  452. package/dist/frontend/lowering/indexed-unions.js +401 -0
  453. package/dist/frontend/lowering/indexed-unions.js.map +1 -0
  454. package/dist/frontend/lowering/iterable-values.d.ts +49 -0
  455. package/dist/frontend/lowering/iterable-values.js +297 -0
  456. package/dist/frontend/lowering/iterable-values.js.map +1 -0
  457. package/dist/frontend/lowering/iterator-adapters.js +186 -1
  458. package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
  459. package/dist/frontend/lowering/js-class-fields.d.ts +8 -0
  460. package/dist/frontend/lowering/js-class-fields.js +45 -10
  461. package/dist/frontend/lowering/js-class-fields.js.map +1 -1
  462. package/dist/frontend/lowering/key-order-witness.d.ts +18 -3
  463. package/dist/frontend/lowering/key-order-witness.js +974 -48
  464. package/dist/frontend/lowering/key-order-witness.js.map +1 -1
  465. package/dist/frontend/lowering/key-order-witness.test.js +530 -10
  466. package/dist/frontend/lowering/key-order-witness.test.js.map +1 -1
  467. package/dist/frontend/lowering/lower-assert.js +15 -3
  468. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  469. package/dist/frontend/lowering/lower-async-iteration.js +4 -1
  470. package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
  471. package/dist/frontend/lowering/lower-calls.d.ts +7 -0
  472. package/dist/frontend/lowering/lower-calls.js +462 -44
  473. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  474. package/dist/frontend/lowering/lower-classes.d.ts +11 -2
  475. package/dist/frontend/lowering/lower-classes.js +324 -69
  476. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  477. package/dist/frontend/lowering/lower-dgram.js +3 -1
  478. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  479. package/dist/frontend/lowering/lower-exprs.js +215 -3
  480. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  481. package/dist/frontend/lowering/lower-functions.d.ts +11 -0
  482. package/dist/frontend/lowering/lower-functions.js +83 -0
  483. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  484. package/dist/frontend/lowering/lower-generators.js +42 -32
  485. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  486. package/dist/frontend/lowering/lower-global-value.js +6 -3
  487. package/dist/frontend/lowering/lower-global-value.js.map +1 -1
  488. package/dist/frontend/lowering/lower-inspect.d.ts +1 -1
  489. package/dist/frontend/lowering/lower-inspect.js +53 -17
  490. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  491. package/dist/frontend/lowering/lower-modules.js +53 -5
  492. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  493. package/dist/frontend/lowering/lower-namespaces.js +5 -1
  494. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  495. package/dist/frontend/lowering/lower-server.js +2 -2
  496. package/dist/frontend/lowering/lower-server.js.map +1 -1
  497. package/dist/frontend/lowering/lower-stdlib.d.ts +5 -0
  498. package/dist/frontend/lowering/lower-stdlib.js +30 -0
  499. package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
  500. package/dist/frontend/lowering/lower-stmts.d.ts +23 -0
  501. package/dist/frontend/lowering/lower-stmts.js +553 -81
  502. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  503. package/dist/frontend/lowering/lower-stream.d.ts +20 -2
  504. package/dist/frontend/lowering/lower-stream.js +1483 -156
  505. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  506. package/dist/frontend/lowering/lowerer.d.ts +107 -8
  507. package/dist/frontend/lowering/lowerer.js +381 -36
  508. package/dist/frontend/lowering/lowerer.js.map +1 -1
  509. package/dist/frontend/lowering/module-namespace-elements.d.ts +11 -1
  510. package/dist/frontend/lowering/module-namespace-elements.js +82 -5
  511. package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
  512. package/dist/frontend/lowering/new-target.d.ts +12 -0
  513. package/dist/frontend/lowering/new-target.js +280 -0
  514. package/dist/frontend/lowering/new-target.js.map +1 -0
  515. package/dist/frontend/lowering/object-factory-new.d.ts +5 -0
  516. package/dist/frontend/lowering/object-factory-new.js +20 -6
  517. package/dist/frontend/lowering/object-factory-new.js.map +1 -1
  518. package/dist/frontend/lowering/overload-choice.d.ts +33 -0
  519. package/dist/frontend/lowering/overload-choice.js +190 -0
  520. package/dist/frontend/lowering/overload-choice.js.map +1 -0
  521. package/dist/frontend/lowering/surfaces.d.ts +3 -0
  522. package/dist/frontend/lowering/surfaces.js +73 -8
  523. package/dist/frontend/lowering/surfaces.js.map +1 -1
  524. package/dist/frontend/lowering/undefined-index.d.ts +27 -0
  525. package/dist/frontend/lowering/undefined-index.js +82 -0
  526. package/dist/frontend/lowering/undefined-index.js.map +1 -0
  527. package/dist/frontend/lowering/var-hoisting.js +29 -13
  528. package/dist/frontend/lowering/var-hoisting.js.map +1 -1
  529. package/dist/frontend/lowering/width-lift.d.ts +18 -0
  530. package/dist/frontend/npm-static-bundled-chunks.js +9 -11
  531. package/dist/frontend/npm-static-bundled-chunks.js.map +1 -1
  532. package/dist/frontend/npm-static-bundled-chunks.test.js +6 -5
  533. package/dist/frontend/npm-static-bundled-chunks.test.js.map +1 -1
  534. package/dist/frontend/npm-static-rewrite-syntax.js +9 -1
  535. package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
  536. package/dist/frontend/npm-static.js +4 -20
  537. package/dist/frontend/npm-static.js.map +1 -1
  538. package/dist/frontend/package-shims.d.ts +3 -0
  539. package/dist/frontend/package-shims.js +71 -8
  540. package/dist/frontend/package-shims.js.map +1 -1
  541. package/dist/frontend/pipeline.js +19 -11
  542. package/dist/frontend/pipeline.js.map +1 -1
  543. package/dist/frontend/process-fork.d.ts +25 -0
  544. package/dist/frontend/process-fork.js +2 -0
  545. package/dist/frontend/process-fork.js.map +1 -0
  546. package/dist/frontend/program-analysis.d.ts +5 -1
  547. package/dist/frontend/program-analysis.js +5 -0
  548. package/dist/frontend/program-analysis.js.map +1 -1
  549. package/dist/frontend/program.d.ts +21 -6
  550. package/dist/frontend/program.js +681 -83
  551. package/dist/frontend/program.js.map +1 -1
  552. package/dist/frontend/program.test.js +43 -3
  553. package/dist/frontend/program.test.js.map +1 -1
  554. package/dist/frontend/token-equivalence.d.ts +3 -0
  555. package/dist/frontend/token-equivalence.js +409 -0
  556. package/dist/frontend/token-equivalence.js.map +1 -0
  557. package/dist/frontend/token-equivalence.test.d.ts +1 -0
  558. package/dist/frontend/token-equivalence.test.js +67 -0
  559. package/dist/frontend/token-equivalence.test.js.map +1 -0
  560. package/dist/frontend/ts7/ast-node.d.ts +22 -0
  561. package/dist/frontend/ts7/ast-node.js +1048 -103
  562. package/dist/frontend/ts7/ast-node.js.map +1 -1
  563. package/dist/frontend/ts7/ast-node.test.js +24 -0
  564. package/dist/frontend/ts7/ast-node.test.js.map +1 -1
  565. package/dist/frontend/ts7/ast-wire.d.ts +4 -3
  566. package/dist/frontend/ts7/ast-wire.js +34 -24
  567. package/dist/frontend/ts7/ast-wire.js.map +1 -1
  568. package/dist/frontend/ts7/ast-wire.test.js +23 -0
  569. package/dist/frontend/ts7/ast-wire.test.js.map +1 -1
  570. package/dist/frontend/ts7/checker-backend.d.ts +3 -4
  571. package/dist/frontend/ts7/checker-backend.js +2 -2
  572. package/dist/frontend/ts7/checker-backend.js.map +1 -1
  573. package/dist/frontend/ts7/checker-backend.test.js +5 -9
  574. package/dist/frontend/ts7/checker-backend.test.js.map +1 -1
  575. package/dist/frontend/ts7/checker.d.ts +4 -0
  576. package/dist/frontend/ts7/checker.js +7 -0
  577. package/dist/frontend/ts7/checker.js.map +1 -1
  578. package/dist/frontend/ts7/lib-diagnostics.d.ts +24 -0
  579. package/dist/frontend/ts7/lib-diagnostics.js +307 -0
  580. package/dist/frontend/ts7/lib-diagnostics.js.map +1 -0
  581. package/dist/frontend/ts7/lib-diagnostics.test.d.ts +1 -0
  582. package/dist/frontend/ts7/lib-diagnostics.test.js +199 -0
  583. package/dist/frontend/ts7/lib-diagnostics.test.js.map +1 -0
  584. package/dist/frontend/ts7/program-host.d.ts +7 -0
  585. package/dist/frontend/ts7/program-host.js +25 -2
  586. package/dist/frontend/ts7/program-host.js.map +1 -1
  587. package/dist/frontend/ts7/semantic-model.d.ts +3 -0
  588. package/dist/frontend/ts7/semantic-model.js +5 -0
  589. package/dist/frontend/ts7/semantic-model.js.map +1 -1
  590. package/dist/frontend/ts7/semantic-model.test.js +6 -1
  591. package/dist/frontend/ts7/semantic-model.test.js.map +1 -1
  592. package/dist/frontend/ts7/semantic-types.d.ts +1 -1
  593. package/dist/frontend/ts7/semantic-types.js +1 -1
  594. package/dist/frontend/ts7/semantic-types.js.map +1 -1
  595. package/dist/frontend/ts7/session.d.ts +14 -1
  596. package/dist/frontend/ts7/session.js +22 -0
  597. package/dist/frontend/ts7/session.js.map +1 -1
  598. package/dist/frontend/type-mapper.d.ts +13 -1
  599. package/dist/frontend/type-mapper.js +229 -20
  600. package/dist/frontend/type-mapper.js.map +1 -1
  601. package/dist/index.d.ts +0 -5
  602. package/dist/index.js +46 -4
  603. package/dist/index.js.map +1 -1
  604. package/dist/ir/analysis.js +5 -3
  605. package/dist/ir/analysis.js.map +1 -1
  606. package/dist/ir/array-length-stability.d.ts +4 -0
  607. package/dist/ir/array-length-stability.js +19 -6
  608. package/dist/ir/array-length-stability.js.map +1 -1
  609. package/dist/ir/array-length-stability.test.js +24 -0
  610. package/dist/ir/array-length-stability.test.js.map +1 -1
  611. package/dist/ir/builtin-effects.d.ts +7 -0
  612. package/dist/ir/builtin-effects.js +60 -0
  613. package/dist/ir/builtin-effects.js.map +1 -1
  614. package/dist/ir/builtin-signatures.d.ts +6 -4
  615. package/dist/ir/builtin-signatures.js +222 -13
  616. package/dist/ir/builtin-signatures.js.map +1 -1
  617. package/dist/ir/callback-specialization.d.ts +2 -1
  618. package/dist/ir/callback-specialization.js +23 -18
  619. package/dist/ir/callback-specialization.js.map +1 -1
  620. package/dist/ir/char-unit-locals.d.ts +19 -0
  621. package/dist/ir/char-unit-locals.js +185 -0
  622. package/dist/ir/char-unit-locals.js.map +1 -0
  623. package/dist/ir/char-unit-locals.test.d.ts +1 -0
  624. package/dist/ir/char-unit-locals.test.js +94 -0
  625. package/dist/ir/char-unit-locals.test.js.map +1 -0
  626. package/dist/ir/final-fields.d.ts +2 -1
  627. package/dist/ir/final-fields.js +14 -16
  628. package/dist/ir/final-fields.js.map +1 -1
  629. package/dist/ir/function-references.d.ts +2 -0
  630. package/dist/ir/function-references.js +2 -0
  631. package/dist/ir/function-references.js.map +1 -1
  632. package/dist/ir/function-references.test.js +3 -0
  633. package/dist/ir/function-references.test.js.map +1 -1
  634. package/dist/ir/initializer-bindings.d.ts +2 -1
  635. package/dist/ir/initializer-bindings.js +27 -20
  636. package/dist/ir/initializer-bindings.js.map +1 -1
  637. package/dist/ir/int32-arrays.d.ts +108 -0
  638. package/dist/ir/int32-arrays.js +831 -0
  639. package/dist/ir/int32-arrays.js.map +1 -0
  640. package/dist/ir/int32-slots.d.ts +24 -2
  641. package/dist/ir/int32-slots.js +266 -57
  642. package/dist/ir/int32-slots.js.map +1 -1
  643. package/dist/ir/int32-slots.test.js +33 -0
  644. package/dist/ir/int32-slots.test.js.map +1 -1
  645. package/dist/ir/integer-loops.d.ts +3 -3
  646. package/dist/ir/integer-loops.js +28 -10
  647. package/dist/ir/integer-loops.js.map +1 -1
  648. package/dist/ir/integer-loops.test.js +10 -0
  649. package/dist/ir/integer-loops.test.js.map +1 -1
  650. package/dist/ir/integer-ranges.d.ts +5 -0
  651. package/dist/ir/integer-ranges.js +125 -12
  652. package/dist/ir/integer-ranges.js.map +1 -1
  653. package/dist/ir/integer-ranges.test.js +30 -0
  654. package/dist/ir/integer-ranges.test.js.map +1 -1
  655. package/dist/ir/ir.d.ts +83 -10
  656. package/dist/ir/ir.js +77 -6
  657. package/dist/ir/ir.js.map +1 -1
  658. package/dist/ir/ir.test.js +23 -2
  659. package/dist/ir/ir.test.js.map +1 -1
  660. package/dist/ir/js-ic.d.ts +4 -0
  661. package/dist/ir/js-ic.js +17 -1
  662. package/dist/ir/js-ic.js.map +1 -1
  663. package/dist/ir/js-ic.test.js +46 -0
  664. package/dist/ir/js-ic.test.js.map +1 -1
  665. package/dist/ir/node-index.d.ts +57 -0
  666. package/dist/ir/node-index.js +215 -0
  667. package/dist/ir/node-index.js.map +1 -0
  668. package/dist/ir/paired-while-loops.d.ts +25 -0
  669. package/dist/ir/paired-while-loops.js +335 -0
  670. package/dist/ir/paired-while-loops.js.map +1 -0
  671. package/dist/ir/paired-while-loops.test.d.ts +1 -0
  672. package/dist/ir/paired-while-loops.test.js +163 -0
  673. package/dist/ir/paired-while-loops.test.js.map +1 -0
  674. package/dist/ir/parameter-versions.d.ts +25 -0
  675. package/dist/ir/parameter-versions.js +300 -0
  676. package/dist/ir/parameter-versions.js.map +1 -0
  677. package/dist/ir/runtime-features.d.ts +34 -13
  678. package/dist/ir/runtime-features.js +177 -39
  679. package/dist/ir/runtime-features.js.map +1 -1
  680. package/dist/ir/serialize.d.ts +12 -2
  681. package/dist/ir/serialize.js +16 -3
  682. package/dist/ir/serialize.js.map +1 -1
  683. package/dist/ir/serialize.test.js +17 -0
  684. package/dist/ir/serialize.test.js.map +1 -1
  685. package/dist/ir/traverse.js +18 -6
  686. package/dist/ir/traverse.js.map +1 -1
  687. package/dist/ir/validate.js +167 -40
  688. package/dist/ir/validate.js.map +1 -1
  689. package/dist/library/ir-policy.js +3 -0
  690. package/dist/library/ir-policy.js.map +1 -1
  691. package/dist/native/cache.d.ts +6 -1
  692. package/dist/native/cache.js +28 -5
  693. package/dist/native/cache.js.map +1 -1
  694. package/dist/native/cache.test.js +16 -2
  695. package/dist/native/cache.test.js.map +1 -1
  696. package/dist/native/cli.js +21 -1
  697. package/dist/native/cli.js.map +1 -1
  698. package/dist/native/compiler.js +8 -6
  699. package/dist/native/compiler.js.map +1 -1
  700. package/dist/native/executable-cache.d.ts +1 -1
  701. package/dist/native/executable-cache.js +2 -2
  702. package/dist/native/executable-cache.js.map +1 -1
  703. package/dist/native/prepare.d.ts +4 -2
  704. package/dist/native/prepare.js +130 -32
  705. package/dist/native/prepare.js.map +1 -1
  706. package/dist/native/prepare.test.js +96 -20
  707. package/dist/native/prepare.test.js.map +1 -1
  708. package/dist/native/sanitizer.test.js +2 -0
  709. package/dist/native/sanitizer.test.js.map +1 -1
  710. package/dist/native/text-file.d.ts +13 -3
  711. package/dist/native/text-file.js +63 -9
  712. package/dist/native/text-file.js.map +1 -1
  713. package/dist/native/text-file.test.d.ts +1 -0
  714. package/dist/native/text-file.test.js +49 -0
  715. package/dist/native/text-file.test.js.map +1 -0
  716. package/dist/native/toolchain.js +4 -4
  717. package/dist/native/toolchain.js.map +1 -1
  718. package/dist/native/toolchain.test.js +3 -3
  719. package/dist/native/toolchain.test.js.map +1 -1
  720. package/package.json +21 -21
  721. package/shims/chalk/v5.ts +688 -0
  722. package/shims/hono-node-server/v2.ts +645 -0
  723. package/shims/hot-shots/client.ts +1126 -0
  724. package/shims/hot-shots/v8-unix-dgram.ts +8 -0
  725. package/shims/hot-shots/v8.ts +8 -0
  726. package/surface-manifest.json +27 -7
@@ -3,6 +3,14 @@ import { AstKind, AstModifierFlags, AstNodeFlags, KIND_NODE_LIST, astChildOrder,
3
3
  import { astLineOfPosition, astLineStarts, astSkipTrivia } from "./ast-text.js";
4
4
  import { AstWireFile, PREORDER_LIST, parseAstNodeHandle, } from "./ast-wire.js";
5
5
  import { SyntaxKind, NodeFlags } from "./enums.js";
6
+ /** Receives the file name of a source file whose raw text or line
7
+ * positions a reader takes: the text of a node other than a token
8
+ * (getText), a node's text with its trivia (getFullText), or line starts. */
9
+ let sourceTextObserver;
10
+ /** Installs the observer of raw source text reads (sourceTextObserver). */
11
+ export function observeSourceText(observer) {
12
+ sourceTextObserver = observer;
13
+ }
6
14
  /** A list of child nodes with the list's own position, the shape of tsc-ts's
7
15
  * NodeList. The file keeps the nodes array, not this object: each read of a
8
16
  * list field returns a new AstNodeList over the same array, so `nodes` keeps
@@ -56,6 +64,8 @@ export class AstFile {
56
64
  strings = new Map();
57
65
  lines;
58
66
  childIndices;
67
+ /** The root source file's name (AstNode.fileName). */
68
+ rootFileName;
59
69
  /** Whether nodes answer write targets without their wrappers (see
60
70
  * AstFileOptions.writeTargets). */
61
71
  writeTargets;
@@ -77,8 +87,9 @@ export class AstFile {
77
87
  return this.root;
78
88
  }
79
89
  node(index) {
80
- if (Object.hasOwn(this.nodes, index))
81
- return this.nodes[index];
90
+ const existing = this.nodes[index];
91
+ if (existing !== undefined)
92
+ return existing;
82
93
  if (index === 0 || this.wire.kind(index) === KIND_NODE_LIST)
83
94
  throw new AstDecodeError("expected a node index");
84
95
  const node = new AstNode(this, index);
@@ -104,9 +115,13 @@ export class AstFile {
104
115
  return nodes;
105
116
  }
106
117
  namedChild(node, name) {
118
+ return this.namedChildAt(node, astChildOrder(node.kind, name));
119
+ }
120
+ /** The child in wire slot `order` (astChildOrder), or 0 when the slot is
121
+ * negative or empty. */
122
+ namedChildAt(node, order) {
107
123
  if (node.file !== this)
108
124
  throw new AstDecodeError("named child belongs to another source file");
109
- const order = astChildOrder(node.kind, name);
110
125
  if (order < 0)
111
126
  return 0;
112
127
  const mask = node.data >>> 30 === 0 ? node.data & 0xff : 0xff;
@@ -165,7 +180,23 @@ export class AstFile {
165
180
  }
166
181
  return result;
167
182
  }
183
+ /** Reports a read of this file's raw text or line positions. */
184
+ noteSourceText() {
185
+ if (sourceTextObserver !== undefined && this.root.kind === SyntaxKind.SourceFile)
186
+ sourceTextObserver(this.root.fileName);
187
+ }
188
+ /** The file name of the source file node at `index`; the root's is
189
+ * read once. */
190
+ sourceFileName(index) {
191
+ if (index === 1 && this.rootFileName !== undefined)
192
+ return this.rootFileName;
193
+ const name = this.wire.string(this.wire.extendedWord(index, 4));
194
+ if (index === 1)
195
+ this.rootFileName = name;
196
+ return name;
197
+ }
168
198
  lineStarts() {
199
+ this.noteSourceText();
169
200
  if (this.lines === undefined)
170
201
  this.lines = astLineStarts(this.root.text ?? "");
171
202
  return this.lines;
@@ -280,6 +311,23 @@ export class AstNode {
280
311
  const index = this.file.namedChild(this, name);
281
312
  return index === 0 ? undefined : this.file.node(index);
282
313
  }
314
+ /** childNode by wire slot, as the generated getters select it. */
315
+ childNodeAt(order) {
316
+ const index = this.file.namedChildAt(this, order);
317
+ return index === 0 ? undefined : this.file.node(index);
318
+ }
319
+ childListAt(order) {
320
+ const index = this.file.namedChildAt(this, order);
321
+ return index === 0 ? undefined : this.file.list(index);
322
+ }
323
+ childAt(order) {
324
+ const index = this.file.namedChildAt(this, order);
325
+ if (index === 0)
326
+ return undefined;
327
+ return this.file.wire.kind(index) === KIND_NODE_LIST
328
+ ? this.file.list(index)
329
+ : this.file.node(index);
330
+ }
283
331
  childList(name) {
284
332
  const index = this.file.namedChild(this, name);
285
333
  return index === 0 ? undefined : this.file.list(index);
@@ -412,10 +460,15 @@ export class AstNode {
412
460
  return this.getStart(sourceFile) - this.pos;
413
461
  }
414
462
  getFullText(sourceFile) {
415
- return ((sourceFile ?? this.file.root).text ?? "").substring(this.pos, this.end);
463
+ const source = sourceFile ?? this.file.root;
464
+ source.file.noteSourceText();
465
+ return (source.text ?? "").substring(this.pos, this.end);
416
466
  }
417
467
  getText(sourceFile) {
418
468
  const source = sourceFile ?? this.file.root;
469
+ // A token's text is the same in every token-equivalent version.
470
+ if (this.kind > SyntaxKind.LastToken)
471
+ source.file.noteSourceText();
419
472
  return (source.text ?? "").substring(this.getStart(source), this.end);
420
473
  }
421
474
  get containsOnlyTriviaWhiteSpaces() {
@@ -514,16 +567,16 @@ export class AstNode {
514
567
  }
515
568
  get modifierFlags() {
516
569
  let result = 0;
517
- for (const modifier of this.childList("modifiers")?.nodes ?? [])
570
+ for (const modifier of this.childListAt(this.modifiersSlot())?.nodes ?? [])
518
571
  result |= astModifierFlag(modifier.kind);
519
572
  return result;
520
573
  }
521
574
  get modifiers() {
522
- const index = this.file.namedChild(this, "modifiers");
575
+ const index = this.file.namedChildAt(this, this.modifiersSlot());
523
576
  return index === 0 ? undefined : this.file.modifierList(index);
524
577
  }
525
578
  get body() {
526
- const body = this.childNode("body");
579
+ const body = this.childNodeAt(this.bodySlot());
527
580
  // TS7 can serialize a reparsed @type callable before a method's
528
581
  // body without setting the type presence bit. The linked Block is
529
582
  // still the real body; keep the JSDoc node out of this view.
@@ -540,31 +593,31 @@ export class AstNode {
540
593
  return body;
541
594
  }
542
595
  get questionToken() {
543
- const direct = this.childNode("questionToken");
596
+ const direct = this.childNodeAt(this.questionTokenSlot());
544
597
  if (direct !== undefined)
545
598
  return direct;
546
599
  // TypeScript 7 shares one postfix slot for optional and definite-
547
600
  // assignment declarations. The familiar helper surface keeps them apart.
548
- const token = this.childNode("postfixToken");
601
+ const token = this.postfixToken;
549
602
  return token?.kind === SyntaxKind.QuestionToken ? token : undefined;
550
603
  }
551
604
  // A write target keeps its parentheses and non-null assertions in the
552
605
  // tree; with AstFileOptions.writeTargets these views return the target
553
606
  // without them.
554
607
  get initializer() {
555
- const initializer = this.childNode("initializer");
608
+ const initializer = this.childNodeAt(this.initializerSlot());
556
609
  return initializer !== undefined && this.file.writeTargets && writesTarget(this, "initializer")
557
610
  ? unwrapTarget(initializer)
558
611
  : initializer;
559
612
  }
560
613
  get left() {
561
- const left = this.childNode("left");
614
+ const left = this.childNodeAt(this.leftSlot());
562
615
  return left !== undefined && this.file.writeTargets && writesTarget(this, "left")
563
616
  ? unwrapTarget(left)
564
617
  : left;
565
618
  }
566
619
  get operand() {
567
- const operand = this.childNode("operand");
620
+ const operand = this.childNodeAt(this.operandSlot());
568
621
  return operand !== undefined && this.file.writeTargets && writesTarget(this, "operand")
569
622
  ? unwrapTarget(operand)
570
623
  : operand;
@@ -572,280 +625,1172 @@ export class AstNode {
572
625
  // BEGIN GENERATED CHILD GETTERS
573
626
  // Generated from typescript@7.0.2; run scripts/generate-ts7-ast-schema.mjs.
574
627
  get argument() {
575
- return this.childNode("argument");
628
+ switch (this.kind) {
629
+ case 206:
630
+ return this.childNodeAt(0);
631
+ default:
632
+ return undefined;
633
+ }
576
634
  }
577
635
  get argumentExpression() {
578
- return this.childNode("argumentExpression");
636
+ switch (this.kind) {
637
+ case 213:
638
+ return this.childNodeAt(2);
639
+ default:
640
+ return undefined;
641
+ }
579
642
  }
580
643
  get arguments() {
581
- return this.childList("arguments");
644
+ switch (this.kind) {
645
+ case 215:
646
+ return this.childListAt(2);
647
+ case 214:
648
+ return this.childListAt(3);
649
+ default:
650
+ return undefined;
651
+ }
582
652
  }
583
653
  get assertsModifier() {
584
- return this.childNode("assertsModifier");
654
+ switch (this.kind) {
655
+ case 183:
656
+ return this.childNodeAt(0);
657
+ default:
658
+ return undefined;
659
+ }
585
660
  }
586
661
  get asteriskToken() {
587
- return this.childNode("asteriskToken");
662
+ switch (this.kind) {
663
+ case 230:
664
+ return this.childNodeAt(0);
665
+ case 175:
666
+ case 219:
667
+ case 263:
668
+ return this.childNodeAt(1);
669
+ default:
670
+ return undefined;
671
+ }
588
672
  }
589
673
  get attributes() {
590
- return this.child("attributes");
674
+ switch (this.kind) {
675
+ case 301:
676
+ return this.childAt(0);
677
+ case 206:
678
+ return this.childAt(1);
679
+ case 286:
680
+ case 287:
681
+ return this.childAt(2);
682
+ case 273:
683
+ case 279:
684
+ case 343:
685
+ case 346:
686
+ return this.childAt(3);
687
+ default:
688
+ return undefined;
689
+ }
591
690
  }
592
691
  get awaitModifier() {
593
- return this.childNode("awaitModifier");
692
+ switch (this.kind) {
693
+ case 250:
694
+ case 251:
695
+ return this.childNodeAt(0);
696
+ default:
697
+ return undefined;
698
+ }
594
699
  }
595
700
  get block() {
596
- return this.childNode("block");
701
+ switch (this.kind) {
702
+ case 300:
703
+ return this.childNodeAt(1);
704
+ default:
705
+ return undefined;
706
+ }
597
707
  }
598
708
  get caseBlock() {
599
- return this.childNode("caseBlock");
709
+ switch (this.kind) {
710
+ case 256:
711
+ return this.childNodeAt(1);
712
+ default:
713
+ return undefined;
714
+ }
600
715
  }
601
716
  get catchClause() {
602
- return this.childNode("catchClause");
717
+ switch (this.kind) {
718
+ case 259:
719
+ return this.childNodeAt(1);
720
+ default:
721
+ return undefined;
722
+ }
603
723
  }
604
724
  get checkType() {
605
- return this.childNode("checkType");
725
+ switch (this.kind) {
726
+ case 195:
727
+ return this.childNodeAt(0);
728
+ default:
729
+ return undefined;
730
+ }
606
731
  }
607
732
  get children() {
608
- return this.child("children");
733
+ switch (this.kind) {
734
+ case 344:
735
+ return this.childAt(0);
736
+ case 285:
737
+ case 289:
738
+ return this.childAt(1);
739
+ default:
740
+ return undefined;
741
+ }
609
742
  }
610
743
  get className() {
611
- return this.childNode("className");
744
+ switch (this.kind) {
745
+ case 323:
746
+ case 324:
747
+ return this.childNodeAt(1);
748
+ default:
749
+ return undefined;
750
+ }
612
751
  }
613
752
  get clauses() {
614
- return this.childList("clauses");
753
+ switch (this.kind) {
754
+ case 270:
755
+ return this.childListAt(0);
756
+ default:
757
+ return undefined;
758
+ }
615
759
  }
616
760
  get closingElement() {
617
- return this.childNode("closingElement");
761
+ switch (this.kind) {
762
+ case 285:
763
+ return this.childNodeAt(2);
764
+ default:
765
+ return undefined;
766
+ }
618
767
  }
619
768
  get closingFragment() {
620
- return this.childNode("closingFragment");
769
+ switch (this.kind) {
770
+ case 289:
771
+ return this.childNodeAt(2);
772
+ default:
773
+ return undefined;
774
+ }
621
775
  }
622
776
  get colonToken() {
623
- return this.childNode("colonToken");
777
+ switch (this.kind) {
778
+ case 228:
779
+ return this.childNodeAt(3);
780
+ default:
781
+ return undefined;
782
+ }
624
783
  }
625
784
  get comment() {
626
- return this.childList("comment");
785
+ switch (this.kind) {
786
+ case 315:
787
+ return this.childListAt(0);
788
+ case 322:
789
+ case 325:
790
+ case 326:
791
+ case 327:
792
+ case 328:
793
+ case 329:
794
+ case 330:
795
+ return this.childListAt(1);
796
+ case 323:
797
+ case 324:
798
+ case 332:
799
+ case 334:
800
+ case 335:
801
+ case 336:
802
+ case 339:
803
+ case 341:
804
+ case 342:
805
+ return this.childListAt(2);
806
+ case 331:
807
+ case 333:
808
+ case 337:
809
+ case 338:
810
+ case 340:
811
+ return this.childListAt(3);
812
+ case 343:
813
+ return this.childListAt(4);
814
+ default:
815
+ return undefined;
816
+ }
627
817
  }
628
818
  get condition() {
629
- return this.childNode("condition");
819
+ switch (this.kind) {
820
+ case 228:
821
+ return this.childNodeAt(0);
822
+ case 249:
823
+ return this.childNodeAt(1);
824
+ default:
825
+ return undefined;
826
+ }
630
827
  }
631
828
  get constraint() {
632
- return this.childNode("constraint");
829
+ switch (this.kind) {
830
+ case 337:
831
+ return this.childNodeAt(1);
832
+ case 169:
833
+ return this.childNodeAt(2);
834
+ default:
835
+ return undefined;
836
+ }
633
837
  }
634
838
  get declarationList() {
635
- return this.childNode("declarationList");
839
+ switch (this.kind) {
840
+ case 244:
841
+ return this.childNodeAt(1);
842
+ default:
843
+ return undefined;
844
+ }
636
845
  }
637
846
  get declarations() {
638
- return this.childList("declarations");
847
+ switch (this.kind) {
848
+ case 262:
849
+ return this.childListAt(0);
850
+ default:
851
+ return undefined;
852
+ }
639
853
  }
640
854
  get defaultType() {
641
- return this.childNode("defaultType");
855
+ switch (this.kind) {
856
+ case 169:
857
+ return this.childNodeAt(4);
858
+ default:
859
+ return undefined;
860
+ }
642
861
  }
643
862
  get dotDotDotToken() {
644
- return this.childNode("dotDotDotToken");
863
+ switch (this.kind) {
864
+ case 203:
865
+ case 209:
866
+ case 295:
867
+ return this.childNodeAt(0);
868
+ case 170:
869
+ return this.childNodeAt(1);
870
+ default:
871
+ return undefined;
872
+ }
645
873
  }
646
874
  get elementType() {
647
- return this.childNode("elementType");
875
+ switch (this.kind) {
876
+ case 189:
877
+ return this.childNodeAt(0);
878
+ default:
879
+ return undefined;
880
+ }
648
881
  }
649
882
  get elements() {
650
- return this.childList("elements");
883
+ switch (this.kind) {
884
+ case 190:
885
+ case 207:
886
+ case 208:
887
+ case 210:
888
+ case 276:
889
+ case 280:
890
+ return this.childListAt(0);
891
+ default:
892
+ return undefined;
893
+ }
651
894
  }
652
895
  get elseStatement() {
653
- return this.childNode("elseStatement");
896
+ switch (this.kind) {
897
+ case 246:
898
+ return this.childNodeAt(2);
899
+ default:
900
+ return undefined;
901
+ }
654
902
  }
655
903
  get endOfFileToken() {
656
- return this.childNode("endOfFileToken");
904
+ switch (this.kind) {
905
+ case 307:
906
+ return this.childNodeAt(1);
907
+ default:
908
+ return undefined;
909
+ }
657
910
  }
658
911
  get equalsGreaterThanToken() {
659
- return this.childNode("equalsGreaterThanToken");
912
+ switch (this.kind) {
913
+ case 220:
914
+ return this.childNodeAt(4);
915
+ default:
916
+ return undefined;
917
+ }
660
918
  }
661
919
  get equalsToken() {
662
- return this.childNode("equalsToken");
920
+ switch (this.kind) {
921
+ case 304:
922
+ return this.childNodeAt(4);
923
+ default:
924
+ return undefined;
925
+ }
663
926
  }
664
927
  get exclamationToken() {
665
- return this.childNode("exclamationToken");
928
+ switch (this.kind) {
929
+ case 261:
930
+ return this.childNodeAt(1);
931
+ default:
932
+ return undefined;
933
+ }
666
934
  }
667
935
  get exportClause() {
668
- return this.childNode("exportClause");
936
+ switch (this.kind) {
937
+ case 279:
938
+ return this.childNodeAt(1);
939
+ default:
940
+ return undefined;
941
+ }
669
942
  }
670
943
  get exprName() {
671
- return this.childNode("exprName");
944
+ switch (this.kind) {
945
+ case 187:
946
+ return this.childNodeAt(0);
947
+ default:
948
+ return undefined;
949
+ }
672
950
  }
673
951
  get expression() {
674
- return this.childNode("expression");
952
+ switch (this.kind) {
953
+ case 168:
954
+ case 171:
955
+ case 212:
956
+ case 213:
957
+ case 214:
958
+ case 215:
959
+ case 218:
960
+ case 221:
961
+ case 222:
962
+ case 223:
963
+ case 224:
964
+ case 231:
965
+ case 234:
966
+ case 235:
967
+ case 236:
968
+ case 239:
969
+ case 240:
970
+ case 245:
971
+ case 246:
972
+ case 248:
973
+ case 254:
974
+ case 255:
975
+ case 256:
976
+ case 258:
977
+ case 284:
978
+ case 294:
979
+ case 297:
980
+ case 298:
981
+ case 305:
982
+ case 348:
983
+ case 349:
984
+ return this.childNodeAt(0);
985
+ case 217:
986
+ case 230:
987
+ case 247:
988
+ case 295:
989
+ return this.childNodeAt(1);
990
+ case 250:
991
+ case 251:
992
+ case 278:
993
+ return this.childNodeAt(2);
994
+ case 169:
995
+ return this.childNodeAt(3);
996
+ default:
997
+ return undefined;
998
+ }
675
999
  }
676
1000
  get extendsType() {
677
- return this.childNode("extendsType");
1001
+ switch (this.kind) {
1002
+ case 195:
1003
+ return this.childNodeAt(1);
1004
+ default:
1005
+ return undefined;
1006
+ }
678
1007
  }
679
1008
  get falseType() {
680
- return this.childNode("falseType");
1009
+ switch (this.kind) {
1010
+ case 195:
1011
+ return this.childNodeAt(3);
1012
+ default:
1013
+ return undefined;
1014
+ }
681
1015
  }
682
1016
  get finallyBlock() {
683
- return this.childNode("finallyBlock");
1017
+ switch (this.kind) {
1018
+ case 259:
1019
+ return this.childNodeAt(2);
1020
+ default:
1021
+ return undefined;
1022
+ }
684
1023
  }
685
1024
  get head() {
686
- return this.childNode("head");
1025
+ switch (this.kind) {
1026
+ case 204:
1027
+ case 229:
1028
+ return this.childNodeAt(0);
1029
+ default:
1030
+ return undefined;
1031
+ }
687
1032
  }
688
1033
  get heritageClauses() {
689
- return this.childList("heritageClauses");
1034
+ switch (this.kind) {
1035
+ case 232:
1036
+ case 264:
1037
+ case 265:
1038
+ return this.childListAt(3);
1039
+ default:
1040
+ return undefined;
1041
+ }
690
1042
  }
691
1043
  get importClause() {
692
- return this.childNode("importClause");
1044
+ switch (this.kind) {
1045
+ case 273:
1046
+ case 343:
1047
+ case 346:
1048
+ return this.childNodeAt(1);
1049
+ default:
1050
+ return undefined;
1051
+ }
693
1052
  }
694
1053
  get incrementor() {
695
- return this.childNode("incrementor");
1054
+ switch (this.kind) {
1055
+ case 249:
1056
+ return this.childNodeAt(2);
1057
+ default:
1058
+ return undefined;
1059
+ }
696
1060
  }
697
1061
  get indexType() {
698
- return this.childNode("indexType");
1062
+ switch (this.kind) {
1063
+ case 200:
1064
+ return this.childNodeAt(1);
1065
+ default:
1066
+ return undefined;
1067
+ }
699
1068
  }
700
1069
  get jsdocPropertyTags() {
701
- return this.childNode("jsdocPropertyTags");
1070
+ switch (this.kind) {
1071
+ case 317:
1072
+ return this.childNodeAt(0);
1073
+ default:
1074
+ return undefined;
1075
+ }
702
1076
  }
703
1077
  get label() {
704
- return this.childNode("label");
1078
+ switch (this.kind) {
1079
+ case 252:
1080
+ case 253:
1081
+ case 257:
1082
+ return this.childNodeAt(0);
1083
+ default:
1084
+ return undefined;
1085
+ }
705
1086
  }
706
1087
  get literal() {
707
- return this.childNode("literal");
1088
+ switch (this.kind) {
1089
+ case 202:
1090
+ return this.childNodeAt(0);
1091
+ case 205:
1092
+ case 240:
1093
+ return this.childNodeAt(1);
1094
+ default:
1095
+ return undefined;
1096
+ }
708
1097
  }
709
1098
  get members() {
710
- return this.childList("members");
1099
+ switch (this.kind) {
1100
+ case 188:
1101
+ return this.childListAt(0);
1102
+ case 267:
1103
+ return this.childListAt(2);
1104
+ case 232:
1105
+ case 264:
1106
+ case 265:
1107
+ return this.childListAt(4);
1108
+ case 201:
1109
+ return this.childListAt(5);
1110
+ default:
1111
+ return undefined;
1112
+ }
711
1113
  }
712
1114
  get moduleReference() {
713
- return this.childNode("moduleReference");
1115
+ switch (this.kind) {
1116
+ case 272:
1117
+ return this.childNodeAt(2);
1118
+ default:
1119
+ return undefined;
1120
+ }
714
1121
  }
715
1122
  get moduleSpecifier() {
716
- return this.childNode("moduleSpecifier");
1123
+ switch (this.kind) {
1124
+ case 273:
1125
+ case 279:
1126
+ case 343:
1127
+ case 346:
1128
+ return this.childNodeAt(2);
1129
+ default:
1130
+ return undefined;
1131
+ }
717
1132
  }
718
1133
  get name() {
719
- return this.childNode("name");
1134
+ switch (this.kind) {
1135
+ case 237:
1136
+ case 261:
1137
+ case 274:
1138
+ case 275:
1139
+ case 281:
1140
+ case 292:
1141
+ case 302:
1142
+ case 306:
1143
+ case 309:
1144
+ case 319:
1145
+ case 320:
1146
+ case 321:
1147
+ return this.childNodeAt(0);
1148
+ case 169:
1149
+ case 172:
1150
+ case 173:
1151
+ case 174:
1152
+ case 178:
1153
+ case 179:
1154
+ case 203:
1155
+ case 232:
1156
+ case 264:
1157
+ case 265:
1158
+ case 266:
1159
+ case 267:
1160
+ case 268:
1161
+ case 271:
1162
+ case 272:
1163
+ case 277:
1164
+ case 282:
1165
+ case 296:
1166
+ case 303:
1167
+ case 304:
1168
+ case 333:
1169
+ case 340:
1170
+ case 345:
1171
+ return this.childNodeAt(1);
1172
+ case 170:
1173
+ case 175:
1174
+ case 209:
1175
+ case 212:
1176
+ case 219:
1177
+ case 263:
1178
+ case 331:
1179
+ case 338:
1180
+ return this.childNodeAt(2);
1181
+ default:
1182
+ return undefined;
1183
+ }
720
1184
  }
721
1185
  get nameExpression() {
722
- return this.childNode("nameExpression");
1186
+ switch (this.kind) {
1187
+ case 339:
1188
+ return this.childNodeAt(1);
1189
+ default:
1190
+ return undefined;
1191
+ }
723
1192
  }
724
1193
  get nameType() {
725
- return this.childNode("nameType");
1194
+ switch (this.kind) {
1195
+ case 201:
1196
+ return this.childNodeAt(2);
1197
+ default:
1198
+ return undefined;
1199
+ }
726
1200
  }
727
1201
  get namedBindings() {
728
- return this.childNode("namedBindings");
1202
+ switch (this.kind) {
1203
+ case 274:
1204
+ return this.childNodeAt(1);
1205
+ default:
1206
+ return undefined;
1207
+ }
729
1208
  }
730
1209
  get namespace() {
731
- return this.childNode("namespace");
1210
+ switch (this.kind) {
1211
+ case 296:
1212
+ return this.childNodeAt(0);
1213
+ default:
1214
+ return undefined;
1215
+ }
732
1216
  }
733
1217
  get objectAssignmentInitializer() {
734
- return this.childNode("objectAssignmentInitializer");
1218
+ switch (this.kind) {
1219
+ case 304:
1220
+ return this.childNodeAt(5);
1221
+ default:
1222
+ return undefined;
1223
+ }
735
1224
  }
736
1225
  get objectType() {
737
- return this.childNode("objectType");
1226
+ switch (this.kind) {
1227
+ case 200:
1228
+ return this.childNodeAt(0);
1229
+ default:
1230
+ return undefined;
1231
+ }
738
1232
  }
739
1233
  get openingElement() {
740
- return this.childNode("openingElement");
1234
+ switch (this.kind) {
1235
+ case 285:
1236
+ return this.childNodeAt(0);
1237
+ default:
1238
+ return undefined;
1239
+ }
741
1240
  }
742
1241
  get openingFragment() {
743
- return this.childNode("openingFragment");
1242
+ switch (this.kind) {
1243
+ case 289:
1244
+ return this.childNodeAt(0);
1245
+ default:
1246
+ return undefined;
1247
+ }
744
1248
  }
745
1249
  get operatorToken() {
746
- return this.childNode("operatorToken");
1250
+ switch (this.kind) {
1251
+ case 227:
1252
+ return this.childNodeAt(3);
1253
+ default:
1254
+ return undefined;
1255
+ }
747
1256
  }
748
1257
  get parameterName() {
749
- return this.childNode("parameterName");
1258
+ switch (this.kind) {
1259
+ case 183:
1260
+ return this.childNodeAt(1);
1261
+ default:
1262
+ return undefined;
1263
+ }
750
1264
  }
751
1265
  get parameters() {
752
- return this.childList("parameters");
1266
+ switch (this.kind) {
1267
+ case 180:
1268
+ case 181:
1269
+ case 182:
1270
+ case 185:
1271
+ case 318:
1272
+ return this.childListAt(1);
1273
+ case 177:
1274
+ case 186:
1275
+ case 220:
1276
+ return this.childListAt(2);
1277
+ case 178:
1278
+ case 179:
1279
+ return this.childListAt(3);
1280
+ case 174:
1281
+ case 219:
1282
+ case 263:
1283
+ return this.childListAt(4);
1284
+ case 175:
1285
+ return this.childListAt(5);
1286
+ default:
1287
+ return undefined;
1288
+ }
753
1289
  }
754
1290
  get postfixToken() {
755
- return this.childNode("postfixToken");
1291
+ switch (this.kind) {
1292
+ case 172:
1293
+ case 173:
1294
+ case 174:
1295
+ case 303:
1296
+ case 304:
1297
+ return this.childNodeAt(2);
1298
+ case 175:
1299
+ return this.childNodeAt(3);
1300
+ default:
1301
+ return undefined;
1302
+ }
756
1303
  }
757
1304
  get properties() {
758
- return this.childList("properties");
1305
+ switch (this.kind) {
1306
+ case 211:
1307
+ case 293:
1308
+ return this.childListAt(0);
1309
+ default:
1310
+ return undefined;
1311
+ }
759
1312
  }
760
1313
  get propertyName() {
761
- return this.childNode("propertyName");
1314
+ switch (this.kind) {
1315
+ case 277:
1316
+ case 282:
1317
+ return this.childNodeAt(0);
1318
+ case 209:
1319
+ return this.childNodeAt(1);
1320
+ default:
1321
+ return undefined;
1322
+ }
762
1323
  }
763
1324
  get qualifier() {
764
- return this.childNode("qualifier");
1325
+ switch (this.kind) {
1326
+ case 206:
1327
+ return this.childNodeAt(2);
1328
+ default:
1329
+ return undefined;
1330
+ }
765
1331
  }
766
1332
  get questionDotToken() {
767
- return this.childNode("questionDotToken");
1333
+ switch (this.kind) {
1334
+ case 212:
1335
+ case 213:
1336
+ case 214:
1337
+ case 216:
1338
+ return this.childNodeAt(1);
1339
+ default:
1340
+ return undefined;
1341
+ }
768
1342
  }
769
1343
  get readonlyToken() {
770
- return this.childNode("readonlyToken");
1344
+ switch (this.kind) {
1345
+ case 201:
1346
+ return this.childNodeAt(0);
1347
+ default:
1348
+ return undefined;
1349
+ }
771
1350
  }
772
1351
  get right() {
773
- return this.childNode("right");
1352
+ switch (this.kind) {
1353
+ case 167:
1354
+ return this.childNodeAt(1);
1355
+ case 227:
1356
+ return this.childNodeAt(4);
1357
+ default:
1358
+ return undefined;
1359
+ }
774
1360
  }
775
1361
  get statement() {
776
- return this.childNode("statement");
1362
+ switch (this.kind) {
1363
+ case 247:
1364
+ return this.childNodeAt(0);
1365
+ case 248:
1366
+ case 255:
1367
+ case 257:
1368
+ return this.childNodeAt(1);
1369
+ case 249:
1370
+ case 250:
1371
+ case 251:
1372
+ return this.childNodeAt(3);
1373
+ default:
1374
+ return undefined;
1375
+ }
777
1376
  }
778
1377
  get statements() {
779
- return this.childList("statements");
1378
+ switch (this.kind) {
1379
+ case 242:
1380
+ case 269:
1381
+ case 307:
1382
+ return this.childListAt(0);
1383
+ case 297:
1384
+ case 298:
1385
+ return this.childListAt(1);
1386
+ default:
1387
+ return undefined;
1388
+ }
780
1389
  }
781
1390
  get tag() {
782
- return this.childNode("tag");
1391
+ switch (this.kind) {
1392
+ case 216:
1393
+ return this.childNodeAt(0);
1394
+ default:
1395
+ return undefined;
1396
+ }
783
1397
  }
784
1398
  get tagName() {
785
- return this.childNode("tagName");
1399
+ switch (this.kind) {
1400
+ case 286:
1401
+ case 287:
1402
+ case 288:
1403
+ case 322:
1404
+ case 323:
1405
+ case 324:
1406
+ case 325:
1407
+ case 326:
1408
+ case 327:
1409
+ case 328:
1410
+ case 329:
1411
+ case 330:
1412
+ case 331:
1413
+ case 332:
1414
+ case 333:
1415
+ case 334:
1416
+ case 335:
1417
+ case 336:
1418
+ case 337:
1419
+ case 338:
1420
+ case 339:
1421
+ case 340:
1422
+ case 341:
1423
+ case 342:
1424
+ case 343:
1425
+ return this.childNodeAt(0);
1426
+ default:
1427
+ return undefined;
1428
+ }
786
1429
  }
787
1430
  get tags() {
788
- return this.childList("tags");
1431
+ switch (this.kind) {
1432
+ case 315:
1433
+ return this.childListAt(1);
1434
+ default:
1435
+ return undefined;
1436
+ }
789
1437
  }
790
1438
  get template() {
791
- return this.childNode("template");
1439
+ switch (this.kind) {
1440
+ case 216:
1441
+ return this.childNodeAt(3);
1442
+ default:
1443
+ return undefined;
1444
+ }
792
1445
  }
793
1446
  get templateSpans() {
794
- return this.childList("templateSpans");
1447
+ switch (this.kind) {
1448
+ case 204:
1449
+ case 229:
1450
+ return this.childListAt(1);
1451
+ default:
1452
+ return undefined;
1453
+ }
795
1454
  }
796
1455
  get thenStatement() {
797
- return this.childNode("thenStatement");
1456
+ switch (this.kind) {
1457
+ case 246:
1458
+ return this.childNodeAt(1);
1459
+ default:
1460
+ return undefined;
1461
+ }
798
1462
  }
799
1463
  get thisArg() {
800
- return this.childNode("thisArg");
1464
+ switch (this.kind) {
1465
+ case 349:
1466
+ return this.childNodeAt(1);
1467
+ default:
1468
+ return undefined;
1469
+ }
801
1470
  }
802
1471
  get trueType() {
803
- return this.childNode("trueType");
1472
+ switch (this.kind) {
1473
+ case 195:
1474
+ return this.childNodeAt(2);
1475
+ default:
1476
+ return undefined;
1477
+ }
804
1478
  }
805
1479
  get tryBlock() {
806
- return this.childNode("tryBlock");
1480
+ switch (this.kind) {
1481
+ case 259:
1482
+ return this.childNodeAt(0);
1483
+ default:
1484
+ return undefined;
1485
+ }
807
1486
  }
808
1487
  get tupleNameSource() {
809
- return this.childNode("tupleNameSource");
1488
+ switch (this.kind) {
1489
+ case 238:
1490
+ return this.childNodeAt(0);
1491
+ default:
1492
+ return undefined;
1493
+ }
810
1494
  }
811
1495
  get type() {
812
- return this.childNode("type");
1496
+ switch (this.kind) {
1497
+ case 191:
1498
+ case 192:
1499
+ case 197:
1500
+ case 199:
1501
+ case 205:
1502
+ case 217:
1503
+ case 308:
1504
+ case 311:
1505
+ case 312:
1506
+ case 313:
1507
+ case 314:
1508
+ return this.childNodeAt(0);
1509
+ case 235:
1510
+ case 239:
1511
+ case 278:
1512
+ return this.childNodeAt(1);
1513
+ case 180:
1514
+ case 181:
1515
+ case 182:
1516
+ case 183:
1517
+ case 185:
1518
+ case 227:
1519
+ case 261:
1520
+ case 318:
1521
+ return this.childNodeAt(2);
1522
+ case 172:
1523
+ case 173:
1524
+ case 177:
1525
+ case 186:
1526
+ case 203:
1527
+ case 220:
1528
+ case 266:
1529
+ case 303:
1530
+ case 304:
1531
+ case 345:
1532
+ return this.childNodeAt(3);
1533
+ case 170:
1534
+ case 178:
1535
+ case 179:
1536
+ case 201:
1537
+ return this.childNodeAt(4);
1538
+ case 174:
1539
+ case 219:
1540
+ case 263:
1541
+ return this.childNodeAt(5);
1542
+ case 175:
1543
+ return this.childNodeAt(6);
1544
+ default:
1545
+ return undefined;
1546
+ }
813
1547
  }
814
1548
  get typeArguments() {
815
- return this.childList("typeArguments");
1549
+ switch (this.kind) {
1550
+ case 184:
1551
+ case 187:
1552
+ case 215:
1553
+ case 234:
1554
+ case 286:
1555
+ case 287:
1556
+ return this.childListAt(1);
1557
+ case 214:
1558
+ case 216:
1559
+ return this.childListAt(2);
1560
+ case 206:
1561
+ return this.childListAt(3);
1562
+ default:
1563
+ return undefined;
1564
+ }
816
1565
  }
817
1566
  get typeExpression() {
818
- return this.childNode("typeExpression");
1567
+ switch (this.kind) {
1568
+ case 331:
1569
+ case 332:
1570
+ case 334:
1571
+ case 335:
1572
+ case 336:
1573
+ case 338:
1574
+ case 341:
1575
+ case 342:
1576
+ return this.childNodeAt(1);
1577
+ case 333:
1578
+ case 340:
1579
+ return this.childNodeAt(2);
1580
+ default:
1581
+ return undefined;
1582
+ }
819
1583
  }
820
1584
  get typeName() {
821
- return this.childNode("typeName");
1585
+ switch (this.kind) {
1586
+ case 184:
1587
+ return this.childNodeAt(0);
1588
+ default:
1589
+ return undefined;
1590
+ }
822
1591
  }
823
1592
  get typeParameter() {
824
- return this.childNode("typeParameter");
1593
+ switch (this.kind) {
1594
+ case 196:
1595
+ return this.childNodeAt(0);
1596
+ case 201:
1597
+ return this.childNodeAt(1);
1598
+ default:
1599
+ return undefined;
1600
+ }
825
1601
  }
826
1602
  get typeParameters() {
827
- return this.childList("typeParameters");
1603
+ switch (this.kind) {
1604
+ case 180:
1605
+ case 181:
1606
+ case 185:
1607
+ case 318:
1608
+ return this.childListAt(0);
1609
+ case 177:
1610
+ case 186:
1611
+ case 220:
1612
+ return this.childListAt(1);
1613
+ case 178:
1614
+ case 179:
1615
+ case 232:
1616
+ case 264:
1617
+ case 265:
1618
+ case 266:
1619
+ case 337:
1620
+ case 345:
1621
+ return this.childListAt(2);
1622
+ case 174:
1623
+ case 219:
1624
+ case 263:
1625
+ return this.childListAt(3);
1626
+ case 175:
1627
+ return this.childListAt(4);
1628
+ default:
1629
+ return undefined;
1630
+ }
828
1631
  }
829
1632
  get types() {
830
- return this.childList("types");
1633
+ switch (this.kind) {
1634
+ case 193:
1635
+ case 194:
1636
+ case 299:
1637
+ return this.childListAt(0);
1638
+ default:
1639
+ return undefined;
1640
+ }
831
1641
  }
832
1642
  get value() {
833
- return this.childNode("value");
1643
+ switch (this.kind) {
1644
+ case 302:
1645
+ return this.childNodeAt(1);
1646
+ default:
1647
+ return undefined;
1648
+ }
834
1649
  }
835
1650
  get variableDeclaration() {
836
- return this.childNode("variableDeclaration");
1651
+ switch (this.kind) {
1652
+ case 300:
1653
+ return this.childNodeAt(0);
1654
+ default:
1655
+ return undefined;
1656
+ }
837
1657
  }
838
1658
  get whenFalse() {
839
- return this.childNode("whenFalse");
1659
+ switch (this.kind) {
1660
+ case 228:
1661
+ return this.childNodeAt(4);
1662
+ default:
1663
+ return undefined;
1664
+ }
840
1665
  }
841
1666
  get whenTrue() {
842
- return this.childNode("whenTrue");
1667
+ switch (this.kind) {
1668
+ case 228:
1669
+ return this.childNodeAt(2);
1670
+ default:
1671
+ return undefined;
1672
+ }
1673
+ }
1674
+ bodySlot() {
1675
+ switch (this.kind) {
1676
+ case 176:
1677
+ return 1;
1678
+ case 268:
1679
+ return 2;
1680
+ case 177:
1681
+ return 4;
1682
+ case 178:
1683
+ case 179:
1684
+ case 220:
1685
+ return 5;
1686
+ case 219:
1687
+ case 263:
1688
+ return 6;
1689
+ case 175:
1690
+ return 7;
1691
+ default:
1692
+ return -1;
1693
+ }
1694
+ }
1695
+ initializerSlot() {
1696
+ switch (this.kind) {
1697
+ case 249:
1698
+ return 0;
1699
+ case 250:
1700
+ case 251:
1701
+ case 292:
1702
+ case 306:
1703
+ return 1;
1704
+ case 209:
1705
+ case 261:
1706
+ return 3;
1707
+ case 172:
1708
+ case 173:
1709
+ case 303:
1710
+ return 4;
1711
+ case 170:
1712
+ return 5;
1713
+ default:
1714
+ return -1;
1715
+ }
1716
+ }
1717
+ leftSlot() {
1718
+ switch (this.kind) {
1719
+ case 167:
1720
+ return 0;
1721
+ case 227:
1722
+ return 1;
1723
+ default:
1724
+ return -1;
1725
+ }
1726
+ }
1727
+ modifiersSlot() {
1728
+ switch (this.kind) {
1729
+ case 169:
1730
+ case 170:
1731
+ case 172:
1732
+ case 173:
1733
+ case 174:
1734
+ case 175:
1735
+ case 176:
1736
+ case 177:
1737
+ case 178:
1738
+ case 179:
1739
+ case 182:
1740
+ case 186:
1741
+ case 219:
1742
+ case 220:
1743
+ case 227:
1744
+ case 232:
1745
+ case 244:
1746
+ case 263:
1747
+ case 264:
1748
+ case 265:
1749
+ case 266:
1750
+ case 267:
1751
+ case 268:
1752
+ case 271:
1753
+ case 272:
1754
+ case 273:
1755
+ case 278:
1756
+ case 279:
1757
+ case 283:
1758
+ case 303:
1759
+ case 304:
1760
+ case 345:
1761
+ case 346:
1762
+ return 0;
1763
+ default:
1764
+ return -1;
1765
+ }
1766
+ }
1767
+ operandSlot() {
1768
+ switch (this.kind) {
1769
+ case 225:
1770
+ case 226:
1771
+ return 0;
1772
+ default:
1773
+ return -1;
1774
+ }
1775
+ }
1776
+ questionTokenSlot() {
1777
+ switch (this.kind) {
1778
+ case 228:
1779
+ return 1;
1780
+ case 203:
1781
+ return 2;
1782
+ case 170:
1783
+ case 201:
1784
+ return 3;
1785
+ default:
1786
+ return -1;
1787
+ }
843
1788
  }
844
1789
  // END GENERATED CHILD GETTERS
845
1790
  // Source-file fields stay on the same nominal class, matching the wire's
846
1791
  // single node representation. Their extended-data accesses are checked.
847
1792
  get fileName() {
848
- return this.file.wire.string(this.file.wire.extendedWord(this.index, 4));
1793
+ return this.file.sourceFileName(this.index);
849
1794
  }
850
1795
  get path() {
851
1796
  return this.file.wire.string(this.file.wire.extendedWord(this.index, 8));