@scriptc/compiler 0.4.8 → 0.4.9

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 (536) hide show
  1. package/ambient/node-fallback/buffer.d.ts +2 -0
  2. package/ambient/node-fallback/child_process.d.ts +9 -3
  3. package/ambient/node-fallback/dns-promises.d.ts +25 -0
  4. package/ambient/node-fallback/dns.d.ts +29 -0
  5. package/ambient/node-fallback/test.d.ts +7 -0
  6. package/ambient/scriptc-node-fallback.d.ts +145 -2
  7. package/ambient/scriptc-overrides.d.ts +22 -13
  8. package/dist/backend/build-cache.d.ts +1 -1
  9. package/dist/backend/build-cache.js +1 -1
  10. package/dist/backend/build-cache.js.map +1 -1
  11. package/dist/backend/cache-root.d.ts +7 -0
  12. package/dist/backend/cache-root.js +27 -0
  13. package/dist/backend/cache-root.js.map +1 -1
  14. package/dist/backend/executable-features.js +5 -1
  15. package/dist/backend/executable-features.js.map +1 -1
  16. package/dist/backend/link-plan.js +7 -1
  17. package/dist/backend/link-plan.js.map +1 -1
  18. package/dist/backend/llvm/bytes-loop-versions.d.ts +12 -1
  19. package/dist/backend/llvm/bytes-loop-versions.js +107 -30
  20. package/dist/backend/llvm/bytes-loop-versions.js.map +1 -1
  21. package/dist/backend/llvm/bytes-loop-versions.test.js +96 -0
  22. package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -1
  23. package/dist/backend/llvm/checked-value-lifetimes.js +1 -0
  24. package/dist/backend/llvm/checked-value-lifetimes.js.map +1 -1
  25. package/dist/backend/llvm/classes.d.ts +16 -5
  26. package/dist/backend/llvm/classes.js +34 -6
  27. package/dist/backend/llvm/classes.js.map +1 -1
  28. package/dist/backend/llvm/classes.test.js +21 -2
  29. package/dist/backend/llvm/classes.test.js.map +1 -1
  30. package/dist/backend/llvm/common.d.ts +9 -0
  31. package/dist/backend/llvm/common.js +9 -0
  32. package/dist/backend/llvm/common.js.map +1 -1
  33. package/dist/backend/llvm/cpu-dispatch.d.ts +36 -2
  34. package/dist/backend/llvm/cpu-dispatch.js +96 -2
  35. package/dist/backend/llvm/cpu-dispatch.js.map +1 -1
  36. package/dist/backend/llvm/dense-array-access.d.ts +5 -2
  37. package/dist/backend/llvm/dense-array-access.js +16 -12
  38. package/dist/backend/llvm/dense-array-access.js.map +1 -1
  39. package/dist/backend/llvm/dense-array-access.test.js +3 -1
  40. package/dist/backend/llvm/dense-array-access.test.js.map +1 -1
  41. package/dist/backend/llvm/dyn.d.ts +24 -0
  42. package/dist/backend/llvm/dyn.js +117 -3
  43. package/dist/backend/llvm/dyn.js.map +1 -1
  44. package/dist/backend/llvm/emit-function.js +6 -0
  45. package/dist/backend/llvm/emit-function.js.map +1 -1
  46. package/dist/backend/llvm/emit-journal.d.ts +1 -0
  47. package/dist/backend/llvm/emit-journal.js.map +1 -1
  48. package/dist/backend/llvm/emit-module.js +48 -5
  49. package/dist/backend/llvm/emit-module.js.map +1 -1
  50. package/dist/backend/llvm/emit-module.test.js +41 -0
  51. package/dist/backend/llvm/emit-module.test.js.map +1 -1
  52. package/dist/backend/llvm/emit-statements.js +11 -0
  53. package/dist/backend/llvm/emit-statements.js.map +1 -1
  54. package/dist/backend/llvm/emitter.d.ts +87 -7
  55. package/dist/backend/llvm/emitter.js +136 -15
  56. package/dist/backend/llvm/emitter.js.map +1 -1
  57. package/dist/backend/llvm/expr-async.js +28 -6
  58. package/dist/backend/llvm/expr-async.js.map +1 -1
  59. package/dist/backend/llvm/expr-containers.js +19 -5
  60. package/dist/backend/llvm/expr-containers.js.map +1 -1
  61. package/dist/backend/llvm/expr-dynamic.js +29 -1
  62. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  63. package/dist/backend/llvm/expr-primitives.js +104 -6
  64. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  65. package/dist/backend/llvm/expr-records.js +15 -1
  66. package/dist/backend/llvm/expr-records.js.map +1 -1
  67. package/dist/backend/llvm/expr-stream-bridges.js +53 -5
  68. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  69. package/dist/backend/llvm/inline-arrays.js +1 -1
  70. package/dist/backend/llvm/inline-arrays.js.map +1 -1
  71. package/dist/backend/llvm/js-ic.js +126 -2
  72. package/dist/backend/llvm/js-ic.js.map +1 -1
  73. package/dist/backend/llvm/lanes.d.ts +38 -0
  74. package/dist/backend/llvm/lanes.js +778 -0
  75. package/dist/backend/llvm/lanes.js.map +1 -0
  76. package/dist/backend/llvm/lanes.test.d.ts +1 -0
  77. package/dist/backend/llvm/lanes.test.js +402 -0
  78. package/dist/backend/llvm/lanes.test.js.map +1 -0
  79. package/dist/backend/llvm/lib-dispatch.js +9 -4
  80. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  81. package/dist/backend/llvm/lib-network.js +20 -0
  82. package/dist/backend/llvm/lib-network.js.map +1 -1
  83. package/dist/backend/llvm/lib-shared.js +27 -0
  84. package/dist/backend/llvm/lib-shared.js.map +1 -1
  85. package/dist/backend/llvm/lib-test.js +11 -0
  86. package/dist/backend/llvm/lib-test.js.map +1 -1
  87. package/dist/backend/llvm/local-array-reads.js +2 -2
  88. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  89. package/dist/backend/llvm/map-number-lookup.js +8 -2
  90. package/dist/backend/llvm/map-number-lookup.js.map +1 -1
  91. package/dist/backend/llvm/nullable-unions.js +5 -2
  92. package/dist/backend/llvm/nullable-unions.js.map +1 -1
  93. package/dist/backend/llvm/publish.d.ts +3 -0
  94. package/dist/backend/llvm/publish.js +2 -2
  95. package/dist/backend/llvm/publish.js.map +1 -1
  96. package/dist/backend/llvm/reference-writes.js +1 -0
  97. package/dist/backend/llvm/reference-writes.js.map +1 -1
  98. package/dist/backend/llvm/region-groups.js +43 -4
  99. package/dist/backend/llvm/region-groups.js.map +1 -1
  100. package/dist/backend/llvm/region-groups.test.js +79 -0
  101. package/dist/backend/llvm/region-groups.test.js.map +1 -1
  102. package/dist/backend/llvm/runtime-registries.test.js +32 -1
  103. package/dist/backend/llvm/runtime-registries.test.js.map +1 -1
  104. package/dist/backend/llvm/shapes.js +10 -1
  105. package/dist/backend/llvm/shapes.js.map +1 -1
  106. package/dist/backend/llvm/string-reads.d.ts +1 -1
  107. package/dist/backend/llvm/string-reads.js +1 -1
  108. package/dist/backend/llvm/string-reads.js.map +1 -1
  109. package/dist/backend/llvm/unwind-abi.js +24 -2
  110. package/dist/backend/llvm/unwind-abi.js.map +1 -1
  111. package/dist/backend/llvm/unwind-abi.test.js +38 -0
  112. package/dist/backend/llvm/unwind-abi.test.js.map +1 -1
  113. package/dist/backend/llvm/walkers.d.ts +3 -0
  114. package/dist/backend/llvm/walkers.js +20 -2
  115. package/dist/backend/llvm/walkers.js.map +1 -1
  116. package/dist/backend/native/contracts.d.ts +15 -3
  117. package/dist/backend/native/executable.js +19 -5
  118. package/dist/backend/native/executable.js.map +1 -1
  119. package/dist/backend/native-codegen-core.d.ts +20 -0
  120. package/dist/backend/native-codegen-core.js +15 -0
  121. package/dist/backend/native-codegen-core.js.map +1 -1
  122. package/dist/backend/native-codegen.d.ts +5 -0
  123. package/dist/backend/native-codegen.js +62 -8
  124. package/dist/backend/native-codegen.js.map +1 -1
  125. package/dist/backend/native-codegen.test.js +48 -8
  126. package/dist/backend/native-codegen.test.js.map +1 -1
  127. package/dist/backend/native-link-info-core.d.ts +27 -3
  128. package/dist/backend/native-link-info-core.js.map +1 -1
  129. package/dist/backend/native-link-info.test.js +17 -1
  130. package/dist/backend/native-link-info.test.js.map +1 -1
  131. package/dist/backend/native-toolchain.d.ts +1 -1
  132. package/dist/backend/native-toolchain.js +1 -1
  133. package/dist/backend/native-toolchain.js.map +1 -1
  134. package/dist/backend/native-toolchain.test.js +14 -1
  135. package/dist/backend/native-toolchain.test.js.map +1 -1
  136. package/dist/backend/runtime-pack-core.d.ts +9 -3
  137. package/dist/backend/runtime-pack-core.js +6 -1
  138. package/dist/backend/runtime-pack-core.js.map +1 -1
  139. package/dist/backend/runtime-pack.test.js +32 -1
  140. package/dist/backend/runtime-pack.test.js.map +1 -1
  141. package/dist/backend/targets.d.ts +9 -1
  142. package/dist/backend/targets.js +11 -2
  143. package/dist/backend/targets.js.map +1 -1
  144. package/dist/backend/targets.test.js +6 -0
  145. package/dist/backend/targets.test.js.map +1 -1
  146. package/dist/cli/command.js +15 -1
  147. package/dist/cli/command.js.map +1 -1
  148. package/dist/cli/host.d.ts +6 -0
  149. package/dist/cli/mcp.d.ts +72 -0
  150. package/dist/cli/mcp.js +601 -0
  151. package/dist/cli/mcp.js.map +1 -0
  152. package/dist/cli/mcp.test.d.ts +1 -0
  153. package/dist/cli/mcp.test.js +380 -0
  154. package/dist/cli/mcp.test.js.map +1 -0
  155. package/dist/cli/output-options.d.ts +1 -0
  156. package/dist/cli/output-options.js +3 -0
  157. package/dist/cli/output-options.js.map +1 -1
  158. package/dist/cli/usage.d.ts +51 -1
  159. package/dist/cli/usage.js +709 -186
  160. package/dist/cli/usage.js.map +1 -1
  161. package/dist/compat/fetch-profile.js +9 -4
  162. package/dist/compat/fetch-profile.js.map +1 -1
  163. package/dist/compile-types.d.ts +17 -0
  164. package/dist/coverage/report.d.ts +5 -9
  165. package/dist/coverage/report.js.map +1 -1
  166. package/dist/executable/executable-cache.d.ts +17 -3
  167. package/dist/executable/executable-cache.js +17 -3
  168. package/dist/executable/executable-cache.js.map +1 -1
  169. package/dist/executable/prepare.js +87 -10
  170. package/dist/executable/prepare.js.map +1 -1
  171. package/dist/frontend/analysis.js +3 -2
  172. package/dist/frontend/analysis.js.map +1 -1
  173. package/dist/frontend/canon-map.js +13 -8
  174. package/dist/frontend/canon-map.js.map +1 -1
  175. package/dist/frontend/decl-projection.d.ts +18 -0
  176. package/dist/frontend/decl-projection.js +90 -22
  177. package/dist/frontend/decl-projection.js.map +1 -1
  178. package/dist/frontend/decl-projection.test.js +47 -1
  179. package/dist/frontend/decl-projection.test.js.map +1 -1
  180. package/dist/frontend/default-library.d.ts +10 -0
  181. package/dist/frontend/default-library.js +43 -0
  182. package/dist/frontend/default-library.js.map +1 -0
  183. package/dist/frontend/fork-target.js +54 -9
  184. package/dist/frontend/fork-target.js.map +1 -1
  185. package/dist/frontend/fork-target.test.js +82 -0
  186. package/dist/frontend/fork-target.test.js.map +1 -1
  187. package/dist/frontend/inferred-js-diagnostics.test.js +73 -0
  188. package/dist/frontend/inferred-js-diagnostics.test.js.map +1 -1
  189. package/dist/frontend/lowering/abstract-equality.d.ts +2 -1
  190. package/dist/frontend/lowering/abstract-equality.js +7 -1
  191. package/dist/frontend/lowering/abstract-equality.js.map +1 -1
  192. package/dist/frontend/lowering/array-values.js +2 -2
  193. package/dist/frontend/lowering/array-values.js.map +1 -1
  194. package/dist/frontend/lowering/assertion-members.js +52 -2
  195. package/dist/frontend/lowering/assertion-members.js.map +1 -1
  196. package/dist/frontend/lowering/builtin-namespaces.d.ts +5 -0
  197. package/dist/frontend/lowering/builtin-namespaces.js +19 -12
  198. package/dist/frontend/lowering/builtin-namespaces.js.map +1 -1
  199. package/dist/frontend/lowering/builtins/callable-aliases.js +42 -6
  200. package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -1
  201. package/dist/frontend/lowering/builtins/child-process.d.ts +12 -11
  202. package/dist/frontend/lowering/builtins/child-process.js +235 -38
  203. package/dist/frontend/lowering/builtins/child-process.js.map +1 -1
  204. package/dist/frontend/lowering/builtins/compression.d.ts +6 -1
  205. package/dist/frontend/lowering/builtins/compression.js +3 -3
  206. package/dist/frontend/lowering/builtins/compression.js.map +1 -1
  207. package/dist/frontend/lowering/builtins/constants.js +2 -2
  208. package/dist/frontend/lowering/builtins/constants.js.map +1 -1
  209. package/dist/frontend/lowering/builtins/crypto.d.ts +3 -1
  210. package/dist/frontend/lowering/builtins/crypto.js +9 -1
  211. package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
  212. package/dist/frontend/lowering/builtins/dates.js +26 -6
  213. package/dist/frontend/lowering/builtins/dates.js.map +1 -1
  214. package/dist/frontend/lowering/builtins/environment.d.ts +13 -1
  215. package/dist/frontend/lowering/builtins/environment.js +15 -4
  216. package/dist/frontend/lowering/builtins/environment.js.map +1 -1
  217. package/dist/frontend/lowering/builtins/module-bindings.d.ts +33 -0
  218. package/dist/frontend/lowering/builtins/module-bindings.js +213 -11
  219. package/dist/frontend/lowering/builtins/module-bindings.js.map +1 -1
  220. package/dist/frontend/lowering/builtins/module-resolution.d.ts +9 -2
  221. package/dist/frontend/lowering/builtins/module-resolution.js +187 -19
  222. package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -1
  223. package/dist/frontend/lowering/builtins/performance.js +1 -1
  224. package/dist/frontend/lowering/builtins/performance.js.map +1 -1
  225. package/dist/frontend/lowering/builtins/process.js +40 -2
  226. package/dist/frontend/lowering/builtins/process.js.map +1 -1
  227. package/dist/frontend/lowering/builtins/promises.js +33 -0
  228. package/dist/frontend/lowering/builtins/promises.js.map +1 -1
  229. package/dist/frontend/lowering/builtins/readline.d.ts +9 -5
  230. package/dist/frontend/lowering/builtins/readline.js +184 -75
  231. package/dist/frontend/lowering/builtins/readline.js.map +1 -1
  232. package/dist/frontend/lowering/builtins/url.d.ts +4 -0
  233. package/dist/frontend/lowering/builtins/url.js +6 -0
  234. package/dist/frontend/lowering/builtins/url.js.map +1 -1
  235. package/dist/frontend/lowering/call-arguments.js +15 -0
  236. package/dist/frontend/lowering/call-arguments.js.map +1 -1
  237. package/dist/frontend/lowering/callable-properties.d.ts +34 -0
  238. package/dist/frontend/lowering/callable-properties.js +210 -0
  239. package/dist/frontend/lowering/callable-properties.js.map +1 -0
  240. package/dist/frontend/lowering/cjs-inline-require.d.ts +16 -0
  241. package/dist/frontend/lowering/cjs-inline-require.js +105 -0
  242. package/dist/frontend/lowering/cjs-inline-require.js.map +1 -1
  243. package/dist/frontend/lowering/cjs-inline-require.test.d.ts +1 -0
  244. package/dist/frontend/lowering/cjs-inline-require.test.js +61 -0
  245. package/dist/frontend/lowering/cjs-inline-require.test.js.map +1 -0
  246. package/dist/frontend/lowering/class-dynamic-dispatch.js +82 -2
  247. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  248. package/dist/frontend/lowering/class-protocols.d.ts +57 -4
  249. package/dist/frontend/lowering/class-protocols.js +597 -30
  250. package/dist/frontend/lowering/class-protocols.js.map +1 -1
  251. package/dist/frontend/lowering/class-unions.js +2 -2
  252. package/dist/frontend/lowering/class-unions.js.map +1 -1
  253. package/dist/frontend/lowering/coercions/function-adapters.d.ts +12 -0
  254. package/dist/frontend/lowering/coercions/function-adapters.js +62 -0
  255. package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
  256. package/dist/frontend/lowering/coercions/structural-plans.js +56 -1
  257. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
  258. package/dist/frontend/lowering/coercions/structural.js +9 -4
  259. package/dist/frontend/lowering/coercions/structural.js.map +1 -1
  260. package/dist/frontend/lowering/collection-ingestion.d.ts +9 -0
  261. package/dist/frontend/lowering/collection-ingestion.js +115 -41
  262. package/dist/frontend/lowering/collection-ingestion.js.map +1 -1
  263. package/dist/frontend/lowering/containers/array-callbacks.js +16 -0
  264. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  265. package/dist/frontend/lowering/containers/bytes.js +66 -10
  266. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  267. package/dist/frontend/lowering/containers/collection-methods.js +61 -5
  268. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
  269. package/dist/frontend/lowering/containers/filter-predicates.js +11 -0
  270. package/dist/frontend/lowering/containers/filter-predicates.js.map +1 -1
  271. package/dist/frontend/lowering/containers/indexed-objects.d.ts +15 -0
  272. package/dist/frontend/lowering/containers/indexed-objects.js +213 -30
  273. package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
  274. package/dist/frontend/lowering/error-name-order.d.ts +16 -0
  275. package/dist/frontend/lowering/error-name-order.js +61 -0
  276. package/dist/frontend/lowering/error-name-order.js.map +1 -1
  277. package/dist/frontend/lowering/expressions/asserted-receiver.d.ts +17 -0
  278. package/dist/frontend/lowering/expressions/asserted-receiver.js +123 -1
  279. package/dist/frontend/lowering/expressions/asserted-receiver.js.map +1 -1
  280. package/dist/frontend/lowering/expressions/binary.js +147 -20
  281. package/dist/frontend/lowering/expressions/binary.js.map +1 -1
  282. package/dist/frontend/lowering/expressions/element-access.js +63 -14
  283. package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
  284. package/dist/frontend/lowering/expressions/erased-delete.d.ts +59 -0
  285. package/dist/frontend/lowering/expressions/erased-delete.js +247 -0
  286. package/dist/frontend/lowering/expressions/erased-delete.js.map +1 -0
  287. package/dist/frontend/lowering/expressions/hosted-narrowing.d.ts +10 -0
  288. package/dist/frontend/lowering/expressions/hosted-narrowing.js +48 -1
  289. package/dist/frontend/lowering/expressions/hosted-narrowing.js.map +1 -1
  290. package/dist/frontend/lowering/expressions/identifiers.js +20 -0
  291. package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
  292. package/dist/frontend/lowering/expressions/narrowing.d.ts +7 -2
  293. package/dist/frontend/lowering/expressions/narrowing.js +77 -45
  294. package/dist/frontend/lowering/expressions/narrowing.js.map +1 -1
  295. package/dist/frontend/lowering/expressions/object-literals.js +62 -19
  296. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  297. package/dist/frontend/lowering/expressions/optional-chains.js +19 -0
  298. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
  299. package/dist/frontend/lowering/expressions/property-access.d.ts +7 -7
  300. package/dist/frontend/lowering/expressions/property-access.js +247 -48
  301. package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
  302. package/dist/frontend/lowering/expressions/relational.d.ts +1 -0
  303. package/dist/frontend/lowering/expressions/relational.js +18 -8
  304. package/dist/frontend/lowering/expressions/relational.js.map +1 -1
  305. package/dist/frontend/lowering/expressions/union-fields.js +11 -5
  306. package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
  307. package/dist/frontend/lowering/expressions/updates.js +121 -11
  308. package/dist/frontend/lowering/expressions/updates.js.map +1 -1
  309. package/dist/frontend/lowering/function-context.d.ts +10 -0
  310. package/dist/frontend/lowering/function-context.js +36 -0
  311. package/dist/frontend/lowering/function-context.js.map +1 -1
  312. package/dist/frontend/lowering/function-returns.js +8 -8
  313. package/dist/frontend/lowering/function-returns.js.map +1 -1
  314. package/dist/frontend/lowering/handle-properties.d.ts +62 -3
  315. package/dist/frontend/lowering/handle-properties.js +674 -26
  316. package/dist/frontend/lowering/handle-properties.js.map +1 -1
  317. package/dist/frontend/lowering/handle-properties.test.js +95 -2
  318. package/dist/frontend/lowering/handle-properties.test.js.map +1 -1
  319. package/dist/frontend/lowering/lower-builtin-values.d.ts +12 -0
  320. package/dist/frontend/lowering/lower-builtin-values.js +44 -0
  321. package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
  322. package/dist/frontend/lowering/lower-calls.js +328 -136
  323. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  324. package/dist/frontend/lowering/lower-classes.js +82 -17
  325. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  326. package/dist/frontend/lowering/lower-event-emitter.js +113 -9
  327. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  328. package/dist/frontend/lowering/lower-expando.d.ts +13 -21
  329. package/dist/frontend/lowering/lower-expando.js +90 -126
  330. package/dist/frontend/lowering/lower-expando.js.map +1 -1
  331. package/dist/frontend/lowering/lower-exprs.js +2 -2
  332. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  333. package/dist/frontend/lowering/lower-functions.js +65 -0
  334. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  335. package/dist/frontend/lowering/lower-inspect.js +471 -0
  336. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  337. package/dist/frontend/lowering/lower-modules.js +36 -10
  338. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  339. package/dist/frontend/lowering/lower-node-island.js +28 -0
  340. package/dist/frontend/lowering/lower-node-island.js.map +1 -1
  341. package/dist/frontend/lowering/lower-server.d.ts +53 -7
  342. package/dist/frontend/lowering/lower-server.js +213 -42
  343. package/dist/frontend/lowering/lower-server.js.map +1 -1
  344. package/dist/frontend/lowering/lower-stdlib.js +50 -7
  345. package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
  346. package/dist/frontend/lowering/lower-stmts.d.ts +24 -0
  347. package/dist/frontend/lowering/lower-stmts.js +463 -220
  348. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  349. package/dist/frontend/lowering/lower-stream.js +2 -2
  350. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  351. package/dist/frontend/lowering/lower-test.js +71 -2
  352. package/dist/frontend/lowering/lower-test.js.map +1 -1
  353. package/dist/frontend/lowering/lowerer.d.ts +81 -10
  354. package/dist/frontend/lowering/lowerer.js +319 -72
  355. package/dist/frontend/lowering/lowerer.js.map +1 -1
  356. package/dist/frontend/lowering/new-target.js +10 -2
  357. package/dist/frontend/lowering/new-target.js.map +1 -1
  358. package/dist/frontend/lowering/nullish-empty-pattern.js +3 -3
  359. package/dist/frontend/lowering/nullish-empty-pattern.js.map +1 -1
  360. package/dist/frontend/lowering/partial-assertions.js +30 -5
  361. package/dist/frontend/lowering/partial-assertions.js.map +1 -1
  362. package/dist/frontend/lowering/primitive-throws.js +91 -1
  363. package/dist/frontend/lowering/primitive-throws.js.map +1 -1
  364. package/dist/frontend/lowering/primitive-wrappers.d.ts +9 -0
  365. package/dist/frontend/lowering/primitive-wrappers.js +2 -2
  366. package/dist/frontend/lowering/primitive-wrappers.js.map +1 -1
  367. package/dist/frontend/lowering/promise-executor-adapter.js +5 -2
  368. package/dist/frontend/lowering/promise-executor-adapter.js.map +1 -1
  369. package/dist/frontend/lowering/record-links.js +7 -2
  370. package/dist/frontend/lowering/record-links.js.map +1 -1
  371. package/dist/frontend/lowering/surfaces.d.ts +4 -0
  372. package/dist/frontend/lowering/surfaces.js +118 -2
  373. package/dist/frontend/lowering/surfaces.js.map +1 -1
  374. package/dist/frontend/lowering/surfaces.test.d.ts +1 -0
  375. package/dist/frontend/lowering/surfaces.test.js +31 -0
  376. package/dist/frontend/lowering/surfaces.test.js.map +1 -0
  377. package/dist/frontend/mock-shapes.js +3 -3
  378. package/dist/frontend/mock-shapes.js.map +1 -1
  379. package/dist/frontend/npm-static-ladder.d.ts +21 -0
  380. package/dist/frontend/npm-static-ladder.js +2 -0
  381. package/dist/frontend/npm-static-ladder.js.map +1 -0
  382. package/dist/frontend/npm-static-ladder.test.d.ts +1 -0
  383. package/dist/frontend/npm-static-ladder.test.js +138 -0
  384. package/dist/frontend/npm-static-ladder.test.js.map +1 -0
  385. package/dist/frontend/npm-static-status.d.ts +15 -0
  386. package/dist/frontend/npm-static-status.js +2 -0
  387. package/dist/frontend/npm-static-status.js.map +1 -0
  388. package/dist/frontend/package-shims.js +1 -1
  389. package/dist/frontend/package-shims.js.map +1 -1
  390. package/dist/frontend/pipeline.d.ts +1 -1
  391. package/dist/frontend/pipeline.js +222 -25
  392. package/dist/frontend/pipeline.js.map +1 -1
  393. package/dist/frontend/program-analysis.d.ts +4 -0
  394. package/dist/frontend/program-analysis.js +6 -0
  395. package/dist/frontend/program-analysis.js.map +1 -1
  396. package/dist/frontend/program.js +258 -32
  397. package/dist/frontend/program.js.map +1 -1
  398. package/dist/frontend/program.test.js +30 -0
  399. package/dist/frontend/program.test.js.map +1 -1
  400. package/dist/frontend/resolve.js +29 -5
  401. package/dist/frontend/resolve.js.map +1 -1
  402. package/dist/frontend/resolve.test.js +40 -0
  403. package/dist/frontend/resolve.test.js.map +1 -1
  404. package/dist/frontend/services.d.ts +8 -0
  405. package/dist/frontend/services.js +7 -0
  406. package/dist/frontend/services.js.map +1 -1
  407. package/dist/frontend/ts7/checker.d.ts +7 -0
  408. package/dist/frontend/ts7/checker.js +12 -0
  409. package/dist/frontend/ts7/checker.js.map +1 -1
  410. package/dist/frontend/ts7/checker.test.js +1 -0
  411. package/dist/frontend/ts7/checker.test.js.map +1 -1
  412. package/dist/frontend/ts7/program-host.d.ts +39 -2
  413. package/dist/frontend/ts7/program-host.js +62 -8
  414. package/dist/frontend/ts7/program-host.js.map +1 -1
  415. package/dist/frontend/ts7/program-host.test.js +33 -0
  416. package/dist/frontend/ts7/program-host.test.js.map +1 -1
  417. package/dist/frontend/ts7/session-cache.d.ts +5 -1
  418. package/dist/frontend/ts7/session-cache.js +7 -1
  419. package/dist/frontend/ts7/session-cache.js.map +1 -1
  420. package/dist/frontend/ts7/session-cache.test.js +37 -0
  421. package/dist/frontend/ts7/session-cache.test.js.map +1 -1
  422. package/dist/frontend/ts7/session.js +19 -1
  423. package/dist/frontend/ts7/session.js.map +1 -1
  424. package/dist/frontend/ts7/source-parser.d.ts +17 -2
  425. package/dist/frontend/ts7/source-parser.js +61 -2
  426. package/dist/frontend/ts7/source-parser.js.map +1 -1
  427. package/dist/frontend/ts7/source-parser.test.js +55 -2
  428. package/dist/frontend/ts7/source-parser.test.js.map +1 -1
  429. package/dist/frontend/tsc-codes.d.ts +3 -2
  430. package/dist/frontend/tsc-codes.js +129 -22
  431. package/dist/frontend/tsc-codes.js.map +1 -1
  432. package/dist/frontend/type-mapper.d.ts +5 -11
  433. package/dist/frontend/type-mapper.js +380 -70
  434. package/dist/frontend/type-mapper.js.map +1 -1
  435. package/dist/index.d.ts +1 -1
  436. package/dist/index.js +67 -7
  437. package/dist/index.js.map +1 -1
  438. package/dist/ir/builtin-effects.js +29 -0
  439. package/dist/ir/builtin-effects.js.map +1 -1
  440. package/dist/ir/builtin-signatures.d.ts +1 -1
  441. package/dist/ir/builtin-signatures.js +72 -6
  442. package/dist/ir/builtin-signatures.js.map +1 -1
  443. package/dist/ir/codec.generated.d.ts +1 -1
  444. package/dist/ir/codec.generated.js +321 -263
  445. package/dist/ir/codec.generated.js.map +1 -1
  446. package/dist/ir/constant-length-clones.d.ts +26 -0
  447. package/dist/ir/constant-length-clones.js +589 -0
  448. package/dist/ir/constant-length-clones.js.map +1 -0
  449. package/dist/ir/constant-length-clones.test.d.ts +1 -0
  450. package/dist/ir/constant-length-clones.test.js +292 -0
  451. package/dist/ir/constant-length-clones.test.js.map +1 -0
  452. package/dist/ir/constant-tables.d.ts +10 -5
  453. package/dist/ir/constant-tables.js +83 -17
  454. package/dist/ir/constant-tables.js.map +1 -1
  455. package/dist/ir/constant-tables.test.js +58 -1
  456. package/dist/ir/constant-tables.test.js.map +1 -1
  457. package/dist/ir/fields.generated.js +5 -2
  458. package/dist/ir/fields.generated.js.map +1 -1
  459. package/dist/ir/function-references.js +2 -0
  460. package/dist/ir/function-references.js.map +1 -1
  461. package/dist/ir/function-references.test.js +13 -0
  462. package/dist/ir/function-references.test.js.map +1 -1
  463. package/dist/ir/integer-loops.js +1 -0
  464. package/dist/ir/integer-loops.js.map +1 -1
  465. package/dist/ir/integer-loops.test.js +16 -0
  466. package/dist/ir/integer-loops.test.js.map +1 -1
  467. package/dist/ir/ir.d.ts +50 -6
  468. package/dist/ir/ir.js +44 -2
  469. package/dist/ir/ir.js.map +1 -1
  470. package/dist/ir/ir.test.js +83 -1
  471. package/dist/ir/ir.test.js.map +1 -1
  472. package/dist/ir/js-groups.js +5 -1
  473. package/dist/ir/js-groups.js.map +1 -1
  474. package/dist/ir/js-ic.d.ts +20 -0
  475. package/dist/ir/js-ic.js +81 -4
  476. package/dist/ir/js-ic.js.map +1 -1
  477. package/dist/ir/js-ic.test.js +8 -1
  478. package/dist/ir/js-ic.test.js.map +1 -1
  479. package/dist/ir/lane-plans.d.ts +86 -0
  480. package/dist/ir/lane-plans.js +589 -0
  481. package/dist/ir/lane-plans.js.map +1 -0
  482. package/dist/ir/lane-plans.test.d.ts +1 -0
  483. package/dist/ir/lane-plans.test.js +549 -0
  484. package/dist/ir/lane-plans.test.js.map +1 -0
  485. package/dist/ir/runtime-features.d.ts +68 -10
  486. package/dist/ir/runtime-features.js +285 -17
  487. package/dist/ir/runtime-features.js.map +1 -1
  488. package/dist/ir/runtime-features.test.js +190 -1
  489. package/dist/ir/runtime-features.test.js.map +1 -1
  490. package/dist/ir/validate.js +61 -24
  491. package/dist/ir/validate.js.map +1 -1
  492. package/dist/native/cache.d.ts +5 -0
  493. package/dist/native/cache.js +23 -1
  494. package/dist/native/cache.js.map +1 -1
  495. package/dist/native/cache.test.js +29 -1
  496. package/dist/native/cache.test.js.map +1 -1
  497. package/dist/native/cli.js +4 -2
  498. package/dist/native/cli.js.map +1 -1
  499. package/dist/native/compiler.d.ts +11 -3
  500. package/dist/native/compiler.js +102 -16
  501. package/dist/native/compiler.js.map +1 -1
  502. package/dist/native/compiler.test.js +244 -2
  503. package/dist/native/compiler.test.js.map +1 -1
  504. package/dist/native/prepare.d.ts +14 -1
  505. package/dist/native/prepare.js +79 -29
  506. package/dist/native/prepare.js.map +1 -1
  507. package/dist/native/sanitizer.test.js +3 -0
  508. package/dist/native/sanitizer.test.js.map +1 -1
  509. package/dist/native/unchanged.d.ts +80 -0
  510. package/dist/native/unchanged.js +301 -0
  511. package/dist/native/unchanged.js.map +1 -0
  512. package/dist/native/unchanged.test.d.ts +1 -0
  513. package/dist/native/unchanged.test.js +249 -0
  514. package/dist/native/unchanged.test.js.map +1 -0
  515. package/dist/node-islands/boundary.d.ts +16 -0
  516. package/dist/node-islands/boundary.js +70 -7
  517. package/dist/node-islands/boundary.js.map +1 -1
  518. package/dist/node-islands/boundary.test.js +59 -14
  519. package/dist/node-islands/boundary.test.js.map +1 -1
  520. package/dist/node-islands/detect.js +203 -47
  521. package/dist/node-islands/detect.js.map +1 -1
  522. package/dist/node-islands/detect.test.js +45 -0
  523. package/dist/node-islands/detect.test.js.map +1 -1
  524. package/dist/node-islands/growth.js +4 -16
  525. package/dist/node-islands/growth.js.map +1 -1
  526. package/dist/node-islands/modules.d.ts +3 -0
  527. package/dist/node-islands/modules.js +143 -12
  528. package/dist/node-islands/modules.js.map +1 -1
  529. package/dist/node-islands/modules.test.js +125 -0
  530. package/dist/node-islands/modules.test.js.map +1 -1
  531. package/dist/node-islands/report.d.ts +1 -1
  532. package/dist/node-islands/report.js +2 -1
  533. package/dist/node-islands/report.js.map +1 -1
  534. package/package.json +20 -20
  535. package/shims/undici/core/request.ts +7 -1
  536. package/surface-manifest.json +380 -2
@@ -1,6 +1,6 @@
1
1
  /** A digest of the coders below: an encoding written with other coders is
2
2
  * refused instead of misread, also after a change that keeps IR_VERSION. */
3
- export const IR_CODEC_LAYOUT = "38fbaf504aaf737f";
3
+ export const IR_CODEC_LAYOUT = "914939560c3e2086";
4
4
  /** Writes `mod` field by field (codec.ts describes the bytes). */
5
5
  export function encodeIrModule(w, mod) {
6
6
  encIrModule(w, mod);
@@ -73,7 +73,7 @@ const KEYS52 = ["kind"];
73
73
  const KEYS53 = ["kind"];
74
74
  const KEYS54 = ["file", "start", "end"];
75
75
  const KEYS55 = ["yieldT", "nextT", "resultType", "closesSource", "tag", "inheritsTag", "bindAtCall"];
76
- const KEYS56 = ["name", "localCaptures", "localBaseCapture", "baseValueGlobal", "jsName", "jsLength", "ownStaticFields", "prototypeDataHelper", "instancePrototypeHelper", "stringTagHelper", "tracksOwnFields", "errorNameAfter", "errorBagOrder", "symbolFields", "runtime", "arrayElem", "arrayFields", "arraySpecies", "base", "fields", "methods", "prototypeNames", "abstract", "abstractMethods", "genericOf", "loc"];
76
+ const KEYS56 = ["name", "localCaptures", "localBaseCapture", "baseValueGlobal", "jsName", "jsLength", "ownStaticFields", "prototypeDataHelper", "instancePrototypeHelper", "stringTagHelper", "viewAccessors", "tracksOwnFields", "errorNameAfter", "errorBagOrder", "symbolFields", "runtime", "arrayElem", "arrayFields", "arraySpecies", "base", "fields", "methods", "prototypeNames", "abstract", "abstractMethods", "genericOf", "loc"];
77
77
  const KEYS57 = ["id", "name", "type", "mutable", "tdz", "initFlag", "source"];
78
78
  const KEYS58 = ["id", "fields", "tuple", "indexValue", "freezable", "declaredOrder", "accessorOrder", "orderVariants"];
79
79
  const KEYS59 = ["id", "arms", "discriminant"];
@@ -84,9 +84,9 @@ const KEYS63 = ["name", "symbol", "library", "callbackOperation", "callbackTarge
84
84
  const KEYS64 = ["buildIdSymbol", "abiVersionSymbol", "buildId", "abiVersion"];
85
85
  const KEYS65 = ["sha256", "bytes"];
86
86
  const KEYS66 = ["sha256", "size", "reason"];
87
- const KEYS67 = ["localId", "name", "type", "owned"];
87
+ const KEYS67 = ["localId", "name", "type", "owned", "constLength"];
88
88
  const KEYS68 = ["id", "name", "type", "mutable", "source", "boxed", "tdz"];
89
- const KEYS69 = ["localId", "name", "type", "owned", "slot"];
89
+ const KEYS69 = ["localId", "name", "type", "owned", "constLength", "slot"];
90
90
  const KEYS70 = ["kind", "arr", "index", "loc"];
91
91
  const KEYS71 = ["kind", "arr", "index", "value", "loc"];
92
92
  const KEYS72 = ["kind", "arr", "length", "loc", "pop", "reserve"];
@@ -216,26 +216,27 @@ const KEYS195 = ["kind", "value", "type", "loc"];
216
216
  const KEYS196 = ["kind", "localId", "type", "loc"];
217
217
  const KEYS197 = ["kind", "className", "method", "args", "type", "loc", "targets"];
218
218
  const KEYS198 = ["kind", "value", "awaited", "delegated", "captureCompletion", "type", "loc"];
219
- const KEYS199 = ["name", "type"];
219
+ const KEYS199 = ["member", "helper"];
220
220
  const KEYS200 = ["name", "type"];
221
- const KEYS201 = ["path", "size", "sha256", "placeholder"];
222
- const KEYS202 = ["path", "target"];
223
- const KEYS203 = ["diff", "skipPrototype"];
224
- const KEYS204 = ["returnType"];
225
- const KEYS205 = ["test", "body"];
226
- const KEYS206 = ["field", "globalId"];
227
- const KEYS207 = ["field", "wellKnown"];
228
- const KEYS208 = ["tag", "values"];
229
- const KEYS209 = ["context"];
230
- const KEYS210 = ["callback"];
221
+ const KEYS201 = ["name", "type", "optional"];
222
+ const KEYS202 = ["path", "size", "sha256", "placeholder"];
223
+ const KEYS203 = ["path", "target"];
224
+ const KEYS204 = ["diff", "skipPrototype"];
225
+ const KEYS205 = ["returnType"];
226
+ const KEYS206 = ["test", "body"];
227
+ const KEYS207 = ["field", "globalId"];
228
+ const KEYS208 = ["field", "wellKnown"];
229
+ const KEYS209 = ["tag", "values"];
230
+ const KEYS210 = ["context"];
231
231
  const KEYS211 = ["callback"];
232
- const KEYS212 = ["arg", "what"];
233
- const KEYS213 = ["key", "value"];
232
+ const KEYS212 = ["callback"];
233
+ const KEYS213 = ["arg", "what"];
234
234
  const KEYS214 = ["key", "value"];
235
- const KEYS215 = ["name", "value"];
236
- const KEYS216 = ["name", "value", "overflow"];
237
- const KEYS217 = ["id", "params", "returns", "lifetime", "invoke"];
238
- const KEYS218 = ["release", "params", "returns"];
235
+ const KEYS215 = ["key", "value"];
236
+ const KEYS216 = ["name", "value"];
237
+ const KEYS217 = ["name", "value", "overflow"];
238
+ const KEYS218 = ["id", "params", "returns", "lifetime", "invoke"];
239
+ const KEYS219 = ["release", "params", "returns"];
239
240
  function encIrModule(w, v) {
240
241
  w.keys(Object.keys(v), KEYS0);
241
242
  w.num(v.irVersion);
@@ -1518,6 +1519,12 @@ function encIrClassDef(w, v) {
1518
1519
  w.byte(1);
1519
1520
  w.str(v.stringTagHelper);
1520
1521
  }
1522
+ if (v.viewAccessors === undefined)
1523
+ w.byte(0);
1524
+ else {
1525
+ w.byte(1);
1526
+ encT43(w, v.viewAccessors);
1527
+ }
1521
1528
  if (v.tracksOwnFields === undefined)
1522
1529
  w.byte(0);
1523
1530
  else {
@@ -1542,7 +1549,7 @@ function encIrClassDef(w, v) {
1542
1549
  w.byte(0);
1543
1550
  else {
1544
1551
  w.byte(1);
1545
- encT43(w, v.symbolFields);
1552
+ encT44(w, v.symbolFields);
1546
1553
  }
1547
1554
  if (v.runtime === undefined)
1548
1555
  w.byte(0);
@@ -1574,7 +1581,7 @@ function encIrClassDef(w, v) {
1574
1581
  w.byte(1);
1575
1582
  w.str(v.base);
1576
1583
  }
1577
- encT44(w, v.fields);
1584
+ encT45(w, v.fields);
1578
1585
  if (v.methods === undefined)
1579
1586
  w.byte(0);
1580
1587
  else {
@@ -1618,23 +1625,24 @@ function decIrClassDef(r) {
1618
1625
  const f7 = r.tag(2, "IrModule.classes[].prototypeDataHelper") === 0 ? undefined : r.str();
1619
1626
  const f8 = r.tag(2, "IrModule.classes[].instancePrototypeHelper") === 0 ? undefined : r.str();
1620
1627
  const f9 = r.tag(2, "IrModule.classes[].stringTagHelper") === 0 ? undefined : r.str();
1621
- const f10 = r.tag(2, "IrModule.classes[].tracksOwnFields") === 0 ? undefined : r.bool();
1622
- const f11 = r.tag(3, "IrModule.classes[].errorNameAfter") === 0 ? undefined : r.lastTag === 1 ? null : r.str();
1623
- const f12 = r.tag(2, "IrModule.classes[].errorBagOrder") === 0 ? undefined : r.bool();
1624
- const f13 = r.tag(2, "IrModule.classes[].symbolFields") === 0 ? undefined : decT43(r);
1625
- const f14 = r.tag(2, "IrModule.classes[].runtime") === 0 ? undefined : r.bool();
1626
- const f15 = r.tag(2, "IrModule.classes[].arrayElem") === 0 ? undefined : decIrType(r);
1627
- const f16 = r.tag(2, "IrModule.classes[].arrayFields") === 0 ? undefined : r.str();
1628
- const f17 = r.tag(2, "IrModule.classes[].arraySpecies") === 0 ? undefined : r.str();
1629
- const f18 = r.tag(2, "IrModule.classes[].base") === 0 ? undefined : r.str();
1630
- const f19 = decT44(r);
1631
- const f20 = r.tag(2, "IrModule.classes[].methods") === 0 ? undefined : decT8(r);
1632
- const f21 = r.tag(2, "IrModule.classes[].prototypeNames") === 0 ? undefined : decT8(r);
1633
- const f22 = r.tag(2, "IrModule.classes[].abstract") === 0 ? undefined : r.bool();
1634
- const f23 = r.tag(2, "IrModule.classes[].abstractMethods") === 0 ? undefined : decT8(r);
1635
- const f24 = r.tag(2, "IrModule.classes[].genericOf") === 0 ? undefined : r.str();
1636
- const f25 = decSrcLoc(r);
1637
- const o = { name: f0, ...(f1 !== undefined ? { localCaptures: f1 } : {}), ...(f2 !== undefined ? { localBaseCapture: f2 } : {}), ...(f3 !== undefined ? { baseValueGlobal: f3 } : {}), ...(f4 !== undefined ? { jsName: f4 } : {}), ...(f5 !== undefined ? { jsLength: f5 } : {}), ...(f6 !== undefined ? { ownStaticFields: f6 } : {}), ...(f7 !== undefined ? { prototypeDataHelper: f7 } : {}), ...(f8 !== undefined ? { instancePrototypeHelper: f8 } : {}), ...(f9 !== undefined ? { stringTagHelper: f9 } : {}), ...(f10 !== undefined ? { tracksOwnFields: f10 } : {}), ...(f11 !== undefined ? { errorNameAfter: f11 } : {}), ...(f12 !== undefined ? { errorBagOrder: f12 } : {}), ...(f13 !== undefined ? { symbolFields: f13 } : {}), ...(f14 !== undefined ? { runtime: f14 } : {}), ...(f15 !== undefined ? { arrayElem: f15 } : {}), ...(f16 !== undefined ? { arrayFields: f16 } : {}), ...(f17 !== undefined ? { arraySpecies: f17 } : {}), ...(f18 !== undefined ? { base: f18 } : {}), fields: f19, ...(f20 !== undefined ? { methods: f20 } : {}), ...(f21 !== undefined ? { prototypeNames: f21 } : {}), ...(f22 !== undefined ? { abstract: f22 } : {}), ...(f23 !== undefined ? { abstractMethods: f23 } : {}), ...(f24 !== undefined ? { genericOf: f24 } : {}), loc: f25 };
1628
+ const f10 = r.tag(2, "IrModule.classes[].viewAccessors") === 0 ? undefined : decT43(r);
1629
+ const f11 = r.tag(2, "IrModule.classes[].tracksOwnFields") === 0 ? undefined : r.bool();
1630
+ const f12 = r.tag(3, "IrModule.classes[].errorNameAfter") === 0 ? undefined : r.lastTag === 1 ? null : r.str();
1631
+ const f13 = r.tag(2, "IrModule.classes[].errorBagOrder") === 0 ? undefined : r.bool();
1632
+ const f14 = r.tag(2, "IrModule.classes[].symbolFields") === 0 ? undefined : decT44(r);
1633
+ const f15 = r.tag(2, "IrModule.classes[].runtime") === 0 ? undefined : r.bool();
1634
+ const f16 = r.tag(2, "IrModule.classes[].arrayElem") === 0 ? undefined : decIrType(r);
1635
+ const f17 = r.tag(2, "IrModule.classes[].arrayFields") === 0 ? undefined : r.str();
1636
+ const f18 = r.tag(2, "IrModule.classes[].arraySpecies") === 0 ? undefined : r.str();
1637
+ const f19 = r.tag(2, "IrModule.classes[].base") === 0 ? undefined : r.str();
1638
+ const f20 = decT45(r);
1639
+ const f21 = r.tag(2, "IrModule.classes[].methods") === 0 ? undefined : decT8(r);
1640
+ const f22 = r.tag(2, "IrModule.classes[].prototypeNames") === 0 ? undefined : decT8(r);
1641
+ const f23 = r.tag(2, "IrModule.classes[].abstract") === 0 ? undefined : r.bool();
1642
+ const f24 = r.tag(2, "IrModule.classes[].abstractMethods") === 0 ? undefined : decT8(r);
1643
+ const f25 = r.tag(2, "IrModule.classes[].genericOf") === 0 ? undefined : r.str();
1644
+ const f26 = decSrcLoc(r);
1645
+ const o = { name: f0, ...(f1 !== undefined ? { localCaptures: f1 } : {}), ...(f2 !== undefined ? { localBaseCapture: f2 } : {}), ...(f3 !== undefined ? { baseValueGlobal: f3 } : {}), ...(f4 !== undefined ? { jsName: f4 } : {}), ...(f5 !== undefined ? { jsLength: f5 } : {}), ...(f6 !== undefined ? { ownStaticFields: f6 } : {}), ...(f7 !== undefined ? { prototypeDataHelper: f7 } : {}), ...(f8 !== undefined ? { instancePrototypeHelper: f8 } : {}), ...(f9 !== undefined ? { stringTagHelper: f9 } : {}), ...(f10 !== undefined ? { viewAccessors: f10 } : {}), ...(f11 !== undefined ? { tracksOwnFields: f11 } : {}), ...(f12 !== undefined ? { errorNameAfter: f12 } : {}), ...(f13 !== undefined ? { errorBagOrder: f13 } : {}), ...(f14 !== undefined ? { symbolFields: f14 } : {}), ...(f15 !== undefined ? { runtime: f15 } : {}), ...(f16 !== undefined ? { arrayElem: f16 } : {}), ...(f17 !== undefined ? { arrayFields: f17 } : {}), ...(f18 !== undefined ? { arraySpecies: f18 } : {}), ...(f19 !== undefined ? { base: f19 } : {}), fields: f20, ...(f21 !== undefined ? { methods: f21 } : {}), ...(f22 !== undefined ? { prototypeNames: f22 } : {}), ...(f23 !== undefined ? { abstract: f23 } : {}), ...(f24 !== undefined ? { abstractMethods: f24 } : {}), ...(f25 !== undefined ? { genericOf: f25 } : {}), loc: f26 };
1638
1646
  return o;
1639
1647
  }
1640
1648
  function encIrGlobal(w, v) {
@@ -1676,7 +1684,7 @@ function decIrGlobal(r) {
1676
1684
  function encIrRecordShape(w, v) {
1677
1685
  w.keys(Object.keys(v), KEYS58);
1678
1686
  w.str(v.id);
1679
- encT46(w, v.fields);
1687
+ encT47(w, v.fields);
1680
1688
  if (v.tuple === undefined)
1681
1689
  w.byte(0);
1682
1690
  else {
@@ -1711,18 +1719,18 @@ function encIrRecordShape(w, v) {
1711
1719
  w.byte(0);
1712
1720
  else {
1713
1721
  w.byte(1);
1714
- encT47(w, v.orderVariants);
1722
+ encT48(w, v.orderVariants);
1715
1723
  }
1716
1724
  }
1717
1725
  function decIrRecordShape(r) {
1718
1726
  const f0 = r.str();
1719
- const f1 = decT46(r);
1727
+ const f1 = decT47(r);
1720
1728
  const f2 = r.tag(2, "IrModule.records[].tuple") === 0 ? undefined : r.bool();
1721
1729
  const f3 = r.tag(2, "IrModule.records[].indexValue") === 0 ? undefined : decIrType(r);
1722
1730
  const f4 = r.tag(2, "IrModule.records[].freezable") === 0 ? undefined : r.bool();
1723
1731
  const f5 = r.tag(2, "IrModule.records[].declaredOrder") === 0 ? undefined : decT8(r);
1724
1732
  const f6 = r.tag(2, "IrModule.records[].accessorOrder") === 0 ? undefined : decT8(r);
1725
- const f7 = r.tag(2, "IrModule.records[].orderVariants") === 0 ? undefined : decT47(r);
1733
+ const f7 = r.tag(2, "IrModule.records[].orderVariants") === 0 ? undefined : decT48(r);
1726
1734
  const o = { id: f0, fields: f1, ...(f2 !== undefined ? { tuple: f2 } : {}), ...(f3 !== undefined ? { indexValue: f3 } : {}), ...(f4 !== undefined ? { freezable: f4 } : {}), ...(f5 !== undefined ? { declaredOrder: f5 } : {}), ...(f6 !== undefined ? { accessorOrder: f6 } : {}), ...(f7 !== undefined ? { orderVariants: f7 } : {}) };
1727
1735
  return o;
1728
1736
  }
@@ -1773,8 +1781,8 @@ function decIrRecordLink(r) {
1773
1781
  function encIrNodeIslandModules(w, v) {
1774
1782
  w.keys(Object.keys(v), KEYS62);
1775
1783
  w.str(v.root);
1776
- encT49(w, v.files);
1777
- encT50(w, v.links);
1784
+ encT50(w, v.files);
1785
+ encT51(w, v.links);
1778
1786
  if (v.location === undefined)
1779
1787
  w.byte(0);
1780
1788
  else {
@@ -1784,8 +1792,8 @@ function encIrNodeIslandModules(w, v) {
1784
1792
  }
1785
1793
  function decIrNodeIslandModules(r) {
1786
1794
  const f0 = r.str();
1787
- const f1 = decT49(r);
1788
- const f2 = decT50(r);
1795
+ const f1 = decT50(r);
1796
+ const f2 = decT51(r);
1789
1797
  const f3 = r.tag(2, "IrModule.nodeIsland.modules.location") === 0 ? undefined : r.str();
1790
1798
  const o = { root: f0, files: f1, links: f2, ...(f3 !== undefined ? { location: f3 } : {}) };
1791
1799
  return o;
@@ -1812,7 +1820,7 @@ function encIrFfiImport(w, v) {
1812
1820
  w.byte(1);
1813
1821
  w.str(v.callbackTarget);
1814
1822
  }
1815
- encT51(w, v.params);
1823
+ encT52(w, v.params);
1816
1824
  w.str(v.returns);
1817
1825
  }
1818
1826
  function decIrFfiImport(r) {
@@ -1821,7 +1829,7 @@ function decIrFfiImport(r) {
1821
1829
  const f2 = r.tag(2, "IrModule.ffiImports[].library") === 0 ? undefined : r.str();
1822
1830
  const f3 = r.tag(2, "IrModule.ffiImports[].callbackOperation") === 0 ? undefined : r.str();
1823
1831
  const f4 = r.tag(2, "IrModule.ffiImports[].callbackTarget") === 0 ? undefined : r.str();
1824
- const f5 = decT51(r);
1832
+ const f5 = decT52(r);
1825
1833
  const f6 = r.str();
1826
1834
  const o = { name: f0, symbol: f1, ...(f2 !== undefined ? { library: f2 } : {}), ...(f3 !== undefined ? { callbackOperation: f3 } : {}), ...(f4 !== undefined ? { callbackTarget: f4 } : {}), params: f5, returns: f6 };
1827
1835
  return o;
@@ -1915,13 +1923,20 @@ function encIrParam(w, v) {
1915
1923
  w.byte(1);
1916
1924
  w.bool(v.owned);
1917
1925
  }
1926
+ if (v.constLength === undefined)
1927
+ w.byte(0);
1928
+ else {
1929
+ w.byte(1);
1930
+ w.num(v.constLength);
1931
+ }
1918
1932
  }
1919
1933
  function decIrParam(r) {
1920
1934
  const f0 = r.str();
1921
1935
  const f1 = r.str();
1922
1936
  const f2 = decIrType(r);
1923
1937
  const f3 = r.tag(2, "IrFunction.params[].owned") === 0 ? undefined : r.bool();
1924
- const o = { localId: f0, name: f1, type: f2, ...(f3 !== undefined ? { owned: f3 } : {}) };
1938
+ const f4 = r.tag(2, "IrFunction.params[].constLength") === 0 ? undefined : r.num();
1939
+ const o = { localId: f0, name: f1, type: f2, ...(f3 !== undefined ? { owned: f3 } : {}), ...(f4 !== undefined ? { constLength: f4 } : {}) };
1925
1940
  return o;
1926
1941
  }
1927
1942
  function encT38(w, v) {
@@ -1984,6 +1999,12 @@ function encT40(w, v) {
1984
1999
  w.byte(1);
1985
2000
  w.bool(v.owned);
1986
2001
  }
2002
+ if (v.constLength === undefined)
2003
+ w.byte(0);
2004
+ else {
2005
+ w.byte(1);
2006
+ w.num(v.constLength);
2007
+ }
1987
2008
  w.num(v.slot);
1988
2009
  }
1989
2010
  function decT40(r) {
@@ -1991,8 +2012,9 @@ function decT40(r) {
1991
2012
  const f1 = r.str();
1992
2013
  const f2 = decIrType(r);
1993
2014
  const f3 = r.tag(2, "IrFunction.classCaptures[].owned") === 0 ? undefined : r.bool();
1994
- const f4 = r.num();
1995
- const o = { localId: f0, name: f1, type: f2, ...(f3 !== undefined ? { owned: f3 } : {}), slot: f4 };
2015
+ const f4 = r.tag(2, "IrFunction.classCaptures[].constLength") === 0 ? undefined : r.num();
2016
+ const f5 = r.num();
2017
+ const o = { localId: f0, name: f1, type: f2, ...(f3 !== undefined ? { owned: f3 } : {}), ...(f4 !== undefined ? { constLength: f4 } : {}), slot: f5 };
1996
2018
  return o;
1997
2019
  }
1998
2020
  function encIrStmt(w, v) {
@@ -2289,7 +2311,7 @@ function encIrStmt(w, v) {
2289
2311
  w.length(22);
2290
2312
  w.keys(Object.keys(v), KEYS92);
2291
2313
  encIrExpr(w, v.disc);
2292
- encT56(w, v.cases);
2314
+ encT57(w, v.cases);
2293
2315
  if (v.labels === undefined)
2294
2316
  w.byte(0);
2295
2317
  else {
@@ -2548,7 +2570,7 @@ function decIrStmt(r) {
2548
2570
  }
2549
2571
  case 22: {
2550
2572
  const f0 = decIrExpr(r);
2551
- const f1 = decT56(r);
2573
+ const f1 = decT57(r);
2552
2574
  const f2 = r.tag(2, "IrFunction.body[]<switch>.labels") === 0 ? undefined : decT8(r);
2553
2575
  const f3 = decSrcLoc(r);
2554
2576
  const o = { kind: "switch", disc: f0, cases: f1, ...(f2 !== undefined ? { labels: f2 } : {}), loc: f3 };
@@ -2603,27 +2625,40 @@ function decT42(r) {
2603
2625
  function encT43(w, v) {
2604
2626
  w.length(v.length);
2605
2627
  for (const item of v) {
2606
- encT57(w, item);
2628
+ encT58(w, item);
2607
2629
  }
2608
2630
  }
2609
2631
  function decT43(r) {
2610
2632
  const length = r.length();
2611
2633
  const out = [];
2612
2634
  for (let i = 0; i < length; i++)
2613
- out.push(decT57(r));
2635
+ out.push(decT58(r));
2614
2636
  return out;
2615
2637
  }
2616
2638
  function encT44(w, v) {
2617
2639
  w.length(v.length);
2618
2640
  for (const item of v) {
2619
- encT58(w, item);
2641
+ encT59(w, item);
2620
2642
  }
2621
2643
  }
2622
2644
  function decT44(r) {
2623
2645
  const length = r.length();
2624
2646
  const out = [];
2625
2647
  for (let i = 0; i < length; i++)
2626
- out.push(decT58(r));
2648
+ out.push(decT59(r));
2649
+ return out;
2650
+ }
2651
+ function encT45(w, v) {
2652
+ w.length(v.length);
2653
+ for (const item of v) {
2654
+ encT60(w, item);
2655
+ }
2656
+ }
2657
+ function decT45(r) {
2658
+ const length = r.length();
2659
+ const out = [];
2660
+ for (let i = 0; i < length; i++)
2661
+ out.push(decT60(r));
2627
2662
  return out;
2628
2663
  }
2629
2664
  function encIrBindingSource(w, v) {
@@ -2637,26 +2672,26 @@ function decIrBindingSource(r) {
2637
2672
  const o = { loc: f0, scope: f1 };
2638
2673
  return o;
2639
2674
  }
2640
- function encT46(w, v) {
2675
+ function encT47(w, v) {
2641
2676
  w.length(v.length);
2642
2677
  for (const item of v) {
2643
- encT59(w, item);
2678
+ encIrRecordField(w, item);
2644
2679
  }
2645
2680
  }
2646
- function decT46(r) {
2681
+ function decT47(r) {
2647
2682
  const length = r.length();
2648
2683
  const out = [];
2649
2684
  for (let i = 0; i < length; i++)
2650
- out.push(decT59(r));
2685
+ out.push(decIrRecordField(r));
2651
2686
  return out;
2652
2687
  }
2653
- function encT47(w, v) {
2688
+ function encT48(w, v) {
2654
2689
  w.length(v.length);
2655
2690
  for (const item of v) {
2656
2691
  encT8(w, item);
2657
2692
  }
2658
2693
  }
2659
- function decT47(r) {
2694
+ function decT48(r) {
2660
2695
  const length = r.length();
2661
2696
  const out = [];
2662
2697
  for (let i = 0; i < length; i++)
@@ -2666,47 +2701,47 @@ function decT47(r) {
2666
2701
  function encIrUnionDiscriminant(w, v) {
2667
2702
  w.keys(Object.keys(v), KEYS99);
2668
2703
  w.str(v.field);
2669
- encT60(w, v.cases);
2704
+ encT62(w, v.cases);
2670
2705
  }
2671
2706
  function decIrUnionDiscriminant(r) {
2672
2707
  const f0 = r.str();
2673
- const f1 = decT60(r);
2708
+ const f1 = decT62(r);
2674
2709
  const o = { field: f0, cases: f1 };
2675
2710
  return o;
2676
2711
  }
2677
- function encT49(w, v) {
2712
+ function encT50(w, v) {
2678
2713
  w.length(v.length);
2679
2714
  for (const item of v) {
2680
- encT61(w, item);
2715
+ encT63(w, item);
2681
2716
  }
2682
2717
  }
2683
- function decT49(r) {
2718
+ function decT50(r) {
2684
2719
  const length = r.length();
2685
2720
  const out = [];
2686
2721
  for (let i = 0; i < length; i++)
2687
- out.push(decT61(r));
2722
+ out.push(decT63(r));
2688
2723
  return out;
2689
2724
  }
2690
- function encT50(w, v) {
2725
+ function encT51(w, v) {
2691
2726
  w.length(v.length);
2692
2727
  for (const item of v) {
2693
- encT62(w, item);
2728
+ encT64(w, item);
2694
2729
  }
2695
2730
  }
2696
- function decT50(r) {
2731
+ function decT51(r) {
2697
2732
  const length = r.length();
2698
2733
  const out = [];
2699
2734
  for (let i = 0; i < length; i++)
2700
- out.push(decT62(r));
2735
+ out.push(decT64(r));
2701
2736
  return out;
2702
2737
  }
2703
- function encT51(w, v) {
2738
+ function encT52(w, v) {
2704
2739
  w.length(v.length);
2705
2740
  for (const item of v) {
2706
2741
  encIrFfiParam(w, item);
2707
2742
  }
2708
2743
  }
2709
- function decT51(r) {
2744
+ function decT52(r) {
2710
2745
  const length = r.length();
2711
2746
  const out = [];
2712
2747
  for (let i = 0; i < length; i++)
@@ -2717,14 +2752,14 @@ function encIrLibCallback(w, v) {
2717
2752
  w.keys(Object.keys(v), KEYS100);
2718
2753
  w.str(v.name);
2719
2754
  w.num(v.slot);
2720
- encT64(w, v.params);
2755
+ encT66(w, v.params);
2721
2756
  w.str(v.returns);
2722
2757
  w.str(v.unregisteredTrap);
2723
2758
  }
2724
2759
  function decIrLibCallback(r) {
2725
2760
  const f0 = r.str();
2726
2761
  const f1 = r.num();
2727
- const f2 = decT64(r);
2762
+ const f2 = decT66(r);
2728
2763
  const f3 = r.str();
2729
2764
  const f4 = r.str();
2730
2765
  const o = { name: f0, slot: f1, params: f2, returns: f3, unregisteredTrap: f4 };
@@ -2734,7 +2769,7 @@ function encIrLibExport(w, v) {
2734
2769
  w.keys(Object.keys(v), KEYS101);
2735
2770
  w.str(v.symbol);
2736
2771
  w.str(v.fnName);
2737
- encT65(w, v.params);
2772
+ encT67(w, v.params);
2738
2773
  w.str(v.returns);
2739
2774
  if (v.inboundBytesTrap === undefined)
2740
2775
  w.byte(0);
@@ -2758,7 +2793,7 @@ function encIrLibExport(w, v) {
2758
2793
  function decIrLibExport(r) {
2759
2794
  const f0 = r.str();
2760
2795
  const f1 = r.str();
2761
- const f2 = decT65(r);
2796
+ const f2 = decT67(r);
2762
2797
  const f3 = r.str();
2763
2798
  const f4 = r.tag(2, "IrModule.lib.exports[].inboundBytesTrap") === 0 ? undefined : r.str();
2764
2799
  const f5 = r.tag(2, "IrModule.lib.exports[].inboundIntTrap") === 0 ? undefined : r.str();
@@ -2796,7 +2831,7 @@ function encIrExpr(w, v) {
2796
2831
  w.keys(Object.keys(v), KEYS103);
2797
2832
  w.str(v.method);
2798
2833
  encIrExpr(w, v.receiver);
2799
- encT66(w, v.args);
2834
+ encT68(w, v.args);
2800
2835
  encIrType(w, v.type);
2801
2836
  encSrcLoc(w, v.loc);
2802
2837
  return;
@@ -2822,12 +2857,12 @@ function encIrExpr(w, v) {
2822
2857
  case "arrayLit": {
2823
2858
  w.length(3);
2824
2859
  w.keys(Object.keys(v), KEYS106);
2825
- encT66(w, v.elems);
2860
+ encT68(w, v.elems);
2826
2861
  if (v.spreads === undefined)
2827
2862
  w.byte(0);
2828
2863
  else {
2829
2864
  w.byte(1);
2830
- encT67(w, v.spreads);
2865
+ encT69(w, v.spreads);
2831
2866
  }
2832
2867
  if (v.capacity === undefined)
2833
2868
  w.byte(0);
@@ -2911,7 +2946,7 @@ function encIrExpr(w, v) {
2911
2946
  w.keys(Object.keys(v), KEYS114);
2912
2947
  w.str(v.method);
2913
2948
  encIrExpr(w, v.receiver);
2914
- encT66(w, v.args);
2949
+ encT68(w, v.args);
2915
2950
  encIrType(w, v.type);
2916
2951
  encSrcLoc(w, v.loc);
2917
2952
  if (v.invalidNaN === undefined)
@@ -2945,7 +2980,7 @@ function encIrExpr(w, v) {
2945
2980
  w.length(13);
2946
2981
  w.keys(Object.keys(v), KEYS116);
2947
2982
  w.str(v.callee);
2948
- encT66(w, v.args);
2983
+ encT68(w, v.args);
2949
2984
  encIrType(w, v.type);
2950
2985
  encSrcLoc(w, v.loc);
2951
2986
  return;
@@ -2960,7 +2995,7 @@ function encIrExpr(w, v) {
2960
2995
  w.byte(1);
2961
2996
  encIrExpr(w, v.receiver);
2962
2997
  }
2963
- encT66(w, v.args);
2998
+ encT68(w, v.args);
2964
2999
  encIrType(w, v.type);
2965
3000
  encSrcLoc(w, v.loc);
2966
3001
  return;
@@ -3059,7 +3094,7 @@ function encIrExpr(w, v) {
3059
3094
  case "dynArrLit": {
3060
3095
  w.length(23);
3061
3096
  w.keys(Object.keys(v), KEYS126);
3062
- encT66(w, v.elems);
3097
+ encT68(w, v.elems);
3063
3098
  encIrType(w, v.type);
3064
3099
  encSrcLoc(w, v.loc);
3065
3100
  return;
@@ -3081,12 +3116,12 @@ function encIrExpr(w, v) {
3081
3116
  w.byte(1);
3082
3117
  encIrExpr(w, v.calleeNameValue);
3083
3118
  }
3084
- encT66(w, v.args);
3119
+ encT68(w, v.args);
3085
3120
  if (v.spreads === undefined)
3086
3121
  w.byte(0);
3087
3122
  else {
3088
3123
  w.byte(1);
3089
- encT68(w, v.spreads);
3124
+ encT70(w, v.spreads);
3090
3125
  }
3091
3126
  encIrType(w, v.type);
3092
3127
  encSrcLoc(w, v.loc);
@@ -3216,7 +3251,7 @@ function encIrExpr(w, v) {
3216
3251
  w.byte(1);
3217
3252
  encIrExpr(w, v.calleeNameValue);
3218
3253
  }
3219
- encT66(w, v.args);
3254
+ encT68(w, v.args);
3220
3255
  encIrType(w, v.type);
3221
3256
  encSrcLoc(w, v.loc);
3222
3257
  return;
@@ -3258,7 +3293,7 @@ function encIrExpr(w, v) {
3258
3293
  w.byte(0);
3259
3294
  else {
3260
3295
  w.byte(1);
3261
- encT69(w, v.fields);
3296
+ encT71(w, v.fields);
3262
3297
  }
3263
3298
  encIrType(w, v.type);
3264
3299
  encSrcLoc(w, v.loc);
@@ -3304,7 +3339,7 @@ function encIrExpr(w, v) {
3304
3339
  w.length(35);
3305
3340
  w.keys(Object.keys(v), KEYS138);
3306
3341
  w.str(v.import);
3307
- encT66(w, v.args);
3342
+ encT68(w, v.args);
3308
3343
  encIrType(w, v.type);
3309
3344
  encSrcLoc(w, v.loc);
3310
3345
  return;
@@ -3312,7 +3347,12 @@ function encIrExpr(w, v) {
3312
3347
  case "fieldAbsent": {
3313
3348
  w.length(36);
3314
3349
  w.keys(Object.keys(v), KEYS139);
3315
- w.str(v.unionId);
3350
+ if (v.unionId === undefined)
3351
+ w.byte(0);
3352
+ else {
3353
+ w.byte(1);
3354
+ w.str(v.unionId);
3355
+ }
3316
3356
  encIrType(w, v.type);
3317
3357
  encSrcLoc(w, v.loc);
3318
3358
  return;
@@ -3387,7 +3427,7 @@ function encIrExpr(w, v) {
3387
3427
  w.length(43);
3388
3428
  w.keys(Object.keys(v), KEYS146);
3389
3429
  w.str(v.name);
3390
- encT66(w, v.args);
3430
+ encT68(w, v.args);
3391
3431
  encIrType(w, v.type);
3392
3432
  encSrcLoc(w, v.loc);
3393
3433
  return;
@@ -3416,7 +3456,7 @@ function encIrExpr(w, v) {
3416
3456
  w.length(45);
3417
3457
  w.keys(Object.keys(v), KEYS148);
3418
3458
  w.str(v.fn);
3419
- encT66(w, v.args);
3459
+ encT68(w, v.args);
3420
3460
  encIrType(w, v.type);
3421
3461
  encSrcLoc(w, v.loc);
3422
3462
  if (v.prototypeIdentityOnly === undefined)
@@ -3435,7 +3475,7 @@ function encIrExpr(w, v) {
3435
3475
  w.byte(0);
3436
3476
  else {
3437
3477
  w.byte(1);
3438
- encT70(w, v.assertOptions);
3478
+ encT72(w, v.assertOptions);
3439
3479
  }
3440
3480
  if (v.bindsThis === undefined)
3441
3481
  w.byte(0);
@@ -3460,7 +3500,7 @@ function encIrExpr(w, v) {
3460
3500
  w.keys(Object.keys(v), KEYS150);
3461
3501
  w.str(v.method);
3462
3502
  encIrExpr(w, v.receiver);
3463
- encT66(w, v.args);
3503
+ encT68(w, v.args);
3464
3504
  encIrType(w, v.type);
3465
3505
  encSrcLoc(w, v.loc);
3466
3506
  return;
@@ -3472,7 +3512,7 @@ function encIrExpr(w, v) {
3472
3512
  w.byte(0);
3473
3513
  else {
3474
3514
  w.byte(1);
3475
- encT71(w, v.seed);
3515
+ encT73(w, v.seed);
3476
3516
  }
3477
3517
  encIrType(w, v.type);
3478
3518
  encSrcLoc(w, v.loc);
@@ -3490,7 +3530,7 @@ function encIrExpr(w, v) {
3490
3530
  w.length(50);
3491
3531
  w.keys(Object.keys(v), KEYS153);
3492
3532
  w.str(v.className);
3493
- encT66(w, v.args);
3533
+ encT68(w, v.args);
3494
3534
  encIrType(w, v.type);
3495
3535
  encSrcLoc(w, v.loc);
3496
3536
  return;
@@ -3507,7 +3547,7 @@ function encIrExpr(w, v) {
3507
3547
  w.length(52);
3508
3548
  w.keys(Object.keys(v), KEYS155);
3509
3549
  encIrExpr(w, v.callee);
3510
- encT66(w, v.args);
3550
+ encT68(w, v.args);
3511
3551
  encIrType(w, v.type);
3512
3552
  encSrcLoc(w, v.loc);
3513
3553
  return;
@@ -3579,7 +3619,7 @@ function encIrExpr(w, v) {
3579
3619
  w.length(59);
3580
3620
  w.keys(Object.keys(v), KEYS162);
3581
3621
  encIrExpr(w, v.source);
3582
- encT72(w, v.overrides);
3622
+ encT74(w, v.overrides);
3583
3623
  encIrType(w, v.type);
3584
3624
  encSrcLoc(w, v.loc);
3585
3625
  return;
@@ -3629,7 +3669,7 @@ function encIrExpr(w, v) {
3629
3669
  case "recordLit": {
3630
3670
  w.length(63);
3631
3671
  w.keys(Object.keys(v), KEYS166);
3632
- encT73(w, v.fields);
3672
+ encT75(w, v.fields);
3633
3673
  if (v.nullProto === undefined)
3634
3674
  w.byte(0);
3635
3675
  else {
@@ -3673,7 +3713,7 @@ function encIrExpr(w, v) {
3673
3713
  w.keys(Object.keys(v), KEYS170);
3674
3714
  w.str(v.method);
3675
3715
  encIrExpr(w, v.receiver);
3676
- encT66(w, v.args);
3716
+ encT68(w, v.args);
3677
3717
  encIrType(w, v.type);
3678
3718
  encSrcLoc(w, v.loc);
3679
3719
  return;
@@ -3720,7 +3760,7 @@ function encIrExpr(w, v) {
3720
3760
  w.keys(Object.keys(v), KEYS174);
3721
3761
  w.str(v.method);
3722
3762
  encIrExpr(w, v.receiver);
3723
- encT66(w, v.args);
3763
+ encT68(w, v.args);
3724
3764
  encIrType(w, v.type);
3725
3765
  encSrcLoc(w, v.loc);
3726
3766
  return;
@@ -3772,7 +3812,7 @@ function encIrExpr(w, v) {
3772
3812
  w.keys(Object.keys(v), KEYS179);
3773
3813
  w.str(v.method);
3774
3814
  encIrExpr(w, v.receiver);
3775
- encT66(w, v.args);
3815
+ encT68(w, v.args);
3776
3816
  encIrType(w, v.type);
3777
3817
  encSrcLoc(w, v.loc);
3778
3818
  return;
@@ -3899,7 +3939,7 @@ function encIrExpr(w, v) {
3899
3939
  w.keys(Object.keys(v), KEYS192);
3900
3940
  w.str(v.fromId);
3901
3941
  w.str(v.unionId);
3902
- encT67(w, v.tags);
3942
+ encT69(w, v.tags);
3903
3943
  encIrExpr(w, v.value);
3904
3944
  encIrType(w, v.type);
3905
3945
  encSrcLoc(w, v.loc);
@@ -3944,7 +3984,7 @@ function encIrExpr(w, v) {
3944
3984
  w.keys(Object.keys(v), KEYS197);
3945
3985
  w.str(v.className);
3946
3986
  w.str(v.method);
3947
- encT66(w, v.args);
3987
+ encT68(w, v.args);
3948
3988
  encIrType(w, v.type);
3949
3989
  encSrcLoc(w, v.loc);
3950
3990
  if (v.targets === undefined)
@@ -3980,7 +4020,7 @@ function encIrExpr(w, v) {
3980
4020
  w.byte(0);
3981
4021
  else {
3982
4022
  w.byte(1);
3983
- encT74(w, v.captureCompletion);
4023
+ encT76(w, v.captureCompletion);
3984
4024
  }
3985
4025
  encIrType(w, v.type);
3986
4026
  encSrcLoc(w, v.loc);
@@ -3994,7 +4034,7 @@ function decIrExpr(r) {
3994
4034
  case 0: {
3995
4035
  const f0 = r.str();
3996
4036
  const f1 = decIrExpr(r);
3997
- const f2 = decT66(r);
4037
+ const f2 = decT68(r);
3998
4038
  const f3 = decIrType(r);
3999
4039
  const f4 = decSrcLoc(r);
4000
4040
  const o = { kind: "arrIntrinsic", method: f0, receiver: f1, args: f2, type: f3, loc: f4 };
@@ -4017,8 +4057,8 @@ function decIrExpr(r) {
4017
4057
  return o;
4018
4058
  }
4019
4059
  case 3: {
4020
- const f0 = decT66(r);
4021
- const f1 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<arrayLit>.spreads") === 0 ? undefined : decT67(r);
4060
+ const f0 = decT68(r);
4061
+ const f1 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<arrayLit>.spreads") === 0 ? undefined : decT69(r);
4022
4062
  const f2 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<arrayLit>.capacity") === 0 ? undefined : r.num();
4023
4063
  const f3 = decIrType(r);
4024
4064
  const f4 = decSrcLoc(r);
@@ -4083,7 +4123,7 @@ function decIrExpr(r) {
4083
4123
  case 11: {
4084
4124
  const f0 = r.str();
4085
4125
  const f1 = decIrExpr(r);
4086
- const f2 = decT66(r);
4126
+ const f2 = decT68(r);
4087
4127
  const f3 = decIrType(r);
4088
4128
  const f4 = decSrcLoc(r);
4089
4129
  const f5 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<bytesIntrinsic>.invalidNaN") === 0 ? undefined : r.bool();
@@ -4100,7 +4140,7 @@ function decIrExpr(r) {
4100
4140
  }
4101
4141
  case 13: {
4102
4142
  const f0 = r.str();
4103
- const f1 = decT66(r);
4143
+ const f1 = decT68(r);
4104
4144
  const f2 = decIrType(r);
4105
4145
  const f3 = decSrcLoc(r);
4106
4146
  const o = { kind: "call", callee: f0, args: f1, type: f2, loc: f3 };
@@ -4109,7 +4149,7 @@ function decIrExpr(r) {
4109
4149
  case 14: {
4110
4150
  const f0 = decIrExpr(r);
4111
4151
  const f1 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<callValue>.receiver") === 0 ? undefined : decIrExpr(r);
4112
- const f2 = decT66(r);
4152
+ const f2 = decT68(r);
4113
4153
  const f3 = decIrType(r);
4114
4154
  const f4 = decSrcLoc(r);
4115
4155
  const o = { kind: "callValue", callee: f0, ...(f1 !== undefined ? { receiver: f1 } : {}), args: f2, type: f3, loc: f4 };
@@ -4179,7 +4219,7 @@ function decIrExpr(r) {
4179
4219
  return o;
4180
4220
  }
4181
4221
  case 23: {
4182
- const f0 = decT66(r);
4222
+ const f0 = decT68(r);
4183
4223
  const f1 = decIrType(r);
4184
4224
  const f2 = decSrcLoc(r);
4185
4225
  const o = { kind: "dynArrLit", elems: f0, type: f1, loc: f2 };
@@ -4190,8 +4230,8 @@ function decIrExpr(r) {
4190
4230
  const f1 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<dynCall>.receiver") === 0 ? undefined : decIrExpr(r);
4191
4231
  const f2 = r.str();
4192
4232
  const f3 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<dynCall>.calleeNameValue") === 0 ? undefined : decIrExpr(r);
4193
- const f4 = decT66(r);
4194
- const f5 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<dynCall>.spreads") === 0 ? undefined : decT68(r);
4233
+ const f4 = decT68(r);
4234
+ const f5 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<dynCall>.spreads") === 0 ? undefined : decT70(r);
4195
4235
  const f6 = decIrType(r);
4196
4236
  const f7 = decSrcLoc(r);
4197
4237
  const o = { kind: "dynCall", callee: f0, ...(f1 !== undefined ? { receiver: f1 } : {}), calleeName: f2, ...(f3 !== undefined ? { calleeNameValue: f3 } : {}), args: f4, ...(f5 !== undefined ? { spreads: f5 } : {}), type: f6, loc: f7 };
@@ -4245,7 +4285,7 @@ function decIrExpr(r) {
4245
4285
  const f1 = r.str();
4246
4286
  const f2 = r.str();
4247
4287
  const f3 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<dynInvoke>.calleeNameValue") === 0 ? undefined : decIrExpr(r);
4248
- const f4 = decT66(r);
4288
+ const f4 = decT68(r);
4249
4289
  const f5 = decIrType(r);
4250
4290
  const f6 = decSrcLoc(r);
4251
4291
  const o = { kind: "dynInvoke", recv: f0, method: f1, calleeName: f2, ...(f3 !== undefined ? { calleeNameValue: f3 } : {}), args: f4, type: f5, loc: f6 };
@@ -4270,7 +4310,7 @@ function decIrExpr(r) {
4270
4310
  return o;
4271
4311
  }
4272
4312
  case 32: {
4273
- const f0 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<dynObjLit>.fields") === 0 ? undefined : decT69(r);
4313
+ const f0 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<dynObjLit>.fields") === 0 ? undefined : decT71(r);
4274
4314
  const f1 = decIrType(r);
4275
4315
  const f2 = decSrcLoc(r);
4276
4316
  const o = { kind: "dynObjLit", ...(f0 !== undefined ? { fields: f0 } : {}), type: f1, loc: f2 };
@@ -4297,17 +4337,17 @@ function decIrExpr(r) {
4297
4337
  }
4298
4338
  case 35: {
4299
4339
  const f0 = r.str();
4300
- const f1 = decT66(r);
4340
+ const f1 = decT68(r);
4301
4341
  const f2 = decIrType(r);
4302
4342
  const f3 = decSrcLoc(r);
4303
4343
  const o = { kind: "ffiCall", import: f0, args: f1, type: f2, loc: f3 };
4304
4344
  return o;
4305
4345
  }
4306
4346
  case 36: {
4307
- const f0 = r.str();
4347
+ const f0 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<fieldAbsent>.unionId") === 0 ? undefined : r.str();
4308
4348
  const f1 = decIrType(r);
4309
4349
  const f2 = decSrcLoc(r);
4310
- const o = { kind: "fieldAbsent", unionId: f0, type: f1, loc: f2 };
4350
+ const o = { kind: "fieldAbsent", ...(f0 !== undefined ? { unionId: f0 } : {}), type: f1, loc: f2 };
4311
4351
  return o;
4312
4352
  }
4313
4353
  case 37: {
@@ -4367,7 +4407,7 @@ function decIrExpr(r) {
4367
4407
  }
4368
4408
  case 43: {
4369
4409
  const f0 = r.str();
4370
- const f1 = decT66(r);
4410
+ const f1 = decT68(r);
4371
4411
  const f2 = decIrType(r);
4372
4412
  const f3 = decSrcLoc(r);
4373
4413
  const o = { kind: "intrinsic", name: f0, args: f1, type: f2, loc: f3 };
@@ -4384,12 +4424,12 @@ function decIrExpr(r) {
4384
4424
  }
4385
4425
  case 45: {
4386
4426
  const f0 = r.str();
4387
- const f1 = decT66(r);
4427
+ const f1 = decT68(r);
4388
4428
  const f2 = decIrType(r);
4389
4429
  const f3 = decSrcLoc(r);
4390
4430
  const f4 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<libCall>.prototypeIdentityOnly") === 0 ? undefined : r.bool();
4391
4431
  const f5 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<libCall>.realTimer") === 0 ? undefined : r.bool();
4392
- const f6 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<libCall>.assertOptions") === 0 ? undefined : decT70(r);
4432
+ const f6 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<libCall>.assertOptions") === 0 ? undefined : decT72(r);
4393
4433
  const f7 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<libCall>.bindsThis") === 0 ? undefined : r.bool();
4394
4434
  const o = { kind: "libCall", fn: f0, args: f1, type: f2, loc: f3, ...(f4 !== undefined ? { prototypeIdentityOnly: f4 } : {}), ...(f5 !== undefined ? { realTimer: f5 } : {}), ...(f6 !== undefined ? { assertOptions: f6 } : {}), ...(f7 !== undefined ? { bindsThis: f7 } : {}) };
4395
4435
  return o;
@@ -4406,14 +4446,14 @@ function decIrExpr(r) {
4406
4446
  case 47: {
4407
4447
  const f0 = r.str();
4408
4448
  const f1 = decIrExpr(r);
4409
- const f2 = decT66(r);
4449
+ const f2 = decT68(r);
4410
4450
  const f3 = decIrType(r);
4411
4451
  const f4 = decSrcLoc(r);
4412
4452
  const o = { kind: "mapIntrinsic", method: f0, receiver: f1, args: f2, type: f3, loc: f4 };
4413
4453
  return o;
4414
4454
  }
4415
4455
  case 48: {
4416
- const f0 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<mapNew>.seed") === 0 ? undefined : decT71(r);
4456
+ const f0 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<mapNew>.seed") === 0 ? undefined : decT73(r);
4417
4457
  const f1 = decIrType(r);
4418
4458
  const f2 = decSrcLoc(r);
4419
4459
  const o = { kind: "mapNew", ...(f0 !== undefined ? { seed: f0 } : {}), type: f1, loc: f2 };
@@ -4428,7 +4468,7 @@ function decIrExpr(r) {
4428
4468
  }
4429
4469
  case 50: {
4430
4470
  const f0 = r.str();
4431
- const f1 = decT66(r);
4471
+ const f1 = decT68(r);
4432
4472
  const f2 = decIrType(r);
4433
4473
  const f3 = decSrcLoc(r);
4434
4474
  const o = { kind: "new", className: f0, args: f1, type: f2, loc: f3 };
@@ -4443,7 +4483,7 @@ function decIrExpr(r) {
4443
4483
  }
4444
4484
  case 52: {
4445
4485
  const f0 = decIrExpr(r);
4446
- const f1 = decT66(r);
4486
+ const f1 = decT68(r);
4447
4487
  const f2 = decIrType(r);
4448
4488
  const f3 = decSrcLoc(r);
4449
4489
  const o = { kind: "newValue", callee: f0, args: f1, type: f2, loc: f3 };
@@ -4498,7 +4538,7 @@ function decIrExpr(r) {
4498
4538
  }
4499
4539
  case 59: {
4500
4540
  const f0 = decIrExpr(r);
4501
- const f1 = decT72(r);
4541
+ const f1 = decT74(r);
4502
4542
  const f2 = decIrType(r);
4503
4543
  const f3 = decSrcLoc(r);
4504
4544
  const o = { kind: "recordClone", source: f0, overrides: f1, type: f2, loc: f3 };
@@ -4534,7 +4574,7 @@ function decIrExpr(r) {
4534
4574
  return o;
4535
4575
  }
4536
4576
  case 63: {
4537
- const f0 = decT73(r);
4577
+ const f0 = decT75(r);
4538
4578
  const f1 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<recordLit>.nullProto") === 0 ? undefined : r.bool();
4539
4579
  const f2 = decIrType(r);
4540
4580
  const f3 = decSrcLoc(r);
@@ -4569,7 +4609,7 @@ function decIrExpr(r) {
4569
4609
  case 67: {
4570
4610
  const f0 = r.str();
4571
4611
  const f1 = decIrExpr(r);
4572
- const f2 = decT66(r);
4612
+ const f2 = decT68(r);
4573
4613
  const f3 = decIrType(r);
4574
4614
  const f4 = decSrcLoc(r);
4575
4615
  const o = { kind: "regexIntrinsic", method: f0, receiver: f1, args: f2, type: f3, loc: f4 };
@@ -4602,7 +4642,7 @@ function decIrExpr(r) {
4602
4642
  case 71: {
4603
4643
  const f0 = r.str();
4604
4644
  const f1 = decIrExpr(r);
4605
- const f2 = decT66(r);
4645
+ const f2 = decT68(r);
4606
4646
  const f3 = decIrType(r);
4607
4647
  const f4 = decSrcLoc(r);
4608
4648
  const o = { kind: "setIntrinsic", method: f0, receiver: f1, args: f2, type: f3, loc: f4 };
@@ -4644,7 +4684,7 @@ function decIrExpr(r) {
4644
4684
  case 76: {
4645
4685
  const f0 = r.str();
4646
4686
  const f1 = decIrExpr(r);
4647
- const f2 = decT66(r);
4687
+ const f2 = decT68(r);
4648
4688
  const f3 = decIrType(r);
4649
4689
  const f4 = decSrcLoc(r);
4650
4690
  const o = { kind: "strIntrinsic", method: f0, receiver: f1, args: f2, type: f3, loc: f4 };
@@ -4758,7 +4798,7 @@ function decIrExpr(r) {
4758
4798
  case 89: {
4759
4799
  const f0 = r.str();
4760
4800
  const f1 = r.str();
4761
- const f2 = decT67(r);
4801
+ const f2 = decT69(r);
4762
4802
  const f3 = decIrExpr(r);
4763
4803
  const f4 = decIrType(r);
4764
4804
  const f5 = decSrcLoc(r);
@@ -4798,7 +4838,7 @@ function decIrExpr(r) {
4798
4838
  case 94: {
4799
4839
  const f0 = r.str();
4800
4840
  const f1 = r.str();
4801
- const f2 = decT66(r);
4841
+ const f2 = decT68(r);
4802
4842
  const f3 = decIrType(r);
4803
4843
  const f4 = decSrcLoc(r);
4804
4844
  const f5 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<virtualCall>.targets") === 0 ? undefined : decT8(r);
@@ -4809,7 +4849,7 @@ function decIrExpr(r) {
4809
4849
  const f0 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<yieldExpr>.value") === 0 ? null : decIrExpr(r);
4810
4850
  const f1 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<yieldExpr>.awaited") === 0 ? undefined : r.bool();
4811
4851
  const f2 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<yieldExpr>.delegated") === 0 ? undefined : r.bool();
4812
- const f3 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<yieldExpr>.captureCompletion") === 0 ? undefined : decT74(r);
4852
+ const f3 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<yieldExpr>.captureCompletion") === 0 ? undefined : decT76(r);
4813
4853
  const f4 = decIrType(r);
4814
4854
  const f5 = decSrcLoc(r);
4815
4855
  const o = { kind: "yieldExpr", value: f0, ...(f1 !== undefined ? { awaited: f1 } : {}), ...(f2 !== undefined ? { delegated: f2 } : {}), ...(f3 !== undefined ? { captureCompletion: f3 } : {}), type: f4, loc: f5 };
@@ -4818,78 +4858,96 @@ function decIrExpr(r) {
4818
4858
  }
4819
4859
  throw new Error("IR codec: invalid IrExpr kind");
4820
4860
  }
4821
- function encT56(w, v) {
4861
+ function encT57(w, v) {
4822
4862
  w.length(v.length);
4823
4863
  for (const item of v) {
4824
- encT75(w, item);
4864
+ encT77(w, item);
4825
4865
  }
4826
4866
  }
4827
- function decT56(r) {
4867
+ function decT57(r) {
4828
4868
  const length = r.length();
4829
4869
  const out = [];
4830
4870
  for (let i = 0; i < length; i++)
4831
- out.push(decT75(r));
4871
+ out.push(decT77(r));
4832
4872
  return out;
4833
4873
  }
4834
- function encT57(w, v) {
4874
+ function encT58(w, v) {
4875
+ w.keys(Object.keys(v), KEYS199);
4876
+ w.str(v.member);
4877
+ w.str(v.helper);
4878
+ }
4879
+ function decT58(r) {
4880
+ const f0 = r.str();
4881
+ const f1 = r.str();
4882
+ const o = { member: f0, helper: f1 };
4883
+ return o;
4884
+ }
4885
+ function encT59(w, v) {
4835
4886
  if (typeof v === "object" && "globalId" in v) {
4836
4887
  w.length(0);
4837
- encT76(w, v);
4888
+ encT78(w, v);
4838
4889
  return;
4839
4890
  }
4840
4891
  if (typeof v === "object" && "wellKnown" in v) {
4841
4892
  w.length(1);
4842
- encT77(w, v);
4893
+ encT79(w, v);
4843
4894
  return;
4844
4895
  }
4845
- throw new Error("IR codec: no arm of T57 matches");
4896
+ throw new Error("IR codec: no arm of T59 matches");
4846
4897
  }
4847
- function decT57(r) {
4898
+ function decT59(r) {
4848
4899
  switch (r.length()) {
4849
4900
  case 0:
4850
- return decT76(r);
4901
+ return decT78(r);
4851
4902
  case 1:
4852
- return decT77(r);
4903
+ return decT79(r);
4853
4904
  }
4854
- throw new Error("IR codec: invalid T57 arm");
4905
+ throw new Error("IR codec: invalid T59 arm");
4855
4906
  }
4856
- function encT58(w, v) {
4857
- w.keys(Object.keys(v), KEYS199);
4907
+ function encT60(w, v) {
4908
+ w.keys(Object.keys(v), KEYS200);
4858
4909
  w.str(v.name);
4859
4910
  encIrType(w, v.type);
4860
4911
  }
4861
- function decT58(r) {
4912
+ function decT60(r) {
4862
4913
  const f0 = r.str();
4863
4914
  const f1 = decIrType(r);
4864
4915
  const o = { name: f0, type: f1 };
4865
4916
  return o;
4866
4917
  }
4867
- function encT59(w, v) {
4868
- w.keys(Object.keys(v), KEYS200);
4918
+ function encIrRecordField(w, v) {
4919
+ w.keys(Object.keys(v), KEYS201);
4869
4920
  w.str(v.name);
4870
4921
  encIrType(w, v.type);
4922
+ if (v.optional === undefined)
4923
+ w.byte(0);
4924
+ else {
4925
+ w.byte(1);
4926
+ w.bool(v.optional);
4927
+ }
4871
4928
  }
4872
- function decT59(r) {
4929
+ function decIrRecordField(r) {
4873
4930
  const f0 = r.str();
4874
4931
  const f1 = decIrType(r);
4875
- const o = { name: f0, type: f1 };
4932
+ const f2 = r.tag(2, "IrModule.records[].fields[].optional") === 0 ? undefined : r.bool();
4933
+ const o = { name: f0, type: f1, ...(f2 !== undefined ? { optional: f2 } : {}) };
4876
4934
  return o;
4877
4935
  }
4878
- function encT60(w, v) {
4936
+ function encT62(w, v) {
4879
4937
  w.length(v.length);
4880
4938
  for (const item of v) {
4881
- encT78(w, item);
4939
+ encT80(w, item);
4882
4940
  }
4883
4941
  }
4884
- function decT60(r) {
4942
+ function decT62(r) {
4885
4943
  const length = r.length();
4886
4944
  const out = [];
4887
4945
  for (let i = 0; i < length; i++)
4888
- out.push(decT78(r));
4946
+ out.push(decT80(r));
4889
4947
  return out;
4890
4948
  }
4891
- function encT61(w, v) {
4892
- w.keys(Object.keys(v), KEYS201);
4949
+ function encT63(w, v) {
4950
+ w.keys(Object.keys(v), KEYS202);
4893
4951
  w.str(v.path);
4894
4952
  w.num(v.size);
4895
4953
  w.str(v.sha256);
@@ -4900,7 +4958,7 @@ function encT61(w, v) {
4900
4958
  w.bool(v.placeholder);
4901
4959
  }
4902
4960
  }
4903
- function decT61(r) {
4961
+ function decT63(r) {
4904
4962
  const f0 = r.str();
4905
4963
  const f1 = r.num();
4906
4964
  const f2 = r.str();
@@ -4908,12 +4966,12 @@ function decT61(r) {
4908
4966
  const o = { path: f0, size: f1, sha256: f2, ...(f3 !== undefined ? { placeholder: f3 } : {}) };
4909
4967
  return o;
4910
4968
  }
4911
- function encT62(w, v) {
4912
- w.keys(Object.keys(v), KEYS202);
4969
+ function encT64(w, v) {
4970
+ w.keys(Object.keys(v), KEYS203);
4913
4971
  w.str(v.path);
4914
4972
  w.str(v.target);
4915
4973
  }
4916
- function decT62(r) {
4974
+ function decT64(r) {
4917
4975
  const f0 = r.str();
4918
4976
  const f1 = r.str();
4919
4977
  const o = { path: f0, target: f1 };
@@ -4955,86 +5013,86 @@ function decIrFfiParam(r) {
4955
5013
  }
4956
5014
  throw new Error("IR codec: invalid IrFfiParam arm");
4957
5015
  }
4958
- function encT64(w, v) {
5016
+ function encT66(w, v) {
4959
5017
  w.length(v.length);
4960
5018
  for (const item of v) {
4961
5019
  w.str(item);
4962
5020
  }
4963
5021
  }
4964
- function decT64(r) {
5022
+ function decT66(r) {
4965
5023
  const length = r.length();
4966
5024
  const out = [];
4967
5025
  for (let i = 0; i < length; i++)
4968
5026
  out.push(r.str());
4969
5027
  return out;
4970
5028
  }
4971
- function encT65(w, v) {
5029
+ function encT67(w, v) {
4972
5030
  w.length(v.length);
4973
5031
  for (const item of v) {
4974
5032
  w.str(item);
4975
5033
  }
4976
5034
  }
4977
- function decT65(r) {
5035
+ function decT67(r) {
4978
5036
  const length = r.length();
4979
5037
  const out = [];
4980
5038
  for (let i = 0; i < length; i++)
4981
5039
  out.push(r.str());
4982
5040
  return out;
4983
5041
  }
4984
- function encT66(w, v) {
5042
+ function encT68(w, v) {
4985
5043
  w.length(v.length);
4986
5044
  for (const item of v) {
4987
5045
  encIrExpr(w, item);
4988
5046
  }
4989
5047
  }
4990
- function decT66(r) {
5048
+ function decT68(r) {
4991
5049
  const length = r.length();
4992
5050
  const out = [];
4993
5051
  for (let i = 0; i < length; i++)
4994
5052
  out.push(decIrExpr(r));
4995
5053
  return out;
4996
5054
  }
4997
- function encT67(w, v) {
5055
+ function encT69(w, v) {
4998
5056
  w.length(v.length);
4999
5057
  for (const item of v) {
5000
5058
  w.num(item);
5001
5059
  }
5002
5060
  }
5003
- function decT67(r) {
5061
+ function decT69(r) {
5004
5062
  const length = r.length();
5005
5063
  const out = [];
5006
5064
  for (let i = 0; i < length; i++)
5007
5065
  out.push(r.num());
5008
5066
  return out;
5009
5067
  }
5010
- function encT68(w, v) {
5068
+ function encT70(w, v) {
5011
5069
  w.length(v.length);
5012
5070
  for (const item of v) {
5013
- encT82(w, item);
5071
+ encT84(w, item);
5014
5072
  }
5015
5073
  }
5016
- function decT68(r) {
5074
+ function decT70(r) {
5017
5075
  const length = r.length();
5018
5076
  const out = [];
5019
5077
  for (let i = 0; i < length; i++)
5020
- out.push(decT82(r));
5078
+ out.push(decT84(r));
5021
5079
  return out;
5022
5080
  }
5023
- function encT69(w, v) {
5081
+ function encT71(w, v) {
5024
5082
  w.length(v.length);
5025
5083
  for (const item of v) {
5026
- encT83(w, item);
5084
+ encT85(w, item);
5027
5085
  }
5028
5086
  }
5029
- function decT69(r) {
5087
+ function decT71(r) {
5030
5088
  const length = r.length();
5031
5089
  const out = [];
5032
5090
  for (let i = 0; i < length; i++)
5033
- out.push(decT83(r));
5091
+ out.push(decT85(r));
5034
5092
  return out;
5035
5093
  }
5036
- function encT70(w, v) {
5037
- w.keys(Object.keys(v), KEYS203);
5094
+ function encT72(w, v) {
5095
+ w.keys(Object.keys(v), KEYS204);
5038
5096
  if (v.diff === undefined)
5039
5097
  w.byte(0);
5040
5098
  else {
@@ -5048,62 +5106,62 @@ function encT70(w, v) {
5048
5106
  w.bool(v.skipPrototype);
5049
5107
  }
5050
5108
  }
5051
- function decT70(r) {
5109
+ function decT72(r) {
5052
5110
  const f0 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<libCall>.assertOptions.diff") === 0 ? undefined : r.str();
5053
5111
  const f1 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<libCall>.assertOptions.skipPrototype") === 0 ? undefined : r.bool();
5054
5112
  const o = { ...(f0 !== undefined ? { diff: f0 } : {}), ...(f1 !== undefined ? { skipPrototype: f1 } : {}) };
5055
5113
  return o;
5056
5114
  }
5057
- function encT71(w, v) {
5115
+ function encT73(w, v) {
5058
5116
  w.length(v.length);
5059
5117
  for (const item of v) {
5060
- encT84(w, item);
5118
+ encT86(w, item);
5061
5119
  }
5062
5120
  }
5063
- function decT71(r) {
5121
+ function decT73(r) {
5064
5122
  const length = r.length();
5065
5123
  const out = [];
5066
5124
  for (let i = 0; i < length; i++)
5067
- out.push(decT84(r));
5125
+ out.push(decT86(r));
5068
5126
  return out;
5069
5127
  }
5070
- function encT72(w, v) {
5128
+ function encT74(w, v) {
5071
5129
  w.length(v.length);
5072
5130
  for (const item of v) {
5073
- encT85(w, item);
5131
+ encT87(w, item);
5074
5132
  }
5075
5133
  }
5076
- function decT72(r) {
5134
+ function decT74(r) {
5077
5135
  const length = r.length();
5078
5136
  const out = [];
5079
5137
  for (let i = 0; i < length; i++)
5080
- out.push(decT85(r));
5138
+ out.push(decT87(r));
5081
5139
  return out;
5082
5140
  }
5083
- function encT73(w, v) {
5141
+ function encT75(w, v) {
5084
5142
  w.length(v.length);
5085
5143
  for (const item of v) {
5086
- encT86(w, item);
5144
+ encT88(w, item);
5087
5145
  }
5088
5146
  }
5089
- function decT73(r) {
5147
+ function decT75(r) {
5090
5148
  const length = r.length();
5091
5149
  const out = [];
5092
5150
  for (let i = 0; i < length; i++)
5093
- out.push(decT86(r));
5151
+ out.push(decT88(r));
5094
5152
  return out;
5095
5153
  }
5096
- function encT74(w, v) {
5097
- w.keys(Object.keys(v), KEYS204);
5154
+ function encT76(w, v) {
5155
+ w.keys(Object.keys(v), KEYS205);
5098
5156
  encIrType(w, v.returnType);
5099
5157
  }
5100
- function decT74(r) {
5158
+ function decT76(r) {
5101
5159
  const f0 = decIrType(r);
5102
5160
  const o = { returnType: f0 };
5103
5161
  return o;
5104
5162
  }
5105
- function encT75(w, v) {
5106
- w.keys(Object.keys(v), KEYS205);
5163
+ function encT77(w, v) {
5164
+ w.keys(Object.keys(v), KEYS206);
5107
5165
  if (v.test === null)
5108
5166
  w.byte(0);
5109
5167
  else {
@@ -5112,47 +5170,47 @@ function encT75(w, v) {
5112
5170
  }
5113
5171
  encT20(w, v.body);
5114
5172
  }
5115
- function decT75(r) {
5173
+ function decT77(r) {
5116
5174
  const f0 = r.tag(2, "IrFunction.body[]<switch>.cases[].test") === 0 ? null : decIrExpr(r);
5117
5175
  const f1 = decT20(r);
5118
5176
  const o = { test: f0, body: f1 };
5119
5177
  return o;
5120
5178
  }
5121
- function encT76(w, v) {
5122
- w.keys(Object.keys(v), KEYS206);
5179
+ function encT78(w, v) {
5180
+ w.keys(Object.keys(v), KEYS207);
5123
5181
  w.str(v.field);
5124
5182
  w.str(v.globalId);
5125
5183
  }
5126
- function decT76(r) {
5184
+ function decT78(r) {
5127
5185
  const f0 = r.str();
5128
5186
  const f1 = r.str();
5129
5187
  const o = { field: f0, globalId: f1 };
5130
5188
  return o;
5131
5189
  }
5132
- function encT77(w, v) {
5133
- w.keys(Object.keys(v), KEYS207);
5190
+ function encT79(w, v) {
5191
+ w.keys(Object.keys(v), KEYS208);
5134
5192
  w.str(v.field);
5135
5193
  w.str(v.wellKnown);
5136
5194
  }
5137
- function decT77(r) {
5195
+ function decT79(r) {
5138
5196
  const f0 = r.str();
5139
5197
  const f1 = r.str();
5140
5198
  const o = { field: f0, wellKnown: f1 };
5141
5199
  return o;
5142
5200
  }
5143
- function encT78(w, v) {
5144
- w.keys(Object.keys(v), KEYS208);
5201
+ function encT80(w, v) {
5202
+ w.keys(Object.keys(v), KEYS209);
5145
5203
  w.num(v.tag);
5146
- encT87(w, v.values);
5204
+ encT89(w, v.values);
5147
5205
  }
5148
- function decT78(r) {
5206
+ function decT80(r) {
5149
5207
  const f0 = r.num();
5150
- const f1 = decT87(r);
5208
+ const f1 = decT89(r);
5151
5209
  const o = { tag: f0, values: f1 };
5152
5210
  return o;
5153
5211
  }
5154
5212
  function encIrFfiContextParam(w, v) {
5155
- w.keys(Object.keys(v), KEYS209);
5213
+ w.keys(Object.keys(v), KEYS210);
5156
5214
  w.str(v.context);
5157
5215
  }
5158
5216
  function decIrFfiContextParam(r) {
@@ -5161,69 +5219,69 @@ function decIrFfiContextParam(r) {
5161
5219
  return o;
5162
5220
  }
5163
5221
  function encIrFfiCallbackParam(w, v) {
5164
- w.keys(Object.keys(v), KEYS210);
5165
- encT88(w, v.callback);
5222
+ w.keys(Object.keys(v), KEYS211);
5223
+ encT90(w, v.callback);
5166
5224
  }
5167
5225
  function decIrFfiCallbackParam(r) {
5168
- const f0 = decT88(r);
5226
+ const f0 = decT90(r);
5169
5227
  const o = { callback: f0 };
5170
5228
  return o;
5171
5229
  }
5172
5230
  function encIrFfiReleaseParam(w, v) {
5173
- w.keys(Object.keys(v), KEYS211);
5174
- encT89(w, v.callback);
5231
+ w.keys(Object.keys(v), KEYS212);
5232
+ encT91(w, v.callback);
5175
5233
  }
5176
5234
  function decIrFfiReleaseParam(r) {
5177
- const f0 = decT89(r);
5235
+ const f0 = decT91(r);
5178
5236
  const o = { callback: f0 };
5179
5237
  return o;
5180
5238
  }
5181
- function encT82(w, v) {
5182
- w.keys(Object.keys(v), KEYS212);
5239
+ function encT84(w, v) {
5240
+ w.keys(Object.keys(v), KEYS213);
5183
5241
  w.num(v.arg);
5184
5242
  w.str(v.what);
5185
5243
  }
5186
- function decT82(r) {
5244
+ function decT84(r) {
5187
5245
  const f0 = r.num();
5188
5246
  const f1 = r.str();
5189
5247
  const o = { arg: f0, what: f1 };
5190
5248
  return o;
5191
5249
  }
5192
- function encT83(w, v) {
5193
- w.keys(Object.keys(v), KEYS213);
5250
+ function encT85(w, v) {
5251
+ w.keys(Object.keys(v), KEYS214);
5194
5252
  encIrExpr(w, v.key);
5195
5253
  encIrExpr(w, v.value);
5196
5254
  }
5197
- function decT83(r) {
5255
+ function decT85(r) {
5198
5256
  const f0 = decIrExpr(r);
5199
5257
  const f1 = decIrExpr(r);
5200
5258
  const o = { key: f0, value: f1 };
5201
5259
  return o;
5202
5260
  }
5203
- function encT84(w, v) {
5204
- w.keys(Object.keys(v), KEYS214);
5261
+ function encT86(w, v) {
5262
+ w.keys(Object.keys(v), KEYS215);
5205
5263
  encIrExpr(w, v.key);
5206
5264
  encIrExpr(w, v.value);
5207
5265
  }
5208
- function decT84(r) {
5266
+ function decT86(r) {
5209
5267
  const f0 = decIrExpr(r);
5210
5268
  const f1 = decIrExpr(r);
5211
5269
  const o = { key: f0, value: f1 };
5212
5270
  return o;
5213
5271
  }
5214
- function encT85(w, v) {
5215
- w.keys(Object.keys(v), KEYS215);
5272
+ function encT87(w, v) {
5273
+ w.keys(Object.keys(v), KEYS216);
5216
5274
  w.str(v.name);
5217
5275
  encIrExpr(w, v.value);
5218
5276
  }
5219
- function decT85(r) {
5277
+ function decT87(r) {
5220
5278
  const f0 = r.str();
5221
5279
  const f1 = decIrExpr(r);
5222
5280
  const o = { name: f0, value: f1 };
5223
5281
  return o;
5224
5282
  }
5225
- function encT86(w, v) {
5226
- w.keys(Object.keys(v), KEYS216);
5283
+ function encT88(w, v) {
5284
+ w.keys(Object.keys(v), KEYS217);
5227
5285
  w.str(v.name);
5228
5286
  encIrExpr(w, v.value);
5229
5287
  if (v.overflow === undefined)
@@ -5233,57 +5291,57 @@ function encT86(w, v) {
5233
5291
  w.bool(v.overflow);
5234
5292
  }
5235
5293
  }
5236
- function decT86(r) {
5294
+ function decT88(r) {
5237
5295
  const f0 = r.str();
5238
5296
  const f1 = decIrExpr(r);
5239
5297
  const f2 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<recordLit>.fields[].overflow") === 0 ? undefined : r.bool();
5240
5298
  const o = { name: f0, value: f1, ...(f2 !== undefined ? { overflow: f2 } : {}) };
5241
5299
  return o;
5242
5300
  }
5243
- function encT87(w, v) {
5301
+ function encT89(w, v) {
5244
5302
  w.length(v.length);
5245
5303
  for (const item of v) {
5246
- encT90(w, item);
5304
+ encT92(w, item);
5247
5305
  }
5248
5306
  }
5249
- function decT87(r) {
5307
+ function decT89(r) {
5250
5308
  const length = r.length();
5251
5309
  const out = [];
5252
5310
  for (let i = 0; i < length; i++)
5253
- out.push(decT90(r));
5311
+ out.push(decT92(r));
5254
5312
  return out;
5255
5313
  }
5256
- function encT88(w, v) {
5257
- w.keys(Object.keys(v), KEYS217);
5314
+ function encT90(w, v) {
5315
+ w.keys(Object.keys(v), KEYS218);
5258
5316
  w.str(v.id);
5259
- encT91(w, v.params);
5317
+ encT93(w, v.params);
5260
5318
  w.str(v.returns);
5261
5319
  w.str(v.lifetime);
5262
5320
  w.str(v.invoke);
5263
5321
  }
5264
- function decT88(r) {
5322
+ function decT90(r) {
5265
5323
  const f0 = r.str();
5266
- const f1 = decT91(r);
5324
+ const f1 = decT93(r);
5267
5325
  const f2 = r.str();
5268
5326
  const f3 = r.str();
5269
5327
  const f4 = r.str();
5270
5328
  const o = { id: f0, params: f1, returns: f2, lifetime: f3, invoke: f4 };
5271
5329
  return o;
5272
5330
  }
5273
- function encT89(w, v) {
5274
- w.keys(Object.keys(v), KEYS218);
5331
+ function encT91(w, v) {
5332
+ w.keys(Object.keys(v), KEYS219);
5275
5333
  w.str(v.release);
5276
- encT91(w, v.params);
5334
+ encT93(w, v.params);
5277
5335
  w.str(v.returns);
5278
5336
  }
5279
- function decT89(r) {
5337
+ function decT91(r) {
5280
5338
  const f0 = r.str();
5281
- const f1 = decT91(r);
5339
+ const f1 = decT93(r);
5282
5340
  const f2 = r.str();
5283
5341
  const o = { release: f0, params: f1, returns: f2 };
5284
5342
  return o;
5285
5343
  }
5286
- function encT90(w, v) {
5344
+ function encT92(w, v) {
5287
5345
  if (typeof v === "string") {
5288
5346
  w.length(0);
5289
5347
  w.str(v);
@@ -5299,9 +5357,9 @@ function encT90(w, v) {
5299
5357
  w.bool(v);
5300
5358
  return;
5301
5359
  }
5302
- throw new Error("IR codec: no arm of T90 matches");
5360
+ throw new Error("IR codec: no arm of T92 matches");
5303
5361
  }
5304
- function decT90(r) {
5362
+ function decT92(r) {
5305
5363
  switch (r.length()) {
5306
5364
  case 0:
5307
5365
  return r.str();
@@ -5310,22 +5368,22 @@ function decT90(r) {
5310
5368
  case 2:
5311
5369
  return r.bool();
5312
5370
  }
5313
- throw new Error("IR codec: invalid T90 arm");
5371
+ throw new Error("IR codec: invalid T92 arm");
5314
5372
  }
5315
- function encT91(w, v) {
5373
+ function encT93(w, v) {
5316
5374
  w.length(v.length);
5317
5375
  for (const item of v) {
5318
- encT92(w, item);
5376
+ encT94(w, item);
5319
5377
  }
5320
5378
  }
5321
- function decT91(r) {
5379
+ function decT93(r) {
5322
5380
  const length = r.length();
5323
5381
  const out = [];
5324
5382
  for (let i = 0; i < length; i++)
5325
- out.push(decT92(r));
5383
+ out.push(decT94(r));
5326
5384
  return out;
5327
5385
  }
5328
- function encT92(w, v) {
5386
+ function encT94(w, v) {
5329
5387
  if (typeof v === "string") {
5330
5388
  w.length(0);
5331
5389
  w.str(v);
@@ -5336,15 +5394,15 @@ function encT92(w, v) {
5336
5394
  encIrFfiContextParam(w, v);
5337
5395
  return;
5338
5396
  }
5339
- throw new Error("IR codec: no arm of T92 matches");
5397
+ throw new Error("IR codec: no arm of T94 matches");
5340
5398
  }
5341
- function decT92(r) {
5399
+ function decT94(r) {
5342
5400
  switch (r.length()) {
5343
5401
  case 0:
5344
5402
  return r.str();
5345
5403
  case 1:
5346
5404
  return decIrFfiContextParam(r);
5347
5405
  }
5348
- throw new Error("IR codec: invalid T92 arm");
5406
+ throw new Error("IR codec: invalid T94 arm");
5349
5407
  }
5350
5408
  //# sourceMappingURL=codec.generated.js.map