@scriptc/compiler 0.2.10 → 0.3.0

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 (433) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +2 -36
  2. package/ambient/scriptc-overrides.d.ts +1 -25
  3. package/ambient/scriptc.d.ts +1 -9
  4. package/dist/backend/cycle-analysis.test.js +1 -1
  5. package/dist/backend/cycle-mutability.d.ts +1 -1
  6. package/dist/backend/cycle-mutability.js +1 -18
  7. package/dist/backend/cycle-mutability.js.map +1 -1
  8. package/dist/backend/executable-features.d.ts +1 -1
  9. package/dist/backend/executable-features.js +3 -8
  10. package/dist/backend/executable-features.js.map +1 -1
  11. package/dist/backend/immutability.d.ts +1 -1
  12. package/dist/backend/immutability.js +1 -1
  13. package/dist/backend/immutability.test.js +1 -1
  14. package/dist/backend/library-pack.js +0 -2
  15. package/dist/backend/library-pack.js.map +1 -1
  16. package/dist/backend/linker.js +1 -1
  17. package/dist/backend/linker.js.map +1 -1
  18. package/dist/backend/llvm/checked-narrows.test.js +1 -1
  19. package/dist/backend/llvm/classes.js +3 -9
  20. package/dist/backend/llvm/classes.js.map +1 -1
  21. package/dist/backend/llvm/classes.test.js +7 -7
  22. package/dist/backend/llvm/constant-callbacks.d.ts +1 -1
  23. package/dist/backend/llvm/constant-callbacks.js +3 -3
  24. package/dist/backend/llvm/constant-callbacks.js.map +1 -1
  25. package/dist/backend/llvm/constant-callbacks.test.js +1 -1
  26. package/dist/backend/llvm/dense-array-access.test.js +1 -1
  27. package/dist/backend/llvm/dyn.d.ts +0 -1
  28. package/dist/backend/llvm/dyn.js +0 -73
  29. package/dist/backend/llvm/dyn.js.map +1 -1
  30. package/dist/backend/llvm/emitter.d.ts +3 -17
  31. package/dist/backend/llvm/emitter.js +53 -181
  32. package/dist/backend/llvm/emitter.js.map +1 -1
  33. package/dist/backend/llvm/emitter.test.js +3 -3
  34. package/dist/backend/llvm/expr-async.test.js +1 -1
  35. package/dist/backend/llvm/expr-containers.js +12 -8
  36. package/dist/backend/llvm/expr-containers.js.map +1 -1
  37. package/dist/backend/llvm/expr-control.js +4 -107
  38. package/dist/backend/llvm/expr-control.js.map +1 -1
  39. package/dist/backend/llvm/expr-dispatch.d.ts +1 -2
  40. package/dist/backend/llvm/expr-dispatch.js +0 -41
  41. package/dist/backend/llvm/expr-dispatch.js.map +1 -1
  42. package/dist/backend/llvm/expr-dynamic.d.ts +1 -1
  43. package/dist/backend/llvm/expr-dynamic.js +13 -27
  44. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  45. package/dist/backend/llvm/expr-primitives.test.js +2 -2
  46. package/dist/backend/llvm/expr-stream-bridges.test.js +1 -1
  47. package/dist/backend/llvm/lib-dispatch.js +0 -1
  48. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  49. package/dist/backend/llvm/lib-filesystem.js +0 -13
  50. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  51. package/dist/backend/llvm/lib-shared.js +0 -8
  52. package/dist/backend/llvm/lib-shared.js.map +1 -1
  53. package/dist/backend/llvm/local-array-reads.test.js +1 -1
  54. package/dist/backend/llvm/local-union-storage.test.js +1 -1
  55. package/dist/backend/llvm/map-number-lookup.d.ts +7 -0
  56. package/dist/backend/llvm/map-number-lookup.js +16 -2
  57. package/dist/backend/llvm/map-number-lookup.js.map +1 -1
  58. package/dist/backend/llvm/map-read-lifetimes.js +7 -1
  59. package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
  60. package/dist/backend/llvm/map-read-lifetimes.test.js +24 -7
  61. package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
  62. package/dist/backend/llvm/shapes.js +1 -2
  63. package/dist/backend/llvm/shapes.js.map +1 -1
  64. package/dist/backend/llvm/shapes.test.js +3 -3
  65. package/dist/backend/llvm/stack-unions.test.js +1 -1
  66. package/dist/backend/llvm/string-construction.test.js +1 -1
  67. package/dist/backend/llvm/string-lifetimes.test.js +1 -1
  68. package/dist/backend/llvm/switch-dispatch.test.js +1 -1
  69. package/dist/backend/may-throw.js +0 -9
  70. package/dist/backend/may-throw.js.map +1 -1
  71. package/dist/backend/may-throw.test.js +1 -1
  72. package/dist/backend/native/artifact-stamps.js +0 -2
  73. package/dist/backend/native/artifact-stamps.js.map +1 -1
  74. package/dist/backend/native/cache-warm.d.ts +1 -1
  75. package/dist/backend/native/cache-warm.js +2 -3
  76. package/dist/backend/native/cache-warm.js.map +1 -1
  77. package/dist/backend/native/compiler-fingerprint.d.ts +1 -1
  78. package/dist/backend/native/compiler-fingerprint.js +4 -7
  79. package/dist/backend/native/compiler-fingerprint.js.map +1 -1
  80. package/dist/backend/native/contracts.d.ts +3 -28
  81. package/dist/backend/native/driver.js +1 -3
  82. package/dist/backend/native/driver.js.map +1 -1
  83. package/dist/backend/native/executable.d.ts +0 -15
  84. package/dist/backend/native/executable.js +17 -172
  85. package/dist/backend/native/executable.js.map +1 -1
  86. package/dist/backend/native/tool-identity.js +0 -1
  87. package/dist/backend/native/tool-identity.js.map +1 -1
  88. package/dist/backend/native/vendor.d.ts +1 -1
  89. package/dist/backend/native/vendor.js +1 -1
  90. package/dist/backend/native/vendor.js.map +1 -1
  91. package/dist/backend/native-link-info-core.d.ts +0 -2
  92. package/dist/backend/native-link-info-core.js.map +1 -1
  93. package/dist/backend/native-toolchain.test.js +23 -33
  94. package/dist/backend/native-toolchain.test.js.map +1 -1
  95. package/dist/backend/publication.test.js +1 -1
  96. package/dist/backend/runtime-abi.d.ts +2 -2
  97. package/dist/backend/runtime-abi.js +2 -2
  98. package/dist/backend/runtime-pack-core.d.ts +1 -2
  99. package/dist/backend/runtime-pack-core.js +5 -14
  100. package/dist/backend/runtime-pack-core.js.map +1 -1
  101. package/dist/backend/runtime-pack-targets.test.js +3 -8
  102. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  103. package/dist/backend/runtime-pack.test.js +22 -19
  104. package/dist/backend/runtime-pack.test.js.map +1 -1
  105. package/dist/backend/target-diagnostics.d.ts +0 -5
  106. package/dist/backend/target-diagnostics.js +1 -11
  107. package/dist/backend/target-diagnostics.js.map +1 -1
  108. package/dist/backend/target-diagnostics.test.js +1 -1
  109. package/dist/backend/vendor-archives.d.ts +1 -7
  110. package/dist/backend/vendor-archives.js +9 -189
  111. package/dist/backend/vendor-archives.js.map +1 -1
  112. package/dist/backend/vendor-inputs.d.ts +0 -1
  113. package/dist/backend/vendor-inputs.js +0 -1
  114. package/dist/backend/vendor-inputs.js.map +1 -1
  115. package/dist/backend/warm-cache.js +3 -5
  116. package/dist/backend/warm-cache.js.map +1 -1
  117. package/dist/cli/command.js +4 -8
  118. package/dist/cli/command.js.map +1 -1
  119. package/dist/cli/host.d.ts +1 -1
  120. package/dist/cli/usage.d.ts +1 -5
  121. package/dist/cli/usage.js +4 -9
  122. package/dist/cli/usage.js.map +1 -1
  123. package/dist/compat/fetch-profile.d.ts +2 -2
  124. package/dist/compat/fetch-profile.js +16 -25
  125. package/dist/compat/fetch-profile.js.map +1 -1
  126. package/dist/compile-types.d.ts +2 -17
  127. package/dist/contracts/check.js +2 -6
  128. package/dist/contracts/check.js.map +1 -1
  129. package/dist/coverage/report.d.ts +5 -22
  130. package/dist/coverage/report.js +12 -76
  131. package/dist/coverage/report.js.map +1 -1
  132. package/dist/coverage/surface-manifest.d.ts +3 -3
  133. package/dist/coverage/surface-manifest.js +22 -27
  134. package/dist/coverage/surface-manifest.js.map +1 -1
  135. package/dist/coverage/verdict-cache.d.ts +1 -3
  136. package/dist/coverage/verdict-cache.js +2 -7
  137. package/dist/coverage/verdict-cache.js.map +1 -1
  138. package/dist/diagnostics/diagnostic.d.ts +11 -60
  139. package/dist/diagnostics/diagnostic.js +39 -118
  140. package/dist/diagnostics/diagnostic.js.map +1 -1
  141. package/dist/diagnostics/envelope.d.ts +3 -4
  142. package/dist/diagnostics/envelope.js +0 -9
  143. package/dist/diagnostics/envelope.js.map +1 -1
  144. package/dist/diagnostics/envelope.test.js +1 -1
  145. package/dist/diagnostics/envelope.test.js.map +1 -1
  146. package/dist/executable/executable-cache.d.ts +0 -3
  147. package/dist/executable/executable-cache.js +2 -4
  148. package/dist/executable/executable-cache.js.map +1 -1
  149. package/dist/executable/executable-cache.test.js +0 -4
  150. package/dist/executable/executable-cache.test.js.map +1 -1
  151. package/dist/executable/prepare.js +5 -2
  152. package/dist/executable/prepare.js.map +1 -1
  153. package/dist/frontend/analysis.js +10 -10
  154. package/dist/frontend/analysis.js.map +1 -1
  155. package/dist/frontend/cjs-syntax.js +0 -88
  156. package/dist/frontend/cjs-syntax.js.map +1 -1
  157. package/dist/frontend/dts-paths.d.ts +1 -1
  158. package/dist/frontend/dts-paths.js +1 -1
  159. package/dist/frontend/lowering/abstract-equality.js +1 -4
  160. package/dist/frontend/lowering/abstract-equality.js.map +1 -1
  161. package/dist/frontend/lowering/array-values.js +4 -11
  162. package/dist/frontend/lowering/array-values.js.map +1 -1
  163. package/dist/frontend/lowering/builtins/arguments.js +0 -13
  164. package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
  165. package/dist/frontend/lowering/builtins/crypto.d.ts +0 -4
  166. package/dist/frontend/lowering/builtins/crypto.js +0 -4
  167. package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
  168. package/dist/frontend/lowering/builtins/json.js +1 -39
  169. package/dist/frontend/lowering/builtins/json.js.map +1 -1
  170. package/dist/frontend/lowering/builtins/module-resolution.d.ts +0 -15
  171. package/dist/frontend/lowering/builtins/module-resolution.js +5 -44
  172. package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -1
  173. package/dist/frontend/lowering/builtins/numbers.d.ts +0 -6
  174. package/dist/frontend/lowering/builtins/numbers.js +6 -57
  175. package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
  176. package/dist/frontend/lowering/builtins/promises.js +4 -67
  177. package/dist/frontend/lowering/builtins/promises.js.map +1 -1
  178. package/dist/frontend/lowering/builtins/workers.js +1 -1
  179. package/dist/frontend/lowering/builtins/workers.js.map +1 -1
  180. package/dist/frontend/lowering/call-arguments.d.ts +1 -37
  181. package/dist/frontend/lowering/call-arguments.js +11 -94
  182. package/dist/frontend/lowering/call-arguments.js.map +1 -1
  183. package/dist/frontend/lowering/call-signatures.d.ts +1 -6
  184. package/dist/frontend/lowering/call-signatures.js +16 -68
  185. package/dist/frontend/lowering/call-signatures.js.map +1 -1
  186. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +19 -4
  187. package/dist/frontend/lowering/class-dynamic-dispatch.js +168 -98
  188. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  189. package/dist/frontend/lowering/class-dynamic-dispatch.test.js +44 -4
  190. package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
  191. package/dist/frontend/lowering/class-method-mutations.js +0 -2
  192. package/dist/frontend/lowering/class-method-mutations.js.map +1 -1
  193. package/dist/frontend/lowering/class-protocols.js +1 -1
  194. package/dist/frontend/lowering/class-protocols.js.map +1 -1
  195. package/dist/frontend/lowering/coercions/function-adapters.js +5 -35
  196. package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
  197. package/dist/frontend/lowering/coercions/state.d.ts +0 -1
  198. package/dist/frontend/lowering/coercions/state.js +0 -1
  199. package/dist/frontend/lowering/coercions/state.js.map +1 -1
  200. package/dist/frontend/lowering/coercions/structural-plans.js +2 -4
  201. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
  202. package/dist/frontend/lowering/coercions/structural.js +2 -12
  203. package/dist/frontend/lowering/coercions/structural.js.map +1 -1
  204. package/dist/frontend/lowering/coercions/unions.js +0 -1
  205. package/dist/frontend/lowering/coercions/unions.js.map +1 -1
  206. package/dist/frontend/lowering/containers/array-callbacks.js +9 -28
  207. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  208. package/dist/frontend/lowering/containers/array-construction.js +2 -3
  209. package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
  210. package/dist/frontend/lowering/containers/array-methods.js +10 -54
  211. package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
  212. package/dist/frontend/lowering/containers/bytes.js +0 -1
  213. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  214. package/dist/frontend/lowering/containers/callback-arguments.js +2 -10
  215. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
  216. package/dist/frontend/lowering/containers/collection-methods.js +1 -6
  217. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
  218. package/dist/frontend/lowering/containers/indexed-objects.js +0 -2
  219. package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
  220. package/dist/frontend/lowering/containers/string-and-regexp.d.ts +0 -6
  221. package/dist/frontend/lowering/containers/string-and-regexp.js +2 -10
  222. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  223. package/dist/frontend/lowering/expressions/evaluation-safety.js +0 -3
  224. package/dist/frontend/lowering/expressions/evaluation-safety.js.map +1 -1
  225. package/dist/frontend/lowering/expressions/native-proxy.js +1 -1
  226. package/dist/frontend/lowering/expressions/native-proxy.js.map +1 -1
  227. package/dist/frontend/lowering/expressions/nullish-assignment.js +0 -1
  228. package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
  229. package/dist/frontend/lowering/expressions/object-literals.d.ts +0 -8
  230. package/dist/frontend/lowering/expressions/object-literals.js +8 -35
  231. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  232. package/dist/frontend/lowering/expressions/optional-chains.d.ts +0 -4
  233. package/dist/frontend/lowering/expressions/optional-chains.js +3 -66
  234. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
  235. package/dist/frontend/lowering/function-context.js +0 -1
  236. package/dist/frontend/lowering/function-context.js.map +1 -1
  237. package/dist/frontend/lowering/generic-functions.js +0 -1
  238. package/dist/frontend/lowering/generic-functions.js.map +1 -1
  239. package/dist/frontend/lowering/lib-boundary.js +10 -77
  240. package/dist/frontend/lowering/lib-boundary.js.map +1 -1
  241. package/dist/frontend/lowering/lower-array-sort.js +1 -10
  242. package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
  243. package/dist/frontend/lowering/lower-array-sort.test.js +2 -2
  244. package/dist/frontend/lowering/lower-array-sort.test.js.map +1 -1
  245. package/dist/frontend/lowering/lower-assert.js +2 -3
  246. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  247. package/dist/frontend/lowering/lower-async-iteration.js +1 -1
  248. package/dist/frontend/lowering/lower-calls.d.ts +2 -27
  249. package/dist/frontend/lowering/lower-calls.js +47 -463
  250. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  251. package/dist/frontend/lowering/lower-classes.js +11 -49
  252. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  253. package/dist/frontend/lowering/lower-comptime.js +2 -3
  254. package/dist/frontend/lowering/lower-comptime.js.map +1 -1
  255. package/dist/frontend/lowering/lower-enums.js +5 -8
  256. package/dist/frontend/lowering/lower-enums.js.map +1 -1
  257. package/dist/frontend/lowering/lower-event-emitter.js +3 -4
  258. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  259. package/dist/frontend/lowering/lower-expando.js +3 -5
  260. package/dist/frontend/lowering/lower-expando.js.map +1 -1
  261. package/dist/frontend/lowering/lower-exprs.d.ts +0 -8
  262. package/dist/frontend/lowering/lower-exprs.js +50 -907
  263. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  264. package/dist/frontend/lowering/lower-functions.js +2 -5
  265. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  266. package/dist/frontend/lowering/lower-inspect.js +1 -50
  267. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  268. package/dist/frontend/lowering/lower-modules.d.ts +0 -43
  269. package/dist/frontend/lowering/lower-modules.js +25 -329
  270. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  271. package/dist/frontend/lowering/lower-modules.test.js +5 -5
  272. package/dist/frontend/lowering/lower-modules.test.js.map +1 -1
  273. package/dist/frontend/lowering/lower-server.js +0 -30
  274. package/dist/frontend/lowering/lower-server.js.map +1 -1
  275. package/dist/frontend/lowering/lower-stdlib.d.ts +98 -0
  276. package/dist/frontend/lowering/{lower-island.js → lower-stdlib.js} +97 -1160
  277. package/dist/frontend/lowering/lower-stdlib.js.map +1 -0
  278. package/dist/frontend/lowering/lower-stmts.d.ts +0 -16
  279. package/dist/frontend/lowering/lower-stmts.js +58 -1016
  280. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  281. package/dist/frontend/lowering/lower-stmts.test.js +1 -1
  282. package/dist/frontend/lowering/lower-stmts.test.js.map +1 -1
  283. package/dist/frontend/lowering/lower-stream.js +1 -3
  284. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  285. package/dist/frontend/lowering/lowerer.d.ts +17 -151
  286. package/dist/frontend/lowering/lowerer.js +73 -770
  287. package/dist/frontend/lowering/lowerer.js.map +1 -1
  288. package/dist/frontend/lowering/lowerer.test.js +4 -51
  289. package/dist/frontend/lowering/lowerer.test.js.map +1 -1
  290. package/dist/frontend/lowering/narrowing-stability.js +1 -1
  291. package/dist/frontend/lowering/narrowing-stability.js.map +1 -1
  292. package/dist/frontend/lowering/optional-arguments.js +0 -2
  293. package/dist/frontend/lowering/optional-arguments.js.map +1 -1
  294. package/dist/frontend/lowering/sanitize-class-types.test.js +2 -2
  295. package/dist/frontend/lowering/strict-equality.js +1 -1
  296. package/dist/frontend/lowering/strict-equality.js.map +1 -1
  297. package/dist/frontend/lowering/surfaces.d.ts +6 -45
  298. package/dist/frontend/lowering/surfaces.js +5 -65
  299. package/dist/frontend/lowering/surfaces.js.map +1 -1
  300. package/dist/frontend/module-syntax.d.ts +0 -3
  301. package/dist/frontend/module-syntax.js.map +1 -1
  302. package/dist/frontend/npm-node.d.ts +0 -7
  303. package/dist/frontend/npm-node.js +0 -7
  304. package/dist/frontend/npm-node.js.map +1 -1
  305. package/dist/frontend/npm-static-rewrite-syntax.d.ts +1 -1
  306. package/dist/frontend/npm-static-rewrite-syntax.js +6 -82
  307. package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
  308. package/dist/frontend/npm-static.d.ts +1 -1
  309. package/dist/frontend/npm-static.js +6 -71
  310. package/dist/frontend/npm-static.js.map +1 -1
  311. package/dist/frontend/npm.d.ts +3 -319
  312. package/dist/frontend/npm.js +6 -1007
  313. package/dist/frontend/npm.js.map +1 -1
  314. package/dist/frontend/npm.test.js +2 -197
  315. package/dist/frontend/npm.test.js.map +1 -1
  316. package/dist/frontend/pipeline-native.js +1 -2
  317. package/dist/frontend/pipeline-native.js.map +1 -1
  318. package/dist/frontend/pipeline.d.ts +3 -11
  319. package/dist/frontend/pipeline.js +37 -56
  320. package/dist/frontend/pipeline.js.map +1 -1
  321. package/dist/frontend/pipeline.test.js +12 -6
  322. package/dist/frontend/pipeline.test.js.map +1 -1
  323. package/dist/frontend/program.d.ts +0 -34
  324. package/dist/frontend/program.js +12 -97
  325. package/dist/frontend/program.js.map +1 -1
  326. package/dist/frontend/provenance-core.d.ts +0 -4
  327. package/dist/frontend/provenance-core.js +4 -37
  328. package/dist/frontend/provenance-core.js.map +1 -1
  329. package/dist/frontend/provenance-registry.d.ts +0 -4
  330. package/dist/frontend/provenance-registry.js +0 -20
  331. package/dist/frontend/provenance-registry.js.map +1 -1
  332. package/dist/frontend/resolve.d.ts +0 -12
  333. package/dist/frontend/resolve.js +0 -34
  334. package/dist/frontend/resolve.js.map +1 -1
  335. package/dist/frontend/runtime-resolve.js +2 -2
  336. package/dist/frontend/runtime-resolve.js.map +1 -1
  337. package/dist/frontend/services-node.js +2 -3
  338. package/dist/frontend/services-node.js.map +1 -1
  339. package/dist/frontend/services.d.ts +1 -8
  340. package/dist/frontend/services.js +2 -22
  341. package/dist/frontend/services.js.map +1 -1
  342. package/dist/frontend/services.test.js +0 -38
  343. package/dist/frontend/services.test.js.map +1 -1
  344. package/dist/frontend/tsc-codes.js +0 -11
  345. package/dist/frontend/tsc-codes.js.map +1 -1
  346. package/dist/frontend/type-mapper.d.ts +2 -27
  347. package/dist/frontend/type-mapper.js +42 -153
  348. package/dist/frontend/type-mapper.js.map +1 -1
  349. package/dist/index.d.ts +1 -1
  350. package/dist/index.js +7 -10
  351. package/dist/index.js.map +1 -1
  352. package/dist/ir/api.d.ts +1 -1
  353. package/dist/ir/api.js +1 -1
  354. package/dist/ir/api.js.map +1 -1
  355. package/dist/ir/builtin-effects.js +0 -5
  356. package/dist/ir/builtin-effects.js.map +1 -1
  357. package/dist/ir/builtin-signatures.d.ts +1 -1
  358. package/dist/ir/builtin-signatures.js +1 -55
  359. package/dist/ir/builtin-signatures.js.map +1 -1
  360. package/dist/ir/constant-globals.test.js +1 -1
  361. package/dist/ir/constant-tables.test.js +1 -1
  362. package/dist/ir/final-fields.test.js +1 -1
  363. package/dist/ir/initializer-bindings.test.js +1 -1
  364. package/dist/ir/int32-slots.d.ts +3 -3
  365. package/dist/ir/int32-slots.js +5 -19
  366. package/dist/ir/int32-slots.js.map +1 -1
  367. package/dist/ir/int32-slots.test.js +1 -1
  368. package/dist/ir/ir.d.ts +12 -284
  369. package/dist/ir/ir.js +10 -259
  370. package/dist/ir/ir.js.map +1 -1
  371. package/dist/ir/ir.test.js +2 -7
  372. package/dist/ir/ir.test.js.map +1 -1
  373. package/dist/ir/runtime-features.d.ts +3 -30
  374. package/dist/ir/runtime-features.js +5 -41
  375. package/dist/ir/runtime-features.js.map +1 -1
  376. package/dist/ir/scalar-records.test.js +1 -1
  377. package/dist/ir/serialize.d.ts +1 -1
  378. package/dist/ir/serialize.js +3 -3
  379. package/dist/ir/serialize.js.map +1 -1
  380. package/dist/ir/traverse.js +0 -21
  381. package/dist/ir/traverse.js.map +1 -1
  382. package/dist/ir/unshare.test.js +1 -1
  383. package/dist/ir/validate.js +9 -207
  384. package/dist/ir/validate.js.map +1 -1
  385. package/dist/ir/validate.test.js +6 -6
  386. package/dist/library/fence-eval.test.js +1 -1
  387. package/dist/library/int-infer.test.js +4 -4
  388. package/dist/library/library-cache.test.js +5 -5
  389. package/dist/library/prepare.js +5 -20
  390. package/dist/library/prepare.js.map +1 -1
  391. package/dist/native/cli.js +0 -2
  392. package/dist/native/cli.js.map +1 -1
  393. package/dist/native/compiler.test.js +2 -4
  394. package/dist/native/compiler.test.js.map +1 -1
  395. package/dist/native/prepare.js +2 -4
  396. package/dist/native/prepare.js.map +1 -1
  397. package/dist/native/sanitizer.js +2 -16
  398. package/dist/native/sanitizer.js.map +1 -1
  399. package/dist/native/sanitizer.test.js +0 -3
  400. package/dist/native/sanitizer.test.js.map +1 -1
  401. package/dist/startup-cache.js +0 -2
  402. package/dist/startup-cache.js.map +1 -1
  403. package/package.json +20 -20
  404. package/surface-manifest.json +80 -88
  405. package/dist/backend/llvm/expr-island.d.ts +0 -15
  406. package/dist/backend/llvm/expr-island.js +0 -709
  407. package/dist/backend/llvm/expr-island.js.map +0 -1
  408. package/dist/frontend/lowering/coercions/island.d.ts +0 -37
  409. package/dist/frontend/lowering/coercions/island.js +0 -350
  410. package/dist/frontend/lowering/coercions/island.js.map +0 -1
  411. package/dist/frontend/lowering/lower-island.d.ts +0 -229
  412. package/dist/frontend/lowering/lower-island.js.map +0 -1
  413. package/dist/frontend/lowering/lower-island.test.d.ts +0 -1
  414. package/dist/frontend/lowering/lower-island.test.js +0 -56
  415. package/dist/frontend/lowering/lower-island.test.js.map +0 -1
  416. package/dist/frontend/npm-fetch-analysis.d.ts +0 -17
  417. package/dist/frontend/npm-fetch-analysis.js +0 -109
  418. package/dist/frontend/npm-fetch-analysis.js.map +0 -1
  419. package/dist/frontend/npm-fetch-analysis.test.d.ts +0 -1
  420. package/dist/frontend/npm-fetch-analysis.test.js +0 -130
  421. package/dist/frontend/npm-fetch-analysis.test.js.map +0 -1
  422. package/dist/frontend/npm-fetch-node.d.ts +0 -2
  423. package/dist/frontend/npm-fetch-node.js +0 -12
  424. package/dist/frontend/npm-fetch-node.js.map +0 -1
  425. package/dist/frontend/npm-fetch-syntax.d.ts +0 -6
  426. package/dist/frontend/npm-fetch-syntax.js +0 -202
  427. package/dist/frontend/npm-fetch-syntax.js.map +0 -1
  428. package/dist/native/runtime-typescript.d.ts +0 -4
  429. package/dist/native/runtime-typescript.js +0 -74
  430. package/dist/native/runtime-typescript.js.map +0 -1
  431. package/dist/native/runtime-typescript.test.d.ts +0 -1
  432. package/dist/native/runtime-typescript.test.js +0 -41
  433. package/dist/native/runtime-typescript.test.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"call-signatures.js","sourceRoot":"","sources":["../../../src/frontend/lowering/call-signatures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EACL,GAAG,EAIH,KAAK,EACL,WAAW,EACX,IAAI,EACJ,6BAA6B,EAC7B,UAAU,EACV,UAAU,GACX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAyCrF;;;;wDAIwD;AACxD,MAAM,UAAU,uBAAuB,CACrC,MAA6B,EAC7B,GAAW;IAEX,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;IACvE,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,MAAM;aACX,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC;aACzE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;QAC7B,GAAG;QACH,GAAG,CAAC,SAAS,IAAI,OAAO,IAAI,UAAU,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtF,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,GAAG,CAAC,SAAS,IAAI,UAAU;YACzB,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAE,OAAiB,CAAC,CAAC,CAAE,OAAiB,EAAE;YAClE,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED;;;;;iDAKiD;AACjD,MAAM,UAAU,+BAA+B,CAC7C,OAAgB,EAChB,IAA4B;IAE5B,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IACnE,IAAI,IAAI,GAAkB,IAAI,CAAC,WAAW,CAAC;IAC3C,OAAO,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC;QAAE,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;IAClE,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1E,MAAM,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IAChC,MAAM,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACnE,MAAM,SAAS,GACb,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC;QACxC,CAAC,gBAAgB,EAAE,IAAI,KAAK,mBAAmB,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC5F,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7B,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnE,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IAC/B,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC,CAAC;IACnF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,OAAgB,EAChB,IAAoC;IAEpC,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3F,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,MAAM,IAAI,qBAAqB,CAC7B,gEAAgE,CACjE,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC;AAChE,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,UAAU,CAAC,OAAgB,EAAE,KAA8B;IACzE,IAAI,cAAc,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC;QACpF,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IACzC,IACE,cAAc,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACrC,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC;QACzC,CAAC,KAAK,CAAC,cAAc,EACrB,CAAC;QACD,mEAAmE;QACnE,oEAAoE;QACpE,mEAAmE;QACnE,OAAO,KAAK,CAAC,WAAW;YACtB,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE;YACjD,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAC1E,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;IAC9B,MAAM,YAAY,GAAG,QAAQ,EAAE,MAAM,CAAC;IACtC,MAAM,cAAc,GAClB,QAAQ;QACR,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACnE,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC;QAChC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,KAAK,QAAQ;QACxC,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC7D,IACE,CAAC,cAAc;QACf,cAAc,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACrC,CAAC,KAAK,CAAC,IAAI;QACX,CAAC,KAAK,CAAC,cAAc;QACrB,CAAC,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC;QAC1C,CAAC,mBAAmB,CAAC,IAAI,CACvB,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CACnF,EACD,CAAC;QACD,OAAO,KAAK,CAAC,WAAW;YACtB,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE;YACjD,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IACtC,CAAC;IACD,IACE,KAAK,CAAC,WAAW;QACjB,cAAc,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACrC,CAAC,KAAK,CAAC,IAAI;QACX,CAAC,mBAAmB,CAAC,IAAI,CACvB,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CACnF,EACD,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IACzD,CAAC;IACD,uEAAuE;IACvE,qEAAqE;IACrE,IACE,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC;QACpC,cAAc,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACrC,CAAC,KAAK,CAAC,IAAI;QACX,CAAC,mBAAmB,CAAC,IAAI,CACvB,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CACnF,EACD,CAAC;QACD,IAAI,KAAK,CAAC,cAAc;YAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAChE,OAAO,KAAK,CAAC,WAAW;YACtB,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE;YACjD,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7C,IAAI,KAAK,CAAC,cAAc;YAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAChE,OAAO,KAAK,CAAC,WAAW;YACtB,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE;YACjD,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IACtC,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAClF,CAAC;IACD,oEAAoE;IACpE,kEAAkE;IAClE,2BAA2B;IAC3B,IAAI,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1E,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAC/E,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,iEAAiE;QACjE,+DAA+D;QAC/D,qEAAqE;QACrE,mEAAmE;QACnE,gEAAgE;QAChE,mEAAmE;QACnE,kEAAkE;QAClE,yCAAyC;QACzC,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,2CAA2C,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACzB,iEAAiE;YACjE,6DAA6D;YAC7D,iEAAiE;YACjE,wDAAwD;YACxD,mDAAmD;YACnD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;YAC7F,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,SAAS;gBACrC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAChC,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,iEAAiE;YACjE,2DAA2D;YAC3D,gEAAgE;YAChE,+DAA+D;YAC/D,yDAAyD;YACzD,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzC,OAAO,qBAAqB,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACpD,CAAC;QACD,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClF,IAAI,EAAE,UAAU;SACjB,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACzB,qEAAqE;QACrE,oEAAoE;QACpE,+DAA+D;QAC/D,iEAAiE;QACjE,kEAAkE;QAClE,IAAI,cAAc,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC;YAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACjE,iEAAiE;YACjE,gEAAgE;YAChE,8DAA8D;YAC9D,yDAAyD;YACzD,+DAA+D;YAC/D,yCAAyC;YACzC,IAAI,UAAU,EAAE,IAAI,KAAK,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACxF,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;YAC7C,CAAC;YACD,IAAI,UAAU,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;gBACjC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YACxC,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1F,qEAAqE;QACrE,kEAAkE;QAClE,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACnF,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAChC,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,gEAAgE;QAChE,sEAAsE;QACtE,gEAAgE;QAChE,IACE,cAAc,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YACrC,CAAC,KAAK,CAAC,IAAI;YACX,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO;gBACnB,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO;oBACnB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EAC/E,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QACzD,CAAC;QACD,OAAO,qBAAqB,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,IAAI,GAAG,OAAO,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACxF,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;IAChC,IACE,cAAc,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACrC,IAAI;QACJ,IAAI,CAAC,IAAI,KAAK,KAAK;QACnB,IAAI,CAAC,IAAI,KAAK,OAAO,EACrB,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;YAC7B,IAAI,gBAAgB,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBAAE,OAAO;YAC7D,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACnC,IACE,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,uBAAuB;gBAC5C,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,4BAA4B;gBACjD,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,iBAAiB;gBACtC,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,sBAAsB;gBAE3C,OAAO;YACT,MAAM,MAAM,GAAG,CAAC,KAAoB,EAAE,MAAqB,EAAW,EAAE,CACtE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;gBACtB,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC;gBACvB,MAAM,CAAC,IAAI,KAAK,WAAW;gBAC3B,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC;gBAC7D,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC;YACxD,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;QACH,oEAAoE;QACpE,sEAAsE;QACtE,sEAAsE;QACtE,IAAI,gBAAgB;YAAE,IAAI,GAAG,OAAO,CAAC,+BAA+B,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAC7E,CAAC;IACD,IACE,KAAK,CAAC,aAAa;QACnB,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC;QACtC,IAAI,CAAC,IAAI,KAAK,KAAK;QACnB,IAAI,CAAC,IAAI,KAAK,OAAO,EACrB,CAAC;QACD,oEAAoE;QACpE,kEAAkE;QAClE,qEAAqE;QACrE,oEAAoE;QACpE,kEAAkE;QAClE,oEAAoE;QACpE,aAAa;QACb,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,gCAAgC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;AACxE,CAAC;AAED;;;;oEAIoE;AACpE,MAAM,UAAU,eAAe,CAAC,KAA8B;IAC5D,OAAO,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;AACnE,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,WAAW,CACzB,OAAgB,EAChB,MAA0C,EAC1C,SAAwB,EACxB,OAAoE;IAEpE,IAAI,CAAC,SAAS;QACZ,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7F,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;IAC1C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;QACjC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM;YACnB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;YACzC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,gBAAgB,CAC7B,SAAS,EACT,OAAO,CAAC,0BAA0B,CAChC,SAAS,CAAC,IAAI,EACd,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAC9D,EACD,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,MAAM,CACf,CAAC;QACF,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;YACnC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrE,IAAI,SAAS,CAAC,cAAc,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;gBACzB,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACrE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACxC,CAAC;QACD,IAAI,SAAS,CAAC,WAAW;YAAE,OAAO,qBAAqB,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACpF,IAAI,SAAS,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC;YACxE,OAAO,CAAC,WAAW,CACjB,QAAQ,EACR,SAAS,EACT,gCAAgC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CACvD,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IACpF,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;8EAI8E;AAC9E,SAAS,qBAAqB,CAC5B,OAAgB,EAChB,KAA8B,EAC9B,GAAW;IAEX,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC/C,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IACzD,CAAC;IACD,IAAI,OAAO,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC3F,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC5F,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QACzD,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAChD,OAAO,CAAC,yBAAyB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,GAAG,GACP,QAAQ,CAAC,IAAI,KAAK,OAAO;QACvB,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QACtC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC,GAAG;QAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AACpD,CAAC;AAED;;;;;;sEAMsE;AACtE,MAAM,UAAU,yBAAyB,CACvC,OAAgB,EAChB,KAA8B,EAC9B,QAAgB;IAEhB,IACE,QAAQ,CAAC,IAAI,KAAK,MAAM;QACxB,QAAQ,CAAC,IAAI,KAAK,OAAO;QACzB,QAAQ,CAAC,IAAI,KAAK,MAAM;QACxB,QAAQ,CAAC,IAAI,KAAK,KAAK;QACvB,QAAQ,CAAC,IAAI,KAAK,OAAO;QACzB,UAAU,CAAC,QAAQ,CAAC,EACpB,CAAC;QACD,OAAO,CAAC,WAAW,CACjB,QAAQ,EACR,KAAK,EACL,gCAAgC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAC1E,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;0BAK0B;AAC1B,MAAM,UAAU,sBAAsB,CACpC,OAAgB,EAChB,KAAc,EACd,UAAgC,EAChC,MAA6B,EAC7B,QAAgB;IAEhB,mEAAmE;IACnE,iEAAiE;IACjE,oEAAoE;IACpE,qEAAqE;IACrE,mEAAmE;IACnE,sEAAsE;IACtE,oCAAoC;IACpC,IACE,MAAM,CAAC,KAAK,CACV,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,KAAK,UAAU;QACrB,CAAC,CAAC,IAAI,KAAK,SAAS;QACpB,CAAC,CAAC,IAAI,KAAK,WAAW;QACtB,CAAC,CAAC,IAAI,KAAK,YAAY;QACvB,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CACjF,EACD,CAAC;QACD,OAAO;IACT,CAAC;IACD,mEAAmE;IACnE,uEAAuE;IACvE,wEAAwE;IACxE,sEAAsE;IACtE,yEAAyE;IACzE,wEAAwE;IACxE,0CAA0C;IAC1C,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtF,MAAM,MAAM,GAAG,MAAM;QACnB,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;QAC3B,CAAC,CAAC,UAAU;YACV,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC/C,CAAC,CAAC,IAAI,CAAC;IACX,IAAI,MAAM,IAAI,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC;QAAE,OAAO;IACnD,wDAAwD;IACxD,mEAAmE;IACnE,0CAA0C;IAC1C,IAAI,QAAQ,GACV,MAAM,EAAE,IAAI,KAAK,OAAO;QACtB,CAAC,CAAC,CAAC,GAAG,EAAE;YACJ,MAAM,IAAI,GACR,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;YAClF,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7C,CAAC,CAAC,EAAE;QACN,CAAC,CAAC,MAAM,CAAC;IACb,sEAAsE;IACtE,kEAAkE;IAClE,kEAAkE;IAClE,4DAA4D;IAC5D,IAAI,QAAQ,EAAE,IAAI,KAAK,MAAM,IAAI,UAAU,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC3C,QAAQ;YACN,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC1B,CAAC,cAAc,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;oBACzC,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC;oBAC/C,CAAC,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;IACD,IAAI,QAAQ,IAAI,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAAE,OAAO;IACvD,iEAAiE;IACjE,mEAAmE;IACnE,gEAAgE;IAChE,2DAA2D;IAC3D,IACE,QAAQ,EAAE,IAAI,KAAK,MAAM;QACzB,QAAQ,CAAC,IAAI,KAAK,MAAM;QACxB,OAAO,CAAC,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,IAAI,EAC1D,CAAC;QACD,OAAO;IACT,CAAC;IACD,mEAAmE;IACnE,+DAA+D;IAC/D,mEAAmE;IACnE,kEAAkE;IAClE,oEAAoE;IACpE,kEAAkE;IAClE,uEAAuE;IACvE,sEAAsE;IACtE,IACE,MAAM,KAAK,SAAS;QACpB,UAAU,KAAK,IAAI;QACnB,CAAC,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QACvE,sBAAsB,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI,EACpE,CAAC;QACD,OAAO;IACT,CAAC;IACD,gEAAgE;IAChE,qEAAqE;IACrE,uEAAuE;IACvE,kEAAkE;IAClE,iEAAiE;IACjE,sEAAsE;IACtE,wEAAwE;IACxE,6DAA6D;IAC7D,IACE,MAAM,EAAE,IAAI,KAAK,OAAO;QACxB,6BAA6B,CAC3B,QAAQ,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAC9B,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAC/B,EACD,CAAC;QACD,OAAO;IACT,CAAC;IACD,OAAO,CAAC,WAAW,CACjB,QAAQ,EACR,KAAK,EACL,8EAA8E;QAC5E,sEAAsE;QACtE,0EAA0E;QAC1E,yEAAyE;QACzE,iDAAiD,CACpD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAgB,EAAE,IAA4B;IAC7E,OAAO,CAAC,gBAAgB,CACtB,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,EACjC,GAAG,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAC1C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAgB,EAAE,IAA4B;IAClF,sEAAsE;IACtE,oEAAoE;IACpE,4DAA4D;IAC5D,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,iCAAiC,CAAC,CAAC;IACzE,CAAC;IACD,kEAAkE;IAClE,mEAAmE;IACnE,mEAAmE;IACnE,2DAA2D;IAC3D,wDAAwD;IACxD,uEAAuE;IACvE,oEAAoE;IACpE,gEAAgE;IAChE,mEAAmE;IACnE,IAAI,CAAC,IAAI,CAAC,IAAI;QAAE,OAAO;IACvB,qEAAqE;IACrE,sEAAsE;IACtE,sEAAsE;IACtE,iEAAiE;IACjE,mEAAmE;IACnE,sEAAsE;IACtE,iEAAiE;IACjE,0DAA0D;IAC1D,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC;QAAE,OAAO;IAClE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IAC5F,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC;IACrD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,kEAAkE;QAClE,8DAA8D;QAC9D,iEAAiE;QACjE,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IACD,kEAAkE;IAClE,qEAAqE;IACrE,mEAAmE;IACnE,gDAAgD;IAChD,kEAAkE;IAClE,kEAAkE;IAClE,aAAa;IACb,IAAI,gBAAgB,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QACvE,MAAM,QAAQ,GAAG,yBAAyB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC1D,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,UAAU,CAAC;YAC/C,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM;gBAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC;YACvE,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE;gBACrC,IAAI;gBACJ,QAAQ,EAAE,QAAQ;gBAClB,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;gBACnF,UAAU,EAAE,EAAE;gBACd,SAAS,EAAE,IAAI,GAAG,EAAE;gBACpB,cAAc,EAAE,QAAQ;aACzB,CAAC,CAAC;YACH,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpD,gEAAgE;IAChE,uEAAuE;IACvE,wBAAwB,CACtB,OAAO,EACP,IAAI,EACJ,MAAM,EACN,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CACrD,CAAC;IACF,MAAM,SAAS,GAAY,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;IAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC/D,IAAI,OAAO,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7D,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,WAAW,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,OAAO,CAAC,EAAE,CAAC;QAChG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC;IACvE,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE;QACjC,qEAAqE;QACrE,mEAAmE;QACnE,4DAA4D;QAC5D,gEAAgE;QAChE,IAAI,EAAE,OAAO,CAAC,OAAO,CACnB,IAAI,CAAC,aAAa,EAAE,EACpB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,UAAU,CAAC,CACrD;QACD,MAAM;QACN,UAAU;QACV,OAAO;QACP,GAAG,CAAC,WAAW,IAAI,UAAU,CAAC,IAAI,KAAK,WAAW;YAChD,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;YACnD,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;AACL,CAAC;AAED;;;2DAG2D;AAC3D,SAAS,wBAAwB,CAC/B,OAAgB,EAChB,IAA6B,EAC7B,MAAoB,EACpB,IAA6B;IAE7B,IACE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC;QACxF,CAAC,CACC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC;YAC7B,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC;YAC9B,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAC7B;QACD,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,CAAC,kBAAkB,CAAC,IAAI,CAAC;QAEzB,OAAO;IACT,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/D,MAAM,WAAW,GACf,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC;YAC5B,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1E,OAAO,CAAC,WAAW,CACjB,QAAQ,EACR,IAAI,EACJ,gFAAgF,CACjF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;AACnC,CAAC;AAED;;;2EAG2E;AAC3E,MAAM,UAAU,eAAe,CAC7B,OAAgB,EAChB,IAM6B;IAE7B,IAAI,CAAC,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,8BAA8B,CAAC,CAAC;IACpF,kEAAkE;IAClE,uEAAuE;IACvE,kEAAkE;IAClE,IACE,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACpC,CAAC,IAAI,CAAC,IAAI;QACV,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QAC5F,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI;QAC1B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,WAAW;QAC5D,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO;QACtC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EACxC,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChE,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACjC,MAAM,MAAM,GAAiB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;YAC1F,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;QACpE,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,oEAAoE;QACpE,mEAAmE;QACnE,gEAAgE;QAChE,kEAAkE;QAClE,gEAAgE;QAChE,kEAAkE;QAClE,yCAAyC;QACzC,OAAO,CAAC,WAAW,CACjB,QAAQ,EACR,IAAI,EACJ,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC;YAC1B,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC;gBAC9B,CAAC,CAAC,uFAAuF;gBACzF,CAAC,CAAC,0LAA0L,CACjM,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpD,uEAAuE;IACvE,uEAAuE;IACvE,0DAA0D;IAC1D,IACE,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC3D,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EACrC,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YACnE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YACjD,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;gBACvC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;gBACjD,CAAC,CAAC,IAAI,CAAC;QACX,IACE,OAAO,EAAE,MAAM,KAAK,IAAI;YACxB,OAAO,CAAC,MAAM,KAAK,QAAQ;YAC3B,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,iBAAiB,EACpF,CAAC;YACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;gBACnD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;oBAClC,MAAM,CAAC,KAAK,CAAE,CAAC,IAAI,GAAG,GAAG,CAAC;oBAC1B,IAAI,MAAM,CAAC,KAAK,CAAE,CAAC,QAAQ;wBAAE,MAAM,CAAC,KAAK,CAAE,CAAC,QAAQ,GAAG,GAAG,CAAC;gBAC7D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,8DAA8D;IAC9D,kEAAkE;IAClE,qEAAqE;IACrE,iEAAiE;IACjE,kEAAkE;IAClE,IAAI,GAAG,GACL,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC;QAC7F,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,GAAG,GAAG,OAAO,CAAC,iCAAiC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3D,sEAAsE;IACtE,oEAAoE;IACpE,kFAAkF;IAClF,sEAAsE;IACtE,kEAAkE;IAClE,+DAA+D;IAC/D,uEAAuE;IACvE,uEAAuE;IACvE,uEAAuE;IACvE,sEAAsE;IACtE,oEAAoE;IACpE,uEAAuE;IACvE,uEAAuE;IACvE,kEAAkE;IAClE,kEAAkE;IAClE,qCAAqC;IACrC,oEAAoE;IACpE,uEAAuE;IACvE,oEAAoE;IACpE,MAAM,WAAW,GACf,CAAC,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC;QAC7B,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IAC9E,MAAM,QAAQ,GAAG,WAAW,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;IACzE,oEAAoE;IACpE,mEAAmE;IACnE,wCAAwC;IACxC,IACE,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC3D,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC;QACxC,QAAQ,CAAC,IAAI,KAAK,OAAO,EACzB,CAAC;QACD,oEAAoE;QACpE,2DAA2D;QAC3D,mEAAmE;QACnE,0DAA0D;QAC1D,iEAAiE;QACjE,0DAA0D;QAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,OAAO;YACrB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAChF,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,OAAO,GACX,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvF,MAAM,SAAS,GACb,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,iBAAiB;YACnD,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;YAC1E,CAAC,CAAC,IAAI,CAAC;QACX,MAAM,MAAM,GAAG,WAAW,IAAI,SAAS,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1F,IACE,CAAC,MAAM,EAAE,IAAI,KAAK,OAAO,IAAI,MAAM,EAAE,IAAI,KAAK,OAAO,IAAI,MAAM,EAAE,IAAI,KAAK,QAAQ,CAAC;YACnF,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM;gBACvB,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAChF,CAAC;YACD,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QAClE,CAAC;QACD,kEAAkE;QAClE,+DAA+D;QAC/D,+DAA+D;QAC/D,iEAAiE;QACjE,gEAAgE;QAChE,6DAA6D;QAC7D,iEAAiE;QACjE,kEAAkE;QAClE,6CAA6C;QAC7C,IACE,CAAC,WAAW;YACZ,CAAC,IAAI,CAAC,IAAI;YACV,GAAG,CAAC,IAAI,KAAK,MAAM;YACnB,OAAO,CAAC,MAAM,KAAK,CAAC;YACpB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EACnF,CAAC;YACD,GAAG,GAAG,IAAI,CAAC;QACb,CAAC;IACH,CAAC;IACD,GAAG,GAAG,OAAO,CAAC,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;IACzD,wBAAwB,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"call-signatures.js","sourceRoot":"","sources":["../../../src/frontend/lowering/call-signatures.ts"],"names":[],"mappings":"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"}
@@ -53,14 +53,29 @@ export declare class ClassDynamicDispatch {
53
53
  private enumeration;
54
54
  private readonly enumerationClasses;
55
55
  process(lowerer: Lowerer, functions: readonly IrFunction[]): boolean;
56
+ /** The receiver's own dynamic properties for a read: undefined while it has
57
+ * none, and never stored, so reads stay valid on published objects. */
58
+ private readPropertyBag;
59
+ /** The bag a read looks a key up in (`%dyn.class.readPropertiesOrEmpty`):
60
+ * the receiver's own properties, or a fresh empty object (not stored) while
61
+ * an instance has none, so inherited Object.prototype members still resolve
62
+ * as on an empty bag. A non-instance is its own bag; an undefined receiver
63
+ * stays undefined so the read throws Node's TypeError. */
64
+ /** A key test on a read-only bag, which is undefined while the object has no
65
+ * own dynamic properties. A shared helper evaluates the bag once and keeps
66
+ * each class branch as small as the storing form. */
67
+ private readBagHas;
68
+ private readPropertyBagOrEmpty;
56
69
  /** A known native class can access its shared bag directly. Keep the
57
70
  * receiver as an owned parameter so calls and temporary instances retain
58
71
  * their ordinary evaluation and lifetime rules without a boxed capsule. */
59
72
  private typedPropertyBag;
60
- /** Prototype state may appear in a later reachable body. Only after the
61
- * dispatch worklist closes can an empty bag initializer be omitted; a
62
- * prototype-backed bag must still be initialized before inherited reads. */
63
- finalize(): void;
73
+ /** Prototype state may appear in a later reachable body, so read-only bags
74
+ * settle only after the dispatch worklist closes. A read never stores: an
75
+ * absent empty bag stays undefined (callers test it), and an absent
76
+ * prototype-backed bag is produced for this read only. A published object
77
+ * cannot take the store, and Node's reads never write. */
78
+ finalize(lowerer?: Lowerer): void;
64
79
  private normalizedDispatches;
65
80
  private constructorPropertyBag;
66
81
  /** A base capsule and a derived capsule refer to the same native object.
@@ -164,8 +164,36 @@ export function classInstanceOf(lowerer, value, info, loc, classValue) {
164
164
  loc,
165
165
  };
166
166
  }
167
+ const READ_PROPERTIES = "%dyn.class.readProperties";
168
+ const READ_PROPERTIES_OR_EMPTY = "%dyn.class.readPropertiesOrEmpty";
169
+ function isEmptyBag(value) {
170
+ return value.kind === "dynObjLit" && value.fields?.length === 0;
171
+ }
172
+ /** The property-bag dispatch's class branches without their lazy stores:
173
+ * `if (bag === undefined) bag = init` becomes `return init` (not stored), or
174
+ * nothing for an empty bag unless `orEmpty` asks for a fresh empty object. */
175
+ function readOnlyBagBody(body, orEmpty = false) {
176
+ for (const branch of body) {
177
+ if (branch.kind !== "if")
178
+ continue;
179
+ const absent = branch.then[0];
180
+ const store = absent?.kind === "if" ? absent.then[0] : undefined;
181
+ if (absent?.kind !== "if" ||
182
+ absent.cond.kind !== "dynTest" ||
183
+ absent.cond.test !== "undefined" ||
184
+ absent.then.length !== 1 ||
185
+ store?.kind !== "fieldSet" ||
186
+ store.field !== PROPERTY_BAG)
187
+ continue;
188
+ if (isEmptyBag(store.value) && !orEmpty)
189
+ branch.then.shift();
190
+ else
191
+ absent.then = [{ kind: "return", value: store.value, loc: store.loc }];
192
+ }
193
+ return body;
194
+ }
167
195
  export function classPropertiesHelper(lowerer, loc, readOnly = false) {
168
- const name = readOnly ? "%dyn.class.readProperties" : "%dyn.class.properties";
196
+ const name = readOnly ? READ_PROPERTIES : "%dyn.class.properties";
169
197
  const existing = lowerer.liftedFns.find((fn) => fn.name === name);
170
198
  if (existing)
171
199
  return existing;
@@ -1329,13 +1357,15 @@ export class ClassDynamicDispatch {
1329
1357
  ...(reflect ? [{ localId: "p.reflectReceiver", name: "receiver", type: DYN }] : []),
1330
1358
  ];
1331
1359
  const keyLocal = dynamicKey ? "key.string" : "p.key";
1332
- const bag = {
1333
- kind: "call",
1334
- callee: this.propertyBag.name,
1335
- args: [varRef("p.0", DYN, loc)],
1336
- type: DYN,
1337
- loc,
1338
- };
1360
+ const bag = computedWrite
1361
+ ? {
1362
+ kind: "call",
1363
+ callee: this.propertyBag.name,
1364
+ args: [varRef("p.0", DYN, loc)],
1365
+ type: DYN,
1366
+ loc,
1367
+ }
1368
+ : this.readPropertyBagOrEmpty(lowerer, varRef("p.0", DYN, loc), loc);
1339
1369
  const reflectionFallback = (target, property) => ({
1340
1370
  kind: "libCall",
1341
1371
  fn: computedWrite ? "dyn.reflectSet" : "dyn.reflectGet",
@@ -1561,13 +1591,15 @@ export class ClassDynamicDispatch {
1561
1591
  name: `p${i}`,
1562
1592
  type: DYN,
1563
1593
  }));
1564
- const instanceBag = {
1565
- kind: "call",
1566
- callee: this.propertyBag.name,
1567
- args: [varRef("p.0", DYN, loc)],
1568
- type: DYN,
1569
- loc,
1570
- };
1594
+ const instanceBag = read
1595
+ ? this.readPropertyBagOrEmpty(lowerer, varRef("p.0", DYN, loc), loc)
1596
+ : {
1597
+ kind: "call",
1598
+ callee: this.propertyBag.name,
1599
+ args: [varRef("p.0", DYN, loc)],
1600
+ type: DYN,
1601
+ loc,
1602
+ };
1571
1603
  const bag = read && !["name", "length", "apply"].includes(name)
1572
1604
  ? {
1573
1605
  kind: "call",
@@ -1953,13 +1985,7 @@ export class ClassDynamicDispatch {
1953
1985
  const prototypeMethod = lowerer.prototypeMethodAccesses.has(dispatch.source.method);
1954
1986
  if (prototypeMethod)
1955
1987
  classPrototypeData(lowerer, info, loc);
1956
- const bag = {
1957
- kind: "call",
1958
- callee: this.propertyBag.name,
1959
- args: [value],
1960
- type: DYN,
1961
- loc,
1962
- };
1988
+ const bag = this.readPropertyBagOrEmpty(lowerer, value, loc);
1963
1989
  dispatch.callback.body.unshift({
1964
1990
  kind: "if",
1965
1991
  cond: condition,
@@ -2196,13 +2222,7 @@ export class ClassDynamicDispatch {
2196
2222
  const prototypeMethod = lowerer.prototypeMethodAccesses.has(name);
2197
2223
  if (info.fields.has(name) || (dispatch.probe === "in" && !prototypeMethod)) {
2198
2224
  if (info.fields.has(name) && info.def.tracksOwnFields) {
2199
- const bag = {
2200
- kind: "call",
2201
- callee: this.propertyBag.name,
2202
- args: [lowerer.coerceToExpected(receiver, DYN)],
2203
- type: DYN,
2204
- loc,
2205
- };
2225
+ const bag = this.readPropertyBagOrEmpty(lowerer, lowerer.coerceToExpected(receiver, DYN), loc);
2206
2226
  const symbol = symbolMemberKey(lowerer, info, name, loc);
2207
2227
  const fn = dispatch.probe === "in"
2208
2228
  ? "dyn.hasKey"
@@ -2229,13 +2249,7 @@ export class ClassDynamicDispatch {
2229
2249
  }
2230
2250
  if (prototypeMethod)
2231
2251
  classPrototypeData(lowerer, info, loc, receiver);
2232
- const bag = {
2233
- kind: "call",
2234
- callee: this.propertyBag.name,
2235
- args: [lowerer.coerceToExpected(receiver, DYN)],
2236
- type: DYN,
2237
- loc,
2238
- };
2252
+ const bag = this.readPropertyBagOrEmpty(lowerer, lowerer.coerceToExpected(receiver, DYN), loc);
2239
2253
  const symbol = name.startsWith("sym:") || name.startsWith("%symbol:");
2240
2254
  const fn = dispatch.probe === "in"
2241
2255
  ? "dyn.hasKey"
@@ -2301,13 +2315,7 @@ export class ClassDynamicDispatch {
2301
2315
  if (!dispatch.write && !dispatch.reflect && !info.def.tracksOwnFields) {
2302
2316
  const value = varRef("p.0", DYN, loc);
2303
2317
  const key = varRef("p.key", DYN, loc);
2304
- const bag = {
2305
- kind: "call",
2306
- callee: this.propertyBag.name,
2307
- args: [value],
2308
- type: DYN,
2309
- loc,
2310
- };
2318
+ const bag = this.readPropertyBagOrEmpty(lowerer, value, loc);
2311
2319
  branches.push({
2312
2320
  kind: "if",
2313
2321
  cond: {
@@ -2507,13 +2515,7 @@ export class ClassDynamicDispatch {
2507
2515
  this.enumerationClasses.add(plan.key);
2508
2516
  const loc = this.enumeration.loc;
2509
2517
  const { condition } = this.propertyReceiver(plan, loc);
2510
- const bag = {
2511
- kind: "call",
2512
- callee: this.propertyBag.name,
2513
- args: [varRef("p.0", DYN, loc)],
2514
- type: DYN,
2515
- loc,
2516
- };
2518
+ const bag = this.readPropertyBagOrEmpty(lowerer, varRef("p.0", DYN, loc), loc);
2517
2519
  this.enumeration.body.unshift({
2518
2520
  kind: "if",
2519
2521
  cond: condition,
@@ -2624,6 +2626,95 @@ export class ClassDynamicDispatch {
2624
2626
  fn.speculativeDispatch = true;
2625
2627
  return changed;
2626
2628
  }
2629
+ /** The receiver's own dynamic properties for a read: undefined while it has
2630
+ * none, and never stored, so reads stay valid on published objects. */
2631
+ readPropertyBag(lowerer, receiver, loc) {
2632
+ const helper = classPropertiesHelper(lowerer, loc, true);
2633
+ this.generated.add(helper);
2634
+ return {
2635
+ kind: "call",
2636
+ callee: helper.name,
2637
+ args: [receiver.type.kind === "dyn" ? receiver : lowerer.coerceToExpected(receiver, DYN)],
2638
+ type: DYN,
2639
+ loc,
2640
+ };
2641
+ }
2642
+ /** The bag a read looks a key up in (`%dyn.class.readPropertiesOrEmpty`):
2643
+ * the receiver's own properties, or a fresh empty object (not stored) while
2644
+ * an instance has none, so inherited Object.prototype members still resolve
2645
+ * as on an empty bag. A non-instance is its own bag; an undefined receiver
2646
+ * stays undefined so the read throws Node's TypeError. */
2647
+ /** A key test on a read-only bag, which is undefined while the object has no
2648
+ * own dynamic properties. A shared helper evaluates the bag once and keeps
2649
+ * each class branch as small as the storing form. */
2650
+ readBagHas(lowerer, fn, bag, key, loc) {
2651
+ const name = fn === "dyn.hasKey" ? "%dyn.class.bagHas" : "%dyn.class.bagHasComputed";
2652
+ let helper = lowerer.liftedFns.find((item) => item.name === name);
2653
+ if (!helper) {
2654
+ const keyType = fn === "dyn.hasKey" ? STRING : DYN;
2655
+ const value = varRef("p.0", DYN, loc);
2656
+ helper = {
2657
+ name,
2658
+ params: [
2659
+ { localId: "p.0", name: "bag", type: DYN },
2660
+ { localId: "p.1", name: "key", type: keyType },
2661
+ ],
2662
+ returnType: BOOL,
2663
+ locals: [
2664
+ { id: "p.0", name: "bag", type: DYN, mutable: false },
2665
+ { id: "p.1", name: "key", type: keyType, mutable: false },
2666
+ ],
2667
+ body: [
2668
+ {
2669
+ kind: "if",
2670
+ cond: { kind: "dynTest", test: "undefined", value, type: BOOL, loc },
2671
+ then: [
2672
+ { kind: "return", value: { kind: "boolLit", value: false, type: BOOL, loc }, loc },
2673
+ ],
2674
+ else_: null,
2675
+ loc,
2676
+ },
2677
+ {
2678
+ kind: "return",
2679
+ value: {
2680
+ kind: "libCall",
2681
+ fn,
2682
+ args: [value, varRef("p.1", keyType, loc)],
2683
+ type: BOOL,
2684
+ loc,
2685
+ },
2686
+ loc,
2687
+ },
2688
+ ],
2689
+ loc,
2690
+ };
2691
+ lowerer.liftedFns.push(helper);
2692
+ }
2693
+ this.generated.add(helper);
2694
+ return { kind: "call", callee: name, args: [bag, key], type: BOOL, loc };
2695
+ }
2696
+ readPropertyBagOrEmpty(lowerer, receiver, loc) {
2697
+ // One call per read site: large JS programs have a branch per class and
2698
+ // property, so the absent-bag handling lives in the shared helper.
2699
+ let helper = lowerer.liftedFns.find((fn) => fn.name === READ_PROPERTIES_OR_EMPTY);
2700
+ if (!helper) {
2701
+ // Settled by finalize; until then, the read-only bag's own dispatch.
2702
+ helper = {
2703
+ ...classPropertiesHelper(lowerer, loc, true),
2704
+ name: READ_PROPERTIES_OR_EMPTY,
2705
+ };
2706
+ helper = structuredClone(helper);
2707
+ lowerer.liftedFns.push(helper);
2708
+ }
2709
+ this.generated.add(helper);
2710
+ return {
2711
+ kind: "call",
2712
+ callee: helper.name,
2713
+ args: [receiver.type.kind === "dyn" ? receiver : lowerer.coerceToExpected(receiver, DYN)],
2714
+ type: DYN,
2715
+ loc,
2716
+ };
2717
+ }
2627
2718
  /** A known native class can access its shared bag directly. Keep the
2628
2719
  * receiver as an owned parameter so calls and temporary instances retain
2629
2720
  * their ordinary evaluation and lifetime rules without a boxed capsule. */
@@ -2684,13 +2775,27 @@ export class ClassDynamicDispatch {
2684
2775
  lowerer.liftedFns.push(helper);
2685
2776
  return helper;
2686
2777
  }
2687
- /** Prototype state may appear in a later reachable body. Only after the
2688
- * dispatch worklist closes can an empty bag initializer be omitted; a
2689
- * prototype-backed bag must still be initialized before inherited reads. */
2690
- finalize() {
2778
+ /** Prototype state may appear in a later reachable body, so read-only bags
2779
+ * settle only after the dispatch worklist closes. A read never stores: an
2780
+ * absent empty bag stays undefined (callers test it), and an absent
2781
+ * prototype-backed bag is produced for this read only. A published object
2782
+ * cannot take the store, and Node's reads never write. */
2783
+ finalize(lowerer) {
2691
2784
  for (const { helper, initialize } of this.readPropertyBags) {
2692
- if (initialize.value.kind === "dynObjLit" && initialize.value.fields?.length === 0)
2785
+ const absent = helper.body[0];
2786
+ if (isEmptyBag(initialize.value))
2693
2787
  helper.body.shift();
2788
+ else if (absent?.kind === "if")
2789
+ absent.then = [{ kind: "return", value: initialize.value, loc: initialize.loc }];
2790
+ }
2791
+ // The untyped read-only accessor selects the receiver's class as the
2792
+ // complete property-bag dispatch does, without its lazy stores.
2793
+ for (const fn of lowerer?.liftedFns ?? []) {
2794
+ if (!this.propertyBag ||
2795
+ (fn.name !== READ_PROPERTIES && fn.name !== READ_PROPERTIES_OR_EMPTY))
2796
+ continue;
2797
+ fn.locals = structuredClone(this.propertyBag.locals);
2798
+ fn.body = readOnlyBagBody(structuredClone(this.propertyBag.body), fn.name === READ_PROPERTIES_OR_EMPTY);
2694
2799
  }
2695
2800
  }
2696
2801
  normalizedDispatches() {
@@ -3089,20 +3194,14 @@ export class ClassDynamicDispatch {
3089
3194
  !info.classDecorators) {
3090
3195
  this.constructors.set(info.def.name, info);
3091
3196
  const cls = lowerer.coerceToExpected(classValueRef(lowerer, info, info.decl), DYN);
3092
- const bag = {
3093
- kind: "call",
3094
- callee: this.propertyBag.name,
3095
- args: [lowerer.coerceToExpected(receiver, DYN)],
3096
- type: DYN,
3097
- loc,
3098
- };
3197
+ const bag = this.readPropertyBag(lowerer, receiver, loc);
3099
3198
  const key = { kind: "strLit", value: name, type: STRING, loc };
3100
3199
  return [
3101
3200
  {
3102
3201
  kind: "return",
3103
3202
  value: {
3104
3203
  kind: "ternary",
3105
- cond: { kind: "libCall", fn: "dyn.hasKey", args: [bag, key], type: BOOL, loc },
3204
+ cond: this.readBagHas(lowerer, "dyn.hasKey", bag, key, loc),
3106
3205
  then: {
3107
3206
  kind: "libCall",
3108
3207
  fn: "dyn.bagGet",
@@ -3167,23 +3266,12 @@ export class ClassDynamicDispatch {
3167
3266
  const prototypeMethod = lowerer.prototypeMethodAccesses.has(name);
3168
3267
  if (prototypeMethod)
3169
3268
  classPrototypeData(lowerer, info, loc, receiver);
3170
- const bag = {
3171
- kind: "call",
3172
- callee: this.propertyBag.name,
3173
- args: [lowerer.coerceToExpected(receiver, DYN)],
3174
- type: DYN,
3175
- loc,
3176
- };
3269
+ // Selecting the method must not give the object own storage.
3270
+ const bag = this.readPropertyBag(lowerer, receiver, loc);
3177
3271
  const key = symbol ?? { kind: "strLit", value: name, type: STRING, loc };
3178
3272
  body.push({
3179
3273
  kind: "if",
3180
- cond: {
3181
- kind: "libCall",
3182
- fn: symbol ? "dyn.hasOwnComputed" : "dyn.hasKey",
3183
- args: [bag, key],
3184
- type: BOOL,
3185
- loc,
3186
- },
3274
+ cond: this.readBagHas(lowerer, symbol ? "dyn.hasOwnComputed" : "dyn.hasKey", bag, key, loc),
3187
3275
  then: [
3188
3276
  {
3189
3277
  kind: "return",
@@ -3240,13 +3328,7 @@ export class ClassDynamicDispatch {
3240
3328
  }
3241
3329
  if (!field && !accessor) {
3242
3330
  const instance = lowerer.coerceToExpected(receiver, DYN);
3243
- const bag = {
3244
- kind: "call",
3245
- callee: this.propertyBag.name,
3246
- args: [instance],
3247
- type: DYN,
3248
- loc,
3249
- };
3331
+ const bag = this.readPropertyBagOrEmpty(lowerer, instance, loc);
3250
3332
  return [
3251
3333
  {
3252
3334
  kind: "return",
@@ -3273,13 +3355,7 @@ export class ClassDynamicDispatch {
3273
3355
  if (boxed.kind === "dynFrom" && mutable(boxed.value.type))
3274
3356
  boxed.liveRef = true;
3275
3357
  if (accessor) {
3276
- const bag = {
3277
- kind: "call",
3278
- callee: this.propertyBag.name,
3279
- args: [lowerer.coerceToExpected(receiver, DYN)],
3280
- type: DYN,
3281
- loc,
3282
- };
3358
+ const bag = this.readPropertyBagOrEmpty(lowerer, lowerer.coerceToExpected(receiver, DYN), loc);
3283
3359
  const key = { kind: "strLit", value: name, type: STRING, loc };
3284
3360
  return [
3285
3361
  {
@@ -3306,13 +3382,7 @@ export class ClassDynamicDispatch {
3306
3382
  }
3307
3383
  if (field && info.def.tracksOwnFields) {
3308
3384
  const instance = lowerer.coerceToExpected(receiver, DYN);
3309
- const bag = {
3310
- kind: "call",
3311
- callee: this.propertyBag.name,
3312
- args: [instance],
3313
- type: DYN,
3314
- loc,
3315
- };
3385
+ const bag = this.readPropertyBagOrEmpty(lowerer, instance, loc);
3316
3386
  const symbol = symbolMemberKey(lowerer, info, name, loc);
3317
3387
  const key = symbol ?? { kind: "strLit", value: name, type: STRING, loc };
3318
3388
  return [