@scriptc/compiler 0.4.1 → 0.4.3

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 (999) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +977 -113
  2. package/dist/backend/cycle-analysis.d.ts +5 -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 +9 -1
  8. package/dist/backend/cycle-mutability.js +21 -3
  9. package/dist/backend/cycle-mutability.js.map +1 -1
  10. package/dist/backend/executable-features.js +6 -1
  11. package/dist/backend/executable-features.js.map +1 -1
  12. package/dist/backend/immutability.d.ts +7 -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 +5 -0
  16. package/dist/backend/library-pack.js.map +1 -1
  17. package/dist/backend/llvm/alloc.d.ts +23 -4
  18. package/dist/backend/llvm/alloc.js +61 -8
  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 +23 -10
  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 +70 -7
  37. package/dist/backend/llvm/bytes-loop-versions.js +567 -30
  38. package/dist/backend/llvm/bytes-loop-versions.js.map +1 -1
  39. package/dist/backend/llvm/bytes-loop-versions.test.js +389 -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 +74 -1
  44. package/dist/backend/llvm/classes.js +364 -54
  45. package/dist/backend/llvm/classes.js.map +1 -1
  46. package/dist/backend/llvm/classes.test.js +384 -17
  47. package/dist/backend/llvm/classes.test.js.map +1 -1
  48. package/dist/backend/llvm/common.d.ts +10 -6
  49. package/dist/backend/llvm/common.js +10 -6
  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 +91 -56
  53. package/dist/backend/llvm/constant-callbacks.js.map +1 -1
  54. package/dist/backend/llvm/constant-callbacks.test.js +4 -4
  55. package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
  56. package/dist/backend/llvm/counted-loops.d.ts +11 -1
  57. package/dist/backend/llvm/counted-loops.js +80 -23
  58. package/dist/backend/llvm/counted-loops.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 +35 -16
  65. package/dist/backend/llvm/dense-array-loops.js +237 -12
  66. package/dist/backend/llvm/dense-array-loops.js.map +1 -1
  67. package/dist/backend/llvm/dense-array-loops.test.js +140 -15
  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 +51 -1
  72. package/dist/backend/llvm/dyn.js +683 -69
  73. package/dist/backend/llvm/dyn.js.map +1 -1
  74. package/dist/backend/llvm/emit-function.js +33 -26
  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 +208 -34
  80. package/dist/backend/llvm/emit-module.js.map +1 -1
  81. package/dist/backend/llvm/emit-statements.d.ts +0 -27
  82. package/dist/backend/llvm/emit-statements.js +577 -93
  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 +314 -49
  88. package/dist/backend/llvm/emitter.js +1241 -129
  89. package/dist/backend/llvm/emitter.js.map +1 -1
  90. package/dist/backend/llvm/emitter.test.js +54 -5
  91. package/dist/backend/llvm/emitter.test.js.map +1 -1
  92. package/dist/backend/llvm/expr-async.js +19 -0
  93. package/dist/backend/llvm/expr-async.js.map +1 -1
  94. package/dist/backend/llvm/expr-bytes.d.ts +5 -2
  95. package/dist/backend/llvm/expr-bytes.js +144 -52
  96. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  97. package/dist/backend/llvm/expr-callbacks.js +47 -0
  98. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  99. package/dist/backend/llvm/expr-calls.d.ts +1 -1
  100. package/dist/backend/llvm/expr-calls.js +62 -36
  101. package/dist/backend/llvm/expr-calls.js.map +1 -1
  102. package/dist/backend/llvm/expr-containers.d.ts +14 -2
  103. package/dist/backend/llvm/expr-containers.js +148 -40
  104. package/dist/backend/llvm/expr-containers.js.map +1 -1
  105. package/dist/backend/llvm/expr-context.d.ts +14 -0
  106. package/dist/backend/llvm/expr-control.js +2 -3
  107. package/dist/backend/llvm/expr-control.js.map +1 -1
  108. package/dist/backend/llvm/expr-dynamic.js +71 -16
  109. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  110. package/dist/backend/llvm/expr-primitives.js +126 -36
  111. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  112. package/dist/backend/llvm/expr-primitives.test.js +11 -6
  113. package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
  114. package/dist/backend/llvm/expr-records.d.ts +12 -0
  115. package/dist/backend/llvm/expr-records.js +106 -0
  116. package/dist/backend/llvm/expr-records.js.map +1 -1
  117. package/dist/backend/llvm/expr-stream-bridges.d.ts +2 -2
  118. package/dist/backend/llvm/expr-stream-bridges.js +225 -64
  119. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  120. package/dist/backend/llvm/expr-stream-bridges.test.js +1 -1
  121. package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -1
  122. package/dist/backend/llvm/expr-stream-callbacks.d.ts +2 -2
  123. package/dist/backend/llvm/expr-stream-callbacks.js +200 -50
  124. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  125. package/dist/backend/llvm/int32-kind-loops.d.ts +39 -0
  126. package/dist/backend/llvm/int32-kind-loops.js +106 -0
  127. package/dist/backend/llvm/int32-kind-loops.js.map +1 -0
  128. package/dist/backend/llvm/integer-or-nan-indexes.test.d.ts +1 -0
  129. package/dist/backend/llvm/integer-or-nan-indexes.test.js +118 -0
  130. package/dist/backend/llvm/integer-or-nan-indexes.test.js.map +1 -0
  131. package/dist/backend/llvm/integer-values.d.ts +20 -1
  132. package/dist/backend/llvm/integer-values.js +71 -0
  133. package/dist/backend/llvm/integer-values.js.map +1 -1
  134. package/dist/backend/llvm/js-ic.d.ts +1 -1
  135. package/dist/backend/llvm/js-ic.js +1 -1
  136. package/dist/backend/llvm/js-ic.js.map +1 -1
  137. package/dist/backend/llvm/key-orders.d.ts +7 -0
  138. package/dist/backend/llvm/key-orders.js +33 -0
  139. package/dist/backend/llvm/key-orders.js.map +1 -0
  140. package/dist/backend/llvm/lib-connect.js +4 -0
  141. package/dist/backend/llvm/lib-connect.js.map +1 -1
  142. package/dist/backend/llvm/lib-datagram.js +11 -0
  143. package/dist/backend/llvm/lib-datagram.js.map +1 -1
  144. package/dist/backend/llvm/lib-dispatch.js +90 -2
  145. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  146. package/dist/backend/llvm/lib-filesystem.js +65 -4
  147. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  148. package/dist/backend/llvm/lib-http2.d.ts +4 -0
  149. package/dist/backend/llvm/lib-http2.js +24 -17
  150. package/dist/backend/llvm/lib-http2.js.map +1 -1
  151. package/dist/backend/llvm/lib-lookup.js +16 -6
  152. package/dist/backend/llvm/lib-lookup.js.map +1 -1
  153. package/dist/backend/llvm/lib-process.js +65 -14
  154. package/dist/backend/llvm/lib-process.js.map +1 -1
  155. package/dist/backend/llvm/lib-shared.js +126 -3
  156. package/dist/backend/llvm/lib-shared.js.map +1 -1
  157. package/dist/backend/llvm/lib-stream.js +97 -30
  158. package/dist/backend/llvm/lib-stream.js.map +1 -1
  159. package/dist/backend/llvm/lib-tls.js +23 -0
  160. package/dist/backend/llvm/lib-tls.js.map +1 -1
  161. package/dist/backend/llvm/local-array-reads.js +181 -64
  162. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  163. package/dist/backend/llvm/local-array-reads.test.js +28 -0
  164. package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
  165. package/dist/backend/llvm/loop-state.d.ts +33 -0
  166. package/dist/backend/llvm/loop-state.js +42 -0
  167. package/dist/backend/llvm/loop-state.js.map +1 -0
  168. package/dist/backend/llvm/map-number-lookup.d.ts +26 -8
  169. package/dist/backend/llvm/map-number-lookup.js +91 -31
  170. package/dist/backend/llvm/map-number-lookup.js.map +1 -1
  171. package/dist/backend/llvm/map-number-lookup.test.js +55 -0
  172. package/dist/backend/llvm/map-number-lookup.test.js.map +1 -1
  173. package/dist/backend/llvm/map-read-lifetimes.js +4 -2
  174. package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
  175. package/dist/backend/llvm/nullable-unions.d.ts +2 -1
  176. package/dist/backend/llvm/nullable-unions.js +15 -3
  177. package/dist/backend/llvm/nullable-unions.js.map +1 -1
  178. package/dist/backend/llvm/publish.d.ts +18 -1
  179. package/dist/backend/llvm/publish.js +76 -25
  180. package/dist/backend/llvm/publish.js.map +1 -1
  181. package/dist/backend/llvm/publish.test.js +3 -0
  182. package/dist/backend/llvm/publish.test.js.map +1 -1
  183. package/dist/backend/llvm/receivers.js +7 -2
  184. package/dist/backend/llvm/receivers.js.map +1 -1
  185. package/dist/backend/llvm/record-results.d.ts +1 -9
  186. package/dist/backend/llvm/record-results.js +2 -11
  187. package/dist/backend/llvm/record-results.js.map +1 -1
  188. package/dist/backend/llvm/reference-writes.d.ts +7 -2
  189. package/dist/backend/llvm/reference-writes.js +91 -72
  190. package/dist/backend/llvm/reference-writes.js.map +1 -1
  191. package/dist/backend/llvm/regex-matchers.js +161 -14
  192. package/dist/backend/llvm/regex-matchers.js.map +1 -1
  193. package/dist/backend/llvm/regex-matchers.test.js +18 -0
  194. package/dist/backend/llvm/regex-matchers.test.js.map +1 -1
  195. package/dist/backend/llvm/running-extrema.d.ts +11 -0
  196. package/dist/backend/llvm/running-extrema.js +115 -0
  197. package/dist/backend/llvm/running-extrema.js.map +1 -0
  198. package/dist/backend/llvm/running-extrema.test.d.ts +1 -0
  199. package/dist/backend/llvm/running-extrema.test.js +89 -0
  200. package/dist/backend/llvm/running-extrema.test.js.map +1 -0
  201. package/dist/backend/llvm/shapes.d.ts +79 -21
  202. package/dist/backend/llvm/shapes.js +233 -42
  203. package/dist/backend/llvm/shapes.js.map +1 -1
  204. package/dist/backend/llvm/shapes.test.js +53 -7
  205. package/dist/backend/llvm/shapes.test.js.map +1 -1
  206. package/dist/backend/llvm/speculative-integers.d.ts +6 -0
  207. package/dist/backend/llvm/speculative-integers.js +2 -2
  208. package/dist/backend/llvm/speculative-integers.js.map +1 -1
  209. package/dist/backend/llvm/stack-objects.d.ts +3 -2
  210. package/dist/backend/llvm/stack-objects.js +5 -2
  211. package/dist/backend/llvm/stack-objects.js.map +1 -1
  212. package/dist/backend/llvm/string-lifetimes.test.js +2 -1
  213. package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
  214. package/dist/backend/llvm/string-reads.d.ts +15 -0
  215. package/dist/backend/llvm/string-reads.js +128 -0
  216. package/dist/backend/llvm/string-reads.js.map +1 -1
  217. package/dist/backend/llvm/walk-borrows.d.ts +3 -0
  218. package/dist/backend/llvm/walk-borrows.js +46 -41
  219. package/dist/backend/llvm/walk-borrows.js.map +1 -1
  220. package/dist/backend/llvm/walkers.d.ts +3 -0
  221. package/dist/backend/llvm/walkers.js +88 -65
  222. package/dist/backend/llvm/walkers.js.map +1 -1
  223. package/dist/backend/llvm/wasm-modules.d.ts +6 -5
  224. package/dist/backend/llvm/wasm-modules.js +32 -9
  225. package/dist/backend/llvm/wasm-modules.js.map +1 -1
  226. package/dist/backend/llvm/wrapping-sums.d.ts +16 -1
  227. package/dist/backend/llvm/wrapping-sums.js +126 -0
  228. package/dist/backend/llvm/wrapping-sums.js.map +1 -1
  229. package/dist/backend/mangle.d.ts +3 -0
  230. package/dist/backend/mangle.js +5 -0
  231. package/dist/backend/mangle.js.map +1 -1
  232. package/dist/backend/may-throw.d.ts +8 -10
  233. package/dist/backend/may-throw.js +14 -10
  234. package/dist/backend/may-throw.js.map +1 -1
  235. package/dist/backend/native/contracts.d.ts +27 -4
  236. package/dist/backend/native/executable.js +31 -8
  237. package/dist/backend/native/executable.js.map +1 -1
  238. package/dist/backend/native/library.js +1 -0
  239. package/dist/backend/native/library.js.map +1 -1
  240. package/dist/backend/native/runtime-inputs.d.ts +1 -1
  241. package/dist/backend/native/runtime-inputs.js +1 -0
  242. package/dist/backend/native/runtime-inputs.js.map +1 -1
  243. package/dist/backend/native-codegen.d.ts +11 -6
  244. package/dist/backend/native-codegen.js +36 -9
  245. package/dist/backend/native-codegen.js.map +1 -1
  246. package/dist/backend/native-codegen.test.js +0 -23
  247. package/dist/backend/native-codegen.test.js.map +1 -1
  248. package/dist/backend/native-link-info-core.d.ts +18 -4
  249. package/dist/backend/native-link-info-core.js.map +1 -1
  250. package/dist/backend/optimization.d.ts +2 -2
  251. package/dist/backend/publication.d.ts +12 -1
  252. package/dist/backend/publication.js +37 -14
  253. package/dist/backend/publication.js.map +1 -1
  254. package/dist/backend/publication.test.js +30 -0
  255. package/dist/backend/publication.test.js.map +1 -1
  256. package/dist/backend/result-slots.d.ts +16 -0
  257. package/dist/backend/result-slots.js +23 -0
  258. package/dist/backend/result-slots.js.map +1 -0
  259. package/dist/backend/runtime-abi.d.ts +2 -2
  260. package/dist/backend/runtime-abi.js +2 -2
  261. package/dist/backend/runtime-pack-core.d.ts +2 -1
  262. package/dist/backend/runtime-pack-core.js +2 -1
  263. package/dist/backend/runtime-pack-core.js.map +1 -1
  264. package/dist/backend/runtime-pack-targets.test.js +5 -1
  265. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  266. package/dist/backend/runtime-pack.d.ts +0 -21
  267. package/dist/backend/runtime-pack.js +0 -29
  268. package/dist/backend/runtime-pack.js.map +1 -1
  269. package/dist/backend/runtime-pack.test.js +10 -69
  270. package/dist/backend/runtime-pack.test.js.map +1 -1
  271. package/dist/backend/stack-observations.d.ts +2 -1
  272. package/dist/backend/stack-observations.js +67 -42
  273. package/dist/backend/stack-observations.js.map +1 -1
  274. package/dist/backend/target-diagnostics.js +33 -1
  275. package/dist/backend/target-diagnostics.js.map +1 -1
  276. package/dist/backend/warm-cache.js +4 -0
  277. package/dist/backend/warm-cache.js.map +1 -1
  278. package/dist/cli/command.js +26 -6
  279. package/dist/cli/command.js.map +1 -1
  280. package/dist/cli/usage.d.ts +5 -1
  281. package/dist/cli/usage.js +10 -5
  282. package/dist/cli/usage.js.map +1 -1
  283. package/dist/compat/fetch-profile.js +1 -1
  284. package/dist/compat/fetch-profile.js.map +1 -1
  285. package/dist/contracts/check.js +5 -4
  286. package/dist/contracts/check.js.map +1 -1
  287. package/dist/contracts/int32-elements.js +10 -2
  288. package/dist/contracts/int32-elements.js.map +1 -1
  289. package/dist/coverage/report.d.ts +7 -2
  290. package/dist/coverage/report.js +30 -3
  291. package/dist/coverage/report.js.map +1 -1
  292. package/dist/coverage/verdict-cache.d.ts +1 -0
  293. package/dist/coverage/verdict-cache.js +4 -0
  294. package/dist/coverage/verdict-cache.js.map +1 -1
  295. package/dist/coverage/verdict-semantic.js +4 -0
  296. package/dist/coverage/verdict-semantic.js.map +1 -1
  297. package/dist/diagnostics/diagnostic.d.ts +4 -0
  298. package/dist/diagnostics/diagnostic.js.map +1 -1
  299. package/dist/diagnostics/dynamic-tier.d.ts +40 -0
  300. package/dist/diagnostics/dynamic-tier.js +57 -0
  301. package/dist/diagnostics/dynamic-tier.js.map +1 -0
  302. package/dist/diagnostics/envelope.d.ts +5 -1
  303. package/dist/diagnostics/envelope.js +6 -2
  304. package/dist/diagnostics/envelope.js.map +1 -1
  305. package/dist/executable/executable-cache.d.ts +25 -1
  306. package/dist/executable/executable-cache.js +60 -7
  307. package/dist/executable/executable-cache.js.map +1 -1
  308. package/dist/executable/executable-cache.test.js +46 -3
  309. package/dist/executable/executable-cache.test.js.map +1 -1
  310. package/dist/executable/prepare.js +3 -1
  311. package/dist/executable/prepare.js.map +1 -1
  312. package/dist/frontend/analysis.js +1 -0
  313. package/dist/frontend/analysis.js.map +1 -1
  314. package/dist/frontend/decl-projection.d.ts +41 -0
  315. package/dist/frontend/decl-projection.js +854 -0
  316. package/dist/frontend/decl-projection.js.map +1 -0
  317. package/dist/frontend/decl-projection.test.d.ts +1 -0
  318. package/dist/frontend/decl-projection.test.js +30 -0
  319. package/dist/frontend/decl-projection.test.js.map +1 -0
  320. package/dist/frontend/dispose-hook.d.ts +2 -0
  321. package/dist/frontend/dispose-hook.js +14 -0
  322. package/dist/frontend/dispose-hook.js.map +1 -0
  323. package/dist/frontend/dts-paths.d.ts +15 -0
  324. package/dist/frontend/dts-paths.js +25 -0
  325. package/dist/frontend/dts-paths.js.map +1 -1
  326. package/dist/frontend/input-tracker.d.ts +6 -0
  327. package/dist/frontend/input-tracker.js +51 -28
  328. package/dist/frontend/input-tracker.js.map +1 -1
  329. package/dist/frontend/input-tracker.test.js +19 -0
  330. package/dist/frontend/input-tracker.test.js.map +1 -1
  331. package/dist/frontend/jsx-entities.d.ts +4 -0
  332. package/dist/frontend/jsx-entities.js +259 -0
  333. package/dist/frontend/jsx-entities.js.map +1 -0
  334. package/dist/frontend/jsx-source.d.ts +71 -0
  335. package/dist/frontend/jsx-source.js +781 -0
  336. package/dist/frontend/jsx-source.js.map +1 -0
  337. package/dist/frontend/jsx-source.test.d.ts +1 -0
  338. package/dist/frontend/jsx-source.test.js +200 -0
  339. package/dist/frontend/jsx-source.test.js.map +1 -0
  340. package/dist/frontend/literal-values.test.js +8 -9
  341. package/dist/frontend/literal-values.test.js.map +1 -1
  342. package/dist/frontend/lowering/array-indexed-mutation.js +2 -1
  343. package/dist/frontend/lowering/array-indexed-mutation.js.map +1 -1
  344. package/dist/frontend/lowering/array-values.js +103 -4
  345. package/dist/frontend/lowering/array-values.js.map +1 -1
  346. package/dist/frontend/lowering/binding-analysis.d.ts +1 -1
  347. package/dist/frontend/lowering/binding-analysis.js +2 -2
  348. package/dist/frontend/lowering/binding-analysis.js.map +1 -1
  349. package/dist/frontend/lowering/builtins/arguments.d.ts +3 -0
  350. package/dist/frontend/lowering/builtins/arguments.js +30 -15
  351. package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
  352. package/dist/frontend/lowering/builtins/atomics.js +10 -6
  353. package/dist/frontend/lowering/builtins/atomics.js.map +1 -1
  354. package/dist/frontend/lowering/builtins/child-process-async.js +2 -1
  355. package/dist/frontend/lowering/builtins/child-process-async.js.map +1 -1
  356. package/dist/frontend/lowering/builtins/child-process-methods.js +46 -15
  357. package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
  358. package/dist/frontend/lowering/builtins/child-process-sync.js +2 -1
  359. package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -1
  360. package/dist/frontend/lowering/builtins/child-process.js +13 -2
  361. package/dist/frontend/lowering/builtins/child-process.js.map +1 -1
  362. package/dist/frontend/lowering/builtins/crypto.d.ts +4 -2
  363. package/dist/frontend/lowering/builtins/crypto.js +136 -5
  364. package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
  365. package/dist/frontend/lowering/builtins/date-classes.d.ts +46 -0
  366. package/dist/frontend/lowering/builtins/date-classes.js +477 -0
  367. package/dist/frontend/lowering/builtins/date-classes.js.map +1 -0
  368. package/dist/frontend/lowering/builtins/dates.d.ts +11 -1
  369. package/dist/frontend/lowering/builtins/dates.js +55 -26
  370. package/dist/frontend/lowering/builtins/dates.js.map +1 -1
  371. package/dist/frontend/lowering/builtins/dh.d.ts +15 -0
  372. package/dist/frontend/lowering/builtins/dh.js +151 -0
  373. package/dist/frontend/lowering/builtins/dh.js.map +1 -0
  374. package/dist/frontend/lowering/builtins/disposable-stack.js +2 -1
  375. package/dist/frontend/lowering/builtins/disposable-stack.js.map +1 -1
  376. package/dist/frontend/lowering/builtins/ecdh.d.ts +12 -1
  377. package/dist/frontend/lowering/builtins/ecdh.js +7 -7
  378. package/dist/frontend/lowering/builtins/ecdh.js.map +1 -1
  379. package/dist/frontend/lowering/builtins/errors.d.ts +15 -0
  380. package/dist/frontend/lowering/builtins/errors.js +110 -0
  381. package/dist/frontend/lowering/builtins/errors.js.map +1 -1
  382. package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +1 -1
  383. package/dist/frontend/lowering/builtins/filesystem-calls.js +23 -17
  384. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
  385. package/dist/frontend/lowering/builtins/filesystem.js +6 -4
  386. package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
  387. package/dist/frontend/lowering/builtins/fs-paths.d.ts +15 -0
  388. package/dist/frontend/lowering/builtins/fs-paths.js +209 -0
  389. package/dist/frontend/lowering/builtins/fs-paths.js.map +1 -0
  390. package/dist/frontend/lowering/builtins/global-namespace-keys.d.ts +3 -0
  391. package/dist/frontend/lowering/builtins/global-namespace-keys.js +122 -0
  392. package/dist/frontend/lowering/builtins/global-namespace-keys.js.map +1 -0
  393. package/dist/frontend/lowering/builtins/hash-stream.d.ts +16 -4
  394. package/dist/frontend/lowering/builtins/hash-stream.js +86 -23
  395. package/dist/frontend/lowering/builtins/hash-stream.js.map +1 -1
  396. package/dist/frontend/lowering/builtins/json.js +2 -1
  397. package/dist/frontend/lowering/builtins/json.js.map +1 -1
  398. package/dist/frontend/lowering/builtins/key-object.d.ts +2 -1
  399. package/dist/frontend/lowering/builtins/key-object.js +20 -7
  400. package/dist/frontend/lowering/builtins/key-object.js.map +1 -1
  401. package/dist/frontend/lowering/builtins/module-calls.js +11 -4
  402. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  403. package/dist/frontend/lowering/builtins/numbers.js +18 -6
  404. package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
  405. package/dist/frontend/lowering/builtins/operating-system.js +4 -3
  406. package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
  407. package/dist/frontend/lowering/builtins/performance.js +3 -2
  408. package/dist/frontend/lowering/builtins/performance.js.map +1 -1
  409. package/dist/frontend/lowering/builtins/process.js +3 -2
  410. package/dist/frontend/lowering/builtins/process.js.map +1 -1
  411. package/dist/frontend/lowering/builtins/promises.d.ts +6 -0
  412. package/dist/frontend/lowering/builtins/promises.js +91 -4
  413. package/dist/frontend/lowering/builtins/promises.js.map +1 -1
  414. package/dist/frontend/lowering/builtins/promisify-callback.js +2 -1
  415. package/dist/frontend/lowering/builtins/promisify-callback.js.map +1 -1
  416. package/dist/frontend/lowering/builtins/readline.d.ts +7 -2
  417. package/dist/frontend/lowering/builtins/readline.js +58 -9
  418. package/dist/frontend/lowering/builtins/readline.js.map +1 -1
  419. package/dist/frontend/lowering/builtins/strings.js +13 -5
  420. package/dist/frontend/lowering/builtins/strings.js.map +1 -1
  421. package/dist/frontend/lowering/builtins/text-codecs.js +2 -1
  422. package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -1
  423. package/dist/frontend/lowering/builtins/timers.js +1 -1
  424. package/dist/frontend/lowering/builtins/timers.js.map +1 -1
  425. package/dist/frontend/lowering/builtins/url.js +28 -4
  426. package/dist/frontend/lowering/builtins/url.js.map +1 -1
  427. package/dist/frontend/lowering/builtins/v8.js +2 -1
  428. package/dist/frontend/lowering/builtins/v8.js.map +1 -1
  429. package/dist/frontend/lowering/builtins/webassembly.js +6 -3
  430. package/dist/frontend/lowering/builtins/webassembly.js.map +1 -1
  431. package/dist/frontend/lowering/builtins/webcrypto.js +39 -20
  432. package/dist/frontend/lowering/builtins/webcrypto.js.map +1 -1
  433. package/dist/frontend/lowering/call-arguments.js +2 -1
  434. package/dist/frontend/lowering/call-arguments.js.map +1 -1
  435. package/dist/frontend/lowering/call-signatures.js +13 -6
  436. package/dist/frontend/lowering/call-signatures.js.map +1 -1
  437. package/dist/frontend/lowering/caught-value-dispatch.d.ts +18 -1
  438. package/dist/frontend/lowering/caught-value-dispatch.js +201 -32
  439. package/dist/frontend/lowering/caught-value-dispatch.js.map +1 -1
  440. package/dist/frontend/lowering/class-assertions.js +3 -2
  441. package/dist/frontend/lowering/class-assertions.js.map +1 -1
  442. package/dist/frontend/lowering/class-callbacks.d.ts +5 -2
  443. package/dist/frontend/lowering/class-callbacks.js +82 -12
  444. package/dist/frontend/lowering/class-callbacks.js.map +1 -1
  445. package/dist/frontend/lowering/class-construction.d.ts +6 -2
  446. package/dist/frontend/lowering/class-construction.js +25 -16
  447. package/dist/frontend/lowering/class-construction.js.map +1 -1
  448. package/dist/frontend/lowering/class-descriptors.js +1 -1
  449. package/dist/frontend/lowering/class-descriptors.js.map +1 -1
  450. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +73 -2
  451. package/dist/frontend/lowering/class-dynamic-dispatch.js +1334 -259
  452. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  453. package/dist/frontend/lowering/class-dynamic-dispatch.test.js +124 -0
  454. package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
  455. package/dist/frontend/lowering/class-iterables.d.ts +2 -1
  456. package/dist/frontend/lowering/class-iterables.js +9 -1
  457. package/dist/frontend/lowering/class-iterables.js.map +1 -1
  458. package/dist/frontend/lowering/class-method-mutations.js +35 -9
  459. package/dist/frontend/lowering/class-method-mutations.js.map +1 -1
  460. package/dist/frontend/lowering/class-method-values.js +1 -1
  461. package/dist/frontend/lowering/class-method-values.js.map +1 -1
  462. package/dist/frontend/lowering/class-protocols.d.ts +7 -0
  463. package/dist/frontend/lowering/class-protocols.js +64 -4
  464. package/dist/frontend/lowering/class-protocols.js.map +1 -1
  465. package/dist/frontend/lowering/class-prototypes.d.ts +5 -0
  466. package/dist/frontend/lowering/class-prototypes.js +67 -5
  467. package/dist/frontend/lowering/class-prototypes.js.map +1 -1
  468. package/dist/frontend/lowering/class-runtime-statics.d.ts +9 -3
  469. package/dist/frontend/lowering/class-runtime-statics.js +29 -4
  470. package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
  471. package/dist/frontend/lowering/class-to-primitive.js +25 -5
  472. package/dist/frontend/lowering/class-to-primitive.js.map +1 -1
  473. package/dist/frontend/lowering/class-unions.js +2 -1
  474. package/dist/frontend/lowering/class-unions.js.map +1 -1
  475. package/dist/frontend/lowering/coercions/function-adapters.js +6 -5
  476. package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
  477. package/dist/frontend/lowering/coercions/structural-plans.js +48 -1
  478. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
  479. package/dist/frontend/lowering/coercions/structural.js +99 -8
  480. package/dist/frontend/lowering/coercions/structural.js.map +1 -1
  481. package/dist/frontend/lowering/coercions/unions.js +8 -7
  482. package/dist/frontend/lowering/coercions/unions.js.map +1 -1
  483. package/dist/frontend/lowering/collection-ingestion.js +2 -1
  484. package/dist/frontend/lowering/collection-ingestion.js.map +1 -1
  485. package/dist/frontend/lowering/containers/array-callback-call.js +2 -2
  486. package/dist/frontend/lowering/containers/array-callback-call.js.map +1 -1
  487. package/dist/frontend/lowering/containers/array-callbacks.d.ts +7 -0
  488. package/dist/frontend/lowering/containers/array-callbacks.js +352 -31
  489. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  490. package/dist/frontend/lowering/containers/array-concat.js +12 -1
  491. package/dist/frontend/lowering/containers/array-concat.js.map +1 -1
  492. package/dist/frontend/lowering/containers/array-construction.js +25 -4
  493. package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
  494. package/dist/frontend/lowering/containers/array-methods.js +21 -5
  495. package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
  496. package/dist/frontend/lowering/containers/array-pipelines.js +21 -9
  497. package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -1
  498. package/dist/frontend/lowering/containers/bytes.d.ts +1 -1
  499. package/dist/frontend/lowering/containers/bytes.js +131 -29
  500. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  501. package/dist/frontend/lowering/containers/callback-arguments.js +55 -2
  502. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
  503. package/dist/frontend/lowering/containers/collection-grouping.js +3 -2
  504. package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -1
  505. package/dist/frontend/lowering/containers/collection-methods.js +15 -9
  506. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
  507. package/dist/frontend/lowering/containers/filter-predicates.d.ts +6 -0
  508. package/dist/frontend/lowering/containers/filter-predicates.js +205 -0
  509. package/dist/frontend/lowering/containers/filter-predicates.js.map +1 -0
  510. package/dist/frontend/lowering/containers/indexed-objects.d.ts +0 -12
  511. package/dist/frontend/lowering/containers/indexed-objects.js +54 -14
  512. package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
  513. package/dist/frontend/lowering/containers/iterator-helpers.d.ts +32 -1
  514. package/dist/frontend/lowering/containers/iterator-helpers.js +6 -5
  515. package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -1
  516. package/dist/frontend/lowering/containers/string-and-regexp.js +87 -14
  517. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  518. package/dist/frontend/lowering/containers/string-replacement.js +45 -20
  519. package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
  520. package/dist/frontend/lowering/cycle-initialization.js +25 -4
  521. package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
  522. package/dist/frontend/lowering/deferred-module-initializers.d.ts +18 -1
  523. package/dist/frontend/lowering/deferred-module-initializers.js +226 -115
  524. package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
  525. package/dist/frontend/lowering/deferred-module-initializers.test.js +28 -0
  526. package/dist/frontend/lowering/deferred-module-initializers.test.js.map +1 -1
  527. package/dist/frontend/lowering/dispatch-sites.d.ts +59 -0
  528. package/dist/frontend/lowering/dispatch-sites.js +218 -0
  529. package/dist/frontend/lowering/dispatch-sites.js.map +1 -0
  530. package/dist/frontend/lowering/dispatch-sites.test.d.ts +1 -0
  531. package/dist/frontend/lowering/dispatch-sites.test.js +59 -0
  532. package/dist/frontend/lowering/dispatch-sites.test.js.map +1 -0
  533. package/dist/frontend/lowering/divergences.js +9 -1
  534. package/dist/frontend/lowering/divergences.js.map +1 -1
  535. package/dist/frontend/lowering/dyn-streams.d.ts +3 -0
  536. package/dist/frontend/lowering/dyn-streams.js +1 -1
  537. package/dist/frontend/lowering/dyn-streams.js.map +1 -1
  538. package/dist/frontend/lowering/dynamic-tier.d.ts +25 -0
  539. package/dist/frontend/lowering/dynamic-tier.js +327 -0
  540. package/dist/frontend/lowering/dynamic-tier.js.map +1 -0
  541. package/dist/frontend/lowering/error-methods.js +51 -2
  542. package/dist/frontend/lowering/error-methods.js.map +1 -1
  543. package/dist/frontend/lowering/expressions/array-literals.js +62 -0
  544. package/dist/frontend/lowering/expressions/array-literals.js.map +1 -1
  545. package/dist/frontend/lowering/expressions/binary.js +81 -5
  546. package/dist/frontend/lowering/expressions/binary.js.map +1 -1
  547. package/dist/frontend/lowering/expressions/element-access.js +107 -14
  548. package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
  549. package/dist/frontend/lowering/expressions/identifiers.js +79 -11
  550. package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
  551. package/dist/frontend/lowering/expressions/narrowing.js +130 -6
  552. package/dist/frontend/lowering/expressions/narrowing.js.map +1 -1
  553. package/dist/frontend/lowering/expressions/nullish-assignment.js +3 -1
  554. package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
  555. package/dist/frontend/lowering/expressions/object-literals.d.ts +10 -3
  556. package/dist/frontend/lowering/expressions/object-literals.js +164 -56
  557. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  558. package/dist/frontend/lowering/expressions/optional-chains.js +17 -5
  559. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
  560. package/dist/frontend/lowering/expressions/property-access.d.ts +0 -4
  561. package/dist/frontend/lowering/expressions/property-access.js +211 -17
  562. package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
  563. package/dist/frontend/lowering/expressions/relational.js +267 -30
  564. package/dist/frontend/lowering/expressions/relational.js.map +1 -1
  565. package/dist/frontend/lowering/expressions/union-fields.js +4 -0
  566. package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
  567. package/dist/frontend/lowering/expressions/updates.js +85 -12
  568. package/dist/frontend/lowering/expressions/updates.js.map +1 -1
  569. package/dist/frontend/lowering/frozen-records.d.ts +28 -0
  570. package/dist/frontend/lowering/frozen-records.js +322 -0
  571. package/dist/frontend/lowering/frozen-records.js.map +1 -0
  572. package/dist/frontend/lowering/function-returns.js +49 -0
  573. package/dist/frontend/lowering/function-returns.js.map +1 -1
  574. package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +6 -1
  575. package/dist/frontend/lowering/generator-dynamic-dispatch.js +20 -30
  576. package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -1
  577. package/dist/frontend/lowering/generic-functions.d.ts +42 -1
  578. package/dist/frontend/lowering/generic-functions.js +455 -20
  579. package/dist/frontend/lowering/generic-functions.js.map +1 -1
  580. package/dist/frontend/lowering/intern-tables.js +2 -1
  581. package/dist/frontend/lowering/intern-tables.js.map +1 -1
  582. package/dist/frontend/lowering/iterable-values.d.ts +49 -0
  583. package/dist/frontend/lowering/iterable-values.js +297 -0
  584. package/dist/frontend/lowering/iterable-values.js.map +1 -0
  585. package/dist/frontend/lowering/iterator-adapters.js +195 -9
  586. package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
  587. package/dist/frontend/lowering/js-class-fields.d.ts +8 -0
  588. package/dist/frontend/lowering/js-class-fields.js +45 -10
  589. package/dist/frontend/lowering/js-class-fields.js.map +1 -1
  590. package/dist/frontend/lowering/js-dynamic-objects.js +3 -2
  591. package/dist/frontend/lowering/js-dynamic-objects.js.map +1 -1
  592. package/dist/frontend/lowering/json-require.js +2 -1
  593. package/dist/frontend/lowering/json-require.js.map +1 -1
  594. package/dist/frontend/lowering/key-order-witness.d.ts +24 -4
  595. package/dist/frontend/lowering/key-order-witness.js +790 -25
  596. package/dist/frontend/lowering/key-order-witness.js.map +1 -1
  597. package/dist/frontend/lowering/key-order-witness.test.js +466 -10
  598. package/dist/frontend/lowering/key-order-witness.test.js.map +1 -1
  599. package/dist/frontend/lowering/lifetime-regions.js +2 -1
  600. package/dist/frontend/lowering/lifetime-regions.js.map +1 -1
  601. package/dist/frontend/lowering/lower-assert.js +6 -5
  602. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  603. package/dist/frontend/lowering/lower-async-iteration.js +7 -2
  604. package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
  605. package/dist/frontend/lowering/lower-calls.d.ts +11 -0
  606. package/dist/frontend/lowering/lower-calls.js +776 -126
  607. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  608. package/dist/frontend/lowering/lower-classes.d.ts +29 -2
  609. package/dist/frontend/lowering/lower-classes.js +581 -46
  610. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  611. package/dist/frontend/lowering/lower-dgram.js +6 -3
  612. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  613. package/dist/frontend/lowering/lower-event-emitter.d.ts +14 -0
  614. package/dist/frontend/lowering/lower-event-emitter.js +267 -20
  615. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  616. package/dist/frontend/lowering/lower-exprs.d.ts +19 -2
  617. package/dist/frontend/lowering/lower-exprs.js +126 -13
  618. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  619. package/dist/frontend/lowering/lower-functions.d.ts +11 -0
  620. package/dist/frontend/lowering/lower-functions.js +387 -72
  621. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  622. package/dist/frontend/lowering/lower-generators.js +41 -31
  623. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  624. package/dist/frontend/lowering/lower-global-value.js +6 -3
  625. package/dist/frontend/lowering/lower-global-value.js.map +1 -1
  626. package/dist/frontend/lowering/lower-inspect.js +28 -12
  627. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  628. package/dist/frontend/lowering/lower-mixins.js +2 -1
  629. package/dist/frontend/lowering/lower-mixins.js.map +1 -1
  630. package/dist/frontend/lowering/lower-mock.js +2 -1
  631. package/dist/frontend/lowering/lower-mock.js.map +1 -1
  632. package/dist/frontend/lowering/lower-modules.js +47 -5
  633. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  634. package/dist/frontend/lowering/lower-modules.test.js +2 -2
  635. package/dist/frontend/lowering/lower-modules.test.js.map +1 -1
  636. package/dist/frontend/lowering/lower-namespaces.d.ts +2 -1
  637. package/dist/frontend/lowering/lower-namespaces.js +9 -4
  638. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  639. package/dist/frontend/lowering/lower-server.d.ts +10 -0
  640. package/dist/frontend/lowering/lower-server.js +239 -61
  641. package/dist/frontend/lowering/lower-server.js.map +1 -1
  642. package/dist/frontend/lowering/lower-stdlib.d.ts +5 -0
  643. package/dist/frontend/lowering/lower-stdlib.js +42 -10
  644. package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
  645. package/dist/frontend/lowering/lower-stmts.d.ts +23 -0
  646. package/dist/frontend/lowering/lower-stmts.js +622 -68
  647. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  648. package/dist/frontend/lowering/lower-stmts.test.js +1 -1
  649. package/dist/frontend/lowering/lower-stmts.test.js.map +1 -1
  650. package/dist/frontend/lowering/lower-stream.d.ts +20 -2
  651. package/dist/frontend/lowering/lower-stream.js +2055 -318
  652. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  653. package/dist/frontend/lowering/lower-timers.js +4 -3
  654. package/dist/frontend/lowering/lower-timers.js.map +1 -1
  655. package/dist/frontend/lowering/lowerer.d.ts +197 -29
  656. package/dist/frontend/lowering/lowerer.js +862 -84
  657. package/dist/frontend/lowering/lowerer.js.map +1 -1
  658. package/dist/frontend/lowering/lowerer.test.js +21 -9
  659. package/dist/frontend/lowering/lowerer.test.js.map +1 -1
  660. package/dist/frontend/lowering/module-namespace-elements.d.ts +11 -1
  661. package/dist/frontend/lowering/module-namespace-elements.js +82 -5
  662. package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
  663. package/dist/frontend/lowering/narrowing-stability.js +5 -0
  664. package/dist/frontend/lowering/narrowing-stability.js.map +1 -1
  665. package/dist/frontend/lowering/native-ffi.js +1 -1
  666. package/dist/frontend/lowering/native-ffi.js.map +1 -1
  667. package/dist/frontend/lowering/new-target.d.ts +12 -0
  668. package/dist/frontend/lowering/new-target.js +280 -0
  669. package/dist/frontend/lowering/new-target.js.map +1 -0
  670. package/dist/frontend/lowering/object-enumeration-receiver.js +2 -1
  671. package/dist/frontend/lowering/object-enumeration-receiver.js.map +1 -1
  672. package/dist/frontend/lowering/pairs-snapshot.js +2 -1
  673. package/dist/frontend/lowering/pairs-snapshot.js.map +1 -1
  674. package/dist/frontend/lowering/private-brands.d.ts +9 -0
  675. package/dist/frontend/lowering/private-brands.js +66 -15
  676. package/dist/frontend/lowering/private-brands.js.map +1 -1
  677. package/dist/frontend/lowering/promise-executor-adapter.js +2 -1
  678. package/dist/frontend/lowering/promise-executor-adapter.js.map +1 -1
  679. package/dist/frontend/lowering/require-initialization.js +2 -1
  680. package/dist/frontend/lowering/require-initialization.js.map +1 -1
  681. package/dist/frontend/lowering/runtime-optional-elements.d.ts +5 -0
  682. package/dist/frontend/lowering/runtime-optional-elements.js +17 -1
  683. package/dist/frontend/lowering/runtime-optional-elements.js.map +1 -1
  684. package/dist/frontend/lowering/runtime-optional-records.d.ts +2 -0
  685. package/dist/frontend/lowering/runtime-optional-records.js +18 -5
  686. package/dist/frontend/lowering/runtime-optional-records.js.map +1 -1
  687. package/dist/frontend/lowering/site-dependencies.d.ts +35 -0
  688. package/dist/frontend/lowering/site-dependencies.js +84 -0
  689. package/dist/frontend/lowering/site-dependencies.js.map +1 -0
  690. package/dist/frontend/lowering/site-dependencies.test.d.ts +1 -0
  691. package/dist/frontend/lowering/site-dependencies.test.js +53 -0
  692. package/dist/frontend/lowering/site-dependencies.test.js.map +1 -0
  693. package/dist/frontend/lowering/stable-names.d.ts +11 -0
  694. package/dist/frontend/lowering/stable-names.js +35 -0
  695. package/dist/frontend/lowering/stable-names.js.map +1 -0
  696. package/dist/frontend/lowering/static-typeof.d.ts +2 -2
  697. package/dist/frontend/lowering/static-typeof.js +42 -3
  698. package/dist/frontend/lowering/static-typeof.js.map +1 -1
  699. package/dist/frontend/lowering/strict-equality.js +2 -1
  700. package/dist/frontend/lowering/strict-equality.js.map +1 -1
  701. package/dist/frontend/lowering/structural-positions.d.ts +32 -0
  702. package/dist/frontend/lowering/structural-positions.js +108 -0
  703. package/dist/frontend/lowering/structural-positions.js.map +1 -0
  704. package/dist/frontend/lowering/surfaces.d.ts +3 -0
  705. package/dist/frontend/lowering/surfaces.js +60 -32
  706. package/dist/frontend/lowering/surfaces.js.map +1 -1
  707. package/dist/frontend/lowering/undefined-index.d.ts +27 -0
  708. package/dist/frontend/lowering/undefined-index.js +82 -0
  709. package/dist/frontend/lowering/undefined-index.js.map +1 -0
  710. package/dist/frontend/lowering/var-hoisting.js +66 -16
  711. package/dist/frontend/lowering/var-hoisting.js.map +1 -1
  712. package/dist/frontend/lowering/width-lift.d.ts +18 -0
  713. package/dist/frontend/npm-static-bundled-chunks.js +9 -11
  714. package/dist/frontend/npm-static-bundled-chunks.js.map +1 -1
  715. package/dist/frontend/npm-static-bundled-chunks.test.js +6 -5
  716. package/dist/frontend/npm-static-bundled-chunks.test.js.map +1 -1
  717. package/dist/frontend/npm-static-rewrite-syntax.js +9 -1
  718. package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
  719. package/dist/frontend/npm-static-tsc-helpers.d.ts +5 -0
  720. package/dist/frontend/npm-static-tsc-helpers.js +106 -0
  721. package/dist/frontend/npm-static-tsc-helpers.js.map +1 -0
  722. package/dist/frontend/npm-static-tsc-helpers.test.d.ts +1 -0
  723. package/dist/frontend/npm-static-tsc-helpers.test.js +58 -0
  724. package/dist/frontend/npm-static-tsc-helpers.test.js.map +1 -0
  725. package/dist/frontend/npm-static-type-exports-host.d.ts +8 -0
  726. package/dist/frontend/npm-static-type-exports-host.js +214 -0
  727. package/dist/frontend/npm-static-type-exports-host.js.map +1 -0
  728. package/dist/frontend/npm-static-type-exports-host.test.d.ts +1 -0
  729. package/dist/frontend/npm-static-type-exports-host.test.js +53 -0
  730. package/dist/frontend/npm-static-type-exports-host.test.js.map +1 -0
  731. package/dist/frontend/npm-static-type-exports.d.ts +52 -0
  732. package/dist/frontend/npm-static-type-exports.js +261 -0
  733. package/dist/frontend/npm-static-type-exports.js.map +1 -0
  734. package/dist/frontend/npm-static-type-exports.test.d.ts +1 -0
  735. package/dist/frontend/npm-static-type-exports.test.js +103 -0
  736. package/dist/frontend/npm-static-type-exports.test.js.map +1 -0
  737. package/dist/frontend/npm-static-umd.d.ts +6 -0
  738. package/dist/frontend/npm-static-umd.js +203 -0
  739. package/dist/frontend/npm-static-umd.js.map +1 -0
  740. package/dist/frontend/npm-static-umd.test.d.ts +1 -0
  741. package/dist/frontend/npm-static-umd.test.js +105 -0
  742. package/dist/frontend/npm-static-umd.test.js.map +1 -0
  743. package/dist/frontend/npm-static.d.ts +8 -0
  744. package/dist/frontend/npm-static.js +51 -22
  745. package/dist/frontend/npm-static.js.map +1 -1
  746. package/dist/frontend/package-shims.d.ts +3 -0
  747. package/dist/frontend/package-shims.js +71 -8
  748. package/dist/frontend/package-shims.js.map +1 -1
  749. package/dist/frontend/pipeline.js +18 -10
  750. package/dist/frontend/pipeline.js.map +1 -1
  751. package/dist/frontend/process-fork.d.ts +25 -0
  752. package/dist/frontend/process-fork.js +2 -0
  753. package/dist/frontend/process-fork.js.map +1 -0
  754. package/dist/frontend/program.d.ts +21 -1
  755. package/dist/frontend/program.js +586 -74
  756. package/dist/frontend/program.js.map +1 -1
  757. package/dist/frontend/program.test.js +44 -4
  758. package/dist/frontend/program.test.js.map +1 -1
  759. package/dist/frontend/services.d.ts +6 -0
  760. package/dist/frontend/services.js +18 -0
  761. package/dist/frontend/services.js.map +1 -1
  762. package/dist/frontend/token-equivalence.d.ts +3 -0
  763. package/dist/frontend/token-equivalence.js +409 -0
  764. package/dist/frontend/token-equivalence.js.map +1 -0
  765. package/dist/frontend/token-equivalence.test.d.ts +1 -0
  766. package/dist/frontend/token-equivalence.test.js +67 -0
  767. package/dist/frontend/token-equivalence.test.js.map +1 -0
  768. package/dist/frontend/ts7/ast-node.d.ts +43 -7
  769. package/dist/frontend/ts7/ast-node.js +1176 -129
  770. package/dist/frontend/ts7/ast-node.js.map +1 -1
  771. package/dist/frontend/ts7/ast-node.test.js +84 -0
  772. package/dist/frontend/ts7/ast-node.test.js.map +1 -1
  773. package/dist/frontend/ts7/ast-wire.d.ts +29 -3
  774. package/dist/frontend/ts7/ast-wire.js +144 -31
  775. package/dist/frontend/ts7/ast-wire.js.map +1 -1
  776. package/dist/frontend/ts7/ast-wire.test.js +23 -0
  777. package/dist/frontend/ts7/ast-wire.test.js.map +1 -1
  778. package/dist/frontend/ts7/ast.d.ts +23 -2
  779. package/dist/frontend/ts7/ast.js +143 -2
  780. package/dist/frontend/ts7/ast.js.map +1 -1
  781. package/dist/frontend/ts7/checker-backend.d.ts +3 -4
  782. package/dist/frontend/ts7/checker-backend.js +2 -2
  783. package/dist/frontend/ts7/checker-backend.js.map +1 -1
  784. package/dist/frontend/ts7/checker-backend.test.js +5 -9
  785. package/dist/frontend/ts7/checker-backend.test.js.map +1 -1
  786. package/dist/frontend/ts7/checker.d.ts +17 -1
  787. package/dist/frontend/ts7/checker.js +82 -1
  788. package/dist/frontend/ts7/checker.js.map +1 -1
  789. package/dist/frontend/ts7/checker.test.js +9 -6
  790. package/dist/frontend/ts7/checker.test.js.map +1 -1
  791. package/dist/frontend/ts7/enums.d.ts +3 -3
  792. package/dist/frontend/ts7/enums.generated.d.ts +10 -0
  793. package/dist/frontend/ts7/enums.generated.js +21 -0
  794. package/dist/frontend/ts7/enums.generated.js.map +1 -1
  795. package/dist/frontend/ts7/enums.js +19 -0
  796. package/dist/frontend/ts7/enums.js.map +1 -1
  797. package/dist/frontend/ts7/lib-diagnostics.d.ts +24 -0
  798. package/dist/frontend/ts7/lib-diagnostics.js +307 -0
  799. package/dist/frontend/ts7/lib-diagnostics.js.map +1 -0
  800. package/dist/frontend/ts7/lib-diagnostics.test.d.ts +1 -0
  801. package/dist/frontend/ts7/lib-diagnostics.test.js +199 -0
  802. package/dist/frontend/ts7/lib-diagnostics.test.js.map +1 -0
  803. package/dist/frontend/ts7/program-host.d.ts +7 -0
  804. package/dist/frontend/ts7/program-host.js +30 -4
  805. package/dist/frontend/ts7/program-host.js.map +1 -1
  806. package/dist/frontend/ts7/semantic-checker.d.ts +10 -0
  807. package/dist/frontend/ts7/semantic-checker.js +25 -20
  808. package/dist/frontend/ts7/semantic-checker.js.map +1 -1
  809. package/dist/frontend/ts7/semantic-json.d.ts +13 -0
  810. package/dist/frontend/ts7/semantic-json.js +146 -0
  811. package/dist/frontend/ts7/semantic-json.js.map +1 -1
  812. package/dist/frontend/ts7/semantic-json.test.js +57 -1
  813. package/dist/frontend/ts7/semantic-json.test.js.map +1 -1
  814. package/dist/frontend/ts7/semantic-model.d.ts +15 -0
  815. package/dist/frontend/ts7/semantic-model.js +67 -19
  816. package/dist/frontend/ts7/semantic-model.js.map +1 -1
  817. package/dist/frontend/ts7/semantic-model.test.js +3 -2
  818. package/dist/frontend/ts7/semantic-model.test.js.map +1 -1
  819. package/dist/frontend/ts7/session.d.ts +14 -1
  820. package/dist/frontend/ts7/session.js +23 -1
  821. package/dist/frontend/ts7/session.js.map +1 -1
  822. package/dist/frontend/tsc-codes.d.ts +1 -1
  823. package/dist/frontend/tsc-codes.js +7 -0
  824. package/dist/frontend/tsc-codes.js.map +1 -1
  825. package/dist/frontend/type-mapper.d.ts +51 -7
  826. package/dist/frontend/type-mapper.js +456 -43
  827. package/dist/frontend/type-mapper.js.map +1 -1
  828. package/dist/frontend/type-mapper.test.js +1 -1
  829. package/dist/frontend/type-mapper.test.js.map +1 -1
  830. package/dist/frontend-process-args.d.ts +4 -0
  831. package/dist/frontend-process-args.js +52 -0
  832. package/dist/frontend-process-args.js.map +1 -0
  833. package/dist/frontend-process-args.test.d.ts +1 -0
  834. package/dist/frontend-process-args.test.js +47 -0
  835. package/dist/frontend-process-args.test.js.map +1 -0
  836. package/dist/frontend-process.d.ts +1 -0
  837. package/dist/frontend-process.js +23 -0
  838. package/dist/frontend-process.js.map +1 -0
  839. package/dist/heap-collection.d.ts +16 -0
  840. package/dist/heap-collection.js +42 -0
  841. package/dist/heap-collection.js.map +1 -0
  842. package/dist/heap-collection.test.d.ts +1 -0
  843. package/dist/heap-collection.test.js +59 -0
  844. package/dist/heap-collection.test.js.map +1 -0
  845. package/dist/heap-pressure.d.ts +2 -0
  846. package/dist/heap-pressure.js +12 -0
  847. package/dist/heap-pressure.js.map +1 -0
  848. package/dist/index.d.ts +2 -0
  849. package/dist/index.js +435 -89
  850. package/dist/index.js.map +1 -1
  851. package/dist/ir/analysis.js +5 -3
  852. package/dist/ir/analysis.js.map +1 -1
  853. package/dist/ir/array-length-stability.d.ts +4 -0
  854. package/dist/ir/array-length-stability.js +26 -6
  855. package/dist/ir/array-length-stability.js.map +1 -1
  856. package/dist/ir/array-length-stability.test.js +49 -0
  857. package/dist/ir/array-length-stability.test.js.map +1 -1
  858. package/dist/ir/builtin-effects.d.ts +7 -0
  859. package/dist/ir/builtin-effects.js +80 -0
  860. package/dist/ir/builtin-effects.js.map +1 -1
  861. package/dist/ir/builtin-signatures.d.ts +7 -1
  862. package/dist/ir/builtin-signatures.js +303 -21
  863. package/dist/ir/builtin-signatures.js.map +1 -1
  864. package/dist/ir/callback-specialization.d.ts +2 -1
  865. package/dist/ir/callback-specialization.js +23 -18
  866. package/dist/ir/callback-specialization.js.map +1 -1
  867. package/dist/ir/char-unit-locals.d.ts +19 -0
  868. package/dist/ir/char-unit-locals.js +185 -0
  869. package/dist/ir/char-unit-locals.js.map +1 -0
  870. package/dist/ir/char-unit-locals.test.d.ts +1 -0
  871. package/dist/ir/char-unit-locals.test.js +94 -0
  872. package/dist/ir/char-unit-locals.test.js.map +1 -0
  873. package/dist/ir/final-fields.d.ts +3 -1
  874. package/dist/ir/final-fields.js +15 -17
  875. package/dist/ir/final-fields.js.map +1 -1
  876. package/dist/ir/function-references.d.ts +2 -0
  877. package/dist/ir/function-references.js +2 -0
  878. package/dist/ir/function-references.js.map +1 -1
  879. package/dist/ir/function-references.test.js +5 -0
  880. package/dist/ir/function-references.test.js.map +1 -1
  881. package/dist/ir/initializer-bindings.d.ts +2 -1
  882. package/dist/ir/initializer-bindings.js +27 -20
  883. package/dist/ir/initializer-bindings.js.map +1 -1
  884. package/dist/ir/int32-arrays.d.ts +108 -0
  885. package/dist/ir/int32-arrays.js +831 -0
  886. package/dist/ir/int32-arrays.js.map +1 -0
  887. package/dist/ir/int32-slots.d.ts +36 -6
  888. package/dist/ir/int32-slots.js +370 -171
  889. package/dist/ir/int32-slots.js.map +1 -1
  890. package/dist/ir/int32-slots.test.js +3 -1
  891. package/dist/ir/int32-slots.test.js.map +1 -1
  892. package/dist/ir/integer-loop-facts.d.ts +9 -4
  893. package/dist/ir/integer-loop-facts.js +93 -18
  894. package/dist/ir/integer-loop-facts.js.map +1 -1
  895. package/dist/ir/integer-loops.d.ts +49 -0
  896. package/dist/ir/integer-loops.js +202 -40
  897. package/dist/ir/integer-loops.js.map +1 -1
  898. package/dist/ir/integer-loops.test.js +211 -1
  899. package/dist/ir/integer-loops.test.js.map +1 -1
  900. package/dist/ir/integer-ranges.d.ts +5 -0
  901. package/dist/ir/integer-ranges.js +125 -12
  902. package/dist/ir/integer-ranges.js.map +1 -1
  903. package/dist/ir/integer-ranges.test.js +94 -0
  904. package/dist/ir/integer-ranges.test.js.map +1 -1
  905. package/dist/ir/ir.d.ts +87 -9
  906. package/dist/ir/ir.js +61 -2
  907. package/dist/ir/ir.js.map +1 -1
  908. package/dist/ir/ir.test.js +21 -1
  909. package/dist/ir/ir.test.js.map +1 -1
  910. package/dist/ir/js-ic.d.ts +19 -2
  911. package/dist/ir/js-ic.js +95 -11
  912. package/dist/ir/js-ic.js.map +1 -1
  913. package/dist/ir/js-ic.test.js +188 -0
  914. package/dist/ir/js-ic.test.js.map +1 -1
  915. package/dist/ir/node-index.d.ts +57 -0
  916. package/dist/ir/node-index.js +215 -0
  917. package/dist/ir/node-index.js.map +1 -0
  918. package/dist/ir/paired-while-loops.d.ts +25 -0
  919. package/dist/ir/paired-while-loops.js +335 -0
  920. package/dist/ir/paired-while-loops.js.map +1 -0
  921. package/dist/ir/paired-while-loops.test.d.ts +1 -0
  922. package/dist/ir/paired-while-loops.test.js +163 -0
  923. package/dist/ir/paired-while-loops.test.js.map +1 -0
  924. package/dist/ir/parameter-versions.d.ts +25 -0
  925. package/dist/ir/parameter-versions.js +300 -0
  926. package/dist/ir/parameter-versions.js.map +1 -0
  927. package/dist/ir/runtime-features.d.ts +60 -15
  928. package/dist/ir/runtime-features.js +276 -35
  929. package/dist/ir/runtime-features.js.map +1 -1
  930. package/dist/ir/serialize.d.ts +12 -2
  931. package/dist/ir/serialize.js +16 -3
  932. package/dist/ir/serialize.js.map +1 -1
  933. package/dist/ir/serialize.test.js +17 -0
  934. package/dist/ir/serialize.test.js.map +1 -1
  935. package/dist/ir/tiers.js +1 -0
  936. package/dist/ir/tiers.js.map +1 -1
  937. package/dist/ir/traverse.d.ts +2 -0
  938. package/dist/ir/traverse.js +29 -5
  939. package/dist/ir/traverse.js.map +1 -1
  940. package/dist/ir/validate.js +171 -45
  941. package/dist/ir/validate.js.map +1 -1
  942. package/dist/library/ir-policy.js +12 -0
  943. package/dist/library/ir-policy.js.map +1 -1
  944. package/dist/library/library-cache.d.ts +2 -0
  945. package/dist/library/library-cache.js.map +1 -1
  946. package/dist/library/prepare.js +2 -0
  947. package/dist/library/prepare.js.map +1 -1
  948. package/dist/native/cache.d.ts +6 -1
  949. package/dist/native/cache.js +28 -5
  950. package/dist/native/cache.js.map +1 -1
  951. package/dist/native/cache.test.js +16 -2
  952. package/dist/native/cache.test.js.map +1 -1
  953. package/dist/native/cli.js +26 -1
  954. package/dist/native/cli.js.map +1 -1
  955. package/dist/native/compiler.js +8 -6
  956. package/dist/native/compiler.js.map +1 -1
  957. package/dist/native/executable-cache.d.ts +1 -1
  958. package/dist/native/executable-cache.js +2 -2
  959. package/dist/native/executable-cache.js.map +1 -1
  960. package/dist/native/prepare.d.ts +3 -1
  961. package/dist/native/prepare.js +123 -31
  962. package/dist/native/prepare.js.map +1 -1
  963. package/dist/native/prepare.test.js +78 -18
  964. package/dist/native/prepare.test.js.map +1 -1
  965. package/dist/native/sanitizer.test.js +6 -1
  966. package/dist/native/sanitizer.test.js.map +1 -1
  967. package/dist/native/text-file.d.ts +13 -3
  968. package/dist/native/text-file.js +63 -9
  969. package/dist/native/text-file.js.map +1 -1
  970. package/dist/native/text-file.test.d.ts +1 -0
  971. package/dist/native/text-file.test.js +49 -0
  972. package/dist/native/text-file.test.js.map +1 -0
  973. package/dist/native/toolchain.js +4 -4
  974. package/dist/native/toolchain.js.map +1 -1
  975. package/dist/native/toolchain.test.js +3 -3
  976. package/dist/native/toolchain.test.js.map +1 -1
  977. package/dist/startup-cache.d.ts +1 -0
  978. package/dist/startup-cache.js +1 -0
  979. package/dist/startup-cache.js.map +1 -1
  980. package/dist/text-parts.d.ts +7 -0
  981. package/dist/text-parts.js +44 -0
  982. package/dist/text-parts.js.map +1 -1
  983. package/dist/text-parts.test.d.ts +1 -0
  984. package/dist/text-parts.test.js +46 -0
  985. package/dist/text-parts.test.js.map +1 -0
  986. package/dist/timing.d.ts +9 -2
  987. package/dist/timing.js +7 -4
  988. package/dist/timing.js.map +1 -1
  989. package/dist/wasm/translate.d.ts +4 -0
  990. package/dist/wasm/translate.js +2 -2
  991. package/dist/wasm/translate.js.map +1 -1
  992. package/package.json +21 -21
  993. package/shims/chalk/v5.ts +688 -0
  994. package/shims/hono-node-server/v2.ts +645 -0
  995. package/shims/hot-shots/client.ts +1126 -0
  996. package/shims/hot-shots/v8-unix-dgram.ts +8 -0
  997. package/shims/hot-shots/v8.ts +8 -0
  998. package/shims/undici/core/client.ts +4 -4
  999. package/surface-manifest.json +44 -52
@@ -1,8 +1,16 @@
1
1
  import { AstDecodeError } from "./ast-bytes.js";
2
2
  import { AstKind, AstModifierFlags, AstNodeFlags, KIND_NODE_LIST, astChildOrder, } from "./ast-schema.generated.js";
3
3
  import { astLineOfPosition, astLineStarts, astSkipTrivia } from "./ast-text.js";
4
- import { AstWireFile, parseAstNodeHandle, } from "./ast-wire.js";
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
@@ -43,10 +51,6 @@ export class AstModifierList extends AstNodeList {
43
51
  return result;
44
52
  }
45
53
  }
46
- /** One immutable AST response owns one object per node and one array per
47
- * list.
48
- * Parent access is lazy, so resolving a checker handle near the bottom
49
- * of a deep tree never recursively constructs its ancestors. */
50
54
  export class AstFile {
51
55
  materialized;
52
56
  wire;
@@ -60,8 +64,14 @@ export class AstFile {
60
64
  strings = new Map();
61
65
  lines;
62
66
  childIndices;
63
- constructor(bytes, materialized) {
67
+ /** The root source file's name (AstNode.fileName). */
68
+ rootFileName;
69
+ /** Whether nodes answer write targets without their wrappers (see
70
+ * AstFileOptions.writeTargets). */
71
+ writeTargets;
72
+ constructor(bytes, materialized, options = {}) {
64
73
  this.materialized = materialized;
74
+ this.writeTargets = options.writeTargets === true;
65
75
  this.wire = new AstWireFile(bytes);
66
76
  this.nodes = new Array(this.wire.nodeCount);
67
77
  this.lists = new Array(this.wire.nodeCount);
@@ -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;
@@ -174,6 +205,65 @@ export class AstFile {
174
205
  /** Concrete native layout shared by every syntax kind. Kind-specific
175
206
  * properties are views over the wire; they never copy identity-bearing
176
207
  * nodes into structural records. */
208
+ /* Write targets without their wrappers (AstFileOptions.writeTargets). */
209
+ function isTargetWrapper(node) {
210
+ return node.kind === AstKind.ParenthesizedExpression || node.kind === AstKind.NonNullExpression;
211
+ }
212
+ function unwrapTarget(node) {
213
+ let target = node;
214
+ while (isTargetWrapper(target)) {
215
+ const inner = target.childNode("expression");
216
+ if (inner === undefined)
217
+ break;
218
+ target = inner;
219
+ }
220
+ return target;
221
+ }
222
+ /** Whether `field` of `node` is a write target: an assignment's left side,
223
+ * a `++`/`--` operand, or a for-in/of head that declares nothing. */
224
+ function writesTarget(node, field) {
225
+ switch (node.kind) {
226
+ case AstKind.BinaryExpression: {
227
+ if (field !== "left")
228
+ return false;
229
+ const operator = node.childNode("operatorToken")?.kind;
230
+ return (operator !== undefined &&
231
+ operator >= AstKind.FirstAssignment &&
232
+ operator <= AstKind.LastAssignment);
233
+ }
234
+ case AstKind.PrefixUnaryExpression:
235
+ case AstKind.PostfixUnaryExpression:
236
+ return (field === "operand" &&
237
+ (node.operator === AstKind.PlusPlusToken || node.operator === AstKind.MinusMinusToken));
238
+ case AstKind.ForInStatement:
239
+ case AstKind.ForOfStatement:
240
+ return (field === "initializer" &&
241
+ node.childNode("initializer")?.kind !== AstKind.VariableDeclarationList);
242
+ default:
243
+ return false;
244
+ }
245
+ }
246
+ /** The parent of `node`, whose syntactic parent `wrapper` is a parenthesis
247
+ * or a non-null assertion: the writer when the wrappers around `node` are
248
+ * the whole target of an assignment, update or for-in/of head, and
249
+ * `wrapper` otherwise. */
250
+ function writerOf(node, wrapper) {
251
+ let outer = wrapper;
252
+ for (;;) {
253
+ const up = outer.parent;
254
+ if (up === undefined)
255
+ return wrapper;
256
+ if (isTargetWrapper(up)) {
257
+ outer = up;
258
+ continue;
259
+ }
260
+ for (const field of ["left", "operand", "initializer"]) {
261
+ if (writesTarget(up, field) && up.childNode(field) === outer && unwrapTarget(outer) === node)
262
+ return up;
263
+ }
264
+ return wrapper;
265
+ }
266
+ }
177
267
  export class AstNode {
178
268
  file;
179
269
  index;
@@ -202,7 +292,11 @@ export class AstNode {
202
292
  get parent() {
203
293
  if (!this.parentResolved) {
204
294
  const index = this.file.wire.semanticParent(this.index);
205
- this.parentCache = index === 0 || index === this.index ? undefined : this.file.node(index);
295
+ const parent = index === 0 || index === this.index ? undefined : this.file.node(index);
296
+ this.parentCache =
297
+ parent !== undefined && this.file.writeTargets && isTargetWrapper(parent)
298
+ ? writerOf(this, parent)
299
+ : parent;
206
300
  this.parentResolved = true;
207
301
  }
208
302
  return this.parentCache;
@@ -217,6 +311,23 @@ export class AstNode {
217
311
  const index = this.file.namedChild(this, name);
218
312
  return index === 0 ? undefined : this.file.node(index);
219
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
+ }
220
331
  childList(name) {
221
332
  const index = this.file.namedChild(this, name);
222
333
  return index === 0 ? undefined : this.file.list(index);
@@ -249,6 +360,32 @@ export class AstNode {
249
360
  }
250
361
  }
251
362
  forEachChild(visitNode, visitList) {
363
+ const wire = this.file.wire;
364
+ const tree = wire.preorder();
365
+ if (tree === null)
366
+ return this.forEachLinkedChild(visitNode, visitList);
367
+ // In the checked preorder tree, the first child follows its parent and
368
+ // each later child starts where the previous child's subtree ends.
369
+ const kinds = tree.kinds;
370
+ const ends = tree.ends;
371
+ const stop = ends[this.index];
372
+ for (let index = this.index + 1; index < stop; index = ends[index]) {
373
+ const kind = kinds[index];
374
+ if (kind === PREORDER_LIST) {
375
+ const result = this.visitChildList(index, visitNode, visitList);
376
+ if (result)
377
+ return result;
378
+ }
379
+ else if (kind !== AstKind.JSDoc) {
380
+ const result = visitNode(this.file.node(index));
381
+ if (result)
382
+ return result;
383
+ }
384
+ }
385
+ return undefined;
386
+ }
387
+ /** forEachChild through the sibling and parent links. */
388
+ forEachLinkedChild(visitNode, visitList) {
252
389
  const wire = this.file.wire;
253
390
  // Walk the immutable sibling links directly. Repeated semantic scans
254
391
  // should not allocate and free a temporary child-index array per node.
@@ -257,19 +394,9 @@ export class AstNode {
257
394
  throw new AstDecodeError("sibling belongs to another parent");
258
395
  const kind = wire.kind(index);
259
396
  if (kind === KIND_NODE_LIST) {
260
- const list = this.file.list(index);
261
- if (visitList !== undefined) {
262
- const result = visitList(list);
263
- if (result)
264
- return result;
265
- }
266
- else {
267
- for (const node of list.nodes) {
268
- const result = visitNode(node);
269
- if (result)
270
- return result;
271
- }
272
- }
397
+ const result = this.visitChildList(index, visitNode, visitList);
398
+ if (result)
399
+ return result;
273
400
  }
274
401
  else if (kind !== AstKind.JSDoc) {
275
402
  const result = visitNode(this.file.node(index));
@@ -279,6 +406,17 @@ export class AstNode {
279
406
  }
280
407
  return undefined;
281
408
  }
409
+ visitChildList(index, visitNode, visitList) {
410
+ const list = this.file.list(index);
411
+ if (visitList !== undefined)
412
+ return visitList(list);
413
+ for (const node of list.nodes) {
414
+ const result = visitNode(node);
415
+ if (result)
416
+ return result;
417
+ }
418
+ return undefined;
419
+ }
282
420
  get jsDoc() {
283
421
  const docs = [];
284
422
  for (const index of this.file.wire.children(this.index)) {
@@ -322,10 +460,15 @@ export class AstNode {
322
460
  return this.getStart(sourceFile) - this.pos;
323
461
  }
324
462
  getFullText(sourceFile) {
325
- 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);
326
466
  }
327
467
  getText(sourceFile) {
328
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();
329
472
  return (source.text ?? "").substring(this.getStart(source), this.end);
330
473
  }
331
474
  get containsOnlyTriviaWhiteSpaces() {
@@ -424,16 +567,16 @@ export class AstNode {
424
567
  }
425
568
  get modifierFlags() {
426
569
  let result = 0;
427
- for (const modifier of this.childList("modifiers")?.nodes ?? [])
570
+ for (const modifier of this.childListAt(this.modifiersSlot())?.nodes ?? [])
428
571
  result |= astModifierFlag(modifier.kind);
429
572
  return result;
430
573
  }
431
574
  get modifiers() {
432
- const index = this.file.namedChild(this, "modifiers");
575
+ const index = this.file.namedChildAt(this, this.modifiersSlot());
433
576
  return index === 0 ? undefined : this.file.modifierList(index);
434
577
  }
435
578
  get body() {
436
- const body = this.childNode("body");
579
+ const body = this.childNodeAt(this.bodySlot());
437
580
  // TS7 can serialize a reparsed @type callable before a method's
438
581
  // body without setting the type presence bit. The linked Block is
439
582
  // still the real body; keep the JSDoc node out of this view.
@@ -450,300 +593,1204 @@ export class AstNode {
450
593
  return body;
451
594
  }
452
595
  get questionToken() {
453
- const direct = this.childNode("questionToken");
596
+ const direct = this.childNodeAt(this.questionTokenSlot());
454
597
  if (direct !== undefined)
455
598
  return direct;
456
599
  // TypeScript 7 shares one postfix slot for optional and definite-
457
600
  // assignment declarations. The familiar helper surface keeps them apart.
458
- const token = this.childNode("postfixToken");
601
+ const token = this.postfixToken;
459
602
  return token?.kind === SyntaxKind.QuestionToken ? token : undefined;
460
603
  }
604
+ // A write target keeps its parentheses and non-null assertions in the
605
+ // tree; with AstFileOptions.writeTargets these views return the target
606
+ // without them.
607
+ get initializer() {
608
+ const initializer = this.childNodeAt(this.initializerSlot());
609
+ return initializer !== undefined && this.file.writeTargets && writesTarget(this, "initializer")
610
+ ? unwrapTarget(initializer)
611
+ : initializer;
612
+ }
613
+ get left() {
614
+ const left = this.childNodeAt(this.leftSlot());
615
+ return left !== undefined && this.file.writeTargets && writesTarget(this, "left")
616
+ ? unwrapTarget(left)
617
+ : left;
618
+ }
619
+ get operand() {
620
+ const operand = this.childNodeAt(this.operandSlot());
621
+ return operand !== undefined && this.file.writeTargets && writesTarget(this, "operand")
622
+ ? unwrapTarget(operand)
623
+ : operand;
624
+ }
461
625
  // BEGIN GENERATED CHILD GETTERS
462
626
  // Generated from typescript@7.0.2; run scripts/generate-ts7-ast-schema.mjs.
463
627
  get argument() {
464
- return this.childNode("argument");
628
+ switch (this.kind) {
629
+ case 206:
630
+ return this.childNodeAt(0);
631
+ default:
632
+ return undefined;
633
+ }
465
634
  }
466
635
  get argumentExpression() {
467
- return this.childNode("argumentExpression");
636
+ switch (this.kind) {
637
+ case 213:
638
+ return this.childNodeAt(2);
639
+ default:
640
+ return undefined;
641
+ }
468
642
  }
469
643
  get arguments() {
470
- 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
+ }
471
652
  }
472
653
  get assertsModifier() {
473
- return this.childNode("assertsModifier");
654
+ switch (this.kind) {
655
+ case 183:
656
+ return this.childNodeAt(0);
657
+ default:
658
+ return undefined;
659
+ }
474
660
  }
475
661
  get asteriskToken() {
476
- 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
+ }
477
672
  }
478
673
  get attributes() {
479
- 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
+ }
480
690
  }
481
691
  get awaitModifier() {
482
- 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
+ }
483
699
  }
484
700
  get block() {
485
- return this.childNode("block");
701
+ switch (this.kind) {
702
+ case 300:
703
+ return this.childNodeAt(1);
704
+ default:
705
+ return undefined;
706
+ }
486
707
  }
487
708
  get caseBlock() {
488
- return this.childNode("caseBlock");
709
+ switch (this.kind) {
710
+ case 256:
711
+ return this.childNodeAt(1);
712
+ default:
713
+ return undefined;
714
+ }
489
715
  }
490
716
  get catchClause() {
491
- return this.childNode("catchClause");
717
+ switch (this.kind) {
718
+ case 259:
719
+ return this.childNodeAt(1);
720
+ default:
721
+ return undefined;
722
+ }
492
723
  }
493
724
  get checkType() {
494
- return this.childNode("checkType");
725
+ switch (this.kind) {
726
+ case 195:
727
+ return this.childNodeAt(0);
728
+ default:
729
+ return undefined;
730
+ }
495
731
  }
496
732
  get children() {
497
- 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
+ }
498
742
  }
499
743
  get className() {
500
- 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
+ }
501
751
  }
502
752
  get clauses() {
503
- return this.childList("clauses");
753
+ switch (this.kind) {
754
+ case 270:
755
+ return this.childListAt(0);
756
+ default:
757
+ return undefined;
758
+ }
504
759
  }
505
760
  get closingElement() {
506
- return this.childNode("closingElement");
761
+ switch (this.kind) {
762
+ case 285:
763
+ return this.childNodeAt(2);
764
+ default:
765
+ return undefined;
766
+ }
507
767
  }
508
768
  get closingFragment() {
509
- return this.childNode("closingFragment");
769
+ switch (this.kind) {
770
+ case 289:
771
+ return this.childNodeAt(2);
772
+ default:
773
+ return undefined;
774
+ }
510
775
  }
511
776
  get colonToken() {
512
- return this.childNode("colonToken");
777
+ switch (this.kind) {
778
+ case 228:
779
+ return this.childNodeAt(3);
780
+ default:
781
+ return undefined;
782
+ }
513
783
  }
514
784
  get comment() {
515
- 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
+ }
516
817
  }
517
818
  get condition() {
518
- 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
+ }
519
827
  }
520
828
  get constraint() {
521
- 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
+ }
522
837
  }
523
838
  get declarationList() {
524
- return this.childNode("declarationList");
839
+ switch (this.kind) {
840
+ case 244:
841
+ return this.childNodeAt(1);
842
+ default:
843
+ return undefined;
844
+ }
525
845
  }
526
846
  get declarations() {
527
- return this.childList("declarations");
847
+ switch (this.kind) {
848
+ case 262:
849
+ return this.childListAt(0);
850
+ default:
851
+ return undefined;
852
+ }
528
853
  }
529
854
  get defaultType() {
530
- return this.childNode("defaultType");
855
+ switch (this.kind) {
856
+ case 169:
857
+ return this.childNodeAt(4);
858
+ default:
859
+ return undefined;
860
+ }
531
861
  }
532
862
  get dotDotDotToken() {
533
- 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
+ }
534
873
  }
535
874
  get elementType() {
536
- return this.childNode("elementType");
875
+ switch (this.kind) {
876
+ case 189:
877
+ return this.childNodeAt(0);
878
+ default:
879
+ return undefined;
880
+ }
537
881
  }
538
882
  get elements() {
539
- 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
+ }
540
894
  }
541
895
  get elseStatement() {
542
- return this.childNode("elseStatement");
896
+ switch (this.kind) {
897
+ case 246:
898
+ return this.childNodeAt(2);
899
+ default:
900
+ return undefined;
901
+ }
543
902
  }
544
903
  get endOfFileToken() {
545
- return this.childNode("endOfFileToken");
904
+ switch (this.kind) {
905
+ case 307:
906
+ return this.childNodeAt(1);
907
+ default:
908
+ return undefined;
909
+ }
546
910
  }
547
911
  get equalsGreaterThanToken() {
548
- return this.childNode("equalsGreaterThanToken");
912
+ switch (this.kind) {
913
+ case 220:
914
+ return this.childNodeAt(4);
915
+ default:
916
+ return undefined;
917
+ }
549
918
  }
550
919
  get equalsToken() {
551
- return this.childNode("equalsToken");
920
+ switch (this.kind) {
921
+ case 304:
922
+ return this.childNodeAt(4);
923
+ default:
924
+ return undefined;
925
+ }
552
926
  }
553
927
  get exclamationToken() {
554
- return this.childNode("exclamationToken");
928
+ switch (this.kind) {
929
+ case 261:
930
+ return this.childNodeAt(1);
931
+ default:
932
+ return undefined;
933
+ }
555
934
  }
556
935
  get exportClause() {
557
- return this.childNode("exportClause");
936
+ switch (this.kind) {
937
+ case 279:
938
+ return this.childNodeAt(1);
939
+ default:
940
+ return undefined;
941
+ }
558
942
  }
559
943
  get exprName() {
560
- return this.childNode("exprName");
944
+ switch (this.kind) {
945
+ case 187:
946
+ return this.childNodeAt(0);
947
+ default:
948
+ return undefined;
949
+ }
561
950
  }
562
951
  get expression() {
563
- 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
+ }
564
999
  }
565
1000
  get extendsType() {
566
- return this.childNode("extendsType");
1001
+ switch (this.kind) {
1002
+ case 195:
1003
+ return this.childNodeAt(1);
1004
+ default:
1005
+ return undefined;
1006
+ }
567
1007
  }
568
1008
  get falseType() {
569
- return this.childNode("falseType");
1009
+ switch (this.kind) {
1010
+ case 195:
1011
+ return this.childNodeAt(3);
1012
+ default:
1013
+ return undefined;
1014
+ }
570
1015
  }
571
1016
  get finallyBlock() {
572
- return this.childNode("finallyBlock");
1017
+ switch (this.kind) {
1018
+ case 259:
1019
+ return this.childNodeAt(2);
1020
+ default:
1021
+ return undefined;
1022
+ }
573
1023
  }
574
1024
  get head() {
575
- 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
+ }
576
1032
  }
577
1033
  get heritageClauses() {
578
- 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
+ }
579
1042
  }
580
1043
  get importClause() {
581
- 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
+ }
582
1052
  }
583
1053
  get incrementor() {
584
- return this.childNode("incrementor");
1054
+ switch (this.kind) {
1055
+ case 249:
1056
+ return this.childNodeAt(2);
1057
+ default:
1058
+ return undefined;
1059
+ }
585
1060
  }
586
1061
  get indexType() {
587
- return this.childNode("indexType");
588
- }
589
- get initializer() {
590
- return this.childNode("initializer");
1062
+ switch (this.kind) {
1063
+ case 200:
1064
+ return this.childNodeAt(1);
1065
+ default:
1066
+ return undefined;
1067
+ }
591
1068
  }
592
1069
  get jsdocPropertyTags() {
593
- return this.childNode("jsdocPropertyTags");
1070
+ switch (this.kind) {
1071
+ case 317:
1072
+ return this.childNodeAt(0);
1073
+ default:
1074
+ return undefined;
1075
+ }
594
1076
  }
595
1077
  get label() {
596
- return this.childNode("label");
597
- }
598
- get left() {
599
- return this.childNode("left");
1078
+ switch (this.kind) {
1079
+ case 252:
1080
+ case 253:
1081
+ case 257:
1082
+ return this.childNodeAt(0);
1083
+ default:
1084
+ return undefined;
1085
+ }
600
1086
  }
601
1087
  get literal() {
602
- 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
+ }
603
1097
  }
604
1098
  get members() {
605
- 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
+ }
606
1113
  }
607
1114
  get moduleReference() {
608
- return this.childNode("moduleReference");
1115
+ switch (this.kind) {
1116
+ case 272:
1117
+ return this.childNodeAt(2);
1118
+ default:
1119
+ return undefined;
1120
+ }
609
1121
  }
610
1122
  get moduleSpecifier() {
611
- 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
+ }
612
1132
  }
613
1133
  get name() {
614
- 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
+ }
615
1184
  }
616
1185
  get nameExpression() {
617
- return this.childNode("nameExpression");
1186
+ switch (this.kind) {
1187
+ case 339:
1188
+ return this.childNodeAt(1);
1189
+ default:
1190
+ return undefined;
1191
+ }
618
1192
  }
619
1193
  get nameType() {
620
- return this.childNode("nameType");
1194
+ switch (this.kind) {
1195
+ case 201:
1196
+ return this.childNodeAt(2);
1197
+ default:
1198
+ return undefined;
1199
+ }
621
1200
  }
622
1201
  get namedBindings() {
623
- return this.childNode("namedBindings");
1202
+ switch (this.kind) {
1203
+ case 274:
1204
+ return this.childNodeAt(1);
1205
+ default:
1206
+ return undefined;
1207
+ }
624
1208
  }
625
1209
  get namespace() {
626
- return this.childNode("namespace");
1210
+ switch (this.kind) {
1211
+ case 296:
1212
+ return this.childNodeAt(0);
1213
+ default:
1214
+ return undefined;
1215
+ }
627
1216
  }
628
1217
  get objectAssignmentInitializer() {
629
- return this.childNode("objectAssignmentInitializer");
1218
+ switch (this.kind) {
1219
+ case 304:
1220
+ return this.childNodeAt(5);
1221
+ default:
1222
+ return undefined;
1223
+ }
630
1224
  }
631
1225
  get objectType() {
632
- return this.childNode("objectType");
1226
+ switch (this.kind) {
1227
+ case 200:
1228
+ return this.childNodeAt(0);
1229
+ default:
1230
+ return undefined;
1231
+ }
633
1232
  }
634
1233
  get openingElement() {
635
- return this.childNode("openingElement");
1234
+ switch (this.kind) {
1235
+ case 285:
1236
+ return this.childNodeAt(0);
1237
+ default:
1238
+ return undefined;
1239
+ }
636
1240
  }
637
1241
  get openingFragment() {
638
- return this.childNode("openingFragment");
639
- }
640
- get operand() {
641
- return this.childNode("operand");
1242
+ switch (this.kind) {
1243
+ case 289:
1244
+ return this.childNodeAt(0);
1245
+ default:
1246
+ return undefined;
1247
+ }
642
1248
  }
643
1249
  get operatorToken() {
644
- return this.childNode("operatorToken");
1250
+ switch (this.kind) {
1251
+ case 227:
1252
+ return this.childNodeAt(3);
1253
+ default:
1254
+ return undefined;
1255
+ }
645
1256
  }
646
1257
  get parameterName() {
647
- return this.childNode("parameterName");
1258
+ switch (this.kind) {
1259
+ case 183:
1260
+ return this.childNodeAt(1);
1261
+ default:
1262
+ return undefined;
1263
+ }
648
1264
  }
649
1265
  get parameters() {
650
- 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
+ }
651
1289
  }
652
1290
  get postfixToken() {
653
- 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
+ }
654
1303
  }
655
1304
  get properties() {
656
- 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
+ }
657
1312
  }
658
1313
  get propertyName() {
659
- 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
+ }
660
1323
  }
661
1324
  get qualifier() {
662
- return this.childNode("qualifier");
1325
+ switch (this.kind) {
1326
+ case 206:
1327
+ return this.childNodeAt(2);
1328
+ default:
1329
+ return undefined;
1330
+ }
663
1331
  }
664
1332
  get questionDotToken() {
665
- 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
+ }
666
1342
  }
667
1343
  get readonlyToken() {
668
- return this.childNode("readonlyToken");
1344
+ switch (this.kind) {
1345
+ case 201:
1346
+ return this.childNodeAt(0);
1347
+ default:
1348
+ return undefined;
1349
+ }
669
1350
  }
670
1351
  get right() {
671
- 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
+ }
672
1360
  }
673
1361
  get statement() {
674
- 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
+ }
675
1376
  }
676
1377
  get statements() {
677
- 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
+ }
678
1389
  }
679
1390
  get tag() {
680
- return this.childNode("tag");
1391
+ switch (this.kind) {
1392
+ case 216:
1393
+ return this.childNodeAt(0);
1394
+ default:
1395
+ return undefined;
1396
+ }
681
1397
  }
682
1398
  get tagName() {
683
- 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
+ }
684
1429
  }
685
1430
  get tags() {
686
- return this.childList("tags");
1431
+ switch (this.kind) {
1432
+ case 315:
1433
+ return this.childListAt(1);
1434
+ default:
1435
+ return undefined;
1436
+ }
687
1437
  }
688
1438
  get template() {
689
- return this.childNode("template");
1439
+ switch (this.kind) {
1440
+ case 216:
1441
+ return this.childNodeAt(3);
1442
+ default:
1443
+ return undefined;
1444
+ }
690
1445
  }
691
1446
  get templateSpans() {
692
- 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
+ }
693
1454
  }
694
1455
  get thenStatement() {
695
- return this.childNode("thenStatement");
1456
+ switch (this.kind) {
1457
+ case 246:
1458
+ return this.childNodeAt(1);
1459
+ default:
1460
+ return undefined;
1461
+ }
696
1462
  }
697
1463
  get thisArg() {
698
- return this.childNode("thisArg");
1464
+ switch (this.kind) {
1465
+ case 349:
1466
+ return this.childNodeAt(1);
1467
+ default:
1468
+ return undefined;
1469
+ }
699
1470
  }
700
1471
  get trueType() {
701
- return this.childNode("trueType");
1472
+ switch (this.kind) {
1473
+ case 195:
1474
+ return this.childNodeAt(2);
1475
+ default:
1476
+ return undefined;
1477
+ }
702
1478
  }
703
1479
  get tryBlock() {
704
- return this.childNode("tryBlock");
1480
+ switch (this.kind) {
1481
+ case 259:
1482
+ return this.childNodeAt(0);
1483
+ default:
1484
+ return undefined;
1485
+ }
705
1486
  }
706
1487
  get tupleNameSource() {
707
- return this.childNode("tupleNameSource");
1488
+ switch (this.kind) {
1489
+ case 238:
1490
+ return this.childNodeAt(0);
1491
+ default:
1492
+ return undefined;
1493
+ }
708
1494
  }
709
1495
  get type() {
710
- 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
+ }
711
1547
  }
712
1548
  get typeArguments() {
713
- 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
+ }
714
1565
  }
715
1566
  get typeExpression() {
716
- 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
+ }
717
1583
  }
718
1584
  get typeName() {
719
- return this.childNode("typeName");
1585
+ switch (this.kind) {
1586
+ case 184:
1587
+ return this.childNodeAt(0);
1588
+ default:
1589
+ return undefined;
1590
+ }
720
1591
  }
721
1592
  get typeParameter() {
722
- 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
+ }
723
1601
  }
724
1602
  get typeParameters() {
725
- 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
+ }
726
1631
  }
727
1632
  get types() {
728
- 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
+ }
729
1641
  }
730
1642
  get value() {
731
- return this.childNode("value");
1643
+ switch (this.kind) {
1644
+ case 302:
1645
+ return this.childNodeAt(1);
1646
+ default:
1647
+ return undefined;
1648
+ }
732
1649
  }
733
1650
  get variableDeclaration() {
734
- return this.childNode("variableDeclaration");
1651
+ switch (this.kind) {
1652
+ case 300:
1653
+ return this.childNodeAt(0);
1654
+ default:
1655
+ return undefined;
1656
+ }
735
1657
  }
736
1658
  get whenFalse() {
737
- return this.childNode("whenFalse");
1659
+ switch (this.kind) {
1660
+ case 228:
1661
+ return this.childNodeAt(4);
1662
+ default:
1663
+ return undefined;
1664
+ }
738
1665
  }
739
1666
  get whenTrue() {
740
- 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
+ }
741
1788
  }
742
1789
  // END GENERATED CHILD GETTERS
743
1790
  // Source-file fields stay on the same nominal class, matching the wire's
744
1791
  // single node representation. Their extended-data accesses are checked.
745
1792
  get fileName() {
746
- return this.file.wire.string(this.file.wire.extendedWord(this.index, 4));
1793
+ return this.file.sourceFileName(this.index);
747
1794
  }
748
1795
  get path() {
749
1796
  return this.file.wire.string(this.file.wire.extendedWord(this.index, 8));