@scriptc/compiler 0.4.7 → 0.4.8

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 (776) hide show
  1. package/ambient/node-fallback/child_process.d.ts +71 -22
  2. package/ambient/node-fallback/crypto.d.ts +15 -7
  3. package/ambient/node-fallback/events.d.ts +23 -5
  4. package/ambient/node-fallback/fs.d.ts +3 -2
  5. package/ambient/node-fallback/http.d.ts +23 -17
  6. package/ambient/node-fallback/https.d.ts +5 -2
  7. package/ambient/node-fallback/net.d.ts +6 -0
  8. package/ambient/node-fallback/os.d.ts +11 -1
  9. package/ambient/node-fallback/path-posix.d.ts +6 -0
  10. package/ambient/node-fallback/path-win32.d.ts +5 -0
  11. package/ambient/node-fallback/path.d.ts +2 -0
  12. package/ambient/node-fallback/zlib.d.ts +31 -2
  13. package/ambient/scriptc-node-fallback.d.ts +37 -7
  14. package/ambient/scriptc.d.ts +7 -2
  15. package/dist/backend/executable-features.js +11 -3
  16. package/dist/backend/executable-features.js.map +1 -1
  17. package/dist/backend/library-pack.d.ts +6 -0
  18. package/dist/backend/library-pack.js +17 -6
  19. package/dist/backend/library-pack.js.map +1 -1
  20. package/dist/backend/library-pack.test.d.ts +1 -0
  21. package/dist/backend/library-pack.test.js +28 -0
  22. package/dist/backend/library-pack.test.js.map +1 -0
  23. package/dist/backend/linker.d.ts +9 -2
  24. package/dist/backend/linker.js +190 -32
  25. package/dist/backend/linker.js.map +1 -1
  26. package/dist/backend/lld.d.ts +8 -4
  27. package/dist/backend/lld.js +19 -13
  28. package/dist/backend/lld.js.map +1 -1
  29. package/dist/backend/lld.test.js +3 -1
  30. package/dist/backend/lld.test.js.map +1 -1
  31. package/dist/backend/llvm/alloc.d.ts +15 -2
  32. package/dist/backend/llvm/alloc.js +172 -36
  33. package/dist/backend/llvm/alloc.js.map +1 -1
  34. package/dist/backend/llvm/alloc.test.js +69 -1
  35. package/dist/backend/llvm/alloc.test.js.map +1 -1
  36. package/dist/backend/llvm/arenas.d.ts +17 -4
  37. package/dist/backend/llvm/arenas.js +105 -10
  38. package/dist/backend/llvm/arenas.js.map +1 -1
  39. package/dist/backend/llvm/arenas.test.js +229 -0
  40. package/dist/backend/llvm/arenas.test.js.map +1 -1
  41. package/dist/backend/llvm/bytes-alias.js +10 -1
  42. package/dist/backend/llvm/bytes-alias.js.map +1 -1
  43. package/dist/backend/llvm/bytes-headers.js +6 -0
  44. package/dist/backend/llvm/bytes-headers.js.map +1 -1
  45. package/dist/backend/llvm/bytes-loop-versions.test.js +25 -0
  46. package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -1
  47. package/dist/backend/llvm/call-lifetimes.js +10 -0
  48. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  49. package/dist/backend/llvm/classes.d.ts +16 -9
  50. package/dist/backend/llvm/classes.js +142 -37
  51. package/dist/backend/llvm/classes.js.map +1 -1
  52. package/dist/backend/llvm/classes.test.js +42 -0
  53. package/dist/backend/llvm/classes.test.js.map +1 -1
  54. package/dist/backend/llvm/cpu-dispatch.d.ts +15 -5
  55. package/dist/backend/llvm/cpu-dispatch.js +31 -7
  56. package/dist/backend/llvm/cpu-dispatch.js.map +1 -1
  57. package/dist/backend/llvm/dyn.d.ts +12 -3
  58. package/dist/backend/llvm/dyn.js +31 -7
  59. package/dist/backend/llvm/dyn.js.map +1 -1
  60. package/dist/backend/llvm/emit-function.js +67 -4
  61. package/dist/backend/llvm/emit-function.js.map +1 -1
  62. package/dist/backend/llvm/emit-module.js +90 -39
  63. package/dist/backend/llvm/emit-module.js.map +1 -1
  64. package/dist/backend/llvm/emit-module.test.d.ts +1 -0
  65. package/dist/backend/llvm/emit-module.test.js +52 -0
  66. package/dist/backend/llvm/emit-module.test.js.map +1 -0
  67. package/dist/backend/llvm/emit-statements.js +99 -15
  68. package/dist/backend/llvm/emit-statements.js.map +1 -1
  69. package/dist/backend/llvm/emitter.d.ts +113 -8
  70. package/dist/backend/llvm/emitter.js +438 -67
  71. package/dist/backend/llvm/emitter.js.map +1 -1
  72. package/dist/backend/llvm/emitter.test.js +31 -3
  73. package/dist/backend/llvm/emitter.test.js.map +1 -1
  74. package/dist/backend/llvm/expr-async.js +19 -1
  75. package/dist/backend/llvm/expr-async.js.map +1 -1
  76. package/dist/backend/llvm/expr-bytes.js +16 -1
  77. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  78. package/dist/backend/llvm/expr-calls.js +18 -2
  79. package/dist/backend/llvm/expr-calls.js.map +1 -1
  80. package/dist/backend/llvm/expr-dynamic.js +31 -10
  81. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  82. package/dist/backend/llvm/expr-primitives.js +31 -3
  83. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  84. package/dist/backend/llvm/expr-records.d.ts +1 -1
  85. package/dist/backend/llvm/expr-records.js +124 -56
  86. package/dist/backend/llvm/expr-records.js.map +1 -1
  87. package/dist/backend/llvm/expr-stream-bridges.js +17 -0
  88. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  89. package/dist/backend/llvm/js-groups.d.ts +21 -0
  90. package/dist/backend/llvm/js-groups.js +277 -0
  91. package/dist/backend/llvm/js-groups.js.map +1 -0
  92. package/dist/backend/llvm/js-ic.d.ts +19 -1
  93. package/dist/backend/llvm/js-ic.js +96 -23
  94. package/dist/backend/llvm/js-ic.js.map +1 -1
  95. package/dist/backend/llvm/lib-dispatch.js +132 -1
  96. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  97. package/dist/backend/llvm/lib-network.js +33 -6
  98. package/dist/backend/llvm/lib-network.js.map +1 -1
  99. package/dist/backend/llvm/lib-process.js +44 -3
  100. package/dist/backend/llvm/lib-process.js.map +1 -1
  101. package/dist/backend/llvm/lib-shared.js +69 -2
  102. package/dist/backend/llvm/lib-shared.js.map +1 -1
  103. package/dist/backend/llvm/local-union-storage.test.js +32 -0
  104. package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
  105. package/dist/backend/llvm/loop-state.js +7 -2
  106. package/dist/backend/llvm/loop-state.js.map +1 -1
  107. package/dist/backend/llvm/map-entry-fusion.d.ts +8 -0
  108. package/dist/backend/llvm/map-entry-fusion.js +3 -3
  109. package/dist/backend/llvm/map-entry-fusion.js.map +1 -1
  110. package/dist/backend/llvm/map-number-lookup.test.js +6 -6
  111. package/dist/backend/llvm/map-number-lookup.test.js.map +1 -1
  112. package/dist/backend/llvm/nullable-unions.js +7 -6
  113. package/dist/backend/llvm/nullable-unions.js.map +1 -1
  114. package/dist/backend/llvm/nullable-unions.test.js +4 -1
  115. package/dist/backend/llvm/nullable-unions.test.js.map +1 -1
  116. package/dist/backend/llvm/receivers.js +3 -0
  117. package/dist/backend/llvm/receivers.js.map +1 -1
  118. package/dist/backend/llvm/record-entry-fusion.d.ts +32 -0
  119. package/dist/backend/llvm/record-entry-fusion.js +217 -0
  120. package/dist/backend/llvm/record-entry-fusion.js.map +1 -0
  121. package/dist/backend/llvm/record-results.d.ts +5 -2
  122. package/dist/backend/llvm/record-results.js +13 -12
  123. package/dist/backend/llvm/record-results.js.map +1 -1
  124. package/dist/backend/llvm/record-views.js +12 -6
  125. package/dist/backend/llvm/record-views.js.map +1 -1
  126. package/dist/backend/llvm/reference-effects.js +1 -0
  127. package/dist/backend/llvm/reference-effects.js.map +1 -1
  128. package/dist/backend/llvm/reference-writes.js +3 -0
  129. package/dist/backend/llvm/reference-writes.js.map +1 -1
  130. package/dist/backend/llvm/region-ir.js +1 -0
  131. package/dist/backend/llvm/region-ir.js.map +1 -1
  132. package/dist/backend/llvm/region-sites.d.ts +18 -0
  133. package/dist/backend/llvm/region-sites.js +79 -1
  134. package/dist/backend/llvm/region-sites.js.map +1 -1
  135. package/dist/backend/llvm/runtime-registries.test.js +53 -6
  136. package/dist/backend/llvm/runtime-registries.test.js.map +1 -1
  137. package/dist/backend/llvm/serialized-ir-emission.test.js +3 -1
  138. package/dist/backend/llvm/serialized-ir-emission.test.js.map +1 -1
  139. package/dist/backend/llvm/shapes.d.ts +33 -3
  140. package/dist/backend/llvm/shapes.js +183 -13
  141. package/dist/backend/llvm/shapes.js.map +1 -1
  142. package/dist/backend/llvm/stack-objects.d.ts +1 -2
  143. package/dist/backend/llvm/stack-objects.js +8 -5
  144. package/dist/backend/llvm/stack-objects.js.map +1 -1
  145. package/dist/backend/llvm/walkers.d.ts +12 -0
  146. package/dist/backend/llvm/walkers.js +46 -2
  147. package/dist/backend/llvm/walkers.js.map +1 -1
  148. package/dist/backend/may-throw.js +12 -2
  149. package/dist/backend/may-throw.js.map +1 -1
  150. package/dist/backend/may-throw.test.js +13 -0
  151. package/dist/backend/may-throw.test.js.map +1 -1
  152. package/dist/backend/native/contracts.d.ts +48 -8
  153. package/dist/backend/native/executable.js +55 -13
  154. package/dist/backend/native/executable.js.map +1 -1
  155. package/dist/backend/native/helper-identity-record.d.ts +11 -0
  156. package/dist/backend/native/helper-identity-record.js +76 -0
  157. package/dist/backend/native/helper-identity-record.js.map +1 -0
  158. package/dist/backend/native/helper-identity-record.test.d.ts +1 -0
  159. package/dist/backend/native/helper-identity-record.test.js +101 -0
  160. package/dist/backend/native/helper-identity-record.test.js.map +1 -0
  161. package/dist/backend/native/library.js +9 -1
  162. package/dist/backend/native/library.js.map +1 -1
  163. package/dist/backend/native/runtime-inputs.js +4 -1
  164. package/dist/backend/native/runtime-inputs.js.map +1 -1
  165. package/dist/backend/native/vendor.d.ts +1 -1
  166. package/dist/backend/native/vendor.js +1 -1
  167. package/dist/backend/native/vendor.js.map +1 -1
  168. package/dist/backend/native-codegen-core.d.ts +13 -10
  169. package/dist/backend/native-codegen-core.js +26 -13
  170. package/dist/backend/native-codegen-core.js.map +1 -1
  171. package/dist/backend/native-codegen.js +27 -8
  172. package/dist/backend/native-codegen.js.map +1 -1
  173. package/dist/backend/native-codegen.test.js +110 -14
  174. package/dist/backend/native-codegen.test.js.map +1 -1
  175. package/dist/backend/native-link-info-core.d.ts +37 -8
  176. package/dist/backend/native-link-info-core.js.map +1 -1
  177. package/dist/backend/runtime-pack-core.d.ts +17 -2
  178. package/dist/backend/runtime-pack-core.js +18 -3
  179. package/dist/backend/runtime-pack-core.js.map +1 -1
  180. package/dist/backend/runtime-pack-targets.test.js +1 -1
  181. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  182. package/dist/backend/runtime-pack.test.js +211 -2
  183. package/dist/backend/runtime-pack.test.js.map +1 -1
  184. package/dist/backend/tree-classes.d.ts +42 -0
  185. package/dist/backend/tree-classes.js +723 -0
  186. package/dist/backend/tree-classes.js.map +1 -0
  187. package/dist/backend/tree-classes.test.d.ts +1 -0
  188. package/dist/backend/tree-classes.test.js +338 -0
  189. package/dist/backend/tree-classes.test.js.map +1 -0
  190. package/dist/backend/vendor-archives.d.ts +5 -1
  191. package/dist/backend/vendor-archives.js +51 -7
  192. package/dist/backend/vendor-archives.js.map +1 -1
  193. package/dist/backend/vendor-inputs.d.ts +25 -4
  194. package/dist/backend/vendor-inputs.js +68 -4
  195. package/dist/backend/vendor-inputs.js.map +1 -1
  196. package/dist/backend/vendor-inputs.test.js +35 -1
  197. package/dist/backend/vendor-inputs.test.js.map +1 -1
  198. package/dist/backend/warm-cache.js +1 -1
  199. package/dist/backend/warm-cache.js.map +1 -1
  200. package/dist/compat/fetch-profile.js +2 -2
  201. package/dist/coverage/report.js +47 -0
  202. package/dist/coverage/report.js.map +1 -1
  203. package/dist/coverage/surface-manifest.js +1 -1
  204. package/dist/diagnostics/codes.d.ts +8 -0
  205. package/dist/diagnostics/codes.js +8 -0
  206. package/dist/diagnostics/codes.js.map +1 -1
  207. package/dist/diagnostics/diagnostic.d.ts +27 -9
  208. package/dist/diagnostics/diagnostic.js +60 -19
  209. package/dist/diagnostics/diagnostic.js.map +1 -1
  210. package/dist/diagnostics/envelope.d.ts +18 -0
  211. package/dist/diagnostics/envelope.js.map +1 -1
  212. package/dist/executable/executable-cache.d.ts +21 -2
  213. package/dist/executable/executable-cache.js +21 -1
  214. package/dist/executable/executable-cache.js.map +1 -1
  215. package/dist/executable/executable-cache.test.js +123 -1
  216. package/dist/executable/executable-cache.test.js.map +1 -1
  217. package/dist/executable/prepare.js +199 -248
  218. package/dist/executable/prepare.js.map +1 -1
  219. package/dist/frontend/analysis.js +200 -18
  220. package/dist/frontend/analysis.js.map +1 -1
  221. package/dist/frontend/builtin-modules.d.ts +4 -0
  222. package/dist/frontend/builtin-modules.js +10 -0
  223. package/dist/frontend/builtin-modules.js.map +1 -1
  224. package/dist/frontend/early-errors.d.ts +12 -2
  225. package/dist/frontend/early-errors.js +535 -4
  226. package/dist/frontend/early-errors.js.map +1 -1
  227. package/dist/frontend/early-errors.test.js +165 -0
  228. package/dist/frontend/early-errors.test.js.map +1 -1
  229. package/dist/frontend/inferred-js-diagnostics.test.js +65 -0
  230. package/dist/frontend/inferred-js-diagnostics.test.js.map +1 -1
  231. package/dist/frontend/jsx-opinion-sites.test.d.ts +1 -0
  232. package/dist/frontend/jsx-opinion-sites.test.js +86 -0
  233. package/dist/frontend/jsx-opinion-sites.test.js.map +1 -0
  234. package/dist/frontend/lib-exports.d.ts +23 -4
  235. package/dist/frontend/lib-exports.js +98 -26
  236. package/dist/frontend/lib-exports.js.map +1 -1
  237. package/dist/frontend/lowering/binding-analysis.js +21 -3
  238. package/dist/frontend/lowering/binding-analysis.js.map +1 -1
  239. package/dist/frontend/lowering/buffers.d.ts +8 -0
  240. package/dist/frontend/lowering/buffers.js +43 -0
  241. package/dist/frontend/lowering/buffers.js.map +1 -0
  242. package/dist/frontend/lowering/builtin-calls.js +4 -0
  243. package/dist/frontend/lowering/builtin-calls.js.map +1 -1
  244. package/dist/frontend/lowering/builtin-namespaces.d.ts +3 -2
  245. package/dist/frontend/lowering/builtin-namespaces.js +24 -3
  246. package/dist/frontend/lowering/builtin-namespaces.js.map +1 -1
  247. package/dist/frontend/lowering/builtin-statics.d.ts +24 -0
  248. package/dist/frontend/lowering/builtin-statics.js +407 -0
  249. package/dist/frontend/lowering/builtin-statics.js.map +1 -0
  250. package/dist/frontend/lowering/builtins/arguments.d.ts +4 -0
  251. package/dist/frontend/lowering/builtins/arguments.js +12 -0
  252. package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
  253. package/dist/frontend/lowering/builtins/atomics.d.ts +6 -1
  254. package/dist/frontend/lowering/builtins/atomics.js +87 -1
  255. package/dist/frontend/lowering/builtins/atomics.js.map +1 -1
  256. package/dist/frontend/lowering/builtins/child-process-methods.js +2 -2
  257. package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
  258. package/dist/frontend/lowering/builtins/child-process-sync.d.ts +13 -0
  259. package/dist/frontend/lowering/builtins/child-process-sync.js +1 -13
  260. package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -1
  261. package/dist/frontend/lowering/builtins/child-process.d.ts +10 -4
  262. package/dist/frontend/lowering/builtins/child-process.js +560 -27
  263. package/dist/frontend/lowering/builtins/child-process.js.map +1 -1
  264. package/dist/frontend/lowering/builtins/compression.d.ts +2 -2
  265. package/dist/frontend/lowering/builtins/compression.js +41 -21
  266. package/dist/frontend/lowering/builtins/compression.js.map +1 -1
  267. package/dist/frontend/lowering/builtins/constants.js +7 -2
  268. package/dist/frontend/lowering/builtins/constants.js.map +1 -1
  269. package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +1 -0
  270. package/dist/frontend/lowering/builtins/filesystem-calls.js +28 -2
  271. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
  272. package/dist/frontend/lowering/builtins/json.js +4 -0
  273. package/dist/frontend/lowering/builtins/json.js.map +1 -1
  274. package/dist/frontend/lowering/builtins/module-calls.js +3 -1
  275. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  276. package/dist/frontend/lowering/builtins/numbers.d.ts +4 -1
  277. package/dist/frontend/lowering/builtins/numbers.js +10 -2
  278. package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
  279. package/dist/frontend/lowering/builtins/operating-system.d.ts +6 -3
  280. package/dist/frontend/lowering/builtins/operating-system.js +96 -16
  281. package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
  282. package/dist/frontend/lowering/builtins/process.d.ts +2 -2
  283. package/dist/frontend/lowering/builtins/process.js +103 -8
  284. package/dist/frontend/lowering/builtins/process.js.map +1 -1
  285. package/dist/frontend/lowering/builtins/promises.js +169 -8
  286. package/dist/frontend/lowering/builtins/promises.js.map +1 -1
  287. package/dist/frontend/lowering/builtins/properties.js +6 -2
  288. package/dist/frontend/lowering/builtins/properties.js.map +1 -1
  289. package/dist/frontend/lowering/builtins/readline.d.ts +6 -4
  290. package/dist/frontend/lowering/builtins/readline.js +180 -36
  291. package/dist/frontend/lowering/builtins/readline.js.map +1 -1
  292. package/dist/frontend/lowering/builtins/url.js +35 -12
  293. package/dist/frontend/lowering/builtins/url.js.map +1 -1
  294. package/dist/frontend/lowering/builtins/webassembly.js +2 -0
  295. package/dist/frontend/lowering/builtins/webassembly.js.map +1 -1
  296. package/dist/frontend/lowering/call-arguments.d.ts +10 -0
  297. package/dist/frontend/lowering/call-arguments.js +37 -2
  298. package/dist/frontend/lowering/call-arguments.js.map +1 -1
  299. package/dist/frontend/lowering/call-signatures.d.ts +10 -0
  300. package/dist/frontend/lowering/call-signatures.js +103 -0
  301. package/dist/frontend/lowering/call-signatures.js.map +1 -1
  302. package/dist/frontend/lowering/class-construction.d.ts +14 -2
  303. package/dist/frontend/lowering/class-construction.js +99 -5
  304. package/dist/frontend/lowering/class-construction.js.map +1 -1
  305. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +9 -0
  306. package/dist/frontend/lowering/class-dynamic-dispatch.js +1283 -1030
  307. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  308. package/dist/frontend/lowering/class-dynamic-dispatch.test.js +158 -0
  309. package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
  310. package/dist/frontend/lowering/class-prototypes.js +20 -15
  311. package/dist/frontend/lowering/class-prototypes.js.map +1 -1
  312. package/dist/frontend/lowering/class-runtime-statics.d.ts +8 -0
  313. package/dist/frontend/lowering/class-runtime-statics.js +20 -1
  314. package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
  315. package/dist/frontend/lowering/class-unions.js +21 -4
  316. package/dist/frontend/lowering/class-unions.js.map +1 -1
  317. package/dist/frontend/lowering/coercions/function-adapters.js +9 -0
  318. package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
  319. package/dist/frontend/lowering/coercions/state.d.ts +8 -0
  320. package/dist/frontend/lowering/coercions/state.js +17 -0
  321. package/dist/frontend/lowering/coercions/state.js.map +1 -1
  322. package/dist/frontend/lowering/coercions/structural-plans.js +20 -5
  323. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
  324. package/dist/frontend/lowering/coercions/structural.js +10 -1
  325. package/dist/frontend/lowering/coercions/structural.js.map +1 -1
  326. package/dist/frontend/lowering/coercions/unions.d.ts +2 -1
  327. package/dist/frontend/lowering/coercions/unions.js +54 -10
  328. package/dist/frontend/lowering/coercions/unions.js.map +1 -1
  329. package/dist/frontend/lowering/constructor-returns.d.ts +23 -2
  330. package/dist/frontend/lowering/constructor-returns.js +284 -58
  331. package/dist/frontend/lowering/constructor-returns.js.map +1 -1
  332. package/dist/frontend/lowering/containers/array-callbacks.js +156 -62
  333. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  334. package/dist/frontend/lowering/containers/array-construction.js +21 -3
  335. package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
  336. package/dist/frontend/lowering/containers/array-from-async.js +139 -3
  337. package/dist/frontend/lowering/containers/array-from-async.js.map +1 -1
  338. package/dist/frontend/lowering/containers/array-iteration.d.ts +14 -4
  339. package/dist/frontend/lowering/containers/array-iteration.js +24 -7
  340. package/dist/frontend/lowering/containers/array-iteration.js.map +1 -1
  341. package/dist/frontend/lowering/containers/array-methods.js +14 -11
  342. package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
  343. package/dist/frontend/lowering/containers/bytes.d.ts +6 -0
  344. package/dist/frontend/lowering/containers/bytes.js +446 -86
  345. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  346. package/dist/frontend/lowering/containers/callback-arguments.d.ts +5 -0
  347. package/dist/frontend/lowering/containers/callback-arguments.js +21 -12
  348. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
  349. package/dist/frontend/lowering/containers/collection-grouping.js +421 -2
  350. package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -1
  351. package/dist/frontend/lowering/containers/collection-methods.js +52 -17
  352. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
  353. package/dist/frontend/lowering/containers/iterator-helpers.d.ts +23 -0
  354. package/dist/frontend/lowering/containers/iterator-helpers.js +176 -10
  355. package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -1
  356. package/dist/frontend/lowering/containers/string-and-regexp.d.ts +5 -2
  357. package/dist/frontend/lowering/containers/string-and-regexp.js +45 -11
  358. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  359. package/dist/frontend/lowering/crypto-tables.d.ts +3 -3
  360. package/dist/frontend/lowering/crypto-tables.js +5 -5
  361. package/dist/frontend/lowering/dispatch-sites.js +3 -0
  362. package/dist/frontend/lowering/dispatch-sites.js.map +1 -1
  363. package/dist/frontend/lowering/divergences.d.ts +40 -0
  364. package/dist/frontend/lowering/divergences.js +239 -20
  365. package/dist/frontend/lowering/divergences.js.map +1 -1
  366. package/dist/frontend/lowering/effect-free.d.ts +12 -0
  367. package/dist/frontend/lowering/effect-free.js +44 -0
  368. package/dist/frontend/lowering/effect-free.js.map +1 -0
  369. package/dist/frontend/lowering/expressions/array-literals.d.ts +10 -0
  370. package/dist/frontend/lowering/expressions/array-literals.js +62 -0
  371. package/dist/frontend/lowering/expressions/array-literals.js.map +1 -1
  372. package/dist/frontend/lowering/expressions/binary.js +115 -5
  373. package/dist/frontend/lowering/expressions/binary.js.map +1 -1
  374. package/dist/frontend/lowering/expressions/element-access.js +151 -7
  375. package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
  376. package/dist/frontend/lowering/expressions/hosted-narrowing.d.ts +15 -0
  377. package/dist/frontend/lowering/expressions/hosted-narrowing.js +54 -1
  378. package/dist/frontend/lowering/expressions/hosted-narrowing.js.map +1 -1
  379. package/dist/frontend/lowering/expressions/identifiers.js +31 -2
  380. package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
  381. package/dist/frontend/lowering/expressions/narrowing.d.ts +3 -0
  382. package/dist/frontend/lowering/expressions/narrowing.js +175 -22
  383. package/dist/frontend/lowering/expressions/narrowing.js.map +1 -1
  384. package/dist/frontend/lowering/expressions/object-literals.js +173 -11
  385. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  386. package/dist/frontend/lowering/expressions/optional-chains.js +5 -1
  387. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
  388. package/dist/frontend/lowering/expressions/property-access.d.ts +8 -0
  389. package/dist/frontend/lowering/expressions/property-access.js +379 -109
  390. package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
  391. package/dist/frontend/lowering/expressions/relational.js +237 -7
  392. package/dist/frontend/lowering/expressions/relational.js.map +1 -1
  393. package/dist/frontend/lowering/expressions/typeof.js +8 -0
  394. package/dist/frontend/lowering/expressions/typeof.js.map +1 -1
  395. package/dist/frontend/lowering/expressions/union-fields.d.ts +20 -1
  396. package/dist/frontend/lowering/expressions/union-fields.js +103 -13
  397. package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
  398. package/dist/frontend/lowering/expressions/updates.js +74 -55
  399. package/dist/frontend/lowering/expressions/updates.js.map +1 -1
  400. package/dist/frontend/lowering/function-returns.js +37 -10
  401. package/dist/frontend/lowering/function-returns.js.map +1 -1
  402. package/dist/frontend/lowering/general-streams.js +5 -0
  403. package/dist/frontend/lowering/general-streams.js.map +1 -1
  404. package/dist/frontend/lowering/generator-delegation.d.ts +15 -7
  405. package/dist/frontend/lowering/generator-delegation.js +301 -118
  406. package/dist/frontend/lowering/generator-delegation.js.map +1 -1
  407. package/dist/frontend/lowering/generic-functions.d.ts +27 -1
  408. package/dist/frontend/lowering/generic-functions.js +432 -18
  409. package/dist/frontend/lowering/generic-functions.js.map +1 -1
  410. package/dist/frontend/lowering/global-function-values.d.ts +25 -0
  411. package/dist/frontend/lowering/global-function-values.js +193 -0
  412. package/dist/frontend/lowering/global-function-values.js.map +1 -0
  413. package/dist/frontend/lowering/global-values.d.ts +6 -4
  414. package/dist/frontend/lowering/global-values.js +24 -10
  415. package/dist/frontend/lowering/global-values.js.map +1 -1
  416. package/dist/frontend/lowering/host-global-values.d.ts +31 -0
  417. package/dist/frontend/lowering/host-global-values.js +121 -0
  418. package/dist/frontend/lowering/host-global-values.js.map +1 -0
  419. package/dist/frontend/lowering/host-globals.d.ts +74 -0
  420. package/dist/frontend/lowering/host-globals.js +344 -0
  421. package/dist/frontend/lowering/host-globals.js.map +1 -0
  422. package/dist/frontend/lowering/http2-constants.js +1 -1
  423. package/dist/frontend/lowering/iterator-adapters.js +46 -17
  424. package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
  425. package/dist/frontend/lowering/iterator-prototype.d.ts +30 -0
  426. package/dist/frontend/lowering/iterator-prototype.js +160 -0
  427. package/dist/frontend/lowering/iterator-prototype.js.map +1 -0
  428. package/dist/frontend/lowering/key-order-witness.js +43 -22
  429. package/dist/frontend/lowering/key-order-witness.js.map +1 -1
  430. package/dist/frontend/lowering/key-order-witness.test.js +1 -0
  431. package/dist/frontend/lowering/key-order-witness.test.js.map +1 -1
  432. package/dist/frontend/lowering/lib-boundary.js +11 -3
  433. package/dist/frontend/lowering/lib-boundary.js.map +1 -1
  434. package/dist/frontend/lowering/lower-assert.js +30 -15
  435. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  436. package/dist/frontend/lowering/lower-async-iteration.d.ts +11 -0
  437. package/dist/frontend/lowering/lower-async-iteration.js +15 -0
  438. package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
  439. package/dist/frontend/lowering/lower-builtin-values.js +11 -1
  440. package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
  441. package/dist/frontend/lowering/lower-calls.d.ts +25 -0
  442. package/dist/frontend/lowering/lower-calls.js +929 -227
  443. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  444. package/dist/frontend/lowering/lower-calls.test.js +59 -16
  445. package/dist/frontend/lowering/lower-calls.test.js.map +1 -1
  446. package/dist/frontend/lowering/lower-classes.d.ts +20 -0
  447. package/dist/frontend/lowering/lower-classes.js +468 -44
  448. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  449. package/dist/frontend/lowering/lower-event-emitter.d.ts +6 -2
  450. package/dist/frontend/lowering/lower-event-emitter.js +253 -83
  451. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  452. package/dist/frontend/lowering/lower-exprs.d.ts +1 -1
  453. package/dist/frontend/lowering/lower-exprs.js +71 -20
  454. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  455. package/dist/frontend/lowering/lower-functions.js +25 -6
  456. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  457. package/dist/frontend/lowering/lower-generators.js +57 -10
  458. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  459. package/dist/frontend/lowering/lower-global-value.d.ts +6 -0
  460. package/dist/frontend/lowering/lower-global-value.js +14 -5
  461. package/dist/frontend/lowering/lower-global-value.js.map +1 -1
  462. package/dist/frontend/lowering/lower-inspect.d.ts +4 -0
  463. package/dist/frontend/lowering/lower-inspect.js +638 -64
  464. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  465. package/dist/frontend/lowering/lower-modules.js +48 -2
  466. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  467. package/dist/frontend/lowering/lower-namespaces.js +18 -0
  468. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  469. package/dist/frontend/lowering/lower-node-island.js +16 -6
  470. package/dist/frontend/lowering/lower-node-island.js.map +1 -1
  471. package/dist/frontend/lowering/lower-server.js +303 -87
  472. package/dist/frontend/lowering/lower-server.js.map +1 -1
  473. package/dist/frontend/lowering/lower-stdlib.js +45 -0
  474. package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
  475. package/dist/frontend/lowering/lower-stmts.d.ts +14 -11
  476. package/dist/frontend/lowering/lower-stmts.js +270 -52
  477. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  478. package/dist/frontend/lowering/lower-timers.js +110 -27
  479. package/dist/frontend/lowering/lower-timers.js.map +1 -1
  480. package/dist/frontend/lowering/lower-url.js +6 -3
  481. package/dist/frontend/lowering/lower-url.js.map +1 -1
  482. package/dist/frontend/lowering/lowerer.d.ts +227 -21
  483. package/dist/frontend/lowering/lowerer.js +651 -92
  484. package/dist/frontend/lowering/lowerer.js.map +1 -1
  485. package/dist/frontend/lowering/lowerer.test.js +18 -0
  486. package/dist/frontend/lowering/lowerer.test.js.map +1 -1
  487. package/dist/frontend/lowering/lowering-facts.d.ts +110 -0
  488. package/dist/frontend/lowering/lowering-facts.js +323 -0
  489. package/dist/frontend/lowering/lowering-facts.js.map +1 -0
  490. package/dist/frontend/lowering/lowering-facts.test.d.ts +1 -0
  491. package/dist/frontend/lowering/lowering-facts.test.js +100 -0
  492. package/dist/frontend/lowering/lowering-facts.test.js.map +1 -0
  493. package/dist/frontend/lowering/nan-coded-reads.d.ts +27 -4
  494. package/dist/frontend/lowering/nan-coded-reads.js +112 -9
  495. package/dist/frontend/lowering/nan-coded-reads.js.map +1 -1
  496. package/dist/frontend/lowering/optional-arguments.d.ts +4 -0
  497. package/dist/frontend/lowering/optional-arguments.js +26 -2
  498. package/dist/frontend/lowering/optional-arguments.js.map +1 -1
  499. package/dist/frontend/lowering/partial-assertions.d.ts +0 -3
  500. package/dist/frontend/lowering/partial-assertions.js +9 -15
  501. package/dist/frontend/lowering/partial-assertions.js.map +1 -1
  502. package/dist/frontend/lowering/primitive-throws.d.ts +100 -0
  503. package/dist/frontend/lowering/primitive-throws.js +241 -0
  504. package/dist/frontend/lowering/primitive-throws.js.map +1 -0
  505. package/dist/frontend/lowering/primitive-wrappers.js +1 -0
  506. package/dist/frontend/lowering/primitive-wrappers.js.map +1 -1
  507. package/dist/frontend/lowering/record-inherited.d.ts +17 -1
  508. package/dist/frontend/lowering/record-inherited.js +16 -2
  509. package/dist/frontend/lowering/record-inherited.js.map +1 -1
  510. package/dist/frontend/lowering/record-links.d.ts +73 -0
  511. package/dist/frontend/lowering/record-links.js +797 -0
  512. package/dist/frontend/lowering/record-links.js.map +1 -0
  513. package/dist/frontend/lowering/runtime-optional-provenance.d.ts +27 -7
  514. package/dist/frontend/lowering/runtime-optional-provenance.js +25 -11
  515. package/dist/frontend/lowering/runtime-optional-provenance.js.map +1 -1
  516. package/dist/frontend/lowering/runtime-optional-report.d.ts +40 -0
  517. package/dist/frontend/lowering/runtime-optional-report.js +300 -0
  518. package/dist/frontend/lowering/runtime-optional-report.js.map +1 -0
  519. package/dist/frontend/lowering/scoped-type-memo.test.d.ts +1 -0
  520. package/dist/frontend/lowering/scoped-type-memo.test.js +86 -0
  521. package/dist/frontend/lowering/scoped-type-memo.test.js.map +1 -0
  522. package/dist/frontend/lowering/static-typeof.d.ts +3 -1
  523. package/dist/frontend/lowering/static-typeof.js +6 -1
  524. package/dist/frontend/lowering/static-typeof.js.map +1 -1
  525. package/dist/frontend/lowering/strict-mode.d.ts +1 -5
  526. package/dist/frontend/lowering/strict-mode.js +4 -30
  527. package/dist/frontend/lowering/strict-mode.js.map +1 -1
  528. package/dist/frontend/lowering/structural-instances.d.ts +7 -0
  529. package/dist/frontend/lowering/structural-instances.js +23 -0
  530. package/dist/frontend/lowering/structural-instances.js.map +1 -1
  531. package/dist/frontend/lowering/surfaces.d.ts +15 -1
  532. package/dist/frontend/lowering/surfaces.js +78 -10
  533. package/dist/frontend/lowering/surfaces.js.map +1 -1
  534. package/dist/frontend/lowering/union-retag.d.ts +13 -1
  535. package/dist/frontend/lowering/union-retag.js +55 -1
  536. package/dist/frontend/lowering/union-retag.js.map +1 -1
  537. package/dist/frontend/lowering/union-retag.test.js +51 -0
  538. package/dist/frontend/lowering/union-retag.test.js.map +1 -1
  539. package/dist/frontend/lowering/unit-journal.d.ts +8 -0
  540. package/dist/frontend/lowering/unit-journal.js +14 -0
  541. package/dist/frontend/lowering/unit-journal.js.map +1 -1
  542. package/dist/frontend/lowering/unit-journal.test.js +36 -1
  543. package/dist/frontend/lowering/unit-journal.test.js.map +1 -1
  544. package/dist/frontend/lowering/zlib-constants.js +3 -2
  545. package/dist/frontend/lowering/zlib-constants.js.map +1 -1
  546. package/dist/frontend/npm-static.js +78 -9
  547. package/dist/frontend/npm-static.js.map +1 -1
  548. package/dist/frontend/npm-static.test.js +95 -2
  549. package/dist/frontend/npm-static.test.js.map +1 -1
  550. package/dist/frontend/pipeline.d.ts +5 -4
  551. package/dist/frontend/pipeline.js +94 -31
  552. package/dist/frontend/pipeline.js.map +1 -1
  553. package/dist/frontend/pipeline.test.js +68 -11
  554. package/dist/frontend/pipeline.test.js.map +1 -1
  555. package/dist/frontend/program.d.ts +62 -2
  556. package/dist/frontend/program.js +695 -422
  557. package/dist/frontend/program.js.map +1 -1
  558. package/dist/frontend/program.test.js +37 -1
  559. package/dist/frontend/program.test.js.map +1 -1
  560. package/dist/frontend/services-node.d.ts +7 -0
  561. package/dist/frontend/services-node.js +32 -1
  562. package/dist/frontend/services-node.js.map +1 -1
  563. package/dist/frontend/services-node.test.js +51 -0
  564. package/dist/frontend/services-node.test.js.map +1 -1
  565. package/dist/frontend/shape-inference/overlay.js +68 -2
  566. package/dist/frontend/shape-inference/overlay.js.map +1 -1
  567. package/dist/frontend/tier-analysis.d.ts +9 -0
  568. package/dist/frontend/tier-analysis.js +1 -0
  569. package/dist/frontend/tier-analysis.js.map +1 -1
  570. package/dist/frontend/tsc-codes.d.ts +57 -3
  571. package/dist/frontend/tsc-codes.js +935 -150
  572. package/dist/frontend/tsc-codes.js.map +1 -1
  573. package/dist/frontend/tsc-codes.test.js +221 -12
  574. package/dist/frontend/tsc-codes.test.js.map +1 -1
  575. package/dist/frontend/type-mapper.d.ts +91 -9
  576. package/dist/frontend/type-mapper.js +622 -181
  577. package/dist/frontend/type-mapper.js.map +1 -1
  578. package/dist/index.d.ts +1 -1
  579. package/dist/index.js +80 -15
  580. package/dist/index.js.map +1 -1
  581. package/dist/index.test.d.ts +1 -0
  582. package/dist/index.test.js +60 -0
  583. package/dist/index.test.js.map +1 -0
  584. package/dist/ir/builtin-effects.js +43 -0
  585. package/dist/ir/builtin-effects.js.map +1 -1
  586. package/dist/ir/builtin-signatures.d.ts +1 -1
  587. package/dist/ir/builtin-signatures.js +242 -16
  588. package/dist/ir/builtin-signatures.js.map +1 -1
  589. package/dist/ir/callback-specialization.d.ts +3 -2
  590. package/dist/ir/callback-specialization.js +35 -25
  591. package/dist/ir/callback-specialization.js.map +1 -1
  592. package/dist/ir/capture-values.d.ts +8 -4
  593. package/dist/ir/capture-values.js +9 -6
  594. package/dist/ir/capture-values.js.map +1 -1
  595. package/dist/ir/char-unit-locals.d.ts +6 -2
  596. package/dist/ir/char-unit-locals.js +11 -2
  597. package/dist/ir/char-unit-locals.js.map +1 -1
  598. package/dist/ir/class-key-index.d.ts +18 -0
  599. package/dist/ir/class-key-index.js +29 -0
  600. package/dist/ir/class-key-index.js.map +1 -0
  601. package/dist/ir/class-key-index.test.d.ts +1 -0
  602. package/dist/ir/class-key-index.test.js +25 -0
  603. package/dist/ir/class-key-index.test.js.map +1 -0
  604. package/dist/ir/codec.generated.d.ts +1 -1
  605. package/dist/ir/codec.generated.js +724 -648
  606. package/dist/ir/codec.generated.js.map +1 -1
  607. package/dist/ir/constant-globals.d.ts +5 -2
  608. package/dist/ir/constant-globals.js +25 -27
  609. package/dist/ir/constant-globals.js.map +1 -1
  610. package/dist/ir/expression-inlining.d.ts +4 -2
  611. package/dist/ir/expression-inlining.js +8 -2
  612. package/dist/ir/expression-inlining.js.map +1 -1
  613. package/dist/ir/field-values.d.ts +5 -2
  614. package/dist/ir/field-values.js +32 -21
  615. package/dist/ir/field-values.js.map +1 -1
  616. package/dist/ir/fields.generated.d.ts +11 -2
  617. package/dist/ir/fields.generated.js +8 -0
  618. package/dist/ir/fields.generated.js.map +1 -1
  619. package/dist/ir/final-fields.js +1 -1
  620. package/dist/ir/final-fields.js.map +1 -1
  621. package/dist/ir/function-references.d.ts +5 -4
  622. package/dist/ir/function-references.js +7 -4
  623. package/dist/ir/function-references.js.map +1 -1
  624. package/dist/ir/function-references.test.js +7 -0
  625. package/dist/ir/function-references.test.js.map +1 -1
  626. package/dist/ir/init-only-globals.d.ts +4 -2
  627. package/dist/ir/init-only-globals.js +17 -18
  628. package/dist/ir/init-only-globals.js.map +1 -1
  629. package/dist/ir/inline-array-views.js +1 -0
  630. package/dist/ir/inline-array-views.js.map +1 -1
  631. package/dist/ir/int32-slots.js +7 -0
  632. package/dist/ir/int32-slots.js.map +1 -1
  633. package/dist/ir/ir.d.ts +59 -4
  634. package/dist/ir/ir.js +7 -0
  635. package/dist/ir/ir.js.map +1 -1
  636. package/dist/ir/js-groups.d.ts +51 -0
  637. package/dist/ir/js-groups.js +394 -0
  638. package/dist/ir/js-groups.js.map +1 -0
  639. package/dist/ir/js-groups.test.d.ts +1 -0
  640. package/dist/ir/js-groups.test.js +555 -0
  641. package/dist/ir/js-groups.test.js.map +1 -0
  642. package/dist/ir/js-ic.js +30 -5
  643. package/dist/ir/js-ic.js.map +1 -1
  644. package/dist/ir/js-ic.test.js +27 -1
  645. package/dist/ir/js-ic.test.js.map +1 -1
  646. package/dist/ir/node-index.d.ts +23 -6
  647. package/dist/ir/node-index.js +126 -49
  648. package/dist/ir/node-index.js.map +1 -1
  649. package/dist/ir/numeric-call-specialization.d.ts +4 -2
  650. package/dist/ir/numeric-call-specialization.js +40 -26
  651. package/dist/ir/numeric-call-specialization.js.map +1 -1
  652. package/dist/ir/paired-while-loops.d.ts +4 -2
  653. package/dist/ir/paired-while-loops.js +8 -2
  654. package/dist/ir/paired-while-loops.js.map +1 -1
  655. package/dist/ir/parameter-versions.d.ts +13 -4
  656. package/dist/ir/parameter-versions.js +63 -42
  657. package/dist/ir/parameter-versions.js.map +1 -1
  658. package/dist/ir/property-bags.d.ts +4 -2
  659. package/dist/ir/property-bags.js +22 -17
  660. package/dist/ir/property-bags.js.map +1 -1
  661. package/dist/ir/row-pairs.d.ts +4 -2
  662. package/dist/ir/row-pairs.js +12 -11
  663. package/dist/ir/row-pairs.js.map +1 -1
  664. package/dist/ir/runtime-features.d.ts +87 -12
  665. package/dist/ir/runtime-features.js +263 -160
  666. package/dist/ir/runtime-features.js.map +1 -1
  667. package/dist/ir/runtime-features.test.js +109 -139
  668. package/dist/ir/runtime-features.test.js.map +1 -1
  669. package/dist/ir/runtime-jam-loops.d.ts +35 -0
  670. package/dist/ir/runtime-jam-loops.js +604 -0
  671. package/dist/ir/runtime-jam-loops.js.map +1 -0
  672. package/dist/ir/runtime-jam-loops.test.d.ts +1 -0
  673. package/dist/ir/runtime-jam-loops.test.js +565 -0
  674. package/dist/ir/runtime-jam-loops.test.js.map +1 -0
  675. package/dist/ir/saturating-loop-jams.d.ts +4 -2
  676. package/dist/ir/saturating-loop-jams.js +11 -10
  677. package/dist/ir/saturating-loop-jams.js.map +1 -1
  678. package/dist/ir/scalar-records.d.ts +5 -2
  679. package/dist/ir/scalar-records.js +12 -2
  680. package/dist/ir/scalar-records.js.map +1 -1
  681. package/dist/ir/self-captures.d.ts +4 -2
  682. package/dist/ir/self-captures.js +32 -27
  683. package/dist/ir/self-captures.js.map +1 -1
  684. package/dist/ir/serialize.d.ts +6 -1
  685. package/dist/ir/serialize.js +87 -23
  686. package/dist/ir/serialize.js.map +1 -1
  687. package/dist/ir/serialize.test.js +26 -0
  688. package/dist/ir/serialize.test.js.map +1 -1
  689. package/dist/ir/tiers.js +1 -0
  690. package/dist/ir/tiers.js.map +1 -1
  691. package/dist/ir/traverse.js +4 -0
  692. package/dist/ir/traverse.js.map +1 -1
  693. package/dist/ir/typed-argument-clones.d.ts +30 -0
  694. package/dist/ir/typed-argument-clones.js +789 -0
  695. package/dist/ir/typed-argument-clones.js.map +1 -0
  696. package/dist/ir/union-arm-loops.d.ts +3 -0
  697. package/dist/ir/union-arm-loops.js +373 -0
  698. package/dist/ir/union-arm-loops.js.map +1 -0
  699. package/dist/ir/union-arm-loops.test.d.ts +1 -0
  700. package/dist/ir/union-arm-loops.test.js +230 -0
  701. package/dist/ir/union-arm-loops.test.js.map +1 -0
  702. package/dist/ir/validate.js +88 -18
  703. package/dist/ir/validate.js.map +1 -1
  704. package/dist/library/compiler-self-identity.d.ts +8 -2
  705. package/dist/library/compiler-self-identity.js +92 -18
  706. package/dist/library/compiler-self-identity.js.map +1 -1
  707. package/dist/library/compiler-self-identity.test.js +150 -3
  708. package/dist/library/compiler-self-identity.test.js.map +1 -1
  709. package/dist/library/int-infer.d.ts +5 -0
  710. package/dist/library/int-infer.js +15 -3
  711. package/dist/library/int-infer.js.map +1 -1
  712. package/dist/library/ir-policy.js +1 -0
  713. package/dist/library/ir-policy.js.map +1 -1
  714. package/dist/library/library-cache.d.ts +4 -0
  715. package/dist/library/library-cache.js +2 -0
  716. package/dist/library/library-cache.js.map +1 -1
  717. package/dist/library/library-cache.test.js +26 -0
  718. package/dist/library/library-cache.test.js.map +1 -1
  719. package/dist/library/prepare.js +99 -31
  720. package/dist/library/prepare.js.map +1 -1
  721. package/dist/native/cache.d.ts +7 -0
  722. package/dist/native/cache.js +47 -0
  723. package/dist/native/cache.js.map +1 -1
  724. package/dist/native/cache.test.js +13 -1
  725. package/dist/native/cache.test.js.map +1 -1
  726. package/dist/native/cli.js +1 -1
  727. package/dist/native/cli.js.map +1 -1
  728. package/dist/native/compiler.js +18 -3
  729. package/dist/native/compiler.js.map +1 -1
  730. package/dist/native/executable-cache-open.test.js +31 -5
  731. package/dist/native/executable-cache-open.test.js.map +1 -1
  732. package/dist/native/executable-cache.d.ts +6 -1
  733. package/dist/native/executable-cache.js +7 -1
  734. package/dist/native/executable-cache.js.map +1 -1
  735. package/dist/native/prepare.d.ts +3 -0
  736. package/dist/native/prepare.js +43 -26
  737. package/dist/native/prepare.js.map +1 -1
  738. package/dist/native/prepare.test.js +25 -3
  739. package/dist/native/prepare.test.js.map +1 -1
  740. package/dist/native/sanitizer.js +10 -1
  741. package/dist/native/sanitizer.js.map +1 -1
  742. package/dist/native/sanitizer.test.js +7 -2
  743. package/dist/native/sanitizer.test.js.map +1 -1
  744. package/dist/node-islands/boundary.d.ts +12 -0
  745. package/dist/node-islands/boundary.js +38 -6
  746. package/dist/node-islands/boundary.js.map +1 -1
  747. package/dist/node-islands/boundary.test.d.ts +1 -0
  748. package/dist/node-islands/boundary.test.js +76 -0
  749. package/dist/node-islands/boundary.test.js.map +1 -0
  750. package/dist/node-islands/detect.d.ts +9 -0
  751. package/dist/node-islands/detect.js +110 -0
  752. package/dist/node-islands/detect.js.map +1 -1
  753. package/dist/node-islands/detect.test.js +24 -0
  754. package/dist/node-islands/detect.test.js.map +1 -1
  755. package/dist/node-islands/graph-islands.d.ts +40 -0
  756. package/dist/node-islands/graph-islands.js +128 -0
  757. package/dist/node-islands/graph-islands.js.map +1 -0
  758. package/dist/node-islands/growth.d.ts +57 -0
  759. package/dist/node-islands/growth.js +205 -0
  760. package/dist/node-islands/growth.js.map +1 -0
  761. package/dist/node-islands/report.d.ts +12 -0
  762. package/dist/node-islands/report.js +28 -0
  763. package/dist/node-islands/report.js.map +1 -1
  764. package/dist/node-islands/report.test.js +2 -0
  765. package/dist/node-islands/report.test.js.map +1 -1
  766. package/dist/node-islands/rules.js +5 -0
  767. package/dist/node-islands/rules.js.map +1 -1
  768. package/dist/node-islands/scan.d.ts +11 -2
  769. package/dist/node-islands/scan.js +61 -9
  770. package/dist/node-islands/scan.js.map +1 -1
  771. package/dist/wasm/translate.js +11 -5
  772. package/dist/wasm/translate.js.map +1 -1
  773. package/dist/wasm/translate.test.js +35 -0
  774. package/dist/wasm/translate.test.js.map +1 -1
  775. package/package.json +20 -20
  776. package/surface-manifest.json +184 -117
@@ -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 = "046d50de1884ed1e";
3
+ export const IR_CODEC_LAYOUT = "38fbaf504aaf737f";
4
4
  /** Writes `mod` field by field (codec.ts describes the bytes). */
5
5
  export function encodeIrModule(w, mod) {
6
6
  encIrModule(w, mod);
@@ -17,7 +17,7 @@ export function encodeIrFunction(w, fn) {
17
17
  export function decodeIrFunction(r) {
18
18
  return decIrFunction(r);
19
19
  }
20
- const KEYS0 = ["irVersion", "sourceFile", "functions", "classes", "globals", "records", "unions", "entry", "workers", "declBoundary", "inferredFactFiles", "declOrigins", "lifetimeRegions", "foreignElementKeys", "threadSlotKeys", "freezableArrays", "sloppyDynWrites", "untypedIntegrity", "commonJsEntry", "nodeIsland", "ffiImports", "lib", "contracts", "int32ArrayCandidates", "wasmModules", "wasmUntranslated", "wasmCustomSections"];
20
+ const KEYS0 = ["irVersion", "sourceFile", "functions", "classes", "globals", "records", "unions", "entry", "workers", "declBoundary", "inferredFactFiles", "declOrigins", "lifetimeRegions", "foreignElementKeys", "recordLinks", "threadSlotKeys", "bytesHeadersMutable", "freezableArrays", "sloppyDynWrites", "untypedIntegrity", "commonJsEntry", "nodeIsland", "ffiImports", "lib", "contracts", "int32ArrayCandidates", "wasmModules", "wasmUntranslated", "wasmCustomSections"];
21
21
  const KEYS1 = ["name", "sourceName", "displayName", "ownsPrototype", "params", "returnType", "locals", "captures", "classCaptures", "body", "loc", "jsEntry", "tier", "speculativeDispatch", "fastRead", "plainLoops", "async", "generator", "asyncCacheGlobal", "asyncCycleCacheGlobal"];
22
22
  const KEYS2 = ["libnode", "nodeVersion", "modules"];
23
23
  const KEYS3 = ["profileName", "prefix", "initSymbol", "sinkRegisterSymbol", "collectSymbol", "resultResetSymbol", "threadInstances", "callbackRegisterSymbol", "callbacks", "exports", "trapOverlays", "identity"];
@@ -72,168 +72,170 @@ const KEYS51 = ["kind", "unionId"];
72
72
  const KEYS52 = ["kind"];
73
73
  const KEYS53 = ["kind"];
74
74
  const KEYS54 = ["file", "start", "end"];
75
- const KEYS55 = ["yieldT", "nextT", "resultType", "closesSource", "tag", "inheritsTag"];
75
+ const KEYS55 = ["yieldT", "nextT", "resultType", "closesSource", "tag", "inheritsTag", "bindAtCall"];
76
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"];
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"];
80
80
  const KEYS60 = ["file", "pkg"];
81
- const KEYS61 = ["root", "files", "links", "location"];
82
- const KEYS62 = ["name", "symbol", "library", "callbackOperation", "callbackTarget", "params", "returns"];
83
- const KEYS63 = ["buildIdSymbol", "abiVersionSymbol", "buildId", "abiVersion"];
84
- const KEYS64 = ["sha256", "bytes"];
85
- const KEYS65 = ["sha256", "size", "reason"];
86
- const KEYS66 = ["localId", "name", "type", "owned"];
87
- const KEYS67 = ["id", "name", "type", "mutable", "source", "boxed", "tdz"];
88
- const KEYS68 = ["localId", "name", "type", "owned", "slot"];
89
- const KEYS69 = ["kind", "arr", "index", "loc"];
90
- const KEYS70 = ["kind", "arr", "index", "value", "loc"];
91
- const KEYS71 = ["kind", "arr", "length", "loc", "pop", "reserve"];
92
- const KEYS72 = ["kind", "arr", "index", "loc"];
93
- const KEYS73 = ["kind", "localId", "value", "initializes", "loc"];
94
- const KEYS74 = ["kind", "labels", "body", "loc"];
95
- const KEYS75 = ["kind", "label", "loc"];
96
- const KEYS76 = ["kind", "arr", "index", "value", "loc"];
97
- const KEYS77 = ["kind", "label", "loc"];
98
- const KEYS78 = ["kind", "body", "cond", "labels", "loc"];
99
- const KEYS79 = ["kind", "expr", "loc"];
100
- const KEYS80 = ["kind", "obj", "className", "field", "value", "sloppy", "define", "attributesChecked", "loc"];
101
- const KEYS81 = ["kind", "init", "cond", "update", "body", "labels", "loc"];
102
- const KEYS82 = ["kind", "localId", "iterable", "body", "labels", "loc"];
103
- const KEYS83 = ["kind", "cond", "then", "else_", "loc"];
104
- const KEYS84 = ["kind", "obj", "shapeId", "key", "loc"];
105
- const KEYS85 = ["kind", "obj", "shapeId", "key", "value", "overflowOnly", "loc"];
106
- const KEYS86 = ["kind", "obj", "shapeId", "field", "value", "loc"];
107
- const KEYS87 = ["kind", "localId", "loc"];
108
- const KEYS88 = ["kind", "value", "awaited", "loc"];
109
- const KEYS89 = ["kind", "code", "message", "loc"];
110
- const KEYS90 = ["kind", "disc", "cases", "labels", "loc"];
111
- const KEYS91 = ["kind", "value", "loc"];
112
- const KEYS92 = ["kind", "tryBody", "catchBody", "catchLocalId", "dropFinallyErrors", "finallyBody", "suppressFinallyErrors", "loc"];
113
- const KEYS93 = ["kind", "localId", "init", "loc"];
114
- const KEYS94 = ["kind", "cond", "body", "labels", "loc"];
115
- const KEYS95 = ["kind", "shapeId"];
116
- const KEYS96 = ["loc", "scope"];
117
- const KEYS97 = ["field", "cases"];
118
- const KEYS98 = ["name", "slot", "params", "returns", "unregisteredTrap"];
119
- const KEYS99 = ["symbol", "fnName", "params", "returns", "inboundBytesTrap", "inboundIntTrap", "inboundCstringTrap"];
120
- const KEYS100 = ["code", "teaching", "remediation"];
121
- const KEYS101 = ["kind", "method", "receiver", "args", "type", "loc"];
122
- const KEYS102 = ["kind", "arr", "index", "type", "loc"];
123
- const KEYS103 = ["kind", "arr", "index", "type", "loc"];
124
- const KEYS104 = ["kind", "elems", "spreads", "capacity", "type", "loc"];
125
- const KEYS105 = ["kind", "length", "type", "loc"];
126
- const KEYS106 = ["kind", "arr", "index", "type", "loc"];
127
- const KEYS107 = ["kind", "localId", "value", "type", "loc"];
128
- const KEYS108 = ["kind", "value", "type", "adopt", "loc"];
129
- const KEYS109 = ["kind", "value", "promiseTag", "type", "loc"];
130
- const KEYS110 = ["kind", "op", "left", "right", "type", "loc"];
131
- const KEYS111 = ["kind", "value", "type", "loc"];
132
- const KEYS112 = ["kind", "method", "receiver", "args", "type", "loc", "invalidNaN"];
133
- const KEYS113 = ["kind", "source", "from", "type", "loc"];
134
- const KEYS114 = ["kind", "callee", "args", "type", "loc"];
135
- const KEYS115 = ["kind", "callee", "receiver", "args", "type", "loc"];
136
- const KEYS116 = ["kind", "value", "className", "type", "loc"];
137
- const KEYS117 = ["kind", "value", "type", "loc"];
138
- const KEYS118 = ["kind", "value", "test", "className", "negated", "type", "loc"];
81
+ const KEYS61 = ["pair", "from", "to", "compose"];
82
+ const KEYS62 = ["root", "files", "links", "location"];
83
+ const KEYS63 = ["name", "symbol", "library", "callbackOperation", "callbackTarget", "params", "returns"];
84
+ const KEYS64 = ["buildIdSymbol", "abiVersionSymbol", "buildId", "abiVersion"];
85
+ const KEYS65 = ["sha256", "bytes"];
86
+ const KEYS66 = ["sha256", "size", "reason"];
87
+ const KEYS67 = ["localId", "name", "type", "owned"];
88
+ const KEYS68 = ["id", "name", "type", "mutable", "source", "boxed", "tdz"];
89
+ const KEYS69 = ["localId", "name", "type", "owned", "slot"];
90
+ const KEYS70 = ["kind", "arr", "index", "loc"];
91
+ const KEYS71 = ["kind", "arr", "index", "value", "loc"];
92
+ const KEYS72 = ["kind", "arr", "length", "loc", "pop", "reserve"];
93
+ const KEYS73 = ["kind", "arr", "index", "loc"];
94
+ const KEYS74 = ["kind", "localId", "value", "initializes", "loc"];
95
+ const KEYS75 = ["kind", "labels", "body", "loc"];
96
+ const KEYS76 = ["kind", "label", "loc"];
97
+ const KEYS77 = ["kind", "arr", "index", "value", "loc"];
98
+ const KEYS78 = ["kind", "label", "loc"];
99
+ const KEYS79 = ["kind", "body", "cond", "labels", "loc"];
100
+ const KEYS80 = ["kind", "expr", "loc"];
101
+ const KEYS81 = ["kind", "obj", "className", "field", "value", "sloppy", "define", "attributesChecked", "loc"];
102
+ const KEYS82 = ["kind", "init", "cond", "update", "body", "labels", "loc"];
103
+ const KEYS83 = ["kind", "localId", "iterable", "body", "labels", "loc"];
104
+ const KEYS84 = ["kind", "loc"];
105
+ const KEYS85 = ["kind", "cond", "then", "else_", "loc"];
106
+ const KEYS86 = ["kind", "obj", "shapeId", "key", "loc"];
107
+ const KEYS87 = ["kind", "obj", "shapeId", "key", "value", "overflowOnly", "loc"];
108
+ const KEYS88 = ["kind", "obj", "shapeId", "field", "value", "loc"];
109
+ const KEYS89 = ["kind", "localId", "loc"];
110
+ const KEYS90 = ["kind", "value", "awaited", "loc"];
111
+ const KEYS91 = ["kind", "code", "message", "loc"];
112
+ const KEYS92 = ["kind", "disc", "cases", "labels", "loc"];
113
+ const KEYS93 = ["kind", "value", "loc"];
114
+ const KEYS94 = ["kind", "tryBody", "catchBody", "catchLocalId", "dropFinallyErrors", "finallyBody", "suppressFinallyErrors", "loc"];
115
+ const KEYS95 = ["kind", "localId", "init", "loc"];
116
+ const KEYS96 = ["kind", "cond", "body", "labels", "loc"];
117
+ const KEYS97 = ["kind", "shapeId"];
118
+ const KEYS98 = ["loc", "scope"];
119
+ const KEYS99 = ["field", "cases"];
120
+ const KEYS100 = ["name", "slot", "params", "returns", "unregisteredTrap"];
121
+ const KEYS101 = ["symbol", "fnName", "params", "returns", "inboundBytesTrap", "inboundIntTrap", "inboundCstringTrap"];
122
+ const KEYS102 = ["code", "teaching", "remediation"];
123
+ const KEYS103 = ["kind", "method", "receiver", "args", "type", "loc"];
124
+ const KEYS104 = ["kind", "arr", "index", "type", "loc"];
125
+ const KEYS105 = ["kind", "arr", "index", "type", "loc"];
126
+ const KEYS106 = ["kind", "elems", "spreads", "capacity", "type", "loc"];
127
+ const KEYS107 = ["kind", "length", "type", "loc"];
128
+ const KEYS108 = ["kind", "arr", "index", "type", "loc"];
129
+ const KEYS109 = ["kind", "localId", "value", "type", "loc"];
130
+ const KEYS110 = ["kind", "value", "type", "adopt", "loc"];
131
+ const KEYS111 = ["kind", "value", "promiseTag", "type", "loc"];
132
+ const KEYS112 = ["kind", "op", "left", "right", "type", "loc"];
133
+ const KEYS113 = ["kind", "value", "type", "loc"];
134
+ const KEYS114 = ["kind", "method", "receiver", "args", "type", "loc", "invalidNaN"];
135
+ const KEYS115 = ["kind", "source", "from", "type", "loc"];
136
+ const KEYS116 = ["kind", "callee", "args", "type", "loc"];
137
+ const KEYS117 = ["kind", "callee", "receiver", "args", "type", "loc"];
138
+ const KEYS118 = ["kind", "value", "className", "type", "loc"];
139
139
  const KEYS119 = ["kind", "value", "type", "loc"];
140
- const KEYS120 = ["kind", "id", "type", "loc"];
141
- const KEYS121 = ["kind", "className", "type", "loc", "captures"];
142
- const KEYS122 = ["kind", "fnName", "captures", "adapts", "type", "loc"];
143
- const KEYS123 = ["kind", "value", "type", "loc"];
144
- const KEYS124 = ["kind", "elems", "type", "loc"];
145
- const KEYS125 = ["kind", "callee", "receiver", "calleeName", "calleeNameValue", "args", "spreads", "type", "loc"];
146
- const KEYS126 = ["kind", "value", "preserveRefs", "adopt", "exact", "partialView", "inferredSite", "origin", "type", "loc"];
147
- const KEYS127 = ["kind", "value", "spelling", "firstProp", "type", "loc"];
148
- const KEYS128 = ["kind", "value", "type", "loc", "liveRef", "fnName", "fnLength"];
149
- const KEYS129 = ["kind", "key", "negated", "value", "type", "loc"];
150
- const KEYS130 = ["kind", "recv", "method", "calleeName", "calleeNameValue", "args", "type", "loc"];
151
- const KEYS131 = ["kind", "value", "count", "notIterableMessage", "type", "loc"];
152
- const KEYS132 = ["kind", "key", "optional", "value", "type", "loc"];
153
- const KEYS133 = ["kind", "fields", "type", "loc"];
154
- const KEYS134 = ["kind", "left", "right", "negated", "type", "loc"];
155
- const KEYS135 = ["kind", "test", "bytesElem", "negated", "value", "type", "loc"];
156
- const KEYS136 = ["kind", "import", "args", "type", "loc"];
157
- const KEYS137 = ["kind", "unionId", "type", "loc"];
158
- const KEYS138 = ["kind", "obj", "className", "field", "type", "loc"];
159
- const KEYS139 = ["kind", "op", "prefix", "obj", "className", "field", "fieldDyn", "type", "loc"];
160
- const KEYS140 = ["kind", "mode", "gen", "arg", "type", "loc"];
161
- const KEYS141 = ["kind", "op", "prefix", "localId", "type", "loc"];
162
- const KEYS142 = ["kind", "value", "className", "type", "loc"];
163
- const KEYS143 = ["kind", "value", "classValue", "type", "loc"];
164
- const KEYS144 = ["kind", "name", "args", "type", "loc"];
165
- const KEYS145 = ["kind", "value", "indent", "circular", "type", "loc"];
166
- const KEYS146 = ["kind", "fn", "args", "type", "loc", "prototypeIdentityOnly", "realTimer", "assertOptions", "bindsThis"];
167
- const KEYS147 = ["kind", "op", "left", "right", "type", "loc"];
168
- const KEYS148 = ["kind", "method", "receiver", "args", "type", "loc"];
169
- const KEYS149 = ["kind", "seed", "type", "loc"];
170
- const KEYS150 = ["kind", "moduleId", "type", "loc"];
171
- const KEYS151 = ["kind", "className", "args", "type", "loc"];
172
- const KEYS152 = ["kind", "executor", "type", "loc"];
173
- const KEYS153 = ["kind", "callee", "args", "type", "loc"];
174
- const KEYS154 = ["kind", "left", "right", "type", "loc"];
175
- const KEYS155 = ["kind", "value", "spelling", "type", "loc"];
176
- const KEYS156 = ["kind", "id", "receiver", "body", "type", "loc"];
177
- const KEYS157 = ["kind", "left", "right", "retag", "type", "loc"];
178
- const KEYS158 = ["kind", "value", "type", "loc"];
179
- const KEYS159 = ["kind", "type", "loc"];
180
- const KEYS160 = ["kind", "source", "overrides", "type", "loc"];
181
- const KEYS161 = ["kind", "obj", "shapeId", "field", "type", "loc"];
182
- const KEYS162 = ["kind", "obj", "shapeId", "field", "type", "loc"];
183
- const KEYS163 = ["kind", "obj", "shapeId", "key", "overflowOnly", "missNaN", "type", "loc"];
184
- const KEYS164 = ["kind", "fields", "nullProto", "type", "loc"];
185
- const KEYS165 = ["kind", "obj", "shapeId", "type", "loc"];
186
- const KEYS166 = ["kind", "obj", "shapeId", "key", "type", "loc"];
140
+ const KEYS120 = ["kind", "value", "test", "className", "negated", "type", "loc"];
141
+ const KEYS121 = ["kind", "value", "type", "loc"];
142
+ const KEYS122 = ["kind", "id", "type", "loc"];
143
+ const KEYS123 = ["kind", "className", "type", "loc", "captures"];
144
+ const KEYS124 = ["kind", "fnName", "captures", "adapts", "type", "loc"];
145
+ const KEYS125 = ["kind", "value", "type", "loc"];
146
+ const KEYS126 = ["kind", "elems", "type", "loc"];
147
+ const KEYS127 = ["kind", "callee", "receiver", "calleeName", "calleeNameValue", "args", "spreads", "type", "loc"];
148
+ const KEYS128 = ["kind", "value", "preserveRefs", "adopt", "exact", "partialView", "inferredSite", "origin", "pathIndex", "type", "loc"];
149
+ const KEYS129 = ["kind", "value", "spelling", "firstProp", "type", "loc"];
150
+ const KEYS130 = ["kind", "value", "type", "loc", "liveRef", "fnName", "fnNameMainThreadOnly", "fnLength"];
151
+ const KEYS131 = ["kind", "key", "negated", "value", "type", "loc"];
152
+ const KEYS132 = ["kind", "recv", "method", "calleeName", "calleeNameValue", "args", "type", "loc"];
153
+ const KEYS133 = ["kind", "value", "count", "notIterableMessage", "type", "loc"];
154
+ const KEYS134 = ["kind", "key", "optional", "value", "type", "loc"];
155
+ const KEYS135 = ["kind", "fields", "type", "loc"];
156
+ const KEYS136 = ["kind", "left", "right", "negated", "type", "loc"];
157
+ const KEYS137 = ["kind", "test", "bytesElem", "negated", "value", "type", "loc"];
158
+ const KEYS138 = ["kind", "import", "args", "type", "loc"];
159
+ const KEYS139 = ["kind", "unionId", "type", "loc"];
160
+ const KEYS140 = ["kind", "obj", "className", "field", "type", "loc"];
161
+ const KEYS141 = ["kind", "op", "prefix", "obj", "className", "field", "fieldDyn", "type", "loc"];
162
+ const KEYS142 = ["kind", "mode", "gen", "arg", "type", "loc"];
163
+ const KEYS143 = ["kind", "op", "prefix", "localId", "type", "loc"];
164
+ const KEYS144 = ["kind", "value", "className", "type", "loc"];
165
+ const KEYS145 = ["kind", "value", "classValue", "type", "loc"];
166
+ const KEYS146 = ["kind", "name", "args", "type", "loc"];
167
+ const KEYS147 = ["kind", "value", "indent", "circular", "type", "loc"];
168
+ const KEYS148 = ["kind", "fn", "args", "type", "loc", "prototypeIdentityOnly", "realTimer", "assertOptions", "bindsThis"];
169
+ const KEYS149 = ["kind", "op", "left", "right", "type", "loc"];
170
+ const KEYS150 = ["kind", "method", "receiver", "args", "type", "loc"];
171
+ const KEYS151 = ["kind", "seed", "type", "loc"];
172
+ const KEYS152 = ["kind", "moduleId", "type", "loc"];
173
+ const KEYS153 = ["kind", "className", "args", "type", "loc"];
174
+ const KEYS154 = ["kind", "executor", "type", "loc"];
175
+ const KEYS155 = ["kind", "callee", "args", "type", "loc"];
176
+ const KEYS156 = ["kind", "left", "right", "type", "loc"];
177
+ const KEYS157 = ["kind", "value", "spelling", "type", "loc"];
178
+ const KEYS158 = ["kind", "id", "receiver", "body", "type", "loc"];
179
+ const KEYS159 = ["kind", "left", "right", "retag", "type", "loc"];
180
+ const KEYS160 = ["kind", "value", "type", "loc"];
181
+ const KEYS161 = ["kind", "type", "loc"];
182
+ const KEYS162 = ["kind", "source", "overrides", "type", "loc"];
183
+ const KEYS163 = ["kind", "obj", "shapeId", "field", "type", "loc"];
184
+ const KEYS164 = ["kind", "obj", "shapeId", "field", "type", "loc"];
185
+ const KEYS165 = ["kind", "obj", "shapeId", "key", "overflowOnly", "missNaN", "type", "loc"];
186
+ const KEYS166 = ["kind", "fields", "nullProto", "type", "loc"];
187
187
  const KEYS167 = ["kind", "obj", "shapeId", "type", "loc"];
188
- const KEYS168 = ["kind", "method", "receiver", "args", "type", "loc"];
189
- const KEYS169 = ["kind", "pattern", "flags", "type", "loc"];
190
- const KEYS170 = ["kind", "type", "loc"];
191
- const KEYS171 = ["kind", "stmts", "result", "generatorDelegate", "diverges", "type", "loc"];
192
- const KEYS172 = ["kind", "method", "receiver", "args", "type", "loc"];
193
- const KEYS173 = ["kind", "seed", "type", "loc"];
194
- const KEYS174 = ["kind", "op", "left", "right", "type", "loc"];
195
- const KEYS175 = ["kind", "left", "right", "type", "loc"];
196
- const KEYS176 = ["kind", "negated", "left", "right", "type", "loc"];
197
- const KEYS177 = ["kind", "method", "receiver", "args", "type", "loc"];
198
- const KEYS178 = ["kind", "value", "type", "loc"];
199
- const KEYS179 = ["kind", "key", "cooked", "type", "loc"];
200
- const KEYS180 = ["kind", "cond", "then", "else_", "type", "loc"];
201
- const KEYS181 = ["kind", "operand", "type", "loc"];
202
- const KEYS182 = ["kind", "operand", "type", "loc"];
203
- const KEYS183 = ["kind", "op", "operand", "type", "loc"];
204
- const KEYS184 = ["kind", "unionId", "field", "value", "type", "loc"];
205
- const KEYS185 = ["kind", "unionId", "negated", "sameValue", "left", "right", "type", "loc"];
206
- const KEYS186 = ["kind", "unionId", "tag", "union", "func", "negated", "type", "loc"];
207
- const KEYS187 = ["kind", "unionId", "tag", "negated", "value", "type", "loc"];
208
- const KEYS188 = ["kind", "unionId", "key", "value", "type", "loc"];
209
- const KEYS189 = ["kind", "unionId", "tag", "value", "type", "loc"];
210
- const KEYS190 = ["kind", "fromId", "unionId", "tags", "value", "type", "loc"];
188
+ const KEYS168 = ["kind", "obj", "shapeId", "key", "type", "loc"];
189
+ const KEYS169 = ["kind", "obj", "shapeId", "type", "loc"];
190
+ const KEYS170 = ["kind", "method", "receiver", "args", "type", "loc"];
191
+ const KEYS171 = ["kind", "pattern", "flags", "type", "loc"];
192
+ const KEYS172 = ["kind", "type", "loc"];
193
+ const KEYS173 = ["kind", "stmts", "result", "generatorDelegate", "diverges", "type", "loc"];
194
+ const KEYS174 = ["kind", "method", "receiver", "args", "type", "loc"];
195
+ const KEYS175 = ["kind", "seed", "type", "loc"];
196
+ const KEYS176 = ["kind", "op", "left", "right", "type", "loc"];
197
+ const KEYS177 = ["kind", "left", "right", "type", "loc"];
198
+ const KEYS178 = ["kind", "negated", "left", "right", "type", "loc"];
199
+ const KEYS179 = ["kind", "method", "receiver", "args", "type", "loc"];
200
+ const KEYS180 = ["kind", "value", "type", "loc"];
201
+ const KEYS181 = ["kind", "key", "cooked", "type", "loc"];
202
+ const KEYS182 = ["kind", "cond", "then", "else_", "type", "loc"];
203
+ const KEYS183 = ["kind", "operand", "type", "loc"];
204
+ const KEYS184 = ["kind", "operand", "type", "loc"];
205
+ const KEYS185 = ["kind", "op", "operand", "type", "loc"];
206
+ const KEYS186 = ["kind", "unionId", "field", "value", "type", "loc"];
207
+ const KEYS187 = ["kind", "unionId", "negated", "sameValue", "left", "right", "type", "loc"];
208
+ const KEYS188 = ["kind", "unionId", "tag", "union", "func", "negated", "type", "loc"];
209
+ const KEYS189 = ["kind", "unionId", "tag", "negated", "value", "type", "loc"];
210
+ const KEYS190 = ["kind", "unionId", "key", "value", "type", "loc"];
211
211
  const KEYS191 = ["kind", "unionId", "tag", "value", "type", "loc"];
212
- const KEYS192 = ["kind", "unit", "type", "loc"];
213
- const KEYS193 = ["kind", "value", "type", "loc"];
214
- const KEYS194 = ["kind", "localId", "type", "loc"];
215
- const KEYS195 = ["kind", "className", "method", "args", "type", "loc", "targets"];
216
- const KEYS196 = ["kind", "value", "awaited", "delegated", "captureCompletion", "type", "loc"];
217
- const KEYS197 = ["name", "type"];
218
- const KEYS198 = ["name", "type"];
219
- const KEYS199 = ["path", "size", "sha256", "placeholder"];
220
- const KEYS200 = ["path", "target"];
221
- const KEYS201 = ["diff", "skipPrototype"];
222
- const KEYS202 = ["returnType"];
223
- const KEYS203 = ["test", "body"];
224
- const KEYS204 = ["field", "globalId"];
225
- const KEYS205 = ["field", "wellKnown"];
226
- const KEYS206 = ["tag", "values"];
227
- const KEYS207 = ["context"];
228
- const KEYS208 = ["callback"];
229
- const KEYS209 = ["callback"];
230
- const KEYS210 = ["arg", "what"];
231
- const KEYS211 = ["key", "value"];
232
- const KEYS212 = ["key", "value"];
233
- const KEYS213 = ["name", "value"];
234
- const KEYS214 = ["name", "value", "overflow"];
235
- const KEYS215 = ["id", "params", "returns", "lifetime", "invoke"];
236
- const KEYS216 = ["release", "params", "returns"];
212
+ const KEYS192 = ["kind", "fromId", "unionId", "tags", "value", "type", "loc"];
213
+ const KEYS193 = ["kind", "unionId", "tag", "value", "type", "loc"];
214
+ const KEYS194 = ["kind", "unit", "type", "loc"];
215
+ const KEYS195 = ["kind", "value", "type", "loc"];
216
+ const KEYS196 = ["kind", "localId", "type", "loc"];
217
+ const KEYS197 = ["kind", "className", "method", "args", "type", "loc", "targets"];
218
+ const KEYS198 = ["kind", "value", "awaited", "delegated", "captureCompletion", "type", "loc"];
219
+ const KEYS199 = ["name", "type"];
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"];
231
+ const KEYS211 = ["callback"];
232
+ const KEYS212 = ["arg", "what"];
233
+ const KEYS213 = ["key", "value"];
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"];
237
239
  function encIrModule(w, v) {
238
240
  w.keys(Object.keys(v), KEYS0);
239
241
  w.num(v.irVersion);
@@ -300,12 +302,24 @@ function encIrModule(w, v) {
300
302
  w.byte(1);
301
303
  encT8(w, v.foreignElementKeys);
302
304
  }
305
+ if (v.recordLinks === undefined)
306
+ w.byte(0);
307
+ else {
308
+ w.byte(1);
309
+ encT9(w, v.recordLinks);
310
+ }
303
311
  if (v.threadSlotKeys === undefined)
304
312
  w.byte(0);
305
313
  else {
306
314
  w.byte(1);
307
315
  encT8(w, v.threadSlotKeys);
308
316
  }
317
+ if (v.bytesHeadersMutable === undefined)
318
+ w.byte(0);
319
+ else {
320
+ w.byte(1);
321
+ w.bool(v.bytesHeadersMutable);
322
+ }
309
323
  if (v.freezableArrays === undefined)
310
324
  w.byte(0);
311
325
  else {
@@ -334,13 +348,13 @@ function encIrModule(w, v) {
334
348
  w.byte(0);
335
349
  else {
336
350
  w.byte(1);
337
- encT9(w, v.nodeIsland);
351
+ encT10(w, v.nodeIsland);
338
352
  }
339
353
  if (v.ffiImports === undefined)
340
354
  w.byte(0);
341
355
  else {
342
356
  w.byte(1);
343
- encT10(w, v.ffiImports);
357
+ encT11(w, v.ffiImports);
344
358
  }
345
359
  if (v.lib === undefined)
346
360
  w.byte(0);
@@ -364,13 +378,13 @@ function encIrModule(w, v) {
364
378
  w.byte(0);
365
379
  else {
366
380
  w.byte(1);
367
- encT13(w, v.wasmModules);
381
+ encT14(w, v.wasmModules);
368
382
  }
369
383
  if (v.wasmUntranslated === undefined)
370
384
  w.byte(0);
371
385
  else {
372
386
  w.byte(1);
373
- encT14(w, v.wasmUntranslated);
387
+ encT15(w, v.wasmUntranslated);
374
388
  }
375
389
  if (v.wasmCustomSections === undefined)
376
390
  w.byte(0);
@@ -394,20 +408,22 @@ function decIrModule(r) {
394
408
  const f11 = r.tag(2, "IrModule.declOrigins") === 0 ? undefined : decT8(r);
395
409
  const f12 = r.tag(2, "IrModule.lifetimeRegions") === 0 ? undefined : r.bool();
396
410
  const f13 = r.tag(2, "IrModule.foreignElementKeys") === 0 ? undefined : decT8(r);
397
- const f14 = r.tag(2, "IrModule.threadSlotKeys") === 0 ? undefined : decT8(r);
398
- const f15 = r.tag(2, "IrModule.freezableArrays") === 0 ? undefined : decT8(r);
399
- const f16 = r.tag(2, "IrModule.sloppyDynWrites") === 0 ? undefined : decT8(r);
400
- const f17 = r.tag(2, "IrModule.untypedIntegrity") === 0 ? undefined : r.bool();
401
- const f18 = r.tag(2, "IrModule.commonJsEntry") === 0 ? undefined : r.bool();
402
- const f19 = r.tag(2, "IrModule.nodeIsland") === 0 ? undefined : decT9(r);
403
- const f20 = r.tag(2, "IrModule.ffiImports") === 0 ? undefined : decT10(r);
404
- const f21 = r.tag(2, "IrModule.lib") === 0 ? undefined : decIrLibSection(r);
405
- const f22 = r.tag(2, "IrModule.contracts") === 0 ? undefined : decIrContracts(r);
406
- const f23 = r.tag(2, "IrModule.int32ArrayCandidates") === 0 ? undefined : decT8(r);
407
- const f24 = r.tag(2, "IrModule.wasmModules") === 0 ? undefined : decT13(r);
408
- const f25 = r.tag(2, "IrModule.wasmUntranslated") === 0 ? undefined : decT14(r);
409
- const f26 = r.tag(2, "IrModule.wasmCustomSections") === 0 ? undefined : r.bool();
410
- const o = { irVersion: f0, sourceFile: f1, functions: f2, ...(f3 !== undefined ? { classes: f3 } : {}), ...(f4 !== undefined ? { globals: f4 } : {}), ...(f5 !== undefined ? { records: f5 } : {}), ...(f6 !== undefined ? { unions: f6 } : {}), entry: f7, ...(f8 !== undefined ? { workers: f8 } : {}), ...(f9 !== undefined ? { declBoundary: f9 } : {}), ...(f10 !== undefined ? { inferredFactFiles: f10 } : {}), ...(f11 !== undefined ? { declOrigins: f11 } : {}), ...(f12 !== undefined ? { lifetimeRegions: f12 } : {}), ...(f13 !== undefined ? { foreignElementKeys: f13 } : {}), ...(f14 !== undefined ? { threadSlotKeys: f14 } : {}), ...(f15 !== undefined ? { freezableArrays: f15 } : {}), ...(f16 !== undefined ? { sloppyDynWrites: f16 } : {}), ...(f17 !== undefined ? { untypedIntegrity: f17 } : {}), ...(f18 !== undefined ? { commonJsEntry: f18 } : {}), ...(f19 !== undefined ? { nodeIsland: f19 } : {}), ...(f20 !== undefined ? { ffiImports: f20 } : {}), ...(f21 !== undefined ? { lib: f21 } : {}), ...(f22 !== undefined ? { contracts: f22 } : {}), ...(f23 !== undefined ? { int32ArrayCandidates: f23 } : {}), ...(f24 !== undefined ? { wasmModules: f24 } : {}), ...(f25 !== undefined ? { wasmUntranslated: f25 } : {}), ...(f26 !== undefined ? { wasmCustomSections: f26 } : {}) };
411
+ const f14 = r.tag(2, "IrModule.recordLinks") === 0 ? undefined : decT9(r);
412
+ const f15 = r.tag(2, "IrModule.threadSlotKeys") === 0 ? undefined : decT8(r);
413
+ const f16 = r.tag(2, "IrModule.bytesHeadersMutable") === 0 ? undefined : r.bool();
414
+ const f17 = r.tag(2, "IrModule.freezableArrays") === 0 ? undefined : decT8(r);
415
+ const f18 = r.tag(2, "IrModule.sloppyDynWrites") === 0 ? undefined : decT8(r);
416
+ const f19 = r.tag(2, "IrModule.untypedIntegrity") === 0 ? undefined : r.bool();
417
+ const f20 = r.tag(2, "IrModule.commonJsEntry") === 0 ? undefined : r.bool();
418
+ const f21 = r.tag(2, "IrModule.nodeIsland") === 0 ? undefined : decT10(r);
419
+ const f22 = r.tag(2, "IrModule.ffiImports") === 0 ? undefined : decT11(r);
420
+ const f23 = r.tag(2, "IrModule.lib") === 0 ? undefined : decIrLibSection(r);
421
+ const f24 = r.tag(2, "IrModule.contracts") === 0 ? undefined : decIrContracts(r);
422
+ const f25 = r.tag(2, "IrModule.int32ArrayCandidates") === 0 ? undefined : decT8(r);
423
+ const f26 = r.tag(2, "IrModule.wasmModules") === 0 ? undefined : decT14(r);
424
+ const f27 = r.tag(2, "IrModule.wasmUntranslated") === 0 ? undefined : decT15(r);
425
+ const f28 = r.tag(2, "IrModule.wasmCustomSections") === 0 ? undefined : r.bool();
426
+ const o = { irVersion: f0, sourceFile: f1, functions: f2, ...(f3 !== undefined ? { classes: f3 } : {}), ...(f4 !== undefined ? { globals: f4 } : {}), ...(f5 !== undefined ? { records: f5 } : {}), ...(f6 !== undefined ? { unions: f6 } : {}), entry: f7, ...(f8 !== undefined ? { workers: f8 } : {}), ...(f9 !== undefined ? { declBoundary: f9 } : {}), ...(f10 !== undefined ? { inferredFactFiles: f10 } : {}), ...(f11 !== undefined ? { declOrigins: f11 } : {}), ...(f12 !== undefined ? { lifetimeRegions: f12 } : {}), ...(f13 !== undefined ? { foreignElementKeys: f13 } : {}), ...(f14 !== undefined ? { recordLinks: f14 } : {}), ...(f15 !== undefined ? { threadSlotKeys: f15 } : {}), ...(f16 !== undefined ? { bytesHeadersMutable: f16 } : {}), ...(f17 !== undefined ? { freezableArrays: f17 } : {}), ...(f18 !== undefined ? { sloppyDynWrites: f18 } : {}), ...(f19 !== undefined ? { untypedIntegrity: f19 } : {}), ...(f20 !== undefined ? { commonJsEntry: f20 } : {}), ...(f21 !== undefined ? { nodeIsland: f21 } : {}), ...(f22 !== undefined ? { ffiImports: f22 } : {}), ...(f23 !== undefined ? { lib: f23 } : {}), ...(f24 !== undefined ? { contracts: f24 } : {}), ...(f25 !== undefined ? { int32ArrayCandidates: f25 } : {}), ...(f26 !== undefined ? { wasmModules: f26 } : {}), ...(f27 !== undefined ? { wasmUntranslated: f27 } : {}), ...(f28 !== undefined ? { wasmCustomSections: f28 } : {}) };
411
427
  return o;
412
428
  }
413
429
  function encIrFunction(w, v) {
@@ -431,22 +447,22 @@ function encIrFunction(w, v) {
431
447
  w.byte(1);
432
448
  w.bool(v.ownsPrototype);
433
449
  }
434
- encT15(w, v.params);
450
+ encT16(w, v.params);
435
451
  encIrType(w, v.returnType);
436
- encT17(w, v.locals);
452
+ encT18(w, v.locals);
437
453
  if (v.captures === undefined)
438
454
  w.byte(0);
439
455
  else {
440
456
  w.byte(1);
441
- encT15(w, v.captures);
457
+ encT16(w, v.captures);
442
458
  }
443
459
  if (v.classCaptures === undefined)
444
460
  w.byte(0);
445
461
  else {
446
462
  w.byte(1);
447
- encT18(w, v.classCaptures);
463
+ encT19(w, v.classCaptures);
448
464
  }
449
- encT19(w, v.body);
465
+ encT20(w, v.body);
450
466
  encSrcLoc(w, v.loc);
451
467
  if (v.jsEntry === undefined)
452
468
  w.byte(0);
@@ -488,7 +504,7 @@ function encIrFunction(w, v) {
488
504
  w.byte(0);
489
505
  else {
490
506
  w.byte(1);
491
- encT21(w, v.generator);
507
+ encT22(w, v.generator);
492
508
  }
493
509
  if (v.asyncCacheGlobal === undefined)
494
510
  w.byte(0);
@@ -508,12 +524,12 @@ function decIrFunction(r) {
508
524
  const f1 = r.tag(2, "IrFunction.sourceName") === 0 ? undefined : r.str();
509
525
  const f2 = r.tag(2, "IrFunction.displayName") === 0 ? undefined : r.str();
510
526
  const f3 = r.tag(2, "IrFunction.ownsPrototype") === 0 ? undefined : r.bool();
511
- const f4 = decT15(r);
527
+ const f4 = decT16(r);
512
528
  const f5 = decIrType(r);
513
- const f6 = decT17(r);
514
- const f7 = r.tag(2, "IrFunction.captures") === 0 ? undefined : decT15(r);
515
- const f8 = r.tag(2, "IrFunction.classCaptures") === 0 ? undefined : decT18(r);
516
- const f9 = decT19(r);
529
+ const f6 = decT18(r);
530
+ const f7 = r.tag(2, "IrFunction.captures") === 0 ? undefined : decT16(r);
531
+ const f8 = r.tag(2, "IrFunction.classCaptures") === 0 ? undefined : decT19(r);
532
+ const f9 = decT20(r);
517
533
  const f10 = decSrcLoc(r);
518
534
  const f11 = r.tag(2, "IrFunction.jsEntry") === 0 ? undefined : r.str();
519
535
  const f12 = r.tag(2, "IrFunction.tier") === 0 ? undefined : r.str();
@@ -521,7 +537,7 @@ function decIrFunction(r) {
521
537
  const f14 = r.tag(2, "IrFunction.fastRead") === 0 ? undefined : r.str();
522
538
  const f15 = r.tag(2, "IrFunction.plainLoops") === 0 ? undefined : r.bool();
523
539
  const f16 = r.tag(2, "IrFunction.async") === 0 ? undefined : r.bool();
524
- const f17 = r.tag(2, "IrFunction.generator") === 0 ? undefined : decT21(r);
540
+ const f17 = r.tag(2, "IrFunction.generator") === 0 ? undefined : decT22(r);
525
541
  const f18 = r.tag(2, "IrFunction.asyncCacheGlobal") === 0 ? undefined : r.str();
526
542
  const f19 = r.tag(2, "IrFunction.asyncCycleCacheGlobal") === 0 ? undefined : r.str();
527
543
  const o = { name: f0, ...(f1 !== undefined ? { sourceName: f1 } : {}), ...(f2 !== undefined ? { displayName: f2 } : {}), ...(f3 !== undefined ? { ownsPrototype: f3 } : {}), params: f4, returnType: f5, locals: f6, ...(f7 !== undefined ? { captures: f7 } : {}), ...(f8 !== undefined ? { classCaptures: f8 } : {}), body: f9, loc: f10, ...(f11 !== undefined ? { jsEntry: f11 } : {}), ...(f12 !== undefined ? { tier: f12 } : {}), ...(f13 !== undefined ? { speculativeDispatch: f13 } : {}), ...(f14 !== undefined ? { fastRead: f14 } : {}), ...(f15 !== undefined ? { plainLoops: f15 } : {}), ...(f16 !== undefined ? { async: f16 } : {}), ...(f17 !== undefined ? { generator: f17 } : {}), ...(f18 !== undefined ? { asyncCacheGlobal: f18 } : {}), ...(f19 !== undefined ? { asyncCycleCacheGlobal: f19 } : {}) };
@@ -595,14 +611,14 @@ function decT6(r) {
595
611
  function encT7(w, v) {
596
612
  w.length(v.length);
597
613
  for (const item of v) {
598
- encT26(w, item);
614
+ encT27(w, item);
599
615
  }
600
616
  }
601
617
  function decT7(r) {
602
618
  const length = r.length();
603
619
  const out = [];
604
620
  for (let i = 0; i < length; i++)
605
- out.push(decT26(r));
621
+ out.push(decT27(r));
606
622
  return out;
607
623
  }
608
624
  function encT8(w, v) {
@@ -619,6 +635,19 @@ function decT8(r) {
619
635
  return out;
620
636
  }
621
637
  function encT9(w, v) {
638
+ w.length(v.length);
639
+ for (const item of v) {
640
+ encIrRecordLink(w, item);
641
+ }
642
+ }
643
+ function decT9(r) {
644
+ const length = r.length();
645
+ const out = [];
646
+ for (let i = 0; i < length; i++)
647
+ out.push(decIrRecordLink(r));
648
+ return out;
649
+ }
650
+ function encT10(w, v) {
622
651
  w.keys(Object.keys(v), KEYS2);
623
652
  w.str(v.libnode);
624
653
  w.str(v.nodeVersion);
@@ -629,20 +658,20 @@ function encT9(w, v) {
629
658
  encIrNodeIslandModules(w, v.modules);
630
659
  }
631
660
  }
632
- function decT9(r) {
661
+ function decT10(r) {
633
662
  const f0 = r.str();
634
663
  const f1 = r.str();
635
664
  const f2 = r.tag(2, "IrModule.nodeIsland.modules") === 0 ? undefined : decIrNodeIslandModules(r);
636
665
  const o = { libnode: f0, nodeVersion: f1, ...(f2 !== undefined ? { modules: f2 } : {}) };
637
666
  return o;
638
667
  }
639
- function encT10(w, v) {
668
+ function encT11(w, v) {
640
669
  w.length(v.length);
641
670
  for (const item of v) {
642
671
  encIrFfiImport(w, item);
643
672
  }
644
673
  }
645
- function decT10(r) {
674
+ function decT11(r) {
646
675
  const length = r.length();
647
676
  const out = [];
648
677
  for (let i = 0; i < length; i++)
@@ -678,10 +707,10 @@ function encIrLibSection(w, v) {
678
707
  w.byte(0);
679
708
  else {
680
709
  w.byte(1);
681
- encT29(w, v.callbacks);
710
+ encT31(w, v.callbacks);
682
711
  }
683
- encT30(w, v.exports);
684
- encT31(w, v.trapOverlays);
712
+ encT32(w, v.exports);
713
+ encT33(w, v.trapOverlays);
685
714
  if (v.identity === undefined)
686
715
  w.byte(0);
687
716
  else {
@@ -698,9 +727,9 @@ function decIrLibSection(r) {
698
727
  const f5 = r.tag(2, "IrModule.lib.resultResetSymbol") === 0 ? null : r.str();
699
728
  const f6 = r.bool();
700
729
  const f7 = r.tag(2, "IrModule.lib.callbackRegisterSymbol") === 0 ? undefined : r.str();
701
- const f8 = r.tag(2, "IrModule.lib.callbacks") === 0 ? undefined : decT29(r);
702
- const f9 = decT30(r);
703
- const f10 = decT31(r);
730
+ const f8 = r.tag(2, "IrModule.lib.callbacks") === 0 ? undefined : decT31(r);
731
+ const f9 = decT32(r);
732
+ const f10 = decT33(r);
704
733
  const f11 = r.tag(2, "IrModule.lib.identity") === 0 ? undefined : decIrLibIdentity(r);
705
734
  const o = { profileName: f0, prefix: f1, initSymbol: f2, sinkRegisterSymbol: f3, collectSymbol: f4, resultResetSymbol: f5, threadInstances: f6, ...(f7 !== undefined ? { callbackRegisterSymbol: f7 } : {}), ...(f8 !== undefined ? { callbacks: f8 } : {}), exports: f9, trapOverlays: f10, ...(f11 !== undefined ? { identity: f11 } : {}) };
706
735
  return o;
@@ -782,39 +811,39 @@ function decIrContracts(r) {
782
811
  const o = { ...(f0 !== undefined ? { int32Fields: f0 } : {}), ...(f1 !== undefined ? { int32Params: f1 } : {}), ...(f2 !== undefined ? { int32Returns: f2 } : {}), ...(f3 !== undefined ? { int32Locals: f3 } : {}), ...(f4 !== undefined ? { int32Elements: f4 } : {}), ...(f5 !== undefined ? { noThrow: f5 } : {}), ...(f6 !== undefined ? { acyclic: f6 } : {}), ...(f7 !== undefined ? { immortalGlobals: f7 } : {}), ...(f8 !== undefined ? { programLifetime: f8 } : {}), ...(f9 !== undefined ? { inlineArrays: f9 } : {}) };
783
812
  return o;
784
813
  }
785
- function encT13(w, v) {
814
+ function encT14(w, v) {
786
815
  w.length(v.length);
787
816
  for (const item of v) {
788
817
  encIrWasmModule(w, item);
789
818
  }
790
819
  }
791
- function decT13(r) {
820
+ function decT14(r) {
792
821
  const length = r.length();
793
822
  const out = [];
794
823
  for (let i = 0; i < length; i++)
795
824
  out.push(decIrWasmModule(r));
796
825
  return out;
797
826
  }
798
- function encT14(w, v) {
827
+ function encT15(w, v) {
799
828
  w.length(v.length);
800
829
  for (const item of v) {
801
830
  encIrWasmUntranslated(w, item);
802
831
  }
803
832
  }
804
- function decT14(r) {
833
+ function decT15(r) {
805
834
  const length = r.length();
806
835
  const out = [];
807
836
  for (let i = 0; i < length; i++)
808
837
  out.push(decIrWasmUntranslated(r));
809
838
  return out;
810
839
  }
811
- function encT15(w, v) {
840
+ function encT16(w, v) {
812
841
  w.length(v.length);
813
842
  for (const item of v) {
814
843
  encIrParam(w, item);
815
844
  }
816
845
  }
817
- function decT15(r) {
846
+ function decT16(r) {
818
847
  const length = r.length();
819
848
  const out = [];
820
849
  for (let i = 0; i < length; i++)
@@ -930,7 +959,7 @@ function encIrType(w, v) {
930
959
  case "func": {
931
960
  w.length(19);
932
961
  w.keys(Object.keys(v), KEYS24);
933
- encT36(w, v.params);
962
+ encT38(w, v.params);
934
963
  encIrType(w, v.ret);
935
964
  if (v.rest === undefined)
936
965
  w.byte(0);
@@ -1200,7 +1229,7 @@ function decIrType(r) {
1200
1229
  return o;
1201
1230
  }
1202
1231
  case 19: {
1203
- const f0 = decT36(r);
1232
+ const f0 = decT38(r);
1204
1233
  const f1 = decIrType(r);
1205
1234
  const f2 = r.tag(2, "IrFunction.returnType<func>.rest") === 0 ? undefined : r.bool();
1206
1235
  const f3 = r.tag(2, "IrFunction.returnType<func>.restAbi") === 0 ? undefined : r.str();
@@ -1339,39 +1368,39 @@ function decIrType(r) {
1339
1368
  }
1340
1369
  throw new Error("IR codec: invalid IrType kind");
1341
1370
  }
1342
- function encT17(w, v) {
1371
+ function encT18(w, v) {
1343
1372
  w.length(v.length);
1344
1373
  for (const item of v) {
1345
1374
  encIrLocal(w, item);
1346
1375
  }
1347
1376
  }
1348
- function decT17(r) {
1377
+ function decT18(r) {
1349
1378
  const length = r.length();
1350
1379
  const out = [];
1351
1380
  for (let i = 0; i < length; i++)
1352
1381
  out.push(decIrLocal(r));
1353
1382
  return out;
1354
1383
  }
1355
- function encT18(w, v) {
1384
+ function encT19(w, v) {
1356
1385
  w.length(v.length);
1357
1386
  for (const item of v) {
1358
- encT38(w, item);
1387
+ encT40(w, item);
1359
1388
  }
1360
1389
  }
1361
- function decT18(r) {
1390
+ function decT19(r) {
1362
1391
  const length = r.length();
1363
1392
  const out = [];
1364
1393
  for (let i = 0; i < length; i++)
1365
- out.push(decT38(r));
1394
+ out.push(decT40(r));
1366
1395
  return out;
1367
1396
  }
1368
- function encT19(w, v) {
1397
+ function encT20(w, v) {
1369
1398
  w.length(v.length);
1370
1399
  for (const item of v) {
1371
1400
  encIrStmt(w, item);
1372
1401
  }
1373
1402
  }
1374
- function decT19(r) {
1403
+ function decT20(r) {
1375
1404
  const length = r.length();
1376
1405
  const out = [];
1377
1406
  for (let i = 0; i < length; i++)
@@ -1391,11 +1420,11 @@ function decSrcLoc(r) {
1391
1420
  const o = { file: f0, start: f1, end: f2 };
1392
1421
  return o;
1393
1422
  }
1394
- function encT21(w, v) {
1423
+ function encT22(w, v) {
1395
1424
  w.keys(Object.keys(v), KEYS55);
1396
1425
  encIrType(w, v.yieldT);
1397
1426
  encIrType(w, v.nextT);
1398
- encT40(w, v.resultType);
1427
+ encT42(w, v.resultType);
1399
1428
  if (v.closesSource === undefined)
1400
1429
  w.byte(0);
1401
1430
  else {
@@ -1414,15 +1443,22 @@ function encT21(w, v) {
1414
1443
  w.byte(1);
1415
1444
  w.bool(v.inheritsTag);
1416
1445
  }
1446
+ if (v.bindAtCall === undefined)
1447
+ w.byte(0);
1448
+ else {
1449
+ w.byte(1);
1450
+ w.bool(v.bindAtCall);
1451
+ }
1417
1452
  }
1418
- function decT21(r) {
1453
+ function decT22(r) {
1419
1454
  const f0 = decIrType(r);
1420
1455
  const f1 = decIrType(r);
1421
- const f2 = decT40(r);
1456
+ const f2 = decT42(r);
1422
1457
  const f3 = r.tag(2, "IrFunction.generator.closesSource") === 0 ? undefined : r.bool();
1423
1458
  const f4 = r.tag(2, "IrFunction.generator.tag") === 0 ? undefined : r.str();
1424
1459
  const f5 = r.tag(2, "IrFunction.generator.inheritsTag") === 0 ? undefined : r.bool();
1425
- const o = { yieldT: f0, nextT: f1, resultType: f2, ...(f3 !== undefined ? { closesSource: f3 } : {}), ...(f4 !== undefined ? { tag: f4 } : {}), ...(f5 !== undefined ? { inheritsTag: f5 } : {}) };
1460
+ const f6 = r.tag(2, "IrFunction.generator.bindAtCall") === 0 ? undefined : r.bool();
1461
+ const o = { yieldT: f0, nextT: f1, resultType: f2, ...(f3 !== undefined ? { closesSource: f3 } : {}), ...(f4 !== undefined ? { tag: f4 } : {}), ...(f5 !== undefined ? { inheritsTag: f5 } : {}), ...(f6 !== undefined ? { bindAtCall: f6 } : {}) };
1426
1462
  return o;
1427
1463
  }
1428
1464
  function encIrClassDef(w, v) {
@@ -1432,7 +1468,7 @@ function encIrClassDef(w, v) {
1432
1468
  w.byte(0);
1433
1469
  else {
1434
1470
  w.byte(1);
1435
- encT15(w, v.localCaptures);
1471
+ encT16(w, v.localCaptures);
1436
1472
  }
1437
1473
  if (v.localBaseCapture === undefined)
1438
1474
  w.byte(0);
@@ -1506,7 +1542,7 @@ function encIrClassDef(w, v) {
1506
1542
  w.byte(0);
1507
1543
  else {
1508
1544
  w.byte(1);
1509
- encT41(w, v.symbolFields);
1545
+ encT43(w, v.symbolFields);
1510
1546
  }
1511
1547
  if (v.runtime === undefined)
1512
1548
  w.byte(0);
@@ -1538,7 +1574,7 @@ function encIrClassDef(w, v) {
1538
1574
  w.byte(1);
1539
1575
  w.str(v.base);
1540
1576
  }
1541
- encT42(w, v.fields);
1577
+ encT44(w, v.fields);
1542
1578
  if (v.methods === undefined)
1543
1579
  w.byte(0);
1544
1580
  else {
@@ -1573,7 +1609,7 @@ function encIrClassDef(w, v) {
1573
1609
  }
1574
1610
  function decIrClassDef(r) {
1575
1611
  const f0 = r.str();
1576
- const f1 = r.tag(2, "IrModule.classes[].localCaptures") === 0 ? undefined : decT15(r);
1612
+ const f1 = r.tag(2, "IrModule.classes[].localCaptures") === 0 ? undefined : decT16(r);
1577
1613
  const f2 = r.tag(2, "IrModule.classes[].localBaseCapture") === 0 ? undefined : r.num();
1578
1614
  const f3 = r.tag(2, "IrModule.classes[].baseValueGlobal") === 0 ? undefined : r.str();
1579
1615
  const f4 = r.tag(2, "IrModule.classes[].jsName") === 0 ? undefined : r.str();
@@ -1585,13 +1621,13 @@ function decIrClassDef(r) {
1585
1621
  const f10 = r.tag(2, "IrModule.classes[].tracksOwnFields") === 0 ? undefined : r.bool();
1586
1622
  const f11 = r.tag(3, "IrModule.classes[].errorNameAfter") === 0 ? undefined : r.lastTag === 1 ? null : r.str();
1587
1623
  const f12 = r.tag(2, "IrModule.classes[].errorBagOrder") === 0 ? undefined : r.bool();
1588
- const f13 = r.tag(2, "IrModule.classes[].symbolFields") === 0 ? undefined : decT41(r);
1624
+ const f13 = r.tag(2, "IrModule.classes[].symbolFields") === 0 ? undefined : decT43(r);
1589
1625
  const f14 = r.tag(2, "IrModule.classes[].runtime") === 0 ? undefined : r.bool();
1590
1626
  const f15 = r.tag(2, "IrModule.classes[].arrayElem") === 0 ? undefined : decIrType(r);
1591
1627
  const f16 = r.tag(2, "IrModule.classes[].arrayFields") === 0 ? undefined : r.str();
1592
1628
  const f17 = r.tag(2, "IrModule.classes[].arraySpecies") === 0 ? undefined : r.str();
1593
1629
  const f18 = r.tag(2, "IrModule.classes[].base") === 0 ? undefined : r.str();
1594
- const f19 = decT42(r);
1630
+ const f19 = decT44(r);
1595
1631
  const f20 = r.tag(2, "IrModule.classes[].methods") === 0 ? undefined : decT8(r);
1596
1632
  const f21 = r.tag(2, "IrModule.classes[].prototypeNames") === 0 ? undefined : decT8(r);
1597
1633
  const f22 = r.tag(2, "IrModule.classes[].abstract") === 0 ? undefined : r.bool();
@@ -1640,7 +1676,7 @@ function decIrGlobal(r) {
1640
1676
  function encIrRecordShape(w, v) {
1641
1677
  w.keys(Object.keys(v), KEYS58);
1642
1678
  w.str(v.id);
1643
- encT44(w, v.fields);
1679
+ encT46(w, v.fields);
1644
1680
  if (v.tuple === undefined)
1645
1681
  w.byte(0);
1646
1682
  else {
@@ -1675,25 +1711,25 @@ function encIrRecordShape(w, v) {
1675
1711
  w.byte(0);
1676
1712
  else {
1677
1713
  w.byte(1);
1678
- encT45(w, v.orderVariants);
1714
+ encT47(w, v.orderVariants);
1679
1715
  }
1680
1716
  }
1681
1717
  function decIrRecordShape(r) {
1682
1718
  const f0 = r.str();
1683
- const f1 = decT44(r);
1719
+ const f1 = decT46(r);
1684
1720
  const f2 = r.tag(2, "IrModule.records[].tuple") === 0 ? undefined : r.bool();
1685
1721
  const f3 = r.tag(2, "IrModule.records[].indexValue") === 0 ? undefined : decIrType(r);
1686
1722
  const f4 = r.tag(2, "IrModule.records[].freezable") === 0 ? undefined : r.bool();
1687
1723
  const f5 = r.tag(2, "IrModule.records[].declaredOrder") === 0 ? undefined : decT8(r);
1688
1724
  const f6 = r.tag(2, "IrModule.records[].accessorOrder") === 0 ? undefined : decT8(r);
1689
- const f7 = r.tag(2, "IrModule.records[].orderVariants") === 0 ? undefined : decT45(r);
1725
+ const f7 = r.tag(2, "IrModule.records[].orderVariants") === 0 ? undefined : decT47(r);
1690
1726
  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 } : {}) };
1691
1727
  return o;
1692
1728
  }
1693
1729
  function encIrUnionDef(w, v) {
1694
1730
  w.keys(Object.keys(v), KEYS59);
1695
1731
  w.str(v.id);
1696
- encT36(w, v.arms);
1732
+ encT38(w, v.arms);
1697
1733
  if (v.discriminant === undefined)
1698
1734
  w.byte(0);
1699
1735
  else {
@@ -1703,27 +1739,42 @@ function encIrUnionDef(w, v) {
1703
1739
  }
1704
1740
  function decIrUnionDef(r) {
1705
1741
  const f0 = r.str();
1706
- const f1 = decT36(r);
1742
+ const f1 = decT38(r);
1707
1743
  const f2 = r.tag(2, "IrModule.unions[].discriminant") === 0 ? undefined : decIrUnionDiscriminant(r);
1708
1744
  const o = { id: f0, arms: f1, ...(f2 !== undefined ? { discriminant: f2 } : {}) };
1709
1745
  return o;
1710
1746
  }
1711
- function encT26(w, v) {
1747
+ function encT27(w, v) {
1712
1748
  w.keys(Object.keys(v), KEYS60);
1713
1749
  w.file(v.file);
1714
1750
  w.str(v.pkg);
1715
1751
  }
1716
- function decT26(r) {
1752
+ function decT27(r) {
1717
1753
  const f0 = r.str();
1718
1754
  const f1 = r.str();
1719
1755
  const o = { file: f0, pkg: f1 };
1720
1756
  return o;
1721
1757
  }
1722
- function encIrNodeIslandModules(w, v) {
1758
+ function encIrRecordLink(w, v) {
1723
1759
  w.keys(Object.keys(v), KEYS61);
1760
+ w.num(v.pair);
1761
+ w.str(v.from);
1762
+ w.str(v.to);
1763
+ w.str(v.compose);
1764
+ }
1765
+ function decIrRecordLink(r) {
1766
+ const f0 = r.num();
1767
+ const f1 = r.str();
1768
+ const f2 = r.str();
1769
+ const f3 = r.str();
1770
+ const o = { pair: f0, from: f1, to: f2, compose: f3 };
1771
+ return o;
1772
+ }
1773
+ function encIrNodeIslandModules(w, v) {
1774
+ w.keys(Object.keys(v), KEYS62);
1724
1775
  w.str(v.root);
1725
- encT47(w, v.files);
1726
- encT48(w, v.links);
1776
+ encT49(w, v.files);
1777
+ encT50(w, v.links);
1727
1778
  if (v.location === undefined)
1728
1779
  w.byte(0);
1729
1780
  else {
@@ -1733,14 +1784,14 @@ function encIrNodeIslandModules(w, v) {
1733
1784
  }
1734
1785
  function decIrNodeIslandModules(r) {
1735
1786
  const f0 = r.str();
1736
- const f1 = decT47(r);
1737
- const f2 = decT48(r);
1787
+ const f1 = decT49(r);
1788
+ const f2 = decT50(r);
1738
1789
  const f3 = r.tag(2, "IrModule.nodeIsland.modules.location") === 0 ? undefined : r.str();
1739
1790
  const o = { root: f0, files: f1, links: f2, ...(f3 !== undefined ? { location: f3 } : {}) };
1740
1791
  return o;
1741
1792
  }
1742
1793
  function encIrFfiImport(w, v) {
1743
- w.keys(Object.keys(v), KEYS62);
1794
+ w.keys(Object.keys(v), KEYS63);
1744
1795
  w.str(v.name);
1745
1796
  w.str(v.symbol);
1746
1797
  if (v.library === undefined)
@@ -1761,7 +1812,7 @@ function encIrFfiImport(w, v) {
1761
1812
  w.byte(1);
1762
1813
  w.str(v.callbackTarget);
1763
1814
  }
1764
- encT49(w, v.params);
1815
+ encT51(w, v.params);
1765
1816
  w.str(v.returns);
1766
1817
  }
1767
1818
  function decIrFfiImport(r) {
@@ -1770,44 +1821,44 @@ function decIrFfiImport(r) {
1770
1821
  const f2 = r.tag(2, "IrModule.ffiImports[].library") === 0 ? undefined : r.str();
1771
1822
  const f3 = r.tag(2, "IrModule.ffiImports[].callbackOperation") === 0 ? undefined : r.str();
1772
1823
  const f4 = r.tag(2, "IrModule.ffiImports[].callbackTarget") === 0 ? undefined : r.str();
1773
- const f5 = decT49(r);
1824
+ const f5 = decT51(r);
1774
1825
  const f6 = r.str();
1775
1826
  const o = { name: f0, symbol: f1, ...(f2 !== undefined ? { library: f2 } : {}), ...(f3 !== undefined ? { callbackOperation: f3 } : {}), ...(f4 !== undefined ? { callbackTarget: f4 } : {}), params: f5, returns: f6 };
1776
1827
  return o;
1777
1828
  }
1778
- function encT29(w, v) {
1829
+ function encT31(w, v) {
1779
1830
  w.length(v.length);
1780
1831
  for (const item of v) {
1781
1832
  encIrLibCallback(w, item);
1782
1833
  }
1783
1834
  }
1784
- function decT29(r) {
1835
+ function decT31(r) {
1785
1836
  const length = r.length();
1786
1837
  const out = [];
1787
1838
  for (let i = 0; i < length; i++)
1788
1839
  out.push(decIrLibCallback(r));
1789
1840
  return out;
1790
1841
  }
1791
- function encT30(w, v) {
1842
+ function encT32(w, v) {
1792
1843
  w.length(v.length);
1793
1844
  for (const item of v) {
1794
1845
  encIrLibExport(w, item);
1795
1846
  }
1796
1847
  }
1797
- function decT30(r) {
1848
+ function decT32(r) {
1798
1849
  const length = r.length();
1799
1850
  const out = [];
1800
1851
  for (let i = 0; i < length; i++)
1801
1852
  out.push(decIrLibExport(r));
1802
1853
  return out;
1803
1854
  }
1804
- function encT31(w, v) {
1855
+ function encT33(w, v) {
1805
1856
  w.length(v.length);
1806
1857
  for (const item of v) {
1807
1858
  encIrLibTrapOverlay(w, item);
1808
1859
  }
1809
1860
  }
1810
- function decT31(r) {
1861
+ function decT33(r) {
1811
1862
  const length = r.length();
1812
1863
  const out = [];
1813
1864
  for (let i = 0; i < length; i++)
@@ -1815,7 +1866,7 @@ function decT31(r) {
1815
1866
  return out;
1816
1867
  }
1817
1868
  function encIrLibIdentity(w, v) {
1818
- w.keys(Object.keys(v), KEYS63);
1869
+ w.keys(Object.keys(v), KEYS64);
1819
1870
  w.str(v.buildIdSymbol);
1820
1871
  w.str(v.abiVersionSymbol);
1821
1872
  w.str(v.buildId);
@@ -1830,7 +1881,7 @@ function decIrLibIdentity(r) {
1830
1881
  return o;
1831
1882
  }
1832
1883
  function encIrWasmModule(w, v) {
1833
- w.keys(Object.keys(v), KEYS64);
1884
+ w.keys(Object.keys(v), KEYS65);
1834
1885
  w.str(v.sha256);
1835
1886
  w.str(v.bytes);
1836
1887
  }
@@ -1841,7 +1892,7 @@ function decIrWasmModule(r) {
1841
1892
  return o;
1842
1893
  }
1843
1894
  function encIrWasmUntranslated(w, v) {
1844
- w.keys(Object.keys(v), KEYS65);
1895
+ w.keys(Object.keys(v), KEYS66);
1845
1896
  w.str(v.sha256);
1846
1897
  w.num(v.size);
1847
1898
  w.str(v.reason);
@@ -1854,7 +1905,7 @@ function decIrWasmUntranslated(r) {
1854
1905
  return o;
1855
1906
  }
1856
1907
  function encIrParam(w, v) {
1857
- w.keys(Object.keys(v), KEYS66);
1908
+ w.keys(Object.keys(v), KEYS67);
1858
1909
  w.str(v.localId);
1859
1910
  w.str(v.name);
1860
1911
  encIrType(w, v.type);
@@ -1873,13 +1924,13 @@ function decIrParam(r) {
1873
1924
  const o = { localId: f0, name: f1, type: f2, ...(f3 !== undefined ? { owned: f3 } : {}) };
1874
1925
  return o;
1875
1926
  }
1876
- function encT36(w, v) {
1927
+ function encT38(w, v) {
1877
1928
  w.length(v.length);
1878
1929
  for (const item of v) {
1879
1930
  encIrType(w, item);
1880
1931
  }
1881
1932
  }
1882
- function decT36(r) {
1933
+ function decT38(r) {
1883
1934
  const length = r.length();
1884
1935
  const out = [];
1885
1936
  for (let i = 0; i < length; i++)
@@ -1887,7 +1938,7 @@ function decT36(r) {
1887
1938
  return out;
1888
1939
  }
1889
1940
  function encIrLocal(w, v) {
1890
- w.keys(Object.keys(v), KEYS67);
1941
+ w.keys(Object.keys(v), KEYS68);
1891
1942
  w.str(v.id);
1892
1943
  w.str(v.name);
1893
1944
  encIrType(w, v.type);
@@ -1922,8 +1973,8 @@ function decIrLocal(r) {
1922
1973
  const o = { id: f0, name: f1, type: f2, mutable: f3, ...(f4 !== undefined ? { source: f4 } : {}), ...(f5 !== undefined ? { boxed: f5 } : {}), ...(f6 !== undefined ? { tdz: f6 } : {}) };
1923
1974
  return o;
1924
1975
  }
1925
- function encT38(w, v) {
1926
- w.keys(Object.keys(v), KEYS68);
1976
+ function encT40(w, v) {
1977
+ w.keys(Object.keys(v), KEYS69);
1927
1978
  w.str(v.localId);
1928
1979
  w.str(v.name);
1929
1980
  encIrType(w, v.type);
@@ -1935,7 +1986,7 @@ function encT38(w, v) {
1935
1986
  }
1936
1987
  w.num(v.slot);
1937
1988
  }
1938
- function decT38(r) {
1989
+ function decT40(r) {
1939
1990
  const f0 = r.str();
1940
1991
  const f1 = r.str();
1941
1992
  const f2 = decIrType(r);
@@ -1948,7 +1999,7 @@ function encIrStmt(w, v) {
1948
1999
  switch (v.kind) {
1949
2000
  case "arrayDelete": {
1950
2001
  w.length(0);
1951
- w.keys(Object.keys(v), KEYS69);
2002
+ w.keys(Object.keys(v), KEYS70);
1952
2003
  encIrExpr(w, v.arr);
1953
2004
  encIrExpr(w, v.index);
1954
2005
  encSrcLoc(w, v.loc);
@@ -1956,7 +2007,7 @@ function encIrStmt(w, v) {
1956
2007
  }
1957
2008
  case "arraySet": {
1958
2009
  w.length(1);
1959
- w.keys(Object.keys(v), KEYS70);
2010
+ w.keys(Object.keys(v), KEYS71);
1960
2011
  encIrExpr(w, v.arr);
1961
2012
  encIrExpr(w, v.index);
1962
2013
  encIrExpr(w, v.value);
@@ -1965,7 +2016,7 @@ function encIrStmt(w, v) {
1965
2016
  }
1966
2017
  case "arraySetLength": {
1967
2018
  w.length(2);
1968
- w.keys(Object.keys(v), KEYS71);
2019
+ w.keys(Object.keys(v), KEYS72);
1969
2020
  encIrExpr(w, v.arr);
1970
2021
  encIrExpr(w, v.length);
1971
2022
  encSrcLoc(w, v.loc);
@@ -1985,7 +2036,7 @@ function encIrStmt(w, v) {
1985
2036
  }
1986
2037
  case "arraySetUndefined": {
1987
2038
  w.length(3);
1988
- w.keys(Object.keys(v), KEYS72);
2039
+ w.keys(Object.keys(v), KEYS73);
1989
2040
  encIrExpr(w, v.arr);
1990
2041
  encIrExpr(w, v.index);
1991
2042
  encSrcLoc(w, v.loc);
@@ -1993,7 +2044,7 @@ function encIrStmt(w, v) {
1993
2044
  }
1994
2045
  case "assign": {
1995
2046
  w.length(4);
1996
- w.keys(Object.keys(v), KEYS73);
2047
+ w.keys(Object.keys(v), KEYS74);
1997
2048
  w.str(v.localId);
1998
2049
  encIrExpr(w, v.value);
1999
2050
  if (v.initializes === undefined)
@@ -2007,20 +2058,20 @@ function encIrStmt(w, v) {
2007
2058
  }
2008
2059
  case "block": {
2009
2060
  w.length(5);
2010
- w.keys(Object.keys(v), KEYS74);
2061
+ w.keys(Object.keys(v), KEYS75);
2011
2062
  if (v.labels === undefined)
2012
2063
  w.byte(0);
2013
2064
  else {
2014
2065
  w.byte(1);
2015
2066
  encT8(w, v.labels);
2016
2067
  }
2017
- encT19(w, v.body);
2068
+ encT20(w, v.body);
2018
2069
  encSrcLoc(w, v.loc);
2019
2070
  return;
2020
2071
  }
2021
2072
  case "break": {
2022
2073
  w.length(6);
2023
- w.keys(Object.keys(v), KEYS75);
2074
+ w.keys(Object.keys(v), KEYS76);
2024
2075
  if (v.label === undefined)
2025
2076
  w.byte(0);
2026
2077
  else {
@@ -2032,7 +2083,7 @@ function encIrStmt(w, v) {
2032
2083
  }
2033
2084
  case "bytesSet": {
2034
2085
  w.length(7);
2035
- w.keys(Object.keys(v), KEYS76);
2086
+ w.keys(Object.keys(v), KEYS77);
2036
2087
  encIrExpr(w, v.arr);
2037
2088
  encIrExpr(w, v.index);
2038
2089
  encIrExpr(w, v.value);
@@ -2041,7 +2092,7 @@ function encIrStmt(w, v) {
2041
2092
  }
2042
2093
  case "continue": {
2043
2094
  w.length(8);
2044
- w.keys(Object.keys(v), KEYS77);
2095
+ w.keys(Object.keys(v), KEYS78);
2045
2096
  if (v.label === undefined)
2046
2097
  w.byte(0);
2047
2098
  else {
@@ -2053,8 +2104,8 @@ function encIrStmt(w, v) {
2053
2104
  }
2054
2105
  case "doWhile": {
2055
2106
  w.length(9);
2056
- w.keys(Object.keys(v), KEYS78);
2057
- encT19(w, v.body);
2107
+ w.keys(Object.keys(v), KEYS79);
2108
+ encT20(w, v.body);
2058
2109
  encIrExpr(w, v.cond);
2059
2110
  if (v.labels === undefined)
2060
2111
  w.byte(0);
@@ -2067,14 +2118,14 @@ function encIrStmt(w, v) {
2067
2118
  }
2068
2119
  case "exprStmt": {
2069
2120
  w.length(10);
2070
- w.keys(Object.keys(v), KEYS79);
2121
+ w.keys(Object.keys(v), KEYS80);
2071
2122
  encIrExpr(w, v.expr);
2072
2123
  encSrcLoc(w, v.loc);
2073
2124
  return;
2074
2125
  }
2075
2126
  case "fieldSet": {
2076
2127
  w.length(11);
2077
- w.keys(Object.keys(v), KEYS80);
2128
+ w.keys(Object.keys(v), KEYS81);
2078
2129
  encIrExpr(w, v.obj);
2079
2130
  w.str(v.className);
2080
2131
  w.str(v.field);
@@ -2102,7 +2153,7 @@ function encIrStmt(w, v) {
2102
2153
  }
2103
2154
  case "for": {
2104
2155
  w.length(12);
2105
- w.keys(Object.keys(v), KEYS81);
2156
+ w.keys(Object.keys(v), KEYS82);
2106
2157
  if (v.init === null)
2107
2158
  w.byte(0);
2108
2159
  else {
@@ -2121,7 +2172,7 @@ function encIrStmt(w, v) {
2121
2172
  w.byte(1);
2122
2173
  encIrStmt(w, v.update);
2123
2174
  }
2124
- encT19(w, v.body);
2175
+ encT20(w, v.body);
2125
2176
  if (v.labels === undefined)
2126
2177
  w.byte(0);
2127
2178
  else {
@@ -2133,10 +2184,10 @@ function encIrStmt(w, v) {
2133
2184
  }
2134
2185
  case "forOf": {
2135
2186
  w.length(13);
2136
- w.keys(Object.keys(v), KEYS82);
2187
+ w.keys(Object.keys(v), KEYS83);
2137
2188
  w.str(v.localId);
2138
2189
  encIrExpr(w, v.iterable);
2139
- encT19(w, v.body);
2190
+ encT20(w, v.body);
2140
2191
  if (v.labels === undefined)
2141
2192
  w.byte(0);
2142
2193
  else {
@@ -2146,23 +2197,29 @@ function encIrStmt(w, v) {
2146
2197
  encSrcLoc(w, v.loc);
2147
2198
  return;
2148
2199
  }
2149
- case "if": {
2200
+ case "genBindBarrier": {
2150
2201
  w.length(14);
2151
- w.keys(Object.keys(v), KEYS83);
2202
+ w.keys(Object.keys(v), KEYS84);
2203
+ encSrcLoc(w, v.loc);
2204
+ return;
2205
+ }
2206
+ case "if": {
2207
+ w.length(15);
2208
+ w.keys(Object.keys(v), KEYS85);
2152
2209
  encIrExpr(w, v.cond);
2153
- encT19(w, v.then);
2210
+ encT20(w, v.then);
2154
2211
  if (v.else_ === null)
2155
2212
  w.byte(0);
2156
2213
  else {
2157
2214
  w.byte(1);
2158
- encT19(w, v.else_);
2215
+ encT20(w, v.else_);
2159
2216
  }
2160
2217
  encSrcLoc(w, v.loc);
2161
2218
  return;
2162
2219
  }
2163
2220
  case "recordKeyDelete": {
2164
- w.length(15);
2165
- w.keys(Object.keys(v), KEYS84);
2221
+ w.length(16);
2222
+ w.keys(Object.keys(v), KEYS86);
2166
2223
  encIrExpr(w, v.obj);
2167
2224
  w.str(v.shapeId);
2168
2225
  encIrExpr(w, v.key);
@@ -2170,8 +2227,8 @@ function encIrStmt(w, v) {
2170
2227
  return;
2171
2228
  }
2172
2229
  case "recordKeySet": {
2173
- w.length(16);
2174
- w.keys(Object.keys(v), KEYS85);
2230
+ w.length(17);
2231
+ w.keys(Object.keys(v), KEYS87);
2175
2232
  encIrExpr(w, v.obj);
2176
2233
  w.str(v.shapeId);
2177
2234
  encIrExpr(w, v.key);
@@ -2186,8 +2243,8 @@ function encIrStmt(w, v) {
2186
2243
  return;
2187
2244
  }
2188
2245
  case "recordSet": {
2189
- w.length(17);
2190
- w.keys(Object.keys(v), KEYS86);
2246
+ w.length(18);
2247
+ w.keys(Object.keys(v), KEYS88);
2191
2248
  encIrExpr(w, v.obj);
2192
2249
  w.str(v.shapeId);
2193
2250
  w.str(v.field);
@@ -2196,15 +2253,15 @@ function encIrStmt(w, v) {
2196
2253
  return;
2197
2254
  }
2198
2255
  case "rethrow": {
2199
- w.length(18);
2200
- w.keys(Object.keys(v), KEYS87);
2256
+ w.length(19);
2257
+ w.keys(Object.keys(v), KEYS89);
2201
2258
  w.str(v.localId);
2202
2259
  encSrcLoc(w, v.loc);
2203
2260
  return;
2204
2261
  }
2205
2262
  case "return": {
2206
- w.length(19);
2207
- w.keys(Object.keys(v), KEYS88);
2263
+ w.length(20);
2264
+ w.keys(Object.keys(v), KEYS90);
2208
2265
  if (v.value === null)
2209
2266
  w.byte(0);
2210
2267
  else {
@@ -2221,18 +2278,18 @@ function encIrStmt(w, v) {
2221
2278
  return;
2222
2279
  }
2223
2280
  case "runtimeFence": {
2224
- w.length(20);
2225
- w.keys(Object.keys(v), KEYS89);
2281
+ w.length(21);
2282
+ w.keys(Object.keys(v), KEYS91);
2226
2283
  w.str(v.code);
2227
2284
  w.str(v.message);
2228
2285
  encSrcLoc(w, v.loc);
2229
2286
  return;
2230
2287
  }
2231
2288
  case "switch": {
2232
- w.length(21);
2233
- w.keys(Object.keys(v), KEYS90);
2289
+ w.length(22);
2290
+ w.keys(Object.keys(v), KEYS92);
2234
2291
  encIrExpr(w, v.disc);
2235
- encT54(w, v.cases);
2292
+ encT56(w, v.cases);
2236
2293
  if (v.labels === undefined)
2237
2294
  w.byte(0);
2238
2295
  else {
@@ -2243,21 +2300,21 @@ function encIrStmt(w, v) {
2243
2300
  return;
2244
2301
  }
2245
2302
  case "throw": {
2246
- w.length(22);
2247
- w.keys(Object.keys(v), KEYS91);
2303
+ w.length(23);
2304
+ w.keys(Object.keys(v), KEYS93);
2248
2305
  encIrExpr(w, v.value);
2249
2306
  encSrcLoc(w, v.loc);
2250
2307
  return;
2251
2308
  }
2252
2309
  case "tryCatch": {
2253
- w.length(23);
2254
- w.keys(Object.keys(v), KEYS92);
2255
- encT19(w, v.tryBody);
2310
+ w.length(24);
2311
+ w.keys(Object.keys(v), KEYS94);
2312
+ encT20(w, v.tryBody);
2256
2313
  if (v.catchBody === null)
2257
2314
  w.byte(0);
2258
2315
  else {
2259
2316
  w.byte(1);
2260
- encT19(w, v.catchBody);
2317
+ encT20(w, v.catchBody);
2261
2318
  }
2262
2319
  if (v.catchLocalId === null)
2263
2320
  w.byte(0);
@@ -2275,7 +2332,7 @@ function encIrStmt(w, v) {
2275
2332
  w.byte(0);
2276
2333
  else {
2277
2334
  w.byte(1);
2278
- encT19(w, v.finallyBody);
2335
+ encT20(w, v.finallyBody);
2279
2336
  }
2280
2337
  if (v.suppressFinallyErrors === undefined)
2281
2338
  w.byte(0);
@@ -2287,8 +2344,8 @@ function encIrStmt(w, v) {
2287
2344
  return;
2288
2345
  }
2289
2346
  case "varDecl": {
2290
- w.length(24);
2291
- w.keys(Object.keys(v), KEYS93);
2347
+ w.length(25);
2348
+ w.keys(Object.keys(v), KEYS95);
2292
2349
  w.str(v.localId);
2293
2350
  if (v.init === null)
2294
2351
  w.byte(0);
@@ -2300,10 +2357,10 @@ function encIrStmt(w, v) {
2300
2357
  return;
2301
2358
  }
2302
2359
  case "while": {
2303
- w.length(25);
2304
- w.keys(Object.keys(v), KEYS94);
2360
+ w.length(26);
2361
+ w.keys(Object.keys(v), KEYS96);
2305
2362
  encIrExpr(w, v.cond);
2306
- encT19(w, v.body);
2363
+ encT20(w, v.body);
2307
2364
  if (v.labels === undefined)
2308
2365
  w.byte(0);
2309
2366
  else {
@@ -2359,7 +2416,7 @@ function decIrStmt(r) {
2359
2416
  }
2360
2417
  case 5: {
2361
2418
  const f0 = r.tag(2, "IrFunction.body[]<block>.labels") === 0 ? undefined : decT8(r);
2362
- const f1 = decT19(r);
2419
+ const f1 = decT20(r);
2363
2420
  const f2 = decSrcLoc(r);
2364
2421
  const o = { kind: "block", ...(f0 !== undefined ? { labels: f0 } : {}), body: f1, loc: f2 };
2365
2422
  return o;
@@ -2385,7 +2442,7 @@ function decIrStmt(r) {
2385
2442
  return o;
2386
2443
  }
2387
2444
  case 9: {
2388
- const f0 = decT19(r);
2445
+ const f0 = decT20(r);
2389
2446
  const f1 = decIrExpr(r);
2390
2447
  const f2 = r.tag(2, "IrFunction.body[]<doWhile>.labels") === 0 ? undefined : decT8(r);
2391
2448
  const f3 = decSrcLoc(r);
@@ -2414,7 +2471,7 @@ function decIrStmt(r) {
2414
2471
  const f0 = r.tag(2, "IrFunction.body[]<for>.init") === 0 ? null : decIrStmt(r);
2415
2472
  const f1 = r.tag(2, "IrFunction.body[]<for>.cond") === 0 ? null : decIrExpr(r);
2416
2473
  const f2 = r.tag(2, "IrFunction.body[]<for>.update") === 0 ? null : decIrStmt(r);
2417
- const f3 = decT19(r);
2474
+ const f3 = decT20(r);
2418
2475
  const f4 = r.tag(2, "IrFunction.body[]<for>.labels") === 0 ? undefined : decT8(r);
2419
2476
  const f5 = decSrcLoc(r);
2420
2477
  const o = { kind: "for", init: f0, cond: f1, update: f2, body: f3, ...(f4 !== undefined ? { labels: f4 } : {}), loc: f5 };
@@ -2423,21 +2480,26 @@ function decIrStmt(r) {
2423
2480
  case 13: {
2424
2481
  const f0 = r.str();
2425
2482
  const f1 = decIrExpr(r);
2426
- const f2 = decT19(r);
2483
+ const f2 = decT20(r);
2427
2484
  const f3 = r.tag(2, "IrFunction.body[]<forOf>.labels") === 0 ? undefined : decT8(r);
2428
2485
  const f4 = decSrcLoc(r);
2429
2486
  const o = { kind: "forOf", localId: f0, iterable: f1, body: f2, ...(f3 !== undefined ? { labels: f3 } : {}), loc: f4 };
2430
2487
  return o;
2431
2488
  }
2432
2489
  case 14: {
2490
+ const f0 = decSrcLoc(r);
2491
+ const o = { kind: "genBindBarrier", loc: f0 };
2492
+ return o;
2493
+ }
2494
+ case 15: {
2433
2495
  const f0 = decIrExpr(r);
2434
- const f1 = decT19(r);
2435
- const f2 = r.tag(2, "IrFunction.body[]<if>.else_") === 0 ? null : decT19(r);
2496
+ const f1 = decT20(r);
2497
+ const f2 = r.tag(2, "IrFunction.body[]<if>.else_") === 0 ? null : decT20(r);
2436
2498
  const f3 = decSrcLoc(r);
2437
2499
  const o = { kind: "if", cond: f0, then: f1, else_: f2, loc: f3 };
2438
2500
  return o;
2439
2501
  }
2440
- case 15: {
2502
+ case 16: {
2441
2503
  const f0 = decIrExpr(r);
2442
2504
  const f1 = r.str();
2443
2505
  const f2 = decIrExpr(r);
@@ -2445,7 +2507,7 @@ function decIrStmt(r) {
2445
2507
  const o = { kind: "recordKeyDelete", obj: f0, shapeId: f1, key: f2, loc: f3 };
2446
2508
  return o;
2447
2509
  }
2448
- case 16: {
2510
+ case 17: {
2449
2511
  const f0 = decIrExpr(r);
2450
2512
  const f1 = r.str();
2451
2513
  const f2 = decIrExpr(r);
@@ -2455,7 +2517,7 @@ function decIrStmt(r) {
2455
2517
  const o = { kind: "recordKeySet", obj: f0, shapeId: f1, key: f2, value: f3, ...(f4 !== undefined ? { overflowOnly: f4 } : {}), loc: f5 };
2456
2518
  return o;
2457
2519
  }
2458
- case 17: {
2520
+ case 18: {
2459
2521
  const f0 = decIrExpr(r);
2460
2522
  const f1 = r.str();
2461
2523
  const f2 = r.str();
@@ -2464,61 +2526,61 @@ function decIrStmt(r) {
2464
2526
  const o = { kind: "recordSet", obj: f0, shapeId: f1, field: f2, value: f3, loc: f4 };
2465
2527
  return o;
2466
2528
  }
2467
- case 18: {
2529
+ case 19: {
2468
2530
  const f0 = r.str();
2469
2531
  const f1 = decSrcLoc(r);
2470
2532
  const o = { kind: "rethrow", localId: f0, loc: f1 };
2471
2533
  return o;
2472
2534
  }
2473
- case 19: {
2535
+ case 20: {
2474
2536
  const f0 = r.tag(2, "IrFunction.body[]<return>.value") === 0 ? null : decIrExpr(r);
2475
2537
  const f1 = r.tag(2, "IrFunction.body[]<return>.awaited") === 0 ? undefined : r.bool();
2476
2538
  const f2 = decSrcLoc(r);
2477
2539
  const o = { kind: "return", value: f0, ...(f1 !== undefined ? { awaited: f1 } : {}), loc: f2 };
2478
2540
  return o;
2479
2541
  }
2480
- case 20: {
2542
+ case 21: {
2481
2543
  const f0 = r.str();
2482
2544
  const f1 = r.str();
2483
2545
  const f2 = decSrcLoc(r);
2484
2546
  const o = { kind: "runtimeFence", code: f0, message: f1, loc: f2 };
2485
2547
  return o;
2486
2548
  }
2487
- case 21: {
2549
+ case 22: {
2488
2550
  const f0 = decIrExpr(r);
2489
- const f1 = decT54(r);
2551
+ const f1 = decT56(r);
2490
2552
  const f2 = r.tag(2, "IrFunction.body[]<switch>.labels") === 0 ? undefined : decT8(r);
2491
2553
  const f3 = decSrcLoc(r);
2492
2554
  const o = { kind: "switch", disc: f0, cases: f1, ...(f2 !== undefined ? { labels: f2 } : {}), loc: f3 };
2493
2555
  return o;
2494
2556
  }
2495
- case 22: {
2557
+ case 23: {
2496
2558
  const f0 = decIrExpr(r);
2497
2559
  const f1 = decSrcLoc(r);
2498
2560
  const o = { kind: "throw", value: f0, loc: f1 };
2499
2561
  return o;
2500
2562
  }
2501
- case 23: {
2502
- const f0 = decT19(r);
2503
- const f1 = r.tag(2, "IrFunction.body[]<tryCatch>.catchBody") === 0 ? null : decT19(r);
2563
+ case 24: {
2564
+ const f0 = decT20(r);
2565
+ const f1 = r.tag(2, "IrFunction.body[]<tryCatch>.catchBody") === 0 ? null : decT20(r);
2504
2566
  const f2 = r.tag(2, "IrFunction.body[]<tryCatch>.catchLocalId") === 0 ? null : r.str();
2505
2567
  const f3 = r.tag(2, "IrFunction.body[]<tryCatch>.dropFinallyErrors") === 0 ? undefined : r.bool();
2506
- const f4 = r.tag(2, "IrFunction.body[]<tryCatch>.finallyBody") === 0 ? null : decT19(r);
2568
+ const f4 = r.tag(2, "IrFunction.body[]<tryCatch>.finallyBody") === 0 ? null : decT20(r);
2507
2569
  const f5 = r.tag(2, "IrFunction.body[]<tryCatch>.suppressFinallyErrors") === 0 ? undefined : r.bool();
2508
2570
  const f6 = decSrcLoc(r);
2509
2571
  const o = { kind: "tryCatch", tryBody: f0, catchBody: f1, catchLocalId: f2, ...(f3 !== undefined ? { dropFinallyErrors: f3 } : {}), finallyBody: f4, ...(f5 !== undefined ? { suppressFinallyErrors: f5 } : {}), loc: f6 };
2510
2572
  return o;
2511
2573
  }
2512
- case 24: {
2574
+ case 25: {
2513
2575
  const f0 = r.str();
2514
2576
  const f1 = r.tag(2, "IrFunction.body[]<varDecl>.init") === 0 ? null : decIrExpr(r);
2515
2577
  const f2 = decSrcLoc(r);
2516
2578
  const o = { kind: "varDecl", localId: f0, init: f1, loc: f2 };
2517
2579
  return o;
2518
2580
  }
2519
- case 25: {
2581
+ case 26: {
2520
2582
  const f0 = decIrExpr(r);
2521
- const f1 = decT19(r);
2583
+ const f1 = decT20(r);
2522
2584
  const f2 = r.tag(2, "IrFunction.body[]<while>.labels") === 0 ? undefined : decT8(r);
2523
2585
  const f3 = decSrcLoc(r);
2524
2586
  const o = { kind: "while", cond: f0, body: f1, ...(f2 !== undefined ? { labels: f2 } : {}), loc: f3 };
@@ -2527,45 +2589,45 @@ function decIrStmt(r) {
2527
2589
  }
2528
2590
  throw new Error("IR codec: invalid IrStmt kind");
2529
2591
  }
2530
- function encT40(w, v) {
2531
- w.keys(Object.keys(v), KEYS95);
2592
+ function encT42(w, v) {
2593
+ w.keys(Object.keys(v), KEYS97);
2532
2594
  w.str(v.kind);
2533
2595
  w.str(v.shapeId);
2534
2596
  }
2535
- function decT40(r) {
2597
+ function decT42(r) {
2536
2598
  const f0 = r.str();
2537
2599
  const f1 = r.str();
2538
2600
  const o = { kind: f0, shapeId: f1 };
2539
2601
  return o;
2540
2602
  }
2541
- function encT41(w, v) {
2603
+ function encT43(w, v) {
2542
2604
  w.length(v.length);
2543
2605
  for (const item of v) {
2544
- encT55(w, item);
2606
+ encT57(w, item);
2545
2607
  }
2546
2608
  }
2547
- function decT41(r) {
2609
+ function decT43(r) {
2548
2610
  const length = r.length();
2549
2611
  const out = [];
2550
2612
  for (let i = 0; i < length; i++)
2551
- out.push(decT55(r));
2613
+ out.push(decT57(r));
2552
2614
  return out;
2553
2615
  }
2554
- function encT42(w, v) {
2616
+ function encT44(w, v) {
2555
2617
  w.length(v.length);
2556
2618
  for (const item of v) {
2557
- encT56(w, item);
2619
+ encT58(w, item);
2558
2620
  }
2559
2621
  }
2560
- function decT42(r) {
2622
+ function decT44(r) {
2561
2623
  const length = r.length();
2562
2624
  const out = [];
2563
2625
  for (let i = 0; i < length; i++)
2564
- out.push(decT56(r));
2626
+ out.push(decT58(r));
2565
2627
  return out;
2566
2628
  }
2567
2629
  function encIrBindingSource(w, v) {
2568
- w.keys(Object.keys(v), KEYS96);
2630
+ w.keys(Object.keys(v), KEYS98);
2569
2631
  encSrcLoc(w, v.loc);
2570
2632
  encSrcLoc(w, v.scope);
2571
2633
  }
@@ -2575,26 +2637,26 @@ function decIrBindingSource(r) {
2575
2637
  const o = { loc: f0, scope: f1 };
2576
2638
  return o;
2577
2639
  }
2578
- function encT44(w, v) {
2640
+ function encT46(w, v) {
2579
2641
  w.length(v.length);
2580
2642
  for (const item of v) {
2581
- encT57(w, item);
2643
+ encT59(w, item);
2582
2644
  }
2583
2645
  }
2584
- function decT44(r) {
2646
+ function decT46(r) {
2585
2647
  const length = r.length();
2586
2648
  const out = [];
2587
2649
  for (let i = 0; i < length; i++)
2588
- out.push(decT57(r));
2650
+ out.push(decT59(r));
2589
2651
  return out;
2590
2652
  }
2591
- function encT45(w, v) {
2653
+ function encT47(w, v) {
2592
2654
  w.length(v.length);
2593
2655
  for (const item of v) {
2594
2656
  encT8(w, item);
2595
2657
  }
2596
2658
  }
2597
- function decT45(r) {
2659
+ function decT47(r) {
2598
2660
  const length = r.length();
2599
2661
  const out = [];
2600
2662
  for (let i = 0; i < length; i++)
@@ -2602,49 +2664,49 @@ function decT45(r) {
2602
2664
  return out;
2603
2665
  }
2604
2666
  function encIrUnionDiscriminant(w, v) {
2605
- w.keys(Object.keys(v), KEYS97);
2667
+ w.keys(Object.keys(v), KEYS99);
2606
2668
  w.str(v.field);
2607
- encT58(w, v.cases);
2669
+ encT60(w, v.cases);
2608
2670
  }
2609
2671
  function decIrUnionDiscriminant(r) {
2610
2672
  const f0 = r.str();
2611
- const f1 = decT58(r);
2673
+ const f1 = decT60(r);
2612
2674
  const o = { field: f0, cases: f1 };
2613
2675
  return o;
2614
2676
  }
2615
- function encT47(w, v) {
2677
+ function encT49(w, v) {
2616
2678
  w.length(v.length);
2617
2679
  for (const item of v) {
2618
- encT59(w, item);
2680
+ encT61(w, item);
2619
2681
  }
2620
2682
  }
2621
- function decT47(r) {
2683
+ function decT49(r) {
2622
2684
  const length = r.length();
2623
2685
  const out = [];
2624
2686
  for (let i = 0; i < length; i++)
2625
- out.push(decT59(r));
2687
+ out.push(decT61(r));
2626
2688
  return out;
2627
2689
  }
2628
- function encT48(w, v) {
2690
+ function encT50(w, v) {
2629
2691
  w.length(v.length);
2630
2692
  for (const item of v) {
2631
- encT60(w, item);
2693
+ encT62(w, item);
2632
2694
  }
2633
2695
  }
2634
- function decT48(r) {
2696
+ function decT50(r) {
2635
2697
  const length = r.length();
2636
2698
  const out = [];
2637
2699
  for (let i = 0; i < length; i++)
2638
- out.push(decT60(r));
2700
+ out.push(decT62(r));
2639
2701
  return out;
2640
2702
  }
2641
- function encT49(w, v) {
2703
+ function encT51(w, v) {
2642
2704
  w.length(v.length);
2643
2705
  for (const item of v) {
2644
2706
  encIrFfiParam(w, item);
2645
2707
  }
2646
2708
  }
2647
- function decT49(r) {
2709
+ function decT51(r) {
2648
2710
  const length = r.length();
2649
2711
  const out = [];
2650
2712
  for (let i = 0; i < length; i++)
@@ -2652,27 +2714,27 @@ function decT49(r) {
2652
2714
  return out;
2653
2715
  }
2654
2716
  function encIrLibCallback(w, v) {
2655
- w.keys(Object.keys(v), KEYS98);
2717
+ w.keys(Object.keys(v), KEYS100);
2656
2718
  w.str(v.name);
2657
2719
  w.num(v.slot);
2658
- encT62(w, v.params);
2720
+ encT64(w, v.params);
2659
2721
  w.str(v.returns);
2660
2722
  w.str(v.unregisteredTrap);
2661
2723
  }
2662
2724
  function decIrLibCallback(r) {
2663
2725
  const f0 = r.str();
2664
2726
  const f1 = r.num();
2665
- const f2 = decT62(r);
2727
+ const f2 = decT64(r);
2666
2728
  const f3 = r.str();
2667
2729
  const f4 = r.str();
2668
2730
  const o = { name: f0, slot: f1, params: f2, returns: f3, unregisteredTrap: f4 };
2669
2731
  return o;
2670
2732
  }
2671
2733
  function encIrLibExport(w, v) {
2672
- w.keys(Object.keys(v), KEYS99);
2734
+ w.keys(Object.keys(v), KEYS101);
2673
2735
  w.str(v.symbol);
2674
2736
  w.str(v.fnName);
2675
- encT63(w, v.params);
2737
+ encT65(w, v.params);
2676
2738
  w.str(v.returns);
2677
2739
  if (v.inboundBytesTrap === undefined)
2678
2740
  w.byte(0);
@@ -2696,7 +2758,7 @@ function encIrLibExport(w, v) {
2696
2758
  function decIrLibExport(r) {
2697
2759
  const f0 = r.str();
2698
2760
  const f1 = r.str();
2699
- const f2 = decT63(r);
2761
+ const f2 = decT65(r);
2700
2762
  const f3 = r.str();
2701
2763
  const f4 = r.tag(2, "IrModule.lib.exports[].inboundBytesTrap") === 0 ? undefined : r.str();
2702
2764
  const f5 = r.tag(2, "IrModule.lib.exports[].inboundIntTrap") === 0 ? undefined : r.str();
@@ -2705,7 +2767,7 @@ function decIrLibExport(r) {
2705
2767
  return o;
2706
2768
  }
2707
2769
  function encIrLibTrapOverlay(w, v) {
2708
- w.keys(Object.keys(v), KEYS100);
2770
+ w.keys(Object.keys(v), KEYS102);
2709
2771
  w.str(v.code);
2710
2772
  if (v.teaching === undefined)
2711
2773
  w.byte(0);
@@ -2731,17 +2793,17 @@ function encIrExpr(w, v) {
2731
2793
  switch (v.kind) {
2732
2794
  case "arrIntrinsic": {
2733
2795
  w.length(0);
2734
- w.keys(Object.keys(v), KEYS101);
2796
+ w.keys(Object.keys(v), KEYS103);
2735
2797
  w.str(v.method);
2736
2798
  encIrExpr(w, v.receiver);
2737
- encT64(w, v.args);
2799
+ encT66(w, v.args);
2738
2800
  encIrType(w, v.type);
2739
2801
  encSrcLoc(w, v.loc);
2740
2802
  return;
2741
2803
  }
2742
2804
  case "arrayGet": {
2743
2805
  w.length(1);
2744
- w.keys(Object.keys(v), KEYS102);
2806
+ w.keys(Object.keys(v), KEYS104);
2745
2807
  encIrExpr(w, v.arr);
2746
2808
  encIrExpr(w, v.index);
2747
2809
  encIrType(w, v.type);
@@ -2750,7 +2812,7 @@ function encIrExpr(w, v) {
2750
2812
  }
2751
2813
  case "arrayHas": {
2752
2814
  w.length(2);
2753
- w.keys(Object.keys(v), KEYS103);
2815
+ w.keys(Object.keys(v), KEYS105);
2754
2816
  encIrExpr(w, v.arr);
2755
2817
  encIrExpr(w, v.index);
2756
2818
  encIrType(w, v.type);
@@ -2759,13 +2821,13 @@ function encIrExpr(w, v) {
2759
2821
  }
2760
2822
  case "arrayLit": {
2761
2823
  w.length(3);
2762
- w.keys(Object.keys(v), KEYS104);
2763
- encT64(w, v.elems);
2824
+ w.keys(Object.keys(v), KEYS106);
2825
+ encT66(w, v.elems);
2764
2826
  if (v.spreads === undefined)
2765
2827
  w.byte(0);
2766
2828
  else {
2767
2829
  w.byte(1);
2768
- encT65(w, v.spreads);
2830
+ encT67(w, v.spreads);
2769
2831
  }
2770
2832
  if (v.capacity === undefined)
2771
2833
  w.byte(0);
@@ -2779,7 +2841,7 @@ function encIrExpr(w, v) {
2779
2841
  }
2780
2842
  case "arrayNewLen": {
2781
2843
  w.length(4);
2782
- w.keys(Object.keys(v), KEYS105);
2844
+ w.keys(Object.keys(v), KEYS107);
2783
2845
  encIrExpr(w, v.length);
2784
2846
  encIrType(w, v.type);
2785
2847
  encSrcLoc(w, v.loc);
@@ -2787,7 +2849,7 @@ function encIrExpr(w, v) {
2787
2849
  }
2788
2850
  case "arrayState": {
2789
2851
  w.length(5);
2790
- w.keys(Object.keys(v), KEYS106);
2852
+ w.keys(Object.keys(v), KEYS108);
2791
2853
  encIrExpr(w, v.arr);
2792
2854
  encIrExpr(w, v.index);
2793
2855
  encIrType(w, v.type);
@@ -2796,7 +2858,7 @@ function encIrExpr(w, v) {
2796
2858
  }
2797
2859
  case "assignExpr": {
2798
2860
  w.length(6);
2799
- w.keys(Object.keys(v), KEYS107);
2861
+ w.keys(Object.keys(v), KEYS109);
2800
2862
  w.str(v.localId);
2801
2863
  encIrExpr(w, v.value);
2802
2864
  encIrType(w, v.type);
@@ -2805,7 +2867,7 @@ function encIrExpr(w, v) {
2805
2867
  }
2806
2868
  case "awaitExpr": {
2807
2869
  w.length(7);
2808
- w.keys(Object.keys(v), KEYS108);
2870
+ w.keys(Object.keys(v), KEYS110);
2809
2871
  encIrExpr(w, v.value);
2810
2872
  encIrType(w, v.type);
2811
2873
  if (v.adopt === undefined)
@@ -2819,7 +2881,7 @@ function encIrExpr(w, v) {
2819
2881
  }
2820
2882
  case "awaitUnionExpr": {
2821
2883
  w.length(8);
2822
- w.keys(Object.keys(v), KEYS109);
2884
+ w.keys(Object.keys(v), KEYS111);
2823
2885
  encIrExpr(w, v.value);
2824
2886
  w.num(v.promiseTag);
2825
2887
  encIrType(w, v.type);
@@ -2828,7 +2890,7 @@ function encIrExpr(w, v) {
2828
2890
  }
2829
2891
  case "bin": {
2830
2892
  w.length(9);
2831
- w.keys(Object.keys(v), KEYS110);
2893
+ w.keys(Object.keys(v), KEYS112);
2832
2894
  w.str(v.op);
2833
2895
  encIrExpr(w, v.left);
2834
2896
  encIrExpr(w, v.right);
@@ -2838,7 +2900,7 @@ function encIrExpr(w, v) {
2838
2900
  }
2839
2901
  case "boolLit": {
2840
2902
  w.length(10);
2841
- w.keys(Object.keys(v), KEYS111);
2903
+ w.keys(Object.keys(v), KEYS113);
2842
2904
  w.bool(v.value);
2843
2905
  encIrType(w, v.type);
2844
2906
  encSrcLoc(w, v.loc);
@@ -2846,10 +2908,10 @@ function encIrExpr(w, v) {
2846
2908
  }
2847
2909
  case "bytesIntrinsic": {
2848
2910
  w.length(11);
2849
- w.keys(Object.keys(v), KEYS112);
2911
+ w.keys(Object.keys(v), KEYS114);
2850
2912
  w.str(v.method);
2851
2913
  encIrExpr(w, v.receiver);
2852
- encT64(w, v.args);
2914
+ encT66(w, v.args);
2853
2915
  encIrType(w, v.type);
2854
2916
  encSrcLoc(w, v.loc);
2855
2917
  if (v.invalidNaN === undefined)
@@ -2862,7 +2924,7 @@ function encIrExpr(w, v) {
2862
2924
  }
2863
2925
  case "bytesNew": {
2864
2926
  w.length(12);
2865
- w.keys(Object.keys(v), KEYS113);
2927
+ w.keys(Object.keys(v), KEYS115);
2866
2928
  if (v.source === null)
2867
2929
  w.byte(0);
2868
2930
  else {
@@ -2881,16 +2943,16 @@ function encIrExpr(w, v) {
2881
2943
  }
2882
2944
  case "call": {
2883
2945
  w.length(13);
2884
- w.keys(Object.keys(v), KEYS114);
2946
+ w.keys(Object.keys(v), KEYS116);
2885
2947
  w.str(v.callee);
2886
- encT64(w, v.args);
2948
+ encT66(w, v.args);
2887
2949
  encIrType(w, v.type);
2888
2950
  encSrcLoc(w, v.loc);
2889
2951
  return;
2890
2952
  }
2891
2953
  case "callValue": {
2892
2954
  w.length(14);
2893
- w.keys(Object.keys(v), KEYS115);
2955
+ w.keys(Object.keys(v), KEYS117);
2894
2956
  encIrExpr(w, v.callee);
2895
2957
  if (v.receiver === undefined)
2896
2958
  w.byte(0);
@@ -2898,14 +2960,14 @@ function encIrExpr(w, v) {
2898
2960
  w.byte(1);
2899
2961
  encIrExpr(w, v.receiver);
2900
2962
  }
2901
- encT64(w, v.args);
2963
+ encT66(w, v.args);
2902
2964
  encIrType(w, v.type);
2903
2965
  encSrcLoc(w, v.loc);
2904
2966
  return;
2905
2967
  }
2906
2968
  case "caughtCheck": {
2907
2969
  w.length(15);
2908
- w.keys(Object.keys(v), KEYS116);
2970
+ w.keys(Object.keys(v), KEYS118);
2909
2971
  encIrExpr(w, v.value);
2910
2972
  w.str(v.className);
2911
2973
  encIrType(w, v.type);
@@ -2914,7 +2976,7 @@ function encIrExpr(w, v) {
2914
2976
  }
2915
2977
  case "caughtNarrow": {
2916
2978
  w.length(16);
2917
- w.keys(Object.keys(v), KEYS117);
2979
+ w.keys(Object.keys(v), KEYS119);
2918
2980
  encIrExpr(w, v.value);
2919
2981
  encIrType(w, v.type);
2920
2982
  encSrcLoc(w, v.loc);
@@ -2922,7 +2984,7 @@ function encIrExpr(w, v) {
2922
2984
  }
2923
2985
  case "caughtTest": {
2924
2986
  w.length(17);
2925
- w.keys(Object.keys(v), KEYS118);
2987
+ w.keys(Object.keys(v), KEYS120);
2926
2988
  encIrExpr(w, v.value);
2927
2989
  w.str(v.test);
2928
2990
  if (v.className === undefined)
@@ -2943,7 +3005,7 @@ function encIrExpr(w, v) {
2943
3005
  }
2944
3006
  case "caughtToDyn": {
2945
3007
  w.length(18);
2946
- w.keys(Object.keys(v), KEYS119);
3008
+ w.keys(Object.keys(v), KEYS121);
2947
3009
  encIrExpr(w, v.value);
2948
3010
  encIrType(w, v.type);
2949
3011
  encSrcLoc(w, v.loc);
@@ -2951,7 +3013,7 @@ function encIrExpr(w, v) {
2951
3013
  }
2952
3014
  case "chainRecv": {
2953
3015
  w.length(19);
2954
- w.keys(Object.keys(v), KEYS120);
3016
+ w.keys(Object.keys(v), KEYS122);
2955
3017
  w.str(v.id);
2956
3018
  encIrType(w, v.type);
2957
3019
  encSrcLoc(w, v.loc);
@@ -2959,7 +3021,7 @@ function encIrExpr(w, v) {
2959
3021
  }
2960
3022
  case "classRef": {
2961
3023
  w.length(20);
2962
- w.keys(Object.keys(v), KEYS121);
3024
+ w.keys(Object.keys(v), KEYS123);
2963
3025
  w.str(v.className);
2964
3026
  encIrType(w, v.type);
2965
3027
  encSrcLoc(w, v.loc);
@@ -2973,7 +3035,7 @@ function encIrExpr(w, v) {
2973
3035
  }
2974
3036
  case "closure": {
2975
3037
  w.length(21);
2976
- w.keys(Object.keys(v), KEYS122);
3038
+ w.keys(Object.keys(v), KEYS124);
2977
3039
  w.str(v.fnName);
2978
3040
  encT8(w, v.captures);
2979
3041
  if (v.adapts === undefined)
@@ -2988,7 +3050,7 @@ function encIrExpr(w, v) {
2988
3050
  }
2989
3051
  case "downcast": {
2990
3052
  w.length(22);
2991
- w.keys(Object.keys(v), KEYS123);
3053
+ w.keys(Object.keys(v), KEYS125);
2992
3054
  encIrExpr(w, v.value);
2993
3055
  encIrType(w, v.type);
2994
3056
  encSrcLoc(w, v.loc);
@@ -2996,15 +3058,15 @@ function encIrExpr(w, v) {
2996
3058
  }
2997
3059
  case "dynArrLit": {
2998
3060
  w.length(23);
2999
- w.keys(Object.keys(v), KEYS124);
3000
- encT64(w, v.elems);
3061
+ w.keys(Object.keys(v), KEYS126);
3062
+ encT66(w, v.elems);
3001
3063
  encIrType(w, v.type);
3002
3064
  encSrcLoc(w, v.loc);
3003
3065
  return;
3004
3066
  }
3005
3067
  case "dynCall": {
3006
3068
  w.length(24);
3007
- w.keys(Object.keys(v), KEYS125);
3069
+ w.keys(Object.keys(v), KEYS127);
3008
3070
  encIrExpr(w, v.callee);
3009
3071
  if (v.receiver === undefined)
3010
3072
  w.byte(0);
@@ -3019,12 +3081,12 @@ function encIrExpr(w, v) {
3019
3081
  w.byte(1);
3020
3082
  encIrExpr(w, v.calleeNameValue);
3021
3083
  }
3022
- encT64(w, v.args);
3084
+ encT66(w, v.args);
3023
3085
  if (v.spreads === undefined)
3024
3086
  w.byte(0);
3025
3087
  else {
3026
3088
  w.byte(1);
3027
- encT66(w, v.spreads);
3089
+ encT68(w, v.spreads);
3028
3090
  }
3029
3091
  encIrType(w, v.type);
3030
3092
  encSrcLoc(w, v.loc);
@@ -3032,7 +3094,7 @@ function encIrExpr(w, v) {
3032
3094
  }
3033
3095
  case "dynCheck": {
3034
3096
  w.length(25);
3035
- w.keys(Object.keys(v), KEYS126);
3097
+ w.keys(Object.keys(v), KEYS128);
3036
3098
  encIrExpr(w, v.value);
3037
3099
  if (v.preserveRefs === undefined)
3038
3100
  w.byte(0);
@@ -3070,13 +3132,19 @@ function encIrExpr(w, v) {
3070
3132
  w.byte(1);
3071
3133
  w.num(v.origin);
3072
3134
  }
3135
+ if (v.pathIndex === undefined)
3136
+ w.byte(0);
3137
+ else {
3138
+ w.byte(1);
3139
+ w.num(v.pathIndex);
3140
+ }
3073
3141
  encIrType(w, v.type);
3074
3142
  encSrcLoc(w, v.loc);
3075
3143
  return;
3076
3144
  }
3077
3145
  case "dynDestrCheck": {
3078
3146
  w.length(26);
3079
- w.keys(Object.keys(v), KEYS127);
3147
+ w.keys(Object.keys(v), KEYS129);
3080
3148
  encIrExpr(w, v.value);
3081
3149
  w.str(v.spelling);
3082
3150
  if (v.firstProp === undefined)
@@ -3091,7 +3159,7 @@ function encIrExpr(w, v) {
3091
3159
  }
3092
3160
  case "dynFrom": {
3093
3161
  w.length(27);
3094
- w.keys(Object.keys(v), KEYS128);
3162
+ w.keys(Object.keys(v), KEYS130);
3095
3163
  encIrExpr(w, v.value);
3096
3164
  encIrType(w, v.type);
3097
3165
  encSrcLoc(w, v.loc);
@@ -3107,6 +3175,12 @@ function encIrExpr(w, v) {
3107
3175
  w.byte(1);
3108
3176
  w.str(v.fnName);
3109
3177
  }
3178
+ if (v.fnNameMainThreadOnly === undefined)
3179
+ w.byte(0);
3180
+ else {
3181
+ w.byte(1);
3182
+ w.bool(v.fnNameMainThreadOnly);
3183
+ }
3110
3184
  if (v.fnLength === undefined)
3111
3185
  w.byte(0);
3112
3186
  else {
@@ -3117,7 +3191,7 @@ function encIrExpr(w, v) {
3117
3191
  }
3118
3192
  case "dynHasKey": {
3119
3193
  w.length(28);
3120
- w.keys(Object.keys(v), KEYS129);
3194
+ w.keys(Object.keys(v), KEYS131);
3121
3195
  w.str(v.key);
3122
3196
  if (v.negated === undefined)
3123
3197
  w.byte(0);
@@ -3132,7 +3206,7 @@ function encIrExpr(w, v) {
3132
3206
  }
3133
3207
  case "dynInvoke": {
3134
3208
  w.length(29);
3135
- w.keys(Object.keys(v), KEYS130);
3209
+ w.keys(Object.keys(v), KEYS132);
3136
3210
  encIrExpr(w, v.recv);
3137
3211
  w.str(v.method);
3138
3212
  w.str(v.calleeName);
@@ -3142,14 +3216,14 @@ function encIrExpr(w, v) {
3142
3216
  w.byte(1);
3143
3217
  encIrExpr(w, v.calleeNameValue);
3144
3218
  }
3145
- encT64(w, v.args);
3219
+ encT66(w, v.args);
3146
3220
  encIrType(w, v.type);
3147
3221
  encSrcLoc(w, v.loc);
3148
3222
  return;
3149
3223
  }
3150
3224
  case "dynIterN": {
3151
3225
  w.length(30);
3152
- w.keys(Object.keys(v), KEYS131);
3226
+ w.keys(Object.keys(v), KEYS133);
3153
3227
  encIrExpr(w, v.value);
3154
3228
  w.num(v.count);
3155
3229
  if (v.notIterableMessage === undefined)
@@ -3164,7 +3238,7 @@ function encIrExpr(w, v) {
3164
3238
  }
3165
3239
  case "dynKeyGet": {
3166
3240
  w.length(31);
3167
- w.keys(Object.keys(v), KEYS132);
3241
+ w.keys(Object.keys(v), KEYS134);
3168
3242
  encIrExpr(w, v.key);
3169
3243
  if (v.optional === undefined)
3170
3244
  w.byte(0);
@@ -3179,12 +3253,12 @@ function encIrExpr(w, v) {
3179
3253
  }
3180
3254
  case "dynObjLit": {
3181
3255
  w.length(32);
3182
- w.keys(Object.keys(v), KEYS133);
3256
+ w.keys(Object.keys(v), KEYS135);
3183
3257
  if (v.fields === undefined)
3184
3258
  w.byte(0);
3185
3259
  else {
3186
3260
  w.byte(1);
3187
- encT67(w, v.fields);
3261
+ encT69(w, v.fields);
3188
3262
  }
3189
3263
  encIrType(w, v.type);
3190
3264
  encSrcLoc(w, v.loc);
@@ -3192,7 +3266,7 @@ function encIrExpr(w, v) {
3192
3266
  }
3193
3267
  case "dynScalarEq": {
3194
3268
  w.length(33);
3195
- w.keys(Object.keys(v), KEYS134);
3269
+ w.keys(Object.keys(v), KEYS136);
3196
3270
  encIrExpr(w, v.left);
3197
3271
  encIrExpr(w, v.right);
3198
3272
  if (v.negated === undefined)
@@ -3207,7 +3281,7 @@ function encIrExpr(w, v) {
3207
3281
  }
3208
3282
  case "dynTest": {
3209
3283
  w.length(34);
3210
- w.keys(Object.keys(v), KEYS135);
3284
+ w.keys(Object.keys(v), KEYS137);
3211
3285
  w.str(v.test);
3212
3286
  if (v.bytesElem === undefined)
3213
3287
  w.byte(0);
@@ -3228,16 +3302,16 @@ function encIrExpr(w, v) {
3228
3302
  }
3229
3303
  case "ffiCall": {
3230
3304
  w.length(35);
3231
- w.keys(Object.keys(v), KEYS136);
3305
+ w.keys(Object.keys(v), KEYS138);
3232
3306
  w.str(v.import);
3233
- encT64(w, v.args);
3307
+ encT66(w, v.args);
3234
3308
  encIrType(w, v.type);
3235
3309
  encSrcLoc(w, v.loc);
3236
3310
  return;
3237
3311
  }
3238
3312
  case "fieldAbsent": {
3239
3313
  w.length(36);
3240
- w.keys(Object.keys(v), KEYS137);
3314
+ w.keys(Object.keys(v), KEYS139);
3241
3315
  w.str(v.unionId);
3242
3316
  encIrType(w, v.type);
3243
3317
  encSrcLoc(w, v.loc);
@@ -3245,7 +3319,7 @@ function encIrExpr(w, v) {
3245
3319
  }
3246
3320
  case "fieldGet": {
3247
3321
  w.length(37);
3248
- w.keys(Object.keys(v), KEYS138);
3322
+ w.keys(Object.keys(v), KEYS140);
3249
3323
  encIrExpr(w, v.obj);
3250
3324
  w.str(v.className);
3251
3325
  w.str(v.field);
@@ -3255,7 +3329,7 @@ function encIrExpr(w, v) {
3255
3329
  }
3256
3330
  case "fieldIncDec": {
3257
3331
  w.length(38);
3258
- w.keys(Object.keys(v), KEYS139);
3332
+ w.keys(Object.keys(v), KEYS141);
3259
3333
  w.str(v.op);
3260
3334
  w.bool(v.prefix);
3261
3335
  encIrExpr(w, v.obj);
@@ -3268,7 +3342,7 @@ function encIrExpr(w, v) {
3268
3342
  }
3269
3343
  case "genResume": {
3270
3344
  w.length(39);
3271
- w.keys(Object.keys(v), KEYS140);
3345
+ w.keys(Object.keys(v), KEYS142);
3272
3346
  w.str(v.mode);
3273
3347
  encIrExpr(w, v.gen);
3274
3348
  if (v.arg === null)
@@ -3283,7 +3357,7 @@ function encIrExpr(w, v) {
3283
3357
  }
3284
3358
  case "incDec": {
3285
3359
  w.length(40);
3286
- w.keys(Object.keys(v), KEYS141);
3360
+ w.keys(Object.keys(v), KEYS143);
3287
3361
  w.str(v.op);
3288
3362
  w.bool(v.prefix);
3289
3363
  w.str(v.localId);
@@ -3293,7 +3367,7 @@ function encIrExpr(w, v) {
3293
3367
  }
3294
3368
  case "instanceOf": {
3295
3369
  w.length(41);
3296
- w.keys(Object.keys(v), KEYS142);
3370
+ w.keys(Object.keys(v), KEYS144);
3297
3371
  encIrExpr(w, v.value);
3298
3372
  w.str(v.className);
3299
3373
  encIrType(w, v.type);
@@ -3302,7 +3376,7 @@ function encIrExpr(w, v) {
3302
3376
  }
3303
3377
  case "instanceOfValue": {
3304
3378
  w.length(42);
3305
- w.keys(Object.keys(v), KEYS143);
3379
+ w.keys(Object.keys(v), KEYS145);
3306
3380
  encIrExpr(w, v.value);
3307
3381
  encIrExpr(w, v.classValue);
3308
3382
  encIrType(w, v.type);
@@ -3311,16 +3385,16 @@ function encIrExpr(w, v) {
3311
3385
  }
3312
3386
  case "intrinsic": {
3313
3387
  w.length(43);
3314
- w.keys(Object.keys(v), KEYS144);
3388
+ w.keys(Object.keys(v), KEYS146);
3315
3389
  w.str(v.name);
3316
- encT64(w, v.args);
3390
+ encT66(w, v.args);
3317
3391
  encIrType(w, v.type);
3318
3392
  encSrcLoc(w, v.loc);
3319
3393
  return;
3320
3394
  }
3321
3395
  case "jsonStringify": {
3322
3396
  w.length(44);
3323
- w.keys(Object.keys(v), KEYS145);
3397
+ w.keys(Object.keys(v), KEYS147);
3324
3398
  encIrExpr(w, v.value);
3325
3399
  if (v.indent === undefined)
3326
3400
  w.byte(0);
@@ -3340,9 +3414,9 @@ function encIrExpr(w, v) {
3340
3414
  }
3341
3415
  case "libCall": {
3342
3416
  w.length(45);
3343
- w.keys(Object.keys(v), KEYS146);
3417
+ w.keys(Object.keys(v), KEYS148);
3344
3418
  w.str(v.fn);
3345
- encT64(w, v.args);
3419
+ encT66(w, v.args);
3346
3420
  encIrType(w, v.type);
3347
3421
  encSrcLoc(w, v.loc);
3348
3422
  if (v.prototypeIdentityOnly === undefined)
@@ -3361,7 +3435,7 @@ function encIrExpr(w, v) {
3361
3435
  w.byte(0);
3362
3436
  else {
3363
3437
  w.byte(1);
3364
- encT68(w, v.assertOptions);
3438
+ encT70(w, v.assertOptions);
3365
3439
  }
3366
3440
  if (v.bindsThis === undefined)
3367
3441
  w.byte(0);
@@ -3373,7 +3447,7 @@ function encIrExpr(w, v) {
3373
3447
  }
3374
3448
  case "logical": {
3375
3449
  w.length(46);
3376
- w.keys(Object.keys(v), KEYS147);
3450
+ w.keys(Object.keys(v), KEYS149);
3377
3451
  w.str(v.op);
3378
3452
  encIrExpr(w, v.left);
3379
3453
  encIrExpr(w, v.right);
@@ -3383,22 +3457,22 @@ function encIrExpr(w, v) {
3383
3457
  }
3384
3458
  case "mapIntrinsic": {
3385
3459
  w.length(47);
3386
- w.keys(Object.keys(v), KEYS148);
3460
+ w.keys(Object.keys(v), KEYS150);
3387
3461
  w.str(v.method);
3388
3462
  encIrExpr(w, v.receiver);
3389
- encT64(w, v.args);
3463
+ encT66(w, v.args);
3390
3464
  encIrType(w, v.type);
3391
3465
  encSrcLoc(w, v.loc);
3392
3466
  return;
3393
3467
  }
3394
3468
  case "mapNew": {
3395
3469
  w.length(48);
3396
- w.keys(Object.keys(v), KEYS149);
3470
+ w.keys(Object.keys(v), KEYS151);
3397
3471
  if (v.seed === undefined)
3398
3472
  w.byte(0);
3399
3473
  else {
3400
3474
  w.byte(1);
3401
- encT69(w, v.seed);
3475
+ encT71(w, v.seed);
3402
3476
  }
3403
3477
  encIrType(w, v.type);
3404
3478
  encSrcLoc(w, v.loc);
@@ -3406,7 +3480,7 @@ function encIrExpr(w, v) {
3406
3480
  }
3407
3481
  case "moduleNsRef": {
3408
3482
  w.length(49);
3409
- w.keys(Object.keys(v), KEYS150);
3483
+ w.keys(Object.keys(v), KEYS152);
3410
3484
  w.str(v.moduleId);
3411
3485
  encIrType(w, v.type);
3412
3486
  encSrcLoc(w, v.loc);
@@ -3414,16 +3488,16 @@ function encIrExpr(w, v) {
3414
3488
  }
3415
3489
  case "new": {
3416
3490
  w.length(50);
3417
- w.keys(Object.keys(v), KEYS151);
3491
+ w.keys(Object.keys(v), KEYS153);
3418
3492
  w.str(v.className);
3419
- encT64(w, v.args);
3493
+ encT66(w, v.args);
3420
3494
  encIrType(w, v.type);
3421
3495
  encSrcLoc(w, v.loc);
3422
3496
  return;
3423
3497
  }
3424
3498
  case "newPromise": {
3425
3499
  w.length(51);
3426
- w.keys(Object.keys(v), KEYS152);
3500
+ w.keys(Object.keys(v), KEYS154);
3427
3501
  encIrExpr(w, v.executor);
3428
3502
  encIrType(w, v.type);
3429
3503
  encSrcLoc(w, v.loc);
@@ -3431,16 +3505,16 @@ function encIrExpr(w, v) {
3431
3505
  }
3432
3506
  case "newValue": {
3433
3507
  w.length(52);
3434
- w.keys(Object.keys(v), KEYS153);
3508
+ w.keys(Object.keys(v), KEYS155);
3435
3509
  encIrExpr(w, v.callee);
3436
- encT64(w, v.args);
3510
+ encT66(w, v.args);
3437
3511
  encIrType(w, v.type);
3438
3512
  encSrcLoc(w, v.loc);
3439
3513
  return;
3440
3514
  }
3441
3515
  case "nullish": {
3442
3516
  w.length(53);
3443
- w.keys(Object.keys(v), KEYS154);
3517
+ w.keys(Object.keys(v), KEYS156);
3444
3518
  encIrExpr(w, v.left);
3445
3519
  encIrExpr(w, v.right);
3446
3520
  encIrType(w, v.type);
@@ -3449,7 +3523,7 @@ function encIrExpr(w, v) {
3449
3523
  }
3450
3524
  case "numLit": {
3451
3525
  w.length(54);
3452
- w.keys(Object.keys(v), KEYS155);
3526
+ w.keys(Object.keys(v), KEYS157);
3453
3527
  w.num(v.value);
3454
3528
  if (v.spelling === undefined)
3455
3529
  w.byte(0);
@@ -3463,7 +3537,7 @@ function encIrExpr(w, v) {
3463
3537
  }
3464
3538
  case "optChain": {
3465
3539
  w.length(55);
3466
- w.keys(Object.keys(v), KEYS156);
3540
+ w.keys(Object.keys(v), KEYS158);
3467
3541
  w.str(v.id);
3468
3542
  encIrExpr(w, v.receiver);
3469
3543
  encIrExpr(w, v.body);
@@ -3473,7 +3547,7 @@ function encIrExpr(w, v) {
3473
3547
  }
3474
3548
  case "orDefault": {
3475
3549
  w.length(56);
3476
- w.keys(Object.keys(v), KEYS157);
3550
+ w.keys(Object.keys(v), KEYS159);
3477
3551
  encIrExpr(w, v.left);
3478
3552
  encIrExpr(w, v.right);
3479
3553
  if (v.retag === undefined)
@@ -3488,7 +3562,7 @@ function encIrExpr(w, v) {
3488
3562
  }
3489
3563
  case "promiseVoidWiden": {
3490
3564
  w.length(57);
3491
- w.keys(Object.keys(v), KEYS158);
3565
+ w.keys(Object.keys(v), KEYS160);
3492
3566
  encIrExpr(w, v.value);
3493
3567
  encIrType(w, v.type);
3494
3568
  encSrcLoc(w, v.loc);
@@ -3496,23 +3570,23 @@ function encIrExpr(w, v) {
3496
3570
  }
3497
3571
  case "promiseWithResolvers": {
3498
3572
  w.length(58);
3499
- w.keys(Object.keys(v), KEYS159);
3573
+ w.keys(Object.keys(v), KEYS161);
3500
3574
  encIrType(w, v.type);
3501
3575
  encSrcLoc(w, v.loc);
3502
3576
  return;
3503
3577
  }
3504
3578
  case "recordClone": {
3505
3579
  w.length(59);
3506
- w.keys(Object.keys(v), KEYS160);
3580
+ w.keys(Object.keys(v), KEYS162);
3507
3581
  encIrExpr(w, v.source);
3508
- encT70(w, v.overrides);
3582
+ encT72(w, v.overrides);
3509
3583
  encIrType(w, v.type);
3510
3584
  encSrcLoc(w, v.loc);
3511
3585
  return;
3512
3586
  }
3513
3587
  case "recordGet": {
3514
3588
  w.length(60);
3515
- w.keys(Object.keys(v), KEYS161);
3589
+ w.keys(Object.keys(v), KEYS163);
3516
3590
  encIrExpr(w, v.obj);
3517
3591
  w.str(v.shapeId);
3518
3592
  w.str(v.field);
@@ -3522,7 +3596,7 @@ function encIrExpr(w, v) {
3522
3596
  }
3523
3597
  case "recordHas": {
3524
3598
  w.length(61);
3525
- w.keys(Object.keys(v), KEYS162);
3599
+ w.keys(Object.keys(v), KEYS164);
3526
3600
  encIrExpr(w, v.obj);
3527
3601
  w.str(v.shapeId);
3528
3602
  w.str(v.field);
@@ -3532,7 +3606,7 @@ function encIrExpr(w, v) {
3532
3606
  }
3533
3607
  case "recordKeyGet": {
3534
3608
  w.length(62);
3535
- w.keys(Object.keys(v), KEYS163);
3609
+ w.keys(Object.keys(v), KEYS165);
3536
3610
  encIrExpr(w, v.obj);
3537
3611
  w.str(v.shapeId);
3538
3612
  encIrExpr(w, v.key);
@@ -3554,8 +3628,8 @@ function encIrExpr(w, v) {
3554
3628
  }
3555
3629
  case "recordLit": {
3556
3630
  w.length(63);
3557
- w.keys(Object.keys(v), KEYS164);
3558
- encT71(w, v.fields);
3631
+ w.keys(Object.keys(v), KEYS166);
3632
+ encT73(w, v.fields);
3559
3633
  if (v.nullProto === undefined)
3560
3634
  w.byte(0);
3561
3635
  else {
@@ -3568,7 +3642,7 @@ function encIrExpr(w, v) {
3568
3642
  }
3569
3643
  case "recordNullProto": {
3570
3644
  w.length(64);
3571
- w.keys(Object.keys(v), KEYS165);
3645
+ w.keys(Object.keys(v), KEYS167);
3572
3646
  encIrExpr(w, v.obj);
3573
3647
  w.str(v.shapeId);
3574
3648
  encIrType(w, v.type);
@@ -3577,7 +3651,7 @@ function encIrExpr(w, v) {
3577
3651
  }
3578
3652
  case "recordOvfHas": {
3579
3653
  w.length(65);
3580
- w.keys(Object.keys(v), KEYS166);
3654
+ w.keys(Object.keys(v), KEYS168);
3581
3655
  encIrExpr(w, v.obj);
3582
3656
  w.str(v.shapeId);
3583
3657
  encIrExpr(w, v.key);
@@ -3587,7 +3661,7 @@ function encIrExpr(w, v) {
3587
3661
  }
3588
3662
  case "recordOvfKeys": {
3589
3663
  w.length(66);
3590
- w.keys(Object.keys(v), KEYS167);
3664
+ w.keys(Object.keys(v), KEYS169);
3591
3665
  encIrExpr(w, v.obj);
3592
3666
  w.str(v.shapeId);
3593
3667
  encIrType(w, v.type);
@@ -3596,17 +3670,17 @@ function encIrExpr(w, v) {
3596
3670
  }
3597
3671
  case "regexIntrinsic": {
3598
3672
  w.length(67);
3599
- w.keys(Object.keys(v), KEYS168);
3673
+ w.keys(Object.keys(v), KEYS170);
3600
3674
  w.str(v.method);
3601
3675
  encIrExpr(w, v.receiver);
3602
- encT64(w, v.args);
3676
+ encT66(w, v.args);
3603
3677
  encIrType(w, v.type);
3604
3678
  encSrcLoc(w, v.loc);
3605
3679
  return;
3606
3680
  }
3607
3681
  case "regexLit": {
3608
3682
  w.length(68);
3609
- w.keys(Object.keys(v), KEYS169);
3683
+ w.keys(Object.keys(v), KEYS171);
3610
3684
  w.str(v.pattern);
3611
3685
  w.str(v.flags);
3612
3686
  encIrType(w, v.type);
@@ -3615,15 +3689,15 @@ function encIrExpr(w, v) {
3615
3689
  }
3616
3690
  case "selfRef": {
3617
3691
  w.length(69);
3618
- w.keys(Object.keys(v), KEYS170);
3692
+ w.keys(Object.keys(v), KEYS172);
3619
3693
  encIrType(w, v.type);
3620
3694
  encSrcLoc(w, v.loc);
3621
3695
  return;
3622
3696
  }
3623
3697
  case "seqExpr": {
3624
3698
  w.length(70);
3625
- w.keys(Object.keys(v), KEYS171);
3626
- encT19(w, v.stmts);
3699
+ w.keys(Object.keys(v), KEYS173);
3700
+ encT20(w, v.stmts);
3627
3701
  encIrExpr(w, v.result);
3628
3702
  if (v.generatorDelegate === undefined)
3629
3703
  w.byte(0);
@@ -3643,17 +3717,17 @@ function encIrExpr(w, v) {
3643
3717
  }
3644
3718
  case "setIntrinsic": {
3645
3719
  w.length(71);
3646
- w.keys(Object.keys(v), KEYS172);
3720
+ w.keys(Object.keys(v), KEYS174);
3647
3721
  w.str(v.method);
3648
3722
  encIrExpr(w, v.receiver);
3649
- encT64(w, v.args);
3723
+ encT66(w, v.args);
3650
3724
  encIrType(w, v.type);
3651
3725
  encSrcLoc(w, v.loc);
3652
3726
  return;
3653
3727
  }
3654
3728
  case "setNew": {
3655
3729
  w.length(72);
3656
- w.keys(Object.keys(v), KEYS173);
3730
+ w.keys(Object.keys(v), KEYS175);
3657
3731
  if (v.seed === undefined)
3658
3732
  w.byte(0);
3659
3733
  else {
@@ -3666,7 +3740,7 @@ function encIrExpr(w, v) {
3666
3740
  }
3667
3741
  case "strCmp": {
3668
3742
  w.length(73);
3669
- w.keys(Object.keys(v), KEYS174);
3743
+ w.keys(Object.keys(v), KEYS176);
3670
3744
  w.str(v.op);
3671
3745
  encIrExpr(w, v.left);
3672
3746
  encIrExpr(w, v.right);
@@ -3676,7 +3750,7 @@ function encIrExpr(w, v) {
3676
3750
  }
3677
3751
  case "strConcat": {
3678
3752
  w.length(74);
3679
- w.keys(Object.keys(v), KEYS175);
3753
+ w.keys(Object.keys(v), KEYS177);
3680
3754
  encIrExpr(w, v.left);
3681
3755
  encIrExpr(w, v.right);
3682
3756
  encIrType(w, v.type);
@@ -3685,7 +3759,7 @@ function encIrExpr(w, v) {
3685
3759
  }
3686
3760
  case "strEq": {
3687
3761
  w.length(75);
3688
- w.keys(Object.keys(v), KEYS176);
3762
+ w.keys(Object.keys(v), KEYS178);
3689
3763
  w.bool(v.negated);
3690
3764
  encIrExpr(w, v.left);
3691
3765
  encIrExpr(w, v.right);
@@ -3695,17 +3769,17 @@ function encIrExpr(w, v) {
3695
3769
  }
3696
3770
  case "strIntrinsic": {
3697
3771
  w.length(76);
3698
- w.keys(Object.keys(v), KEYS177);
3772
+ w.keys(Object.keys(v), KEYS179);
3699
3773
  w.str(v.method);
3700
3774
  encIrExpr(w, v.receiver);
3701
- encT64(w, v.args);
3775
+ encT66(w, v.args);
3702
3776
  encIrType(w, v.type);
3703
3777
  encSrcLoc(w, v.loc);
3704
3778
  return;
3705
3779
  }
3706
3780
  case "strLit": {
3707
3781
  w.length(77);
3708
- w.keys(Object.keys(v), KEYS178);
3782
+ w.keys(Object.keys(v), KEYS180);
3709
3783
  w.str(v.value);
3710
3784
  encIrType(w, v.type);
3711
3785
  encSrcLoc(w, v.loc);
@@ -3713,7 +3787,7 @@ function encIrExpr(w, v) {
3713
3787
  }
3714
3788
  case "templateStrings": {
3715
3789
  w.length(78);
3716
- w.keys(Object.keys(v), KEYS179);
3790
+ w.keys(Object.keys(v), KEYS181);
3717
3791
  w.str(v.key);
3718
3792
  encT8(w, v.cooked);
3719
3793
  encIrType(w, v.type);
@@ -3722,7 +3796,7 @@ function encIrExpr(w, v) {
3722
3796
  }
3723
3797
  case "ternary": {
3724
3798
  w.length(79);
3725
- w.keys(Object.keys(v), KEYS180);
3799
+ w.keys(Object.keys(v), KEYS182);
3726
3800
  encIrExpr(w, v.cond);
3727
3801
  encIrExpr(w, v.then);
3728
3802
  encIrExpr(w, v.else_);
@@ -3732,7 +3806,7 @@ function encIrExpr(w, v) {
3732
3806
  }
3733
3807
  case "toBool": {
3734
3808
  w.length(80);
3735
- w.keys(Object.keys(v), KEYS181);
3809
+ w.keys(Object.keys(v), KEYS183);
3736
3810
  encIrExpr(w, v.operand);
3737
3811
  encIrType(w, v.type);
3738
3812
  encSrcLoc(w, v.loc);
@@ -3740,7 +3814,7 @@ function encIrExpr(w, v) {
3740
3814
  }
3741
3815
  case "toString": {
3742
3816
  w.length(81);
3743
- w.keys(Object.keys(v), KEYS182);
3817
+ w.keys(Object.keys(v), KEYS184);
3744
3818
  encIrExpr(w, v.operand);
3745
3819
  encIrType(w, v.type);
3746
3820
  encSrcLoc(w, v.loc);
@@ -3748,7 +3822,7 @@ function encIrExpr(w, v) {
3748
3822
  }
3749
3823
  case "unary": {
3750
3824
  w.length(82);
3751
- w.keys(Object.keys(v), KEYS183);
3825
+ w.keys(Object.keys(v), KEYS185);
3752
3826
  w.str(v.op);
3753
3827
  encIrExpr(w, v.operand);
3754
3828
  encIrType(w, v.type);
@@ -3757,7 +3831,7 @@ function encIrExpr(w, v) {
3757
3831
  }
3758
3832
  case "unionDisc": {
3759
3833
  w.length(83);
3760
- w.keys(Object.keys(v), KEYS184);
3834
+ w.keys(Object.keys(v), KEYS186);
3761
3835
  w.str(v.unionId);
3762
3836
  w.str(v.field);
3763
3837
  encIrExpr(w, v.value);
@@ -3767,7 +3841,7 @@ function encIrExpr(w, v) {
3767
3841
  }
3768
3842
  case "unionEq": {
3769
3843
  w.length(84);
3770
- w.keys(Object.keys(v), KEYS185);
3844
+ w.keys(Object.keys(v), KEYS187);
3771
3845
  w.str(v.unionId);
3772
3846
  w.bool(v.negated);
3773
3847
  w.bool(v.sameValue);
@@ -3779,7 +3853,7 @@ function encIrExpr(w, v) {
3779
3853
  }
3780
3854
  case "unionFuncEq": {
3781
3855
  w.length(85);
3782
- w.keys(Object.keys(v), KEYS186);
3856
+ w.keys(Object.keys(v), KEYS188);
3783
3857
  w.str(v.unionId);
3784
3858
  w.num(v.tag);
3785
3859
  encIrExpr(w, v.union);
@@ -3791,7 +3865,7 @@ function encIrExpr(w, v) {
3791
3865
  }
3792
3866
  case "unionIsTag": {
3793
3867
  w.length(86);
3794
- w.keys(Object.keys(v), KEYS187);
3868
+ w.keys(Object.keys(v), KEYS189);
3795
3869
  w.str(v.unionId);
3796
3870
  w.num(v.tag);
3797
3871
  w.bool(v.negated);
@@ -3802,7 +3876,7 @@ function encIrExpr(w, v) {
3802
3876
  }
3803
3877
  case "unionKeyGet": {
3804
3878
  w.length(87);
3805
- w.keys(Object.keys(v), KEYS188);
3879
+ w.keys(Object.keys(v), KEYS190);
3806
3880
  w.str(v.unionId);
3807
3881
  encIrExpr(w, v.key);
3808
3882
  encIrExpr(w, v.value);
@@ -3812,7 +3886,7 @@ function encIrExpr(w, v) {
3812
3886
  }
3813
3887
  case "unionNarrow": {
3814
3888
  w.length(88);
3815
- w.keys(Object.keys(v), KEYS189);
3889
+ w.keys(Object.keys(v), KEYS191);
3816
3890
  w.str(v.unionId);
3817
3891
  w.num(v.tag);
3818
3892
  encIrExpr(w, v.value);
@@ -3822,10 +3896,10 @@ function encIrExpr(w, v) {
3822
3896
  }
3823
3897
  case "unionRetype": {
3824
3898
  w.length(89);
3825
- w.keys(Object.keys(v), KEYS190);
3899
+ w.keys(Object.keys(v), KEYS192);
3826
3900
  w.str(v.fromId);
3827
3901
  w.str(v.unionId);
3828
- encT65(w, v.tags);
3902
+ encT67(w, v.tags);
3829
3903
  encIrExpr(w, v.value);
3830
3904
  encIrType(w, v.type);
3831
3905
  encSrcLoc(w, v.loc);
@@ -3833,7 +3907,7 @@ function encIrExpr(w, v) {
3833
3907
  }
3834
3908
  case "unionWrap": {
3835
3909
  w.length(90);
3836
- w.keys(Object.keys(v), KEYS191);
3910
+ w.keys(Object.keys(v), KEYS193);
3837
3911
  w.str(v.unionId);
3838
3912
  w.num(v.tag);
3839
3913
  encIrExpr(w, v.value);
@@ -3843,7 +3917,7 @@ function encIrExpr(w, v) {
3843
3917
  }
3844
3918
  case "unitLit": {
3845
3919
  w.length(91);
3846
- w.keys(Object.keys(v), KEYS192);
3920
+ w.keys(Object.keys(v), KEYS194);
3847
3921
  w.str(v.unit);
3848
3922
  encIrType(w, v.type);
3849
3923
  encSrcLoc(w, v.loc);
@@ -3851,7 +3925,7 @@ function encIrExpr(w, v) {
3851
3925
  }
3852
3926
  case "upcast": {
3853
3927
  w.length(92);
3854
- w.keys(Object.keys(v), KEYS193);
3928
+ w.keys(Object.keys(v), KEYS195);
3855
3929
  encIrExpr(w, v.value);
3856
3930
  encIrType(w, v.type);
3857
3931
  encSrcLoc(w, v.loc);
@@ -3859,7 +3933,7 @@ function encIrExpr(w, v) {
3859
3933
  }
3860
3934
  case "varRef": {
3861
3935
  w.length(93);
3862
- w.keys(Object.keys(v), KEYS194);
3936
+ w.keys(Object.keys(v), KEYS196);
3863
3937
  w.str(v.localId);
3864
3938
  encIrType(w, v.type);
3865
3939
  encSrcLoc(w, v.loc);
@@ -3867,10 +3941,10 @@ function encIrExpr(w, v) {
3867
3941
  }
3868
3942
  case "virtualCall": {
3869
3943
  w.length(94);
3870
- w.keys(Object.keys(v), KEYS195);
3944
+ w.keys(Object.keys(v), KEYS197);
3871
3945
  w.str(v.className);
3872
3946
  w.str(v.method);
3873
- encT64(w, v.args);
3947
+ encT66(w, v.args);
3874
3948
  encIrType(w, v.type);
3875
3949
  encSrcLoc(w, v.loc);
3876
3950
  if (v.targets === undefined)
@@ -3883,7 +3957,7 @@ function encIrExpr(w, v) {
3883
3957
  }
3884
3958
  case "yieldExpr": {
3885
3959
  w.length(95);
3886
- w.keys(Object.keys(v), KEYS196);
3960
+ w.keys(Object.keys(v), KEYS198);
3887
3961
  if (v.value === null)
3888
3962
  w.byte(0);
3889
3963
  else {
@@ -3906,7 +3980,7 @@ function encIrExpr(w, v) {
3906
3980
  w.byte(0);
3907
3981
  else {
3908
3982
  w.byte(1);
3909
- encT72(w, v.captureCompletion);
3983
+ encT74(w, v.captureCompletion);
3910
3984
  }
3911
3985
  encIrType(w, v.type);
3912
3986
  encSrcLoc(w, v.loc);
@@ -3920,7 +3994,7 @@ function decIrExpr(r) {
3920
3994
  case 0: {
3921
3995
  const f0 = r.str();
3922
3996
  const f1 = decIrExpr(r);
3923
- const f2 = decT64(r);
3997
+ const f2 = decT66(r);
3924
3998
  const f3 = decIrType(r);
3925
3999
  const f4 = decSrcLoc(r);
3926
4000
  const o = { kind: "arrIntrinsic", method: f0, receiver: f1, args: f2, type: f3, loc: f4 };
@@ -3943,8 +4017,8 @@ function decIrExpr(r) {
3943
4017
  return o;
3944
4018
  }
3945
4019
  case 3: {
3946
- const f0 = decT64(r);
3947
- const f1 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<arrayLit>.spreads") === 0 ? undefined : decT65(r);
4020
+ const f0 = decT66(r);
4021
+ const f1 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<arrayLit>.spreads") === 0 ? undefined : decT67(r);
3948
4022
  const f2 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<arrayLit>.capacity") === 0 ? undefined : r.num();
3949
4023
  const f3 = decIrType(r);
3950
4024
  const f4 = decSrcLoc(r);
@@ -4009,7 +4083,7 @@ function decIrExpr(r) {
4009
4083
  case 11: {
4010
4084
  const f0 = r.str();
4011
4085
  const f1 = decIrExpr(r);
4012
- const f2 = decT64(r);
4086
+ const f2 = decT66(r);
4013
4087
  const f3 = decIrType(r);
4014
4088
  const f4 = decSrcLoc(r);
4015
4089
  const f5 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<bytesIntrinsic>.invalidNaN") === 0 ? undefined : r.bool();
@@ -4026,7 +4100,7 @@ function decIrExpr(r) {
4026
4100
  }
4027
4101
  case 13: {
4028
4102
  const f0 = r.str();
4029
- const f1 = decT64(r);
4103
+ const f1 = decT66(r);
4030
4104
  const f2 = decIrType(r);
4031
4105
  const f3 = decSrcLoc(r);
4032
4106
  const o = { kind: "call", callee: f0, args: f1, type: f2, loc: f3 };
@@ -4035,7 +4109,7 @@ function decIrExpr(r) {
4035
4109
  case 14: {
4036
4110
  const f0 = decIrExpr(r);
4037
4111
  const f1 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<callValue>.receiver") === 0 ? undefined : decIrExpr(r);
4038
- const f2 = decT64(r);
4112
+ const f2 = decT66(r);
4039
4113
  const f3 = decIrType(r);
4040
4114
  const f4 = decSrcLoc(r);
4041
4115
  const o = { kind: "callValue", callee: f0, ...(f1 !== undefined ? { receiver: f1 } : {}), args: f2, type: f3, loc: f4 };
@@ -4105,7 +4179,7 @@ function decIrExpr(r) {
4105
4179
  return o;
4106
4180
  }
4107
4181
  case 23: {
4108
- const f0 = decT64(r);
4182
+ const f0 = decT66(r);
4109
4183
  const f1 = decIrType(r);
4110
4184
  const f2 = decSrcLoc(r);
4111
4185
  const o = { kind: "dynArrLit", elems: f0, type: f1, loc: f2 };
@@ -4116,8 +4190,8 @@ function decIrExpr(r) {
4116
4190
  const f1 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<dynCall>.receiver") === 0 ? undefined : decIrExpr(r);
4117
4191
  const f2 = r.str();
4118
4192
  const f3 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<dynCall>.calleeNameValue") === 0 ? undefined : decIrExpr(r);
4119
- const f4 = decT64(r);
4120
- const f5 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<dynCall>.spreads") === 0 ? undefined : decT66(r);
4193
+ const f4 = decT66(r);
4194
+ const f5 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<dynCall>.spreads") === 0 ? undefined : decT68(r);
4121
4195
  const f6 = decIrType(r);
4122
4196
  const f7 = decSrcLoc(r);
4123
4197
  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 };
@@ -4131,9 +4205,10 @@ function decIrExpr(r) {
4131
4205
  const f4 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<dynCheck>.partialView") === 0 ? undefined : r.bool();
4132
4206
  const f5 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<dynCheck>.inferredSite") === 0 ? undefined : r.str();
4133
4207
  const f6 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<dynCheck>.origin") === 0 ? undefined : r.num();
4134
- const f7 = decIrType(r);
4135
- const f8 = decSrcLoc(r);
4136
- const o = { kind: "dynCheck", value: f0, ...(f1 !== undefined ? { preserveRefs: f1 } : {}), ...(f2 !== undefined ? { adopt: f2 } : {}), ...(f3 !== undefined ? { exact: f3 } : {}), ...(f4 !== undefined ? { partialView: f4 } : {}), ...(f5 !== undefined ? { inferredSite: f5 } : {}), ...(f6 !== undefined ? { origin: f6 } : {}), type: f7, loc: f8 };
4208
+ const f7 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<dynCheck>.pathIndex") === 0 ? undefined : r.num();
4209
+ const f8 = decIrType(r);
4210
+ const f9 = decSrcLoc(r);
4211
+ const o = { kind: "dynCheck", value: f0, ...(f1 !== undefined ? { preserveRefs: f1 } : {}), ...(f2 !== undefined ? { adopt: f2 } : {}), ...(f3 !== undefined ? { exact: f3 } : {}), ...(f4 !== undefined ? { partialView: f4 } : {}), ...(f5 !== undefined ? { inferredSite: f5 } : {}), ...(f6 !== undefined ? { origin: f6 } : {}), ...(f7 !== undefined ? { pathIndex: f7 } : {}), type: f8, loc: f9 };
4137
4212
  return o;
4138
4213
  }
4139
4214
  case 26: {
@@ -4151,8 +4226,9 @@ function decIrExpr(r) {
4151
4226
  const f2 = decSrcLoc(r);
4152
4227
  const f3 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<dynFrom>.liveRef") === 0 ? undefined : r.bool();
4153
4228
  const f4 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<dynFrom>.fnName") === 0 ? undefined : r.str();
4154
- const f5 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<dynFrom>.fnLength") === 0 ? undefined : r.num();
4155
- const o = { kind: "dynFrom", value: f0, type: f1, loc: f2, ...(f3 !== undefined ? { liveRef: f3 } : {}), ...(f4 !== undefined ? { fnName: f4 } : {}), ...(f5 !== undefined ? { fnLength: f5 } : {}) };
4229
+ const f5 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<dynFrom>.fnNameMainThreadOnly") === 0 ? undefined : r.bool();
4230
+ const f6 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<dynFrom>.fnLength") === 0 ? undefined : r.num();
4231
+ const o = { kind: "dynFrom", value: f0, type: f1, loc: f2, ...(f3 !== undefined ? { liveRef: f3 } : {}), ...(f4 !== undefined ? { fnName: f4 } : {}), ...(f5 !== undefined ? { fnNameMainThreadOnly: f5 } : {}), ...(f6 !== undefined ? { fnLength: f6 } : {}) };
4156
4232
  return o;
4157
4233
  }
4158
4234
  case 28: {
@@ -4169,7 +4245,7 @@ function decIrExpr(r) {
4169
4245
  const f1 = r.str();
4170
4246
  const f2 = r.str();
4171
4247
  const f3 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<dynInvoke>.calleeNameValue") === 0 ? undefined : decIrExpr(r);
4172
- const f4 = decT64(r);
4248
+ const f4 = decT66(r);
4173
4249
  const f5 = decIrType(r);
4174
4250
  const f6 = decSrcLoc(r);
4175
4251
  const o = { kind: "dynInvoke", recv: f0, method: f1, calleeName: f2, ...(f3 !== undefined ? { calleeNameValue: f3 } : {}), args: f4, type: f5, loc: f6 };
@@ -4194,7 +4270,7 @@ function decIrExpr(r) {
4194
4270
  return o;
4195
4271
  }
4196
4272
  case 32: {
4197
- const f0 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<dynObjLit>.fields") === 0 ? undefined : decT67(r);
4273
+ const f0 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<dynObjLit>.fields") === 0 ? undefined : decT69(r);
4198
4274
  const f1 = decIrType(r);
4199
4275
  const f2 = decSrcLoc(r);
4200
4276
  const o = { kind: "dynObjLit", ...(f0 !== undefined ? { fields: f0 } : {}), type: f1, loc: f2 };
@@ -4221,7 +4297,7 @@ function decIrExpr(r) {
4221
4297
  }
4222
4298
  case 35: {
4223
4299
  const f0 = r.str();
4224
- const f1 = decT64(r);
4300
+ const f1 = decT66(r);
4225
4301
  const f2 = decIrType(r);
4226
4302
  const f3 = decSrcLoc(r);
4227
4303
  const o = { kind: "ffiCall", import: f0, args: f1, type: f2, loc: f3 };
@@ -4291,7 +4367,7 @@ function decIrExpr(r) {
4291
4367
  }
4292
4368
  case 43: {
4293
4369
  const f0 = r.str();
4294
- const f1 = decT64(r);
4370
+ const f1 = decT66(r);
4295
4371
  const f2 = decIrType(r);
4296
4372
  const f3 = decSrcLoc(r);
4297
4373
  const o = { kind: "intrinsic", name: f0, args: f1, type: f2, loc: f3 };
@@ -4308,12 +4384,12 @@ function decIrExpr(r) {
4308
4384
  }
4309
4385
  case 45: {
4310
4386
  const f0 = r.str();
4311
- const f1 = decT64(r);
4387
+ const f1 = decT66(r);
4312
4388
  const f2 = decIrType(r);
4313
4389
  const f3 = decSrcLoc(r);
4314
4390
  const f4 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<libCall>.prototypeIdentityOnly") === 0 ? undefined : r.bool();
4315
4391
  const f5 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<libCall>.realTimer") === 0 ? undefined : r.bool();
4316
- const f6 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<libCall>.assertOptions") === 0 ? undefined : decT68(r);
4392
+ const f6 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<libCall>.assertOptions") === 0 ? undefined : decT70(r);
4317
4393
  const f7 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<libCall>.bindsThis") === 0 ? undefined : r.bool();
4318
4394
  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 } : {}) };
4319
4395
  return o;
@@ -4330,14 +4406,14 @@ function decIrExpr(r) {
4330
4406
  case 47: {
4331
4407
  const f0 = r.str();
4332
4408
  const f1 = decIrExpr(r);
4333
- const f2 = decT64(r);
4409
+ const f2 = decT66(r);
4334
4410
  const f3 = decIrType(r);
4335
4411
  const f4 = decSrcLoc(r);
4336
4412
  const o = { kind: "mapIntrinsic", method: f0, receiver: f1, args: f2, type: f3, loc: f4 };
4337
4413
  return o;
4338
4414
  }
4339
4415
  case 48: {
4340
- const f0 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<mapNew>.seed") === 0 ? undefined : decT69(r);
4416
+ const f0 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<mapNew>.seed") === 0 ? undefined : decT71(r);
4341
4417
  const f1 = decIrType(r);
4342
4418
  const f2 = decSrcLoc(r);
4343
4419
  const o = { kind: "mapNew", ...(f0 !== undefined ? { seed: f0 } : {}), type: f1, loc: f2 };
@@ -4352,7 +4428,7 @@ function decIrExpr(r) {
4352
4428
  }
4353
4429
  case 50: {
4354
4430
  const f0 = r.str();
4355
- const f1 = decT64(r);
4431
+ const f1 = decT66(r);
4356
4432
  const f2 = decIrType(r);
4357
4433
  const f3 = decSrcLoc(r);
4358
4434
  const o = { kind: "new", className: f0, args: f1, type: f2, loc: f3 };
@@ -4367,7 +4443,7 @@ function decIrExpr(r) {
4367
4443
  }
4368
4444
  case 52: {
4369
4445
  const f0 = decIrExpr(r);
4370
- const f1 = decT64(r);
4446
+ const f1 = decT66(r);
4371
4447
  const f2 = decIrType(r);
4372
4448
  const f3 = decSrcLoc(r);
4373
4449
  const o = { kind: "newValue", callee: f0, args: f1, type: f2, loc: f3 };
@@ -4422,7 +4498,7 @@ function decIrExpr(r) {
4422
4498
  }
4423
4499
  case 59: {
4424
4500
  const f0 = decIrExpr(r);
4425
- const f1 = decT70(r);
4501
+ const f1 = decT72(r);
4426
4502
  const f2 = decIrType(r);
4427
4503
  const f3 = decSrcLoc(r);
4428
4504
  const o = { kind: "recordClone", source: f0, overrides: f1, type: f2, loc: f3 };
@@ -4458,7 +4534,7 @@ function decIrExpr(r) {
4458
4534
  return o;
4459
4535
  }
4460
4536
  case 63: {
4461
- const f0 = decT71(r);
4537
+ const f0 = decT73(r);
4462
4538
  const f1 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<recordLit>.nullProto") === 0 ? undefined : r.bool();
4463
4539
  const f2 = decIrType(r);
4464
4540
  const f3 = decSrcLoc(r);
@@ -4493,7 +4569,7 @@ function decIrExpr(r) {
4493
4569
  case 67: {
4494
4570
  const f0 = r.str();
4495
4571
  const f1 = decIrExpr(r);
4496
- const f2 = decT64(r);
4572
+ const f2 = decT66(r);
4497
4573
  const f3 = decIrType(r);
4498
4574
  const f4 = decSrcLoc(r);
4499
4575
  const o = { kind: "regexIntrinsic", method: f0, receiver: f1, args: f2, type: f3, loc: f4 };
@@ -4514,7 +4590,7 @@ function decIrExpr(r) {
4514
4590
  return o;
4515
4591
  }
4516
4592
  case 70: {
4517
- const f0 = decT19(r);
4593
+ const f0 = decT20(r);
4518
4594
  const f1 = decIrExpr(r);
4519
4595
  const f2 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<seqExpr>.generatorDelegate") === 0 ? undefined : r.bool();
4520
4596
  const f3 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<seqExpr>.diverges") === 0 ? undefined : r.bool();
@@ -4526,7 +4602,7 @@ function decIrExpr(r) {
4526
4602
  case 71: {
4527
4603
  const f0 = r.str();
4528
4604
  const f1 = decIrExpr(r);
4529
- const f2 = decT64(r);
4605
+ const f2 = decT66(r);
4530
4606
  const f3 = decIrType(r);
4531
4607
  const f4 = decSrcLoc(r);
4532
4608
  const o = { kind: "setIntrinsic", method: f0, receiver: f1, args: f2, type: f3, loc: f4 };
@@ -4568,7 +4644,7 @@ function decIrExpr(r) {
4568
4644
  case 76: {
4569
4645
  const f0 = r.str();
4570
4646
  const f1 = decIrExpr(r);
4571
- const f2 = decT64(r);
4647
+ const f2 = decT66(r);
4572
4648
  const f3 = decIrType(r);
4573
4649
  const f4 = decSrcLoc(r);
4574
4650
  const o = { kind: "strIntrinsic", method: f0, receiver: f1, args: f2, type: f3, loc: f4 };
@@ -4682,7 +4758,7 @@ function decIrExpr(r) {
4682
4758
  case 89: {
4683
4759
  const f0 = r.str();
4684
4760
  const f1 = r.str();
4685
- const f2 = decT65(r);
4761
+ const f2 = decT67(r);
4686
4762
  const f3 = decIrExpr(r);
4687
4763
  const f4 = decIrType(r);
4688
4764
  const f5 = decSrcLoc(r);
@@ -4722,7 +4798,7 @@ function decIrExpr(r) {
4722
4798
  case 94: {
4723
4799
  const f0 = r.str();
4724
4800
  const f1 = r.str();
4725
- const f2 = decT64(r);
4801
+ const f2 = decT66(r);
4726
4802
  const f3 = decIrType(r);
4727
4803
  const f4 = decSrcLoc(r);
4728
4804
  const f5 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<virtualCall>.targets") === 0 ? undefined : decT8(r);
@@ -4733,7 +4809,7 @@ function decIrExpr(r) {
4733
4809
  const f0 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<yieldExpr>.value") === 0 ? null : decIrExpr(r);
4734
4810
  const f1 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<yieldExpr>.awaited") === 0 ? undefined : r.bool();
4735
4811
  const f2 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<yieldExpr>.delegated") === 0 ? undefined : r.bool();
4736
- const f3 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<yieldExpr>.captureCompletion") === 0 ? undefined : decT72(r);
4812
+ const f3 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<yieldExpr>.captureCompletion") === 0 ? undefined : decT74(r);
4737
4813
  const f4 = decIrType(r);
4738
4814
  const f5 = decSrcLoc(r);
4739
4815
  const o = { kind: "yieldExpr", value: f0, ...(f1 !== undefined ? { awaited: f1 } : {}), ...(f2 !== undefined ? { delegated: f2 } : {}), ...(f3 !== undefined ? { captureCompletion: f3 } : {}), type: f4, loc: f5 };
@@ -4742,78 +4818,78 @@ function decIrExpr(r) {
4742
4818
  }
4743
4819
  throw new Error("IR codec: invalid IrExpr kind");
4744
4820
  }
4745
- function encT54(w, v) {
4821
+ function encT56(w, v) {
4746
4822
  w.length(v.length);
4747
4823
  for (const item of v) {
4748
- encT73(w, item);
4824
+ encT75(w, item);
4749
4825
  }
4750
4826
  }
4751
- function decT54(r) {
4827
+ function decT56(r) {
4752
4828
  const length = r.length();
4753
4829
  const out = [];
4754
4830
  for (let i = 0; i < length; i++)
4755
- out.push(decT73(r));
4831
+ out.push(decT75(r));
4756
4832
  return out;
4757
4833
  }
4758
- function encT55(w, v) {
4834
+ function encT57(w, v) {
4759
4835
  if (typeof v === "object" && "globalId" in v) {
4760
4836
  w.length(0);
4761
- encT74(w, v);
4837
+ encT76(w, v);
4762
4838
  return;
4763
4839
  }
4764
4840
  if (typeof v === "object" && "wellKnown" in v) {
4765
4841
  w.length(1);
4766
- encT75(w, v);
4842
+ encT77(w, v);
4767
4843
  return;
4768
4844
  }
4769
- throw new Error("IR codec: no arm of T55 matches");
4845
+ throw new Error("IR codec: no arm of T57 matches");
4770
4846
  }
4771
- function decT55(r) {
4847
+ function decT57(r) {
4772
4848
  switch (r.length()) {
4773
4849
  case 0:
4774
- return decT74(r);
4850
+ return decT76(r);
4775
4851
  case 1:
4776
- return decT75(r);
4852
+ return decT77(r);
4777
4853
  }
4778
- throw new Error("IR codec: invalid T55 arm");
4854
+ throw new Error("IR codec: invalid T57 arm");
4779
4855
  }
4780
- function encT56(w, v) {
4781
- w.keys(Object.keys(v), KEYS197);
4856
+ function encT58(w, v) {
4857
+ w.keys(Object.keys(v), KEYS199);
4782
4858
  w.str(v.name);
4783
4859
  encIrType(w, v.type);
4784
4860
  }
4785
- function decT56(r) {
4861
+ function decT58(r) {
4786
4862
  const f0 = r.str();
4787
4863
  const f1 = decIrType(r);
4788
4864
  const o = { name: f0, type: f1 };
4789
4865
  return o;
4790
4866
  }
4791
- function encT57(w, v) {
4792
- w.keys(Object.keys(v), KEYS198);
4867
+ function encT59(w, v) {
4868
+ w.keys(Object.keys(v), KEYS200);
4793
4869
  w.str(v.name);
4794
4870
  encIrType(w, v.type);
4795
4871
  }
4796
- function decT57(r) {
4872
+ function decT59(r) {
4797
4873
  const f0 = r.str();
4798
4874
  const f1 = decIrType(r);
4799
4875
  const o = { name: f0, type: f1 };
4800
4876
  return o;
4801
4877
  }
4802
- function encT58(w, v) {
4878
+ function encT60(w, v) {
4803
4879
  w.length(v.length);
4804
4880
  for (const item of v) {
4805
- encT76(w, item);
4881
+ encT78(w, item);
4806
4882
  }
4807
4883
  }
4808
- function decT58(r) {
4884
+ function decT60(r) {
4809
4885
  const length = r.length();
4810
4886
  const out = [];
4811
4887
  for (let i = 0; i < length; i++)
4812
- out.push(decT76(r));
4888
+ out.push(decT78(r));
4813
4889
  return out;
4814
4890
  }
4815
- function encT59(w, v) {
4816
- w.keys(Object.keys(v), KEYS199);
4891
+ function encT61(w, v) {
4892
+ w.keys(Object.keys(v), KEYS201);
4817
4893
  w.str(v.path);
4818
4894
  w.num(v.size);
4819
4895
  w.str(v.sha256);
@@ -4824,7 +4900,7 @@ function encT59(w, v) {
4824
4900
  w.bool(v.placeholder);
4825
4901
  }
4826
4902
  }
4827
- function decT59(r) {
4903
+ function decT61(r) {
4828
4904
  const f0 = r.str();
4829
4905
  const f1 = r.num();
4830
4906
  const f2 = r.str();
@@ -4832,12 +4908,12 @@ function decT59(r) {
4832
4908
  const o = { path: f0, size: f1, sha256: f2, ...(f3 !== undefined ? { placeholder: f3 } : {}) };
4833
4909
  return o;
4834
4910
  }
4835
- function encT60(w, v) {
4836
- w.keys(Object.keys(v), KEYS200);
4911
+ function encT62(w, v) {
4912
+ w.keys(Object.keys(v), KEYS202);
4837
4913
  w.str(v.path);
4838
4914
  w.str(v.target);
4839
4915
  }
4840
- function decT60(r) {
4916
+ function decT62(r) {
4841
4917
  const f0 = r.str();
4842
4918
  const f1 = r.str();
4843
4919
  const o = { path: f0, target: f1 };
@@ -4879,86 +4955,86 @@ function decIrFfiParam(r) {
4879
4955
  }
4880
4956
  throw new Error("IR codec: invalid IrFfiParam arm");
4881
4957
  }
4882
- function encT62(w, v) {
4958
+ function encT64(w, v) {
4883
4959
  w.length(v.length);
4884
4960
  for (const item of v) {
4885
4961
  w.str(item);
4886
4962
  }
4887
4963
  }
4888
- function decT62(r) {
4964
+ function decT64(r) {
4889
4965
  const length = r.length();
4890
4966
  const out = [];
4891
4967
  for (let i = 0; i < length; i++)
4892
4968
  out.push(r.str());
4893
4969
  return out;
4894
4970
  }
4895
- function encT63(w, v) {
4971
+ function encT65(w, v) {
4896
4972
  w.length(v.length);
4897
4973
  for (const item of v) {
4898
4974
  w.str(item);
4899
4975
  }
4900
4976
  }
4901
- function decT63(r) {
4977
+ function decT65(r) {
4902
4978
  const length = r.length();
4903
4979
  const out = [];
4904
4980
  for (let i = 0; i < length; i++)
4905
4981
  out.push(r.str());
4906
4982
  return out;
4907
4983
  }
4908
- function encT64(w, v) {
4984
+ function encT66(w, v) {
4909
4985
  w.length(v.length);
4910
4986
  for (const item of v) {
4911
4987
  encIrExpr(w, item);
4912
4988
  }
4913
4989
  }
4914
- function decT64(r) {
4990
+ function decT66(r) {
4915
4991
  const length = r.length();
4916
4992
  const out = [];
4917
4993
  for (let i = 0; i < length; i++)
4918
4994
  out.push(decIrExpr(r));
4919
4995
  return out;
4920
4996
  }
4921
- function encT65(w, v) {
4997
+ function encT67(w, v) {
4922
4998
  w.length(v.length);
4923
4999
  for (const item of v) {
4924
5000
  w.num(item);
4925
5001
  }
4926
5002
  }
4927
- function decT65(r) {
5003
+ function decT67(r) {
4928
5004
  const length = r.length();
4929
5005
  const out = [];
4930
5006
  for (let i = 0; i < length; i++)
4931
5007
  out.push(r.num());
4932
5008
  return out;
4933
5009
  }
4934
- function encT66(w, v) {
5010
+ function encT68(w, v) {
4935
5011
  w.length(v.length);
4936
5012
  for (const item of v) {
4937
- encT80(w, item);
5013
+ encT82(w, item);
4938
5014
  }
4939
5015
  }
4940
- function decT66(r) {
5016
+ function decT68(r) {
4941
5017
  const length = r.length();
4942
5018
  const out = [];
4943
5019
  for (let i = 0; i < length; i++)
4944
- out.push(decT80(r));
5020
+ out.push(decT82(r));
4945
5021
  return out;
4946
5022
  }
4947
- function encT67(w, v) {
5023
+ function encT69(w, v) {
4948
5024
  w.length(v.length);
4949
5025
  for (const item of v) {
4950
- encT81(w, item);
5026
+ encT83(w, item);
4951
5027
  }
4952
5028
  }
4953
- function decT67(r) {
5029
+ function decT69(r) {
4954
5030
  const length = r.length();
4955
5031
  const out = [];
4956
5032
  for (let i = 0; i < length; i++)
4957
- out.push(decT81(r));
5033
+ out.push(decT83(r));
4958
5034
  return out;
4959
5035
  }
4960
- function encT68(w, v) {
4961
- w.keys(Object.keys(v), KEYS201);
5036
+ function encT70(w, v) {
5037
+ w.keys(Object.keys(v), KEYS203);
4962
5038
  if (v.diff === undefined)
4963
5039
  w.byte(0);
4964
5040
  else {
@@ -4972,111 +5048,111 @@ function encT68(w, v) {
4972
5048
  w.bool(v.skipPrototype);
4973
5049
  }
4974
5050
  }
4975
- function decT68(r) {
5051
+ function decT70(r) {
4976
5052
  const f0 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<libCall>.assertOptions.diff") === 0 ? undefined : r.str();
4977
5053
  const f1 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<libCall>.assertOptions.skipPrototype") === 0 ? undefined : r.bool();
4978
5054
  const o = { ...(f0 !== undefined ? { diff: f0 } : {}), ...(f1 !== undefined ? { skipPrototype: f1 } : {}) };
4979
5055
  return o;
4980
5056
  }
4981
- function encT69(w, v) {
5057
+ function encT71(w, v) {
4982
5058
  w.length(v.length);
4983
5059
  for (const item of v) {
4984
- encT82(w, item);
5060
+ encT84(w, item);
4985
5061
  }
4986
5062
  }
4987
- function decT69(r) {
5063
+ function decT71(r) {
4988
5064
  const length = r.length();
4989
5065
  const out = [];
4990
5066
  for (let i = 0; i < length; i++)
4991
- out.push(decT82(r));
5067
+ out.push(decT84(r));
4992
5068
  return out;
4993
5069
  }
4994
- function encT70(w, v) {
5070
+ function encT72(w, v) {
4995
5071
  w.length(v.length);
4996
5072
  for (const item of v) {
4997
- encT83(w, item);
5073
+ encT85(w, item);
4998
5074
  }
4999
5075
  }
5000
- function decT70(r) {
5076
+ function decT72(r) {
5001
5077
  const length = r.length();
5002
5078
  const out = [];
5003
5079
  for (let i = 0; i < length; i++)
5004
- out.push(decT83(r));
5080
+ out.push(decT85(r));
5005
5081
  return out;
5006
5082
  }
5007
- function encT71(w, v) {
5083
+ function encT73(w, v) {
5008
5084
  w.length(v.length);
5009
5085
  for (const item of v) {
5010
- encT84(w, item);
5086
+ encT86(w, item);
5011
5087
  }
5012
5088
  }
5013
- function decT71(r) {
5089
+ function decT73(r) {
5014
5090
  const length = r.length();
5015
5091
  const out = [];
5016
5092
  for (let i = 0; i < length; i++)
5017
- out.push(decT84(r));
5093
+ out.push(decT86(r));
5018
5094
  return out;
5019
5095
  }
5020
- function encT72(w, v) {
5021
- w.keys(Object.keys(v), KEYS202);
5096
+ function encT74(w, v) {
5097
+ w.keys(Object.keys(v), KEYS204);
5022
5098
  encIrType(w, v.returnType);
5023
5099
  }
5024
- function decT72(r) {
5100
+ function decT74(r) {
5025
5101
  const f0 = decIrType(r);
5026
5102
  const o = { returnType: f0 };
5027
5103
  return o;
5028
5104
  }
5029
- function encT73(w, v) {
5030
- w.keys(Object.keys(v), KEYS203);
5105
+ function encT75(w, v) {
5106
+ w.keys(Object.keys(v), KEYS205);
5031
5107
  if (v.test === null)
5032
5108
  w.byte(0);
5033
5109
  else {
5034
5110
  w.byte(1);
5035
5111
  encIrExpr(w, v.test);
5036
5112
  }
5037
- encT19(w, v.body);
5113
+ encT20(w, v.body);
5038
5114
  }
5039
- function decT73(r) {
5115
+ function decT75(r) {
5040
5116
  const f0 = r.tag(2, "IrFunction.body[]<switch>.cases[].test") === 0 ? null : decIrExpr(r);
5041
- const f1 = decT19(r);
5117
+ const f1 = decT20(r);
5042
5118
  const o = { test: f0, body: f1 };
5043
5119
  return o;
5044
5120
  }
5045
- function encT74(w, v) {
5046
- w.keys(Object.keys(v), KEYS204);
5121
+ function encT76(w, v) {
5122
+ w.keys(Object.keys(v), KEYS206);
5047
5123
  w.str(v.field);
5048
5124
  w.str(v.globalId);
5049
5125
  }
5050
- function decT74(r) {
5126
+ function decT76(r) {
5051
5127
  const f0 = r.str();
5052
5128
  const f1 = r.str();
5053
5129
  const o = { field: f0, globalId: f1 };
5054
5130
  return o;
5055
5131
  }
5056
- function encT75(w, v) {
5057
- w.keys(Object.keys(v), KEYS205);
5132
+ function encT77(w, v) {
5133
+ w.keys(Object.keys(v), KEYS207);
5058
5134
  w.str(v.field);
5059
5135
  w.str(v.wellKnown);
5060
5136
  }
5061
- function decT75(r) {
5137
+ function decT77(r) {
5062
5138
  const f0 = r.str();
5063
5139
  const f1 = r.str();
5064
5140
  const o = { field: f0, wellKnown: f1 };
5065
5141
  return o;
5066
5142
  }
5067
- function encT76(w, v) {
5068
- w.keys(Object.keys(v), KEYS206);
5143
+ function encT78(w, v) {
5144
+ w.keys(Object.keys(v), KEYS208);
5069
5145
  w.num(v.tag);
5070
- encT85(w, v.values);
5146
+ encT87(w, v.values);
5071
5147
  }
5072
- function decT76(r) {
5148
+ function decT78(r) {
5073
5149
  const f0 = r.num();
5074
- const f1 = decT85(r);
5150
+ const f1 = decT87(r);
5075
5151
  const o = { tag: f0, values: f1 };
5076
5152
  return o;
5077
5153
  }
5078
5154
  function encIrFfiContextParam(w, v) {
5079
- w.keys(Object.keys(v), KEYS207);
5155
+ w.keys(Object.keys(v), KEYS209);
5080
5156
  w.str(v.context);
5081
5157
  }
5082
5158
  function decIrFfiContextParam(r) {
@@ -5085,69 +5161,69 @@ function decIrFfiContextParam(r) {
5085
5161
  return o;
5086
5162
  }
5087
5163
  function encIrFfiCallbackParam(w, v) {
5088
- w.keys(Object.keys(v), KEYS208);
5089
- encT86(w, v.callback);
5164
+ w.keys(Object.keys(v), KEYS210);
5165
+ encT88(w, v.callback);
5090
5166
  }
5091
5167
  function decIrFfiCallbackParam(r) {
5092
- const f0 = decT86(r);
5168
+ const f0 = decT88(r);
5093
5169
  const o = { callback: f0 };
5094
5170
  return o;
5095
5171
  }
5096
5172
  function encIrFfiReleaseParam(w, v) {
5097
- w.keys(Object.keys(v), KEYS209);
5098
- encT87(w, v.callback);
5173
+ w.keys(Object.keys(v), KEYS211);
5174
+ encT89(w, v.callback);
5099
5175
  }
5100
5176
  function decIrFfiReleaseParam(r) {
5101
- const f0 = decT87(r);
5177
+ const f0 = decT89(r);
5102
5178
  const o = { callback: f0 };
5103
5179
  return o;
5104
5180
  }
5105
- function encT80(w, v) {
5106
- w.keys(Object.keys(v), KEYS210);
5181
+ function encT82(w, v) {
5182
+ w.keys(Object.keys(v), KEYS212);
5107
5183
  w.num(v.arg);
5108
5184
  w.str(v.what);
5109
5185
  }
5110
- function decT80(r) {
5186
+ function decT82(r) {
5111
5187
  const f0 = r.num();
5112
5188
  const f1 = r.str();
5113
5189
  const o = { arg: f0, what: f1 };
5114
5190
  return o;
5115
5191
  }
5116
- function encT81(w, v) {
5117
- w.keys(Object.keys(v), KEYS211);
5192
+ function encT83(w, v) {
5193
+ w.keys(Object.keys(v), KEYS213);
5118
5194
  encIrExpr(w, v.key);
5119
5195
  encIrExpr(w, v.value);
5120
5196
  }
5121
- function decT81(r) {
5197
+ function decT83(r) {
5122
5198
  const f0 = decIrExpr(r);
5123
5199
  const f1 = decIrExpr(r);
5124
5200
  const o = { key: f0, value: f1 };
5125
5201
  return o;
5126
5202
  }
5127
- function encT82(w, v) {
5128
- w.keys(Object.keys(v), KEYS212);
5203
+ function encT84(w, v) {
5204
+ w.keys(Object.keys(v), KEYS214);
5129
5205
  encIrExpr(w, v.key);
5130
5206
  encIrExpr(w, v.value);
5131
5207
  }
5132
- function decT82(r) {
5208
+ function decT84(r) {
5133
5209
  const f0 = decIrExpr(r);
5134
5210
  const f1 = decIrExpr(r);
5135
5211
  const o = { key: f0, value: f1 };
5136
5212
  return o;
5137
5213
  }
5138
- function encT83(w, v) {
5139
- w.keys(Object.keys(v), KEYS213);
5214
+ function encT85(w, v) {
5215
+ w.keys(Object.keys(v), KEYS215);
5140
5216
  w.str(v.name);
5141
5217
  encIrExpr(w, v.value);
5142
5218
  }
5143
- function decT83(r) {
5219
+ function decT85(r) {
5144
5220
  const f0 = r.str();
5145
5221
  const f1 = decIrExpr(r);
5146
5222
  const o = { name: f0, value: f1 };
5147
5223
  return o;
5148
5224
  }
5149
- function encT84(w, v) {
5150
- w.keys(Object.keys(v), KEYS214);
5225
+ function encT86(w, v) {
5226
+ w.keys(Object.keys(v), KEYS216);
5151
5227
  w.str(v.name);
5152
5228
  encIrExpr(w, v.value);
5153
5229
  if (v.overflow === undefined)
@@ -5157,57 +5233,57 @@ function encT84(w, v) {
5157
5233
  w.bool(v.overflow);
5158
5234
  }
5159
5235
  }
5160
- function decT84(r) {
5236
+ function decT86(r) {
5161
5237
  const f0 = r.str();
5162
5238
  const f1 = decIrExpr(r);
5163
5239
  const f2 = r.tag(2, "IrFunction.body[]<arrayDelete>.arr<recordLit>.fields[].overflow") === 0 ? undefined : r.bool();
5164
5240
  const o = { name: f0, value: f1, ...(f2 !== undefined ? { overflow: f2 } : {}) };
5165
5241
  return o;
5166
5242
  }
5167
- function encT85(w, v) {
5243
+ function encT87(w, v) {
5168
5244
  w.length(v.length);
5169
5245
  for (const item of v) {
5170
- encT88(w, item);
5246
+ encT90(w, item);
5171
5247
  }
5172
5248
  }
5173
- function decT85(r) {
5249
+ function decT87(r) {
5174
5250
  const length = r.length();
5175
5251
  const out = [];
5176
5252
  for (let i = 0; i < length; i++)
5177
- out.push(decT88(r));
5253
+ out.push(decT90(r));
5178
5254
  return out;
5179
5255
  }
5180
- function encT86(w, v) {
5181
- w.keys(Object.keys(v), KEYS215);
5256
+ function encT88(w, v) {
5257
+ w.keys(Object.keys(v), KEYS217);
5182
5258
  w.str(v.id);
5183
- encT89(w, v.params);
5259
+ encT91(w, v.params);
5184
5260
  w.str(v.returns);
5185
5261
  w.str(v.lifetime);
5186
5262
  w.str(v.invoke);
5187
5263
  }
5188
- function decT86(r) {
5264
+ function decT88(r) {
5189
5265
  const f0 = r.str();
5190
- const f1 = decT89(r);
5266
+ const f1 = decT91(r);
5191
5267
  const f2 = r.str();
5192
5268
  const f3 = r.str();
5193
5269
  const f4 = r.str();
5194
5270
  const o = { id: f0, params: f1, returns: f2, lifetime: f3, invoke: f4 };
5195
5271
  return o;
5196
5272
  }
5197
- function encT87(w, v) {
5198
- w.keys(Object.keys(v), KEYS216);
5273
+ function encT89(w, v) {
5274
+ w.keys(Object.keys(v), KEYS218);
5199
5275
  w.str(v.release);
5200
- encT89(w, v.params);
5276
+ encT91(w, v.params);
5201
5277
  w.str(v.returns);
5202
5278
  }
5203
- function decT87(r) {
5279
+ function decT89(r) {
5204
5280
  const f0 = r.str();
5205
- const f1 = decT89(r);
5281
+ const f1 = decT91(r);
5206
5282
  const f2 = r.str();
5207
5283
  const o = { release: f0, params: f1, returns: f2 };
5208
5284
  return o;
5209
5285
  }
5210
- function encT88(w, v) {
5286
+ function encT90(w, v) {
5211
5287
  if (typeof v === "string") {
5212
5288
  w.length(0);
5213
5289
  w.str(v);
@@ -5223,9 +5299,9 @@ function encT88(w, v) {
5223
5299
  w.bool(v);
5224
5300
  return;
5225
5301
  }
5226
- throw new Error("IR codec: no arm of T88 matches");
5302
+ throw new Error("IR codec: no arm of T90 matches");
5227
5303
  }
5228
- function decT88(r) {
5304
+ function decT90(r) {
5229
5305
  switch (r.length()) {
5230
5306
  case 0:
5231
5307
  return r.str();
@@ -5234,22 +5310,22 @@ function decT88(r) {
5234
5310
  case 2:
5235
5311
  return r.bool();
5236
5312
  }
5237
- throw new Error("IR codec: invalid T88 arm");
5313
+ throw new Error("IR codec: invalid T90 arm");
5238
5314
  }
5239
- function encT89(w, v) {
5315
+ function encT91(w, v) {
5240
5316
  w.length(v.length);
5241
5317
  for (const item of v) {
5242
- encT90(w, item);
5318
+ encT92(w, item);
5243
5319
  }
5244
5320
  }
5245
- function decT89(r) {
5321
+ function decT91(r) {
5246
5322
  const length = r.length();
5247
5323
  const out = [];
5248
5324
  for (let i = 0; i < length; i++)
5249
- out.push(decT90(r));
5325
+ out.push(decT92(r));
5250
5326
  return out;
5251
5327
  }
5252
- function encT90(w, v) {
5328
+ function encT92(w, v) {
5253
5329
  if (typeof v === "string") {
5254
5330
  w.length(0);
5255
5331
  w.str(v);
@@ -5260,15 +5336,15 @@ function encT90(w, v) {
5260
5336
  encIrFfiContextParam(w, v);
5261
5337
  return;
5262
5338
  }
5263
- throw new Error("IR codec: no arm of T90 matches");
5339
+ throw new Error("IR codec: no arm of T92 matches");
5264
5340
  }
5265
- function decT90(r) {
5341
+ function decT92(r) {
5266
5342
  switch (r.length()) {
5267
5343
  case 0:
5268
5344
  return r.str();
5269
5345
  case 1:
5270
5346
  return decIrFfiContextParam(r);
5271
5347
  }
5272
- throw new Error("IR codec: invalid T90 arm");
5348
+ throw new Error("IR codec: invalid T92 arm");
5273
5349
  }
5274
5350
  //# sourceMappingURL=codec.generated.js.map