@soundscript/soundscript 0.1.12 → 0.1.15

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 (441) hide show
  1. package/package.json +15 -6
  2. package/project-transform/index.js +2 -0
  3. package/project-transform/index.ts +8 -0
  4. package/project-transform/src/annotation_syntax.js +948 -0
  5. package/project-transform/src/annotation_syntax.ts +1217 -0
  6. package/project-transform/src/build_package.js +475 -0
  7. package/project-transform/src/build_package.ts +683 -0
  8. package/project-transform/src/bundled/portable-web-globals.d.ts +153 -0
  9. package/project-transform/src/bundled/runtime_externs.js +220 -0
  10. package/project-transform/src/bundled/runtime_externs.ts +237 -0
  11. package/project-transform/src/bundled/sound-libs/lib.decorators.d.ts +385 -0
  12. package/project-transform/src/bundled/sound-libs/lib.decorators.legacy.d.ts +22 -0
  13. package/project-transform/src/bundled/sound-libs/lib.dom.asynciterable.d.ts +42 -0
  14. package/project-transform/src/bundled/sound-libs/lib.dom.d.ts +39440 -0
  15. package/project-transform/src/bundled/sound-libs/lib.es2015.collection.d.ts +149 -0
  16. package/project-transform/src/bundled/sound-libs/lib.es2015.core.d.ts +657 -0
  17. package/project-transform/src/bundled/sound-libs/lib.es2015.d.ts +28 -0
  18. package/project-transform/src/bundled/sound-libs/lib.es2015.generator.d.ts +77 -0
  19. package/project-transform/src/bundled/sound-libs/lib.es2015.iterable.d.ts +616 -0
  20. package/project-transform/src/bundled/sound-libs/lib.es2015.promise.d.ts +80 -0
  21. package/project-transform/src/bundled/sound-libs/lib.es2015.proxy.d.ts +128 -0
  22. package/project-transform/src/bundled/sound-libs/lib.es2015.reflect.d.ts +144 -0
  23. package/project-transform/src/bundled/sound-libs/lib.es2015.symbol.d.ts +46 -0
  24. package/project-transform/src/bundled/sound-libs/lib.es2015.symbol.wellknown.d.ts +170 -0
  25. package/project-transform/src/bundled/sound-libs/lib.es2016.array.include.d.ts +116 -0
  26. package/project-transform/src/bundled/sound-libs/lib.es2016.d.ts +21 -0
  27. package/project-transform/src/bundled/sound-libs/lib.es2017.arraybuffer.d.ts +21 -0
  28. package/project-transform/src/bundled/sound-libs/lib.es2017.d.ts +26 -0
  29. package/project-transform/src/bundled/sound-libs/lib.es2017.date.d.ts +31 -0
  30. package/project-transform/src/bundled/sound-libs/lib.es2017.object.d.ts +49 -0
  31. package/project-transform/src/bundled/sound-libs/lib.es2017.string.d.ts +45 -0
  32. package/project-transform/src/bundled/sound-libs/lib.es2017.typedarrays.d.ts +53 -0
  33. package/project-transform/src/bundled/sound-libs/lib.es2018.asyncgenerator.d.ts +77 -0
  34. package/project-transform/src/bundled/sound-libs/lib.es2018.asynciterable.d.ts +57 -0
  35. package/project-transform/src/bundled/sound-libs/lib.es2018.d.ts +24 -0
  36. package/project-transform/src/bundled/sound-libs/lib.es2018.promise.d.ts +30 -0
  37. package/project-transform/src/bundled/sound-libs/lib.es2018.regexp.d.ts +37 -0
  38. package/project-transform/src/bundled/sound-libs/lib.es2019.array.d.ts +79 -0
  39. package/project-transform/src/bundled/sound-libs/lib.es2019.d.ts +24 -0
  40. package/project-transform/src/bundled/sound-libs/lib.es2019.object.d.ts +47 -0
  41. package/project-transform/src/bundled/sound-libs/lib.es2019.string.d.ts +37 -0
  42. package/project-transform/src/bundled/sound-libs/lib.es2019.symbol.d.ts +24 -0
  43. package/project-transform/src/bundled/sound-libs/lib.es2020.bigint.d.ts +765 -0
  44. package/project-transform/src/bundled/sound-libs/lib.es2020.d.ts +27 -0
  45. package/project-transform/src/bundled/sound-libs/lib.es2020.date.d.ts +42 -0
  46. package/project-transform/src/bundled/sound-libs/lib.es2020.number.d.ts +28 -0
  47. package/project-transform/src/bundled/sound-libs/lib.es2020.promise.d.ts +49 -0
  48. package/project-transform/src/bundled/sound-libs/lib.es2020.string.d.ts +44 -0
  49. package/project-transform/src/bundled/sound-libs/lib.es2020.symbol.wellknown.d.ts +41 -0
  50. package/project-transform/src/bundled/sound-libs/lib.es2021.d.ts +23 -0
  51. package/project-transform/src/bundled/sound-libs/lib.es2021.promise.d.ts +48 -0
  52. package/project-transform/src/bundled/sound-libs/lib.es2021.string.d.ts +33 -0
  53. package/project-transform/src/bundled/sound-libs/lib.es2021.weakref.d.ts +78 -0
  54. package/project-transform/src/bundled/sound-libs/lib.es2022.array.d.ts +121 -0
  55. package/project-transform/src/bundled/sound-libs/lib.es2022.d.ts +25 -0
  56. package/project-transform/src/bundled/sound-libs/lib.es2022.error.d.ts +75 -0
  57. package/project-transform/src/bundled/sound-libs/lib.es2022.object.d.ts +26 -0
  58. package/project-transform/src/bundled/sound-libs/lib.es2022.regexp.d.ts +39 -0
  59. package/project-transform/src/bundled/sound-libs/lib.es2022.string.d.ts +25 -0
  60. package/project-transform/src/bundled/sound-libs/lib.es2023.array.d.ts +924 -0
  61. package/project-transform/src/bundled/sound-libs/lib.es2023.collection.d.ts +21 -0
  62. package/project-transform/src/bundled/sound-libs/lib.es2023.d.ts +22 -0
  63. package/project-transform/src/bundled/sound-libs/lib.es2024.arraybuffer.d.ts +65 -0
  64. package/project-transform/src/bundled/sound-libs/lib.es2024.collection.d.ts +29 -0
  65. package/project-transform/src/bundled/sound-libs/lib.es2024.d.ts +26 -0
  66. package/project-transform/src/bundled/sound-libs/lib.es2024.object.d.ts +33 -0
  67. package/project-transform/src/bundled/sound-libs/lib.es2024.promise.d.ts +35 -0
  68. package/project-transform/src/bundled/sound-libs/lib.es2024.regexp.d.ts +25 -0
  69. package/project-transform/src/bundled/sound-libs/lib.es2024.string.d.ts +29 -0
  70. package/project-transform/src/bundled/sound-libs/lib.es5.d.ts +4924 -0
  71. package/project-transform/src/bundled/sound_stdlib.js +142 -0
  72. package/project-transform/src/bundled/sound_stdlib.ts +180 -0
  73. package/project-transform/src/checker/analyze_project.js +1361 -0
  74. package/project-transform/src/checker/analyze_project.ts +2246 -0
  75. package/project-transform/src/checker/diagnostics.js +112 -0
  76. package/project-transform/src/checker/diagnostics.ts +222 -0
  77. package/project-transform/src/checker/engine/context.js +235 -0
  78. package/project-transform/src/checker/engine/context.ts +340 -0
  79. package/project-transform/src/checker/engine/diagnostic_codes.js +72 -0
  80. package/project-transform/src/checker/engine/diagnostic_codes.ts +95 -0
  81. package/project-transform/src/checker/engine/facts.js +35 -0
  82. package/project-transform/src/checker/engine/facts.ts +48 -0
  83. package/project-transform/src/checker/engine/types.js +1 -0
  84. package/project-transform/src/checker/engine/types.ts +485 -0
  85. package/project-transform/src/checker/proof_escape_hatch_diagnostics.js +104 -0
  86. package/project-transform/src/checker/proof_escape_hatch_diagnostics.ts +173 -0
  87. package/project-transform/src/checker/rules/async_surface.js +231 -0
  88. package/project-transform/src/checker/rules/async_surface.ts +335 -0
  89. package/project-transform/src/checker/rules/class_lifecycle.js +798 -0
  90. package/project-transform/src/checker/rules/class_lifecycle.ts +1276 -0
  91. package/project-transform/src/checker/rules/directive_validation.js +571 -0
  92. package/project-transform/src/checker/rules/directive_validation.ts +938 -0
  93. package/project-transform/src/checker/rules/directives.js +23 -0
  94. package/project-transform/src/checker/rules/directives.ts +25 -0
  95. package/project-transform/src/checker/rules/flow.js +202 -0
  96. package/project-transform/src/checker/rules/flow.ts +333 -0
  97. package/project-transform/src/checker/rules/flow_facts.js +601 -0
  98. package/project-transform/src/checker/rules/flow_facts.ts +978 -0
  99. package/project-transform/src/checker/rules/flow_invalidation.js +1119 -0
  100. package/project-transform/src/checker/rules/flow_invalidation.ts +2150 -0
  101. package/project-transform/src/checker/rules/flow_shared.js +2822 -0
  102. package/project-transform/src/checker/rules/flow_shared.ts +4383 -0
  103. package/project-transform/src/checker/rules/foreign_boundary.js +120 -0
  104. package/project-transform/src/checker/rules/foreign_boundary.ts +196 -0
  105. package/project-transform/src/checker/rules/foreign_projection.js +279 -0
  106. package/project-transform/src/checker/rules/foreign_projection.ts +425 -0
  107. package/project-transform/src/checker/rules/generated_helpers.js +13 -0
  108. package/project-transform/src/checker/rules/generated_helpers.ts +18 -0
  109. package/project-transform/src/checker/rules/index.js +35 -0
  110. package/project-transform/src/checker/rules/index.ts +49 -0
  111. package/project-transform/src/checker/rules/namespace_object.js +845 -0
  112. package/project-transform/src/checker/rules/namespace_object.ts +1224 -0
  113. package/project-transform/src/checker/rules/non_ordinary_recovery.js +1328 -0
  114. package/project-transform/src/checker/rules/non_ordinary_recovery.ts +2391 -0
  115. package/project-transform/src/checker/rules/null_prototype.js +3 -0
  116. package/project-transform/src/checker/rules/null_prototype.ts +6 -0
  117. package/project-transform/src/checker/rules/overloads.js +181 -0
  118. package/project-transform/src/checker/rules/overloads.ts +317 -0
  119. package/project-transform/src/checker/rules/predicate_verification.js +691 -0
  120. package/project-transform/src/checker/rules/predicate_verification.ts +1088 -0
  121. package/project-transform/src/checker/rules/prototype_hardening.js +237 -0
  122. package/project-transform/src/checker/rules/prototype_hardening.ts +343 -0
  123. package/project-transform/src/checker/rules/receiver_discipline.js +263 -0
  124. package/project-transform/src/checker/rules/receiver_discipline.ts +356 -0
  125. package/project-transform/src/checker/rules/relations.js +6861 -0
  126. package/project-transform/src/checker/rules/relations.ts +12158 -0
  127. package/project-transform/src/checker/rules/resolved_builtins.js +274 -0
  128. package/project-transform/src/checker/rules/resolved_builtins.ts +438 -0
  129. package/project-transform/src/checker/rules/trust.js +217 -0
  130. package/project-transform/src/checker/rules/trust.ts +301 -0
  131. package/project-transform/src/checker/rules/type_guards.js +173 -0
  132. package/project-transform/src/checker/rules/type_guards.ts +257 -0
  133. package/project-transform/src/checker/rules/universal.js +17 -0
  134. package/project-transform/src/checker/rules/universal.ts +22 -0
  135. package/project-transform/src/checker/rules/unsafe_value_origin.js +80 -0
  136. package/project-transform/src/checker/rules/unsafe_value_origin.ts +125 -0
  137. package/project-transform/src/checker/rules/unsound_imports.js +218 -0
  138. package/project-transform/src/checker/rules/unsound_imports.ts +301 -0
  139. package/project-transform/src/checker/rules/unsound_syntax.js +1695 -0
  140. package/project-transform/src/checker/rules/unsound_syntax.ts +2540 -0
  141. package/project-transform/src/checker/rules/value_types.js +206 -0
  142. package/project-transform/src/checker/rules/value_types.ts +407 -0
  143. package/project-transform/src/checker/timing.js +43 -0
  144. package/project-transform/src/checker/timing.ts +78 -0
  145. package/project-transform/src/checker/unsupported_feature_messages.js +337 -0
  146. package/project-transform/src/checker/unsupported_feature_messages.ts +531 -0
  147. package/project-transform/src/cli.js +892 -0
  148. package/project-transform/src/cli.ts +1476 -0
  149. package/project-transform/src/compiler/compile_project.js +319 -0
  150. package/project-transform/src/compiler/compile_project.ts +508 -0
  151. package/project-transform/src/compiler/errors.js +10 -0
  152. package/project-transform/src/compiler/errors.ts +29 -0
  153. package/project-transform/src/compiler/ir.js +1 -0
  154. package/project-transform/src/compiler/ir.ts +1526 -0
  155. package/project-transform/src/compiler/lower.js +30550 -0
  156. package/project-transform/src/compiler/lower.ts +43645 -0
  157. package/project-transform/src/compiler/lower_arrays.js +140 -0
  158. package/project-transform/src/compiler/lower_arrays.ts +190 -0
  159. package/project-transform/src/compiler/lower_strings.js +121 -0
  160. package/project-transform/src/compiler/lower_strings.ts +198 -0
  161. package/project-transform/src/compiler/lower_tagged.js +329 -0
  162. package/project-transform/src/compiler/lower_tagged.ts +427 -0
  163. package/project-transform/src/compiler/lower_views.js +171 -0
  164. package/project-transform/src/compiler/lower_views.ts +251 -0
  165. package/project-transform/src/compiler/object_keys.js +25 -0
  166. package/project-transform/src/compiler/object_keys.ts +35 -0
  167. package/project-transform/src/compiler/runtime_ir.js +30 -0
  168. package/project-transform/src/compiler/runtime_ir.ts +727 -0
  169. package/project-transform/src/compiler/tagged_boundary.js +18 -0
  170. package/project-transform/src/compiler/tagged_boundary.ts +37 -0
  171. package/project-transform/src/compiler/toolchain.js +170 -0
  172. package/project-transform/src/compiler/toolchain.ts +229 -0
  173. package/project-transform/src/compiler/unicode_case_data.js +2102 -0
  174. package/project-transform/src/compiler/unicode_case_data.ts +2112 -0
  175. package/project-transform/src/compiler/wasm_js_host_runtime.js +656 -0
  176. package/project-transform/src/compiler/wasm_js_host_runtime.ts +762 -0
  177. package/project-transform/src/compiler/wat_arrays.js +3132 -0
  178. package/project-transform/src/compiler/wat_arrays.ts +3768 -0
  179. package/project-transform/src/compiler/wat_emitter.js +17952 -0
  180. package/project-transform/src/compiler/wat_emitter.ts +22812 -0
  181. package/project-transform/src/compiler/wat_strings.js +129 -0
  182. package/project-transform/src/compiler/wat_strings.ts +187 -0
  183. package/project-transform/src/compiler/wat_tagged.js +548 -0
  184. package/project-transform/src/compiler/wat_tagged.ts +674 -0
  185. package/project-transform/src/compiler_generator_runner.js +153 -0
  186. package/project-transform/src/compiler_generator_runner.ts +171 -0
  187. package/project-transform/src/compiler_object_test_helpers.js +69 -0
  188. package/project-transform/src/compiler_object_test_helpers.ts +96 -0
  189. package/project-transform/src/compiler_promise_runner.js +2116 -0
  190. package/project-transform/src/compiler_promise_runner.ts +2184 -0
  191. package/project-transform/src/compiler_test_helpers.js +854 -0
  192. package/project-transform/src/compiler_test_helpers.ts +1087 -0
  193. package/project-transform/src/config.js +568 -0
  194. package/project-transform/src/config.ts +892 -0
  195. package/project-transform/src/diagnostic_metadata.js +67 -0
  196. package/project-transform/src/diagnostic_metadata.ts +99 -0
  197. package/project-transform/src/diagnostic_reference.js +1368 -0
  198. package/project-transform/src/diagnostic_reference.ts +1523 -0
  199. package/project-transform/src/editor_diagnostics_worker.js +176 -0
  200. package/project-transform/src/editor_diagnostics_worker.ts +250 -0
  201. package/project-transform/src/editor_projection.js +224 -0
  202. package/project-transform/src/editor_projection.ts +421 -0
  203. package/project-transform/src/frontend/builtin_expanded_program_test_cleanup.js +47 -0
  204. package/project-transform/src/frontend/builtin_expanded_program_test_cleanup.ts +72 -0
  205. package/project-transform/src/frontend/builtin_macro_support.js +842 -0
  206. package/project-transform/src/frontend/builtin_macro_support.ts +1386 -0
  207. package/project-transform/src/frontend/builtin_macros.js +409 -0
  208. package/project-transform/src/frontend/builtin_macros.ts +542 -0
  209. package/project-transform/src/frontend/component_poc_runtime.js +279 -0
  210. package/project-transform/src/frontend/component_poc_runtime.ts +372 -0
  211. package/project-transform/src/frontend/css_macro.js +148 -0
  212. package/project-transform/src/frontend/css_macro.ts +222 -0
  213. package/project-transform/src/frontend/derive_macros.js +2072 -0
  214. package/project-transform/src/frontend/derive_macros.ts +3188 -0
  215. package/project-transform/src/frontend/embedded_fragment_support.js +106 -0
  216. package/project-transform/src/frontend/embedded_fragment_support.ts +172 -0
  217. package/project-transform/src/frontend/error_normalization.js +403 -0
  218. package/project-transform/src/frontend/error_normalization.ts +832 -0
  219. package/project-transform/src/frontend/error_stdlib_support.js +1 -0
  220. package/project-transform/src/frontend/error_stdlib_support.ts +6 -0
  221. package/project-transform/src/frontend/expand_project.js +169 -0
  222. package/project-transform/src/frontend/expand_project.ts +248 -0
  223. package/project-transform/src/frontend/format_soundscript.js +297 -0
  224. package/project-transform/src/frontend/format_soundscript.ts +582 -0
  225. package/project-transform/src/frontend/graphql_macro.js +174 -0
  226. package/project-transform/src/frontend/graphql_macro.ts +253 -0
  227. package/project-transform/src/frontend/hash_context.js +83 -0
  228. package/project-transform/src/frontend/hash_context.ts +113 -0
  229. package/project-transform/src/frontend/hkt_macro.js +448 -0
  230. package/project-transform/src/frontend/hkt_macro.ts +897 -0
  231. package/project-transform/src/frontend/import_binding_usage.js +190 -0
  232. package/project-transform/src/frontend/import_binding_usage.ts +277 -0
  233. package/project-transform/src/frontend/macro_advanced_backend_adapter.js +58 -0
  234. package/project-transform/src/frontend/macro_advanced_backend_adapter.ts +123 -0
  235. package/project-transform/src/frontend/macro_advanced_context.js +826 -0
  236. package/project-transform/src/frontend/macro_advanced_context.ts +1102 -0
  237. package/project-transform/src/frontend/macro_advanced_output.js +21 -0
  238. package/project-transform/src/frontend/macro_advanced_output.ts +41 -0
  239. package/project-transform/src/frontend/macro_api.js +353 -0
  240. package/project-transform/src/frontend/macro_api.ts +1722 -0
  241. package/project-transform/src/frontend/macro_api_internal.js +35 -0
  242. package/project-transform/src/frontend/macro_api_internal.ts +80 -0
  243. package/project-transform/src/frontend/macro_api_module_support.js +39 -0
  244. package/project-transform/src/frontend/macro_api_module_support.ts +65 -0
  245. package/project-transform/src/frontend/macro_backend_adapter.js +272 -0
  246. package/project-transform/src/frontend/macro_backend_adapter.ts +420 -0
  247. package/project-transform/src/frontend/macro_context.js +816 -0
  248. package/project-transform/src/frontend/macro_context.ts +1105 -0
  249. package/project-transform/src/frontend/macro_debug.js +99 -0
  250. package/project-transform/src/frontend/macro_debug.ts +157 -0
  251. package/project-transform/src/frontend/macro_definition_support.js +28 -0
  252. package/project-transform/src/frontend/macro_definition_support.ts +73 -0
  253. package/project-transform/src/frontend/macro_errors.js +40 -0
  254. package/project-transform/src/frontend/macro_errors.ts +70 -0
  255. package/project-transform/src/frontend/macro_expander.js +919 -0
  256. package/project-transform/src/frontend/macro_expander.ts +1611 -0
  257. package/project-transform/src/frontend/macro_factory_support.js +176 -0
  258. package/project-transform/src/frontend/macro_factory_support.ts +263 -0
  259. package/project-transform/src/frontend/macro_host_ast_internal.js +64 -0
  260. package/project-transform/src/frontend/macro_host_ast_internal.ts +109 -0
  261. package/project-transform/src/frontend/macro_index.js +27 -0
  262. package/project-transform/src/frontend/macro_index.ts +50 -0
  263. package/project-transform/src/frontend/macro_loader.js +281 -0
  264. package/project-transform/src/frontend/macro_loader.ts +506 -0
  265. package/project-transform/src/frontend/macro_operand_semantics.js +838 -0
  266. package/project-transform/src/frontend/macro_operand_semantics.ts +1489 -0
  267. package/project-transform/src/frontend/macro_output.js +54 -0
  268. package/project-transform/src/frontend/macro_output.ts +123 -0
  269. package/project-transform/src/frontend/macro_parser.js +611 -0
  270. package/project-transform/src/frontend/macro_parser.ts +832 -0
  271. package/project-transform/src/frontend/macro_resolver.js +69 -0
  272. package/project-transform/src/frontend/macro_resolver.ts +125 -0
  273. package/project-transform/src/frontend/macro_rewrite.js +285 -0
  274. package/project-transform/src/frontend/macro_rewrite.ts +442 -0
  275. package/project-transform/src/frontend/macro_runtime_support.js +232 -0
  276. package/project-transform/src/frontend/macro_runtime_support.ts +324 -0
  277. package/project-transform/src/frontend/macro_scanner.js +393 -0
  278. package/project-transform/src/frontend/macro_scanner.ts +455 -0
  279. package/project-transform/src/frontend/macro_semantic_backend_adapter.js +87 -0
  280. package/project-transform/src/frontend/macro_semantic_backend_adapter.ts +166 -0
  281. package/project-transform/src/frontend/macro_semantic_context.js +5 -0
  282. package/project-transform/src/frontend/macro_semantic_context.ts +12 -0
  283. package/project-transform/src/frontend/macro_semantic_output.js +24 -0
  284. package/project-transform/src/frontend/macro_semantic_output.ts +47 -0
  285. package/project-transform/src/frontend/macro_semantic_types.js +1 -0
  286. package/project-transform/src/frontend/macro_semantic_types.ts +98 -0
  287. package/project-transform/src/frontend/macro_semantics.js +1172 -0
  288. package/project-transform/src/frontend/macro_semantics.ts +1502 -0
  289. package/project-transform/src/frontend/macro_site_kind_support.js +164 -0
  290. package/project-transform/src/frontend/macro_site_kind_support.ts +255 -0
  291. package/project-transform/src/frontend/macro_syntax_internal.js +1950 -0
  292. package/project-transform/src/frontend/macro_syntax_internal.ts +3338 -0
  293. package/project-transform/src/frontend/macro_templates.js +57 -0
  294. package/project-transform/src/frontend/macro_templates.ts +143 -0
  295. package/project-transform/src/frontend/macro_test_helpers.js +82 -0
  296. package/project-transform/src/frontend/macro_test_helpers.ts +136 -0
  297. package/project-transform/src/frontend/macro_types.js +1 -0
  298. package/project-transform/src/frontend/macro_types.ts +103 -0
  299. package/project-transform/src/frontend/macro_vm.js +39 -0
  300. package/project-transform/src/frontend/macro_vm.ts +113 -0
  301. package/project-transform/src/frontend/match_macro.js +885 -0
  302. package/project-transform/src/frontend/match_macro.ts +1220 -0
  303. package/project-transform/src/frontend/numeric_normalization.js +824 -0
  304. package/project-transform/src/frontend/numeric_normalization.ts +1380 -0
  305. package/project-transform/src/frontend/numeric_prelude.js +278 -0
  306. package/project-transform/src/frontend/numeric_prelude.ts +370 -0
  307. package/project-transform/src/frontend/project_frontend.js +2396 -0
  308. package/project-transform/src/frontend/project_frontend.ts +3776 -0
  309. package/project-transform/src/frontend/project_macro_support.js +1401 -0
  310. package/project-transform/src/frontend/project_macro_support.ts +2137 -0
  311. package/project-transform/src/frontend/sql_macro.js +175 -0
  312. package/project-transform/src/frontend/sql_macro.ts +254 -0
  313. package/project-transform/src/frontend/sql_stdlib_support.js +1 -0
  314. package/project-transform/src/frontend/sql_stdlib_support.ts +6 -0
  315. package/project-transform/src/frontend/std_package_support.js +228 -0
  316. package/project-transform/src/frontend/std_package_support.ts +400 -0
  317. package/project-transform/src/frontend/value_normalization.js +306 -0
  318. package/project-transform/src/frontend/value_normalization.ts +599 -0
  319. package/project-transform/src/lsp/project_service.js +4771 -0
  320. package/project-transform/src/lsp/project_service.ts +7580 -0
  321. package/project-transform/src/lsp/protocol.js +9 -0
  322. package/project-transform/src/lsp/protocol.ts +38 -0
  323. package/project-transform/src/lsp/server.js +355 -0
  324. package/project-transform/src/lsp/server.ts +671 -0
  325. package/project-transform/src/lsp/session.js +49 -0
  326. package/project-transform/src/lsp/session.ts +48 -0
  327. package/project-transform/src/lsp/timing.js +43 -0
  328. package/project-transform/src/lsp/timing.ts +76 -0
  329. package/project-transform/src/lsp/transport.js +205 -0
  330. package/project-transform/src/lsp/transport.ts +253 -0
  331. package/project-transform/src/lsp_main.js +5 -0
  332. package/project-transform/src/lsp_main.ts +7 -0
  333. package/project-transform/src/macros.d.ts +1 -0
  334. package/project-transform/src/macros.js +1 -0
  335. package/project-transform/src/macros.ts +1 -0
  336. package/project-transform/src/main.js +24 -0
  337. package/project-transform/src/main.ts +28 -0
  338. package/project-transform/src/platform/host.js +264 -0
  339. package/project-transform/src/platform/host.ts +343 -0
  340. package/project-transform/src/platform/path.js +8 -0
  341. package/project-transform/src/platform/path.ts +20 -0
  342. package/project-transform/src/public_macro_api/macro_api.d.ts +1054 -0
  343. package/project-transform/src/public_macro_api/macro_semantic_types.d.ts +66 -0
  344. package/project-transform/src/public_macro_api/macro_types.d.ts +70 -0
  345. package/project-transform/src/run_program.js +14 -0
  346. package/project-transform/src/run_program.ts +33 -0
  347. package/project-transform/src/runtime/materialize.js +371 -0
  348. package/project-transform/src/runtime/materialize.ts +502 -0
  349. package/project-transform/src/runtime/on_demand.js +203 -0
  350. package/project-transform/src/runtime/on_demand.ts +305 -0
  351. package/project-transform/src/runtime/source_maps.js +205 -0
  352. package/project-transform/src/runtime/source_maps.ts +297 -0
  353. package/project-transform/src/runtime/transform.js +148 -0
  354. package/project-transform/src/runtime/transform.ts +295 -0
  355. package/project-transform/src/service/types.js +1 -0
  356. package/project-transform/src/service/types.ts +22 -0
  357. package/project-transform/src/soundscript_packages.js +477 -0
  358. package/project-transform/src/soundscript_packages.ts +754 -0
  359. package/project-transform/src/soundscript_runtime_specifiers.js +88 -0
  360. package/project-transform/src/soundscript_runtime_specifiers.ts +96 -0
  361. package/project-transform/src/stdlib/async.d.ts +81 -0
  362. package/project-transform/src/stdlib/async.js +213 -0
  363. package/project-transform/src/stdlib/async.ts +315 -0
  364. package/project-transform/src/stdlib/codec.d.ts +32 -0
  365. package/project-transform/src/stdlib/codec.js +30 -0
  366. package/project-transform/src/stdlib/codec.ts +76 -0
  367. package/project-transform/src/stdlib/compare.d.ts +28 -0
  368. package/project-transform/src/stdlib/compare.js +115 -0
  369. package/project-transform/src/stdlib/compare.ts +151 -0
  370. package/project-transform/src/stdlib/css.d.ts +16 -0
  371. package/project-transform/src/stdlib/css.js +9 -0
  372. package/project-transform/src/stdlib/css.ts +28 -0
  373. package/project-transform/src/stdlib/debug.d.ts +2 -0
  374. package/project-transform/src/stdlib/debug.js +9 -0
  375. package/project-transform/src/stdlib/debug.ts +10 -0
  376. package/project-transform/src/stdlib/decode.d.ts +86 -0
  377. package/project-transform/src/stdlib/decode.js +254 -0
  378. package/project-transform/src/stdlib/decode.ts +390 -0
  379. package/project-transform/src/stdlib/derive.d.ts +6 -0
  380. package/project-transform/src/stdlib/derive.js +7 -0
  381. package/project-transform/src/stdlib/derive.ts +7 -0
  382. package/project-transform/src/stdlib/encode.d.ts +100 -0
  383. package/project-transform/src/stdlib/encode.js +130 -0
  384. package/project-transform/src/stdlib/encode.ts +259 -0
  385. package/project-transform/src/stdlib/failures.d.ts +23 -0
  386. package/project-transform/src/stdlib/failures.js +41 -0
  387. package/project-transform/src/stdlib/failures.ts +64 -0
  388. package/project-transform/src/stdlib/fetch.d.ts +67 -0
  389. package/project-transform/src/stdlib/fetch.js +5 -0
  390. package/project-transform/src/stdlib/fetch.ts +11 -0
  391. package/project-transform/src/stdlib/graphql.d.ts +16 -0
  392. package/project-transform/src/stdlib/graphql.js +9 -0
  393. package/project-transform/src/stdlib/graphql.ts +28 -0
  394. package/project-transform/src/stdlib/hash.d.ts +34 -0
  395. package/project-transform/src/stdlib/hash.js +110 -0
  396. package/project-transform/src/stdlib/hash.ts +188 -0
  397. package/project-transform/src/stdlib/hkt.d.ts +40 -0
  398. package/project-transform/src/stdlib/hkt.js +3 -0
  399. package/project-transform/src/stdlib/hkt.ts +41 -0
  400. package/project-transform/src/stdlib/index.d.ts +9 -0
  401. package/project-transform/src/stdlib/index.js +15 -0
  402. package/project-transform/src/stdlib/index.ts +23 -0
  403. package/project-transform/src/stdlib/json.d.ts +125 -0
  404. package/project-transform/src/stdlib/json.js +764 -0
  405. package/project-transform/src/stdlib/json.ts +1034 -0
  406. package/project-transform/src/stdlib/match.d.ts +11 -0
  407. package/project-transform/src/stdlib/match.js +13 -0
  408. package/project-transform/src/stdlib/match.ts +26 -0
  409. package/project-transform/src/stdlib/numerics.d.ts +523 -0
  410. package/project-transform/src/stdlib/numerics.js +1356 -0
  411. package/project-transform/src/stdlib/numerics.ts +1937 -0
  412. package/project-transform/src/stdlib/random.d.ts +19 -0
  413. package/project-transform/src/stdlib/random.js +3 -0
  414. package/project-transform/src/stdlib/random.ts +5 -0
  415. package/project-transform/src/stdlib/result.d.ts +68 -0
  416. package/project-transform/src/stdlib/result.js +139 -0
  417. package/project-transform/src/stdlib/result.ts +248 -0
  418. package/project-transform/src/stdlib/sql.d.ts +22 -0
  419. package/project-transform/src/stdlib/sql.js +23 -0
  420. package/project-transform/src/stdlib/sql.ts +53 -0
  421. package/project-transform/src/stdlib/text.d.ts +24 -0
  422. package/project-transform/src/stdlib/text.js +3 -0
  423. package/project-transform/src/stdlib/text.ts +4 -0
  424. package/project-transform/src/stdlib/thunk.d.ts +2 -0
  425. package/project-transform/src/stdlib/thunk.js +9 -0
  426. package/project-transform/src/stdlib/thunk.ts +15 -0
  427. package/project-transform/src/stdlib/typeclasses.d.ts +57 -0
  428. package/project-transform/src/stdlib/typeclasses.js +78 -0
  429. package/project-transform/src/stdlib/typeclasses.ts +173 -0
  430. package/project-transform/src/stdlib/url.d.ts +37 -0
  431. package/project-transform/src/stdlib/url.js +3 -0
  432. package/project-transform/src/stdlib/url.ts +4 -0
  433. package/project-transform/src/stdlib/value.d.ts +9 -0
  434. package/project-transform/src/stdlib/value.js +104 -0
  435. package/project-transform/src/stdlib/value.ts +133 -0
  436. package/project-transform/src/test_installed_stdlib.js +147 -0
  437. package/project-transform/src/test_installed_stdlib.ts +245 -0
  438. package/project-transform/src/test_macro_package_fixture.js +50 -0
  439. package/project-transform/src/test_macro_package_fixture.ts +68 -0
  440. package/project-transform/src/value_deep_safe.js +191 -0
  441. package/project-transform/src/value_deep_safe.ts +273 -0
@@ -0,0 +1,727 @@
1
+ export type CompilerRuntimeRepresentationFamily = 'array' | 'object' | 'string';
2
+
3
+ export type CompilerRuntimeRepresentationKind =
4
+ | 'dense_array_representation'
5
+ | 'fallback_array_representation'
6
+ | 'fallback_object_representation'
7
+ | 'dynamic_object_representation'
8
+ | 'fallback_string_representation'
9
+ | 'specialized_object_representation'
10
+ | 'string_representation'
11
+ | 'tagged_value_representation';
12
+
13
+ export type CompilerRuntimeValueType = 'f64' | 'heap_ref' | 'i32';
14
+
15
+ export type CompilerRuntimeInlineValueKind = 'boolean' | 'number' | 'null' | 'undefined';
16
+
17
+ export type CompilerRuntimeHeapValueFamily = 'array' | 'object' | 'string';
18
+
19
+ export type CompilerRuntimeTaggedPayloadSlot = 'heap_payload' | 'inline_payload';
20
+
21
+ export const COMPILER_RUNTIME_ORDINARY_OBJECT_PROTOTYPE_OWN_PROPERTY_KEYS = [
22
+ '__defineGetter__',
23
+ '__defineSetter__',
24
+ '__lookupGetter__',
25
+ '__lookupSetter__',
26
+ '__proto__',
27
+ 'constructor',
28
+ 'hasOwnProperty',
29
+ 'isPrototypeOf',
30
+ 'propertyIsEnumerable',
31
+ 'toLocaleString',
32
+ 'toString',
33
+ 'valueOf',
34
+ ] as const;
35
+
36
+ export interface CompilerRuntimeTaggedPayloadLayoutIR {
37
+ inlinePayloadType: 'f64';
38
+ heapPayloadType: 'heap_ref';
39
+ }
40
+
41
+ export interface CompilerRuntimeTaggedInlineValueTagByKind {
42
+ boolean: 1;
43
+ number: 2;
44
+ null: 6;
45
+ undefined: 0;
46
+ }
47
+
48
+ export interface CompilerRuntimeTaggedHeapValueTagByFamily {
49
+ array: 5;
50
+ object: 4;
51
+ string: 3;
52
+ }
53
+
54
+ export interface CompilerRuntimeTaggedInlineValuePayloadByKind {
55
+ boolean: 'i32';
56
+ number: 'f64';
57
+ null: 'i32';
58
+ undefined: 'i32';
59
+ }
60
+
61
+ export interface CompilerRuntimeTaggedInlineValueCaseIR<
62
+ TKind extends CompilerRuntimeInlineValueKind,
63
+ > {
64
+ kind: TKind;
65
+ tag: CompilerRuntimeTaggedInlineValueTagByKind[TKind];
66
+ payloadSlot: 'inline_payload';
67
+ payloadType: CompilerRuntimeTaggedInlineValuePayloadByKind[TKind];
68
+ }
69
+
70
+ export interface CompilerRuntimeTaggedHeapValueCaseIR<
71
+ TFamily extends CompilerRuntimeHeapValueFamily,
72
+ > {
73
+ kind: 'heap';
74
+ heapFamily: TFamily;
75
+ tag: CompilerRuntimeTaggedHeapValueTagByFamily[TFamily];
76
+ payloadSlot: 'heap_payload';
77
+ payloadType: 'heap_ref';
78
+ }
79
+
80
+ export interface CompilerRuntimeTaggedValueRepresentationIR {
81
+ kind: 'tagged_value_representation';
82
+ name: 'tagged_value';
83
+ tagType: 'i32';
84
+ payloadLayout: CompilerRuntimeTaggedPayloadLayoutIR;
85
+ inlineCases: {
86
+ boolean: CompilerRuntimeTaggedInlineValueCaseIR<'boolean'>;
87
+ number: CompilerRuntimeTaggedInlineValueCaseIR<'number'>;
88
+ null: CompilerRuntimeTaggedInlineValueCaseIR<'null'>;
89
+ undefined: CompilerRuntimeTaggedInlineValueCaseIR<'undefined'>;
90
+ };
91
+ heapCases: {
92
+ array: CompilerRuntimeTaggedHeapValueCaseIR<'array'>;
93
+ object: CompilerRuntimeTaggedHeapValueCaseIR<'object'>;
94
+ string: CompilerRuntimeTaggedHeapValueCaseIR<'string'>;
95
+ };
96
+ }
97
+
98
+ export interface CompilerRuntimeRepresentationKindByFamily {
99
+ array: 'dense_array_representation' | 'fallback_array_representation';
100
+ object:
101
+ | 'dynamic_object_representation'
102
+ | 'fallback_object_representation'
103
+ | 'specialized_object_representation';
104
+ string: 'fallback_string_representation' | 'string_representation';
105
+ }
106
+
107
+ export interface CompilerRuntimeRepresentationRefIR<
108
+ TFamily extends CompilerRuntimeRepresentationFamily,
109
+ TKind extends CompilerRuntimeRepresentationKindByFamily[TFamily] =
110
+ CompilerRuntimeRepresentationKindByFamily[TFamily],
111
+ > {
112
+ family: TFamily;
113
+ kind: TKind;
114
+ name: string;
115
+ }
116
+
117
+ export type CompilerRuntimeFallbackObjectRepresentationRefIR = CompilerRuntimeRepresentationRefIR<
118
+ 'object',
119
+ 'fallback_object_representation'
120
+ >;
121
+
122
+ export type CompilerRuntimeDynamicObjectRepresentationRefIR = CompilerRuntimeRepresentationRefIR<
123
+ 'object',
124
+ 'dynamic_object_representation'
125
+ >;
126
+
127
+ const compilerRuntimeOrderedFallbackObjectRepresentationRefBrand: unique symbol = Symbol(
128
+ 'CompilerRuntimeOrderedFallbackObjectRepresentationRefIR',
129
+ );
130
+
131
+ export interface CompilerRuntimeOrderedFallbackObjectRepresentationRefIR
132
+ extends CompilerRuntimeFallbackObjectRepresentationRefIR {
133
+ readonly runtimeStateKind: 'ordered_hash_indexed_property_bag';
134
+ readonly [compilerRuntimeOrderedFallbackObjectRepresentationRefBrand]: true;
135
+ }
136
+
137
+ export type CompilerRuntimeSpecializedObjectRepresentationRefIR =
138
+ CompilerRuntimeRepresentationRefIR<'object', 'specialized_object_representation'>;
139
+
140
+ export type CompilerRuntimeFallbackArrayRepresentationRefIR = CompilerRuntimeRepresentationRefIR<
141
+ 'array',
142
+ 'fallback_array_representation'
143
+ >;
144
+
145
+ export type CompilerRuntimeSpecializedArrayRepresentationRefIR = CompilerRuntimeRepresentationRefIR<
146
+ 'array',
147
+ 'dense_array_representation'
148
+ >;
149
+
150
+ export type CompilerRuntimeFallbackStringRepresentationRefIR = CompilerRuntimeRepresentationRefIR<
151
+ 'string',
152
+ 'fallback_string_representation'
153
+ >;
154
+
155
+ export type CompilerRuntimeSpecializedStringRepresentationRefIR = CompilerRuntimeRepresentationRefIR<
156
+ 'string',
157
+ 'string_representation'
158
+ >;
159
+
160
+ export interface CompilerRuntimeFallbackObjectRepresentationIR<
161
+ TRuntimeState extends CompilerRuntimeFallbackObjectRuntimeStateIR =
162
+ CompilerRuntimeFallbackObjectRuntimeStateIR,
163
+ > {
164
+ kind: 'fallback_object_representation';
165
+ family: 'object';
166
+ name: string;
167
+ keyRepresentation: 'string';
168
+ valueRepresentation: 'tagged_value';
169
+ prototypeMembership: CompilerRuntimeOrdinaryObjectPrototypeMembershipIR;
170
+ runtimeState: TRuntimeState;
171
+ }
172
+
173
+ export interface CompilerRuntimeDynamicObjectRuntimeStateIR {
174
+ kind: 'ordered_linear_property_bag';
175
+ sizeType: 'i32';
176
+ capacityType: 'i32';
177
+ ordering: CompilerRuntimeFallbackObjectOrderingIR;
178
+ keyRepresentation: 'owned_string';
179
+ valueRepresentation: 'tagged_value';
180
+ }
181
+
182
+ export interface CompilerRuntimeDynamicObjectRepresentationIR {
183
+ kind: 'dynamic_object_representation';
184
+ family: 'object';
185
+ name: string;
186
+ keyRepresentation: 'owned_string';
187
+ valueRepresentation: 'tagged_value';
188
+ prototypeMembership: CompilerRuntimeOrdinaryObjectPrototypeMembershipIR;
189
+ runtimeState: CompilerRuntimeDynamicObjectRuntimeStateIR;
190
+ }
191
+
192
+ export type CompilerRuntimeOrderedFallbackObjectRepresentationIR =
193
+ CompilerRuntimeFallbackObjectRepresentationIR<
194
+ CompilerRuntimeOrderedHashIndexedFallbackObjectRuntimeStateIR
195
+ >;
196
+
197
+ export function createCompilerRuntimeOrderedFallbackObjectRepresentationRef(
198
+ representation: CompilerRuntimeOrderedFallbackObjectRepresentationIR,
199
+ ): CompilerRuntimeOrderedFallbackObjectRepresentationRefIR {
200
+ return {
201
+ family: 'object',
202
+ kind: 'fallback_object_representation',
203
+ name: representation.name,
204
+ runtimeStateKind: representation.runtimeState.kind,
205
+ [compilerRuntimeOrderedFallbackObjectRepresentationRefBrand]: true,
206
+ };
207
+ }
208
+
209
+ export interface CompilerRuntimeSpecializedObjectFieldIR {
210
+ name: string;
211
+ valueRepresentation: 'tagged_value';
212
+ taggedPrimitiveKinds?: {
213
+ includesBoolean?: boolean;
214
+ includesNull?: boolean;
215
+ includesNumber?: boolean;
216
+ includesString?: boolean;
217
+ includesUndefined?: boolean;
218
+ };
219
+ closureSignatureId?: number;
220
+ classTagId?: number;
221
+ heapRepresentationName?: string;
222
+ heapArrayRepresentationName?: string;
223
+ methodClosureFunctionIds?: number[];
224
+ }
225
+
226
+ export interface CompilerRuntimeSpecializedObjectHostMethodIR {
227
+ name: string;
228
+ closureFunctionId: number;
229
+ closureSignatureId: number;
230
+ ownerClassName?: string;
231
+ }
232
+
233
+ export interface CompilerRuntimeSpecializedObjectHostClassConstructorIR {
234
+ closureFunctionId: number;
235
+ closureSignatureId: number;
236
+ }
237
+
238
+ export type CompilerRuntimeSpecializedObjectHostClassStaticFieldIR =
239
+ | {
240
+ name: string;
241
+ valueKind: 'number';
242
+ numberValue: number;
243
+ }
244
+ | {
245
+ name: string;
246
+ valueKind: 'boolean';
247
+ booleanValue: boolean;
248
+ }
249
+ | {
250
+ name: string;
251
+ valueKind: 'string';
252
+ literalId: number;
253
+ }
254
+ | {
255
+ name: string;
256
+ valueKind: 'class_constructor';
257
+ classTagId: number;
258
+ }
259
+ | {
260
+ name: string;
261
+ valueKind: 'number_array';
262
+ globalName: string;
263
+ }
264
+ | {
265
+ name: string;
266
+ valueKind: 'boolean_array';
267
+ globalName: string;
268
+ }
269
+ | {
270
+ name: string;
271
+ valueKind: 'string_array';
272
+ globalName: string;
273
+ }
274
+ | {
275
+ name: string;
276
+ valueKind: 'tagged_array';
277
+ globalName: string;
278
+ includesBoolean: boolean;
279
+ includesNull: boolean;
280
+ includesNumber: boolean;
281
+ includesString: boolean;
282
+ includesUndefined: boolean;
283
+ representation?: CompilerRuntimeRepresentationRefIR<'object'>;
284
+ }
285
+ | {
286
+ name: string;
287
+ valueKind: 'heap_object';
288
+ globalName: string;
289
+ representation: CompilerRuntimeRepresentationRefIR<'object'>;
290
+ };
291
+
292
+ export interface CompilerRuntimeClassStaticNumberArrayFieldIR {
293
+ kind: 'class_static_number_array_field';
294
+ globalName: string;
295
+ ownerName: string;
296
+ propertyName: string;
297
+ numberValues: readonly number[];
298
+ }
299
+
300
+ export interface CompilerRuntimeClassStaticBooleanArrayFieldIR {
301
+ kind: 'class_static_boolean_array_field';
302
+ globalName: string;
303
+ ownerName: string;
304
+ propertyName: string;
305
+ booleanValues: readonly boolean[];
306
+ }
307
+
308
+ export interface CompilerRuntimeClassStaticStringArrayFieldIR {
309
+ kind: 'class_static_string_array_field';
310
+ globalName: string;
311
+ ownerName: string;
312
+ propertyName: string;
313
+ literalIds: readonly number[];
314
+ }
315
+
316
+ export interface CompilerRuntimeClassStaticTaggedArrayFieldIR {
317
+ kind: 'class_static_tagged_array_field';
318
+ globalName: string;
319
+ initializerFunctionName: string;
320
+ ownerName: string;
321
+ propertyName: string;
322
+ includesBoolean: boolean;
323
+ includesNull: boolean;
324
+ includesNumber: boolean;
325
+ includesString: boolean;
326
+ includesUndefined: boolean;
327
+ representation?: CompilerRuntimeRepresentationRefIR<'object'>;
328
+ }
329
+
330
+ export interface CompilerRuntimeClassStaticHeapFieldIR {
331
+ kind: 'class_static_heap_field';
332
+ globalName: string;
333
+ initializerFunctionName: string;
334
+ ownerName: string;
335
+ propertyName: string;
336
+ representation: CompilerRuntimeRepresentationRefIR<'object'>;
337
+ }
338
+
339
+ export type CompilerRuntimeClassStaticFieldIR =
340
+ | CompilerRuntimeClassStaticNumberArrayFieldIR
341
+ | CompilerRuntimeClassStaticBooleanArrayFieldIR
342
+ | CompilerRuntimeClassStaticStringArrayFieldIR
343
+ | CompilerRuntimeClassStaticTaggedArrayFieldIR
344
+ | CompilerRuntimeClassStaticHeapFieldIR;
345
+
346
+ export interface CompilerRuntimeOrdinaryObjectPrototypeMembershipIR {
347
+ readonly kind: 'ordinary_object_prototype_membership';
348
+ readonly inheritedPropertyKeys: readonly string[];
349
+ }
350
+
351
+ export function createCompilerRuntimeOrdinaryObjectPrototypeMembership():
352
+ CompilerRuntimeOrdinaryObjectPrototypeMembershipIR {
353
+ return {
354
+ kind: 'ordinary_object_prototype_membership',
355
+ inheritedPropertyKeys: COMPILER_RUNTIME_ORDINARY_OBJECT_PROTOTYPE_OWN_PROPERTY_KEYS,
356
+ };
357
+ }
358
+
359
+ export interface CompilerRuntimeSpecializedObjectRepresentationIR {
360
+ kind: 'specialized_object_representation';
361
+ family: 'object';
362
+ name: string;
363
+ shapeName: string;
364
+ fields: CompilerRuntimeSpecializedObjectFieldIR[];
365
+ classTagId?: number;
366
+ baseRepresentationName?: string;
367
+ hostMethods?: CompilerRuntimeSpecializedObjectHostMethodIR[];
368
+ hostClassConstructor?: CompilerRuntimeSpecializedObjectHostClassConstructorIR;
369
+ hostStaticMethods?: CompilerRuntimeSpecializedObjectHostMethodIR[];
370
+ hostStaticFields?: CompilerRuntimeSpecializedObjectHostClassStaticFieldIR[];
371
+ fallbackRepresentation: CompilerRuntimeFallbackObjectRepresentationRefIR;
372
+ }
373
+
374
+ export interface CompilerRuntimeFallbackArrayRepresentationIR {
375
+ kind: 'fallback_array_representation';
376
+ family: 'array';
377
+ name: string;
378
+ elementRepresentation: 'tagged_value';
379
+ }
380
+
381
+ export interface CompilerRuntimeDenseArrayRepresentationIR {
382
+ kind: 'dense_array_representation';
383
+ family: 'array';
384
+ name: string;
385
+ elementRepresentation: 'tagged_value';
386
+ fallbackRepresentation: CompilerRuntimeFallbackArrayRepresentationRefIR;
387
+ }
388
+
389
+ export interface CompilerRuntimeFallbackStringRepresentationIR {
390
+ kind: 'fallback_string_representation';
391
+ family: 'string';
392
+ name: string;
393
+ codeUnitRepresentation: 'i32';
394
+ }
395
+
396
+ export interface CompilerRuntimeStringRepresentationIR {
397
+ kind: 'string_representation';
398
+ family: 'string';
399
+ name: string;
400
+ status: 'placeholder';
401
+ fallbackRepresentation: CompilerRuntimeFallbackStringRepresentationRefIR;
402
+ }
403
+
404
+ export type CompilerRuntimeRepresentationIR =
405
+ | CompilerRuntimeTaggedValueRepresentationIR
406
+ | CompilerRuntimeFallbackObjectRepresentationIR
407
+ | CompilerRuntimeDynamicObjectRepresentationIR
408
+ | CompilerRuntimeSpecializedObjectRepresentationIR
409
+ | CompilerRuntimeFallbackArrayRepresentationIR
410
+ | CompilerRuntimeDenseArrayRepresentationIR
411
+ | CompilerRuntimeFallbackStringRepresentationIR
412
+ | CompilerRuntimeStringRepresentationIR;
413
+
414
+ export interface CompilerRuntimeSpecializedRepresentationRefByFamily {
415
+ array: CompilerRuntimeSpecializedArrayRepresentationRefIR;
416
+ object: CompilerRuntimeSpecializedObjectRepresentationRefIR;
417
+ string: CompilerRuntimeSpecializedStringRepresentationRefIR;
418
+ }
419
+
420
+ export interface CompilerRuntimeFallbackRepresentationRefByFamily {
421
+ array: CompilerRuntimeFallbackArrayRepresentationRefIR;
422
+ object: CompilerRuntimeFallbackObjectRepresentationRefIR;
423
+ string: CompilerRuntimeFallbackStringRepresentationRefIR;
424
+ }
425
+
426
+ export interface CompilerRuntimeFallbackObjectEntryIR {
427
+ key: string;
428
+ valueName: string;
429
+ }
430
+
431
+ export interface CompilerRuntimeDynamicObjectEntryIR {
432
+ keyName: string;
433
+ valueName: string;
434
+ }
435
+
436
+ export interface CompilerRuntimeObjectFallbackMaterializationIR {
437
+ resultName: string;
438
+ entries: CompilerRuntimeFallbackObjectEntryIR[];
439
+ }
440
+
441
+ export interface CompilerRuntimeFallbackObjectBucketsIR {
442
+ elementType: 'i32';
443
+ emptyBucketSentinel: -1;
444
+ }
445
+
446
+ export interface CompilerRuntimeFallbackObjectSlotsOccupancyStatesIR {
447
+ empty: 0;
448
+ occupied: 1;
449
+ deleted: 2;
450
+ }
451
+
452
+ export interface CompilerRuntimeFallbackObjectProbeIR {
453
+ kind: 'linear';
454
+ stepType: 'i32';
455
+ }
456
+
457
+ export interface CompilerRuntimeFallbackObjectOrderingIR {
458
+ kind: 'js_own_property_order';
459
+ integerIndexKeyOrder: 'ascending_numeric';
460
+ stringKeyOrder: 'insertion';
461
+ }
462
+
463
+ export interface CompilerRuntimeFallbackObjectLoadFactorIR {
464
+ maxOccupiedNumerator: 3;
465
+ maxOccupiedDenominator: 4;
466
+ }
467
+
468
+ export interface CompilerRuntimeFallbackObjectSlotsIR {
469
+ hashCodeType: 'i32';
470
+ occupancyTagType: 'i32';
471
+ keyRepresentation: 'string';
472
+ valueRepresentation: 'tagged_value';
473
+ occupancyStates: CompilerRuntimeFallbackObjectSlotsOccupancyStatesIR;
474
+ }
475
+
476
+ export interface CompilerRuntimeOrderedFallbackObjectSlotsIR
477
+ extends CompilerRuntimeFallbackObjectSlotsIR {
478
+ insertionRankType: 'i32';
479
+ }
480
+
481
+ export interface CompilerRuntimeHashIndexedFallbackObjectRuntimeStateIR {
482
+ kind: 'hash_indexed_property_bag';
483
+ sizeType: 'i32';
484
+ storageKind: 'open_addressed';
485
+ capacityType: 'i32';
486
+ indexMaskType: 'i32';
487
+ occupiedSlotCountType: 'i32';
488
+ probe: CompilerRuntimeFallbackObjectProbeIR;
489
+ loadFactor: CompilerRuntimeFallbackObjectLoadFactorIR;
490
+ slots: CompilerRuntimeFallbackObjectSlotsIR;
491
+ }
492
+
493
+ export interface CompilerRuntimeOrderedHashIndexedFallbackObjectRuntimeStateIR {
494
+ kind: 'ordered_hash_indexed_property_bag';
495
+ sizeType: 'i32';
496
+ storageKind: 'open_addressed';
497
+ capacityType: 'i32';
498
+ indexMaskType: 'i32';
499
+ occupiedSlotCountType: 'i32';
500
+ probe: CompilerRuntimeFallbackObjectProbeIR;
501
+ loadFactor: CompilerRuntimeFallbackObjectLoadFactorIR;
502
+ ordering: CompilerRuntimeFallbackObjectOrderingIR;
503
+ nextInsertionRankType: 'i32';
504
+ slots: CompilerRuntimeOrderedFallbackObjectSlotsIR;
505
+ }
506
+
507
+ export type CompilerRuntimeFallbackObjectRuntimeStateIR =
508
+ | CompilerRuntimeHashIndexedFallbackObjectRuntimeStateIR
509
+ | CompilerRuntimeOrderedHashIndexedFallbackObjectRuntimeStateIR;
510
+
511
+ export interface CompilerRuntimeAdaptValueDetailsByFamily {
512
+ array: Record<never, never>;
513
+ object: {
514
+ fallbackMaterialization?: CompilerRuntimeObjectFallbackMaterializationIR;
515
+ };
516
+ string: Record<never, never>;
517
+ }
518
+
519
+ export type CompilerRuntimeAdaptValueIR<
520
+ TFamily extends keyof CompilerRuntimeSpecializedRepresentationRefByFamily,
521
+ > = {
522
+ kind: 'adapt_value';
523
+ family: TFamily;
524
+ mode: 'generalize_to_fallback';
525
+ valueName: string;
526
+ fromRepresentation: CompilerRuntimeSpecializedRepresentationRefByFamily[TFamily];
527
+ toRepresentation: CompilerRuntimeFallbackRepresentationRefByFamily[TFamily];
528
+ } & CompilerRuntimeAdaptValueDetailsByFamily[TFamily];
529
+
530
+ export type CompilerRuntimeAdaptObjectValueIR = CompilerRuntimeAdaptValueIR<'object'>;
531
+
532
+ export type CompilerRuntimeAdaptArrayValueIR = CompilerRuntimeAdaptValueIR<'array'>;
533
+
534
+ export type CompilerRuntimeAdaptStringValueIR = CompilerRuntimeAdaptValueIR<'string'>;
535
+
536
+ export interface CompilerRuntimeAllocateSpecializedObjectIR {
537
+ kind: 'allocate_specialized_object';
538
+ resultName: string;
539
+ representation: CompilerRuntimeSpecializedObjectRepresentationRefIR;
540
+ fieldValueNames: string[];
541
+ }
542
+
543
+ export interface CompilerRuntimeAllocateFallbackObjectIR {
544
+ kind: 'allocate_fallback_object';
545
+ resultName: string;
546
+ representation: CompilerRuntimeFallbackObjectRepresentationRefIR;
547
+ entries: CompilerRuntimeFallbackObjectEntryIR[];
548
+ }
549
+
550
+ export interface CompilerRuntimeAllocateDynamicObjectIR {
551
+ kind: 'allocate_dynamic_object';
552
+ resultName: string;
553
+ representation: CompilerRuntimeDynamicObjectRepresentationRefIR;
554
+ entries: CompilerRuntimeDynamicObjectEntryIR[];
555
+ }
556
+
557
+ export interface CompilerRuntimeCopyDynamicObjectEntriesIR {
558
+ kind: 'copy_dynamic_object_entries';
559
+ targetObjectName: string;
560
+ sourceObjectName: string;
561
+ representation: CompilerRuntimeDynamicObjectRepresentationRefIR;
562
+ }
563
+
564
+ export interface CompilerRuntimeGetSpecializedObjectFieldIR {
565
+ kind: 'get_specialized_object_field';
566
+ objectName: string;
567
+ resultName: string;
568
+ representation: CompilerRuntimeSpecializedObjectRepresentationRefIR;
569
+ fieldIndex: number;
570
+ }
571
+
572
+ export interface CompilerRuntimeGetFallbackObjectPropertyIR {
573
+ kind: 'get_fallback_object_property';
574
+ objectName: string;
575
+ resultName: string;
576
+ representation: CompilerRuntimeFallbackObjectRepresentationRefIR;
577
+ propertyKey: string;
578
+ }
579
+
580
+ export interface CompilerRuntimeGetDynamicObjectPropertyIR {
581
+ kind: 'get_dynamic_object_property';
582
+ objectName: string;
583
+ resultName: string;
584
+ representation: CompilerRuntimeDynamicObjectRepresentationRefIR;
585
+ propertyKeyName: string;
586
+ }
587
+
588
+ export interface CompilerRuntimeGetDynamicObjectSizeIR {
589
+ kind: 'get_dynamic_object_size';
590
+ objectName: string;
591
+ resultName: string;
592
+ representation: CompilerRuntimeDynamicObjectRepresentationRefIR;
593
+ }
594
+
595
+ export interface CompilerRuntimeDeleteDynamicObjectPropertyIR {
596
+ kind: 'delete_dynamic_object_property';
597
+ objectName: string;
598
+ resultName: string;
599
+ representation: CompilerRuntimeDynamicObjectRepresentationRefIR;
600
+ propertyKeyName: string;
601
+ }
602
+
603
+ export interface CompilerRuntimeClearDynamicObjectIR {
604
+ kind: 'clear_dynamic_object';
605
+ objectName: string;
606
+ resultName: string;
607
+ representation: CompilerRuntimeDynamicObjectRepresentationRefIR;
608
+ }
609
+
610
+ export interface CompilerRuntimeSetFallbackObjectPropertyIR {
611
+ kind: 'set_fallback_object_property';
612
+ objectName: string;
613
+ representation: CompilerRuntimeFallbackObjectRepresentationRefIR;
614
+ propertyKey: string;
615
+ valueName: string;
616
+ }
617
+
618
+ export interface CompilerRuntimeSetDynamicObjectPropertyIR {
619
+ kind: 'set_dynamic_object_property';
620
+ objectName: string;
621
+ representation: CompilerRuntimeDynamicObjectRepresentationRefIR;
622
+ propertyKeyName: string;
623
+ valueName: string;
624
+ }
625
+
626
+ export interface CompilerRuntimeHasSpecializedObjectOwnPropertyIR {
627
+ kind: 'has_specialized_object_own_property';
628
+ objectName: string;
629
+ resultName: string;
630
+ representation: CompilerRuntimeSpecializedObjectRepresentationRefIR;
631
+ fieldIndex: number;
632
+ }
633
+
634
+ export interface CompilerRuntimeHasFallbackObjectPropertyIR {
635
+ kind: 'has_fallback_object_property';
636
+ objectName: string;
637
+ resultName: string;
638
+ representation: CompilerRuntimeFallbackObjectRepresentationRefIR;
639
+ propertyKey: string;
640
+ }
641
+
642
+ export interface CompilerRuntimeHasDynamicObjectPropertyIR {
643
+ kind: 'has_dynamic_object_property';
644
+ objectName: string;
645
+ resultName: string;
646
+ representation: CompilerRuntimeDynamicObjectRepresentationRefIR;
647
+ propertyKeyName: string;
648
+ }
649
+
650
+ export interface CompilerRuntimeListSpecializedObjectKeysIR {
651
+ kind: 'list_specialized_object_keys';
652
+ objectName: string;
653
+ resultName: string;
654
+ representation: CompilerRuntimeSpecializedObjectRepresentationRefIR;
655
+ propertyKeys: readonly string[];
656
+ }
657
+
658
+ export interface CompilerRuntimeListFallbackObjectKeysIR {
659
+ kind: 'list_fallback_object_keys';
660
+ objectName: string;
661
+ resultName: string;
662
+ representation: CompilerRuntimeOrderedFallbackObjectRepresentationRefIR;
663
+ propertyKeys: readonly string[];
664
+ }
665
+
666
+ export interface CompilerRuntimeListDynamicObjectKeysIR {
667
+ kind: 'list_dynamic_object_keys';
668
+ objectName: string;
669
+ resultName: string;
670
+ representation: CompilerRuntimeDynamicObjectRepresentationRefIR;
671
+ }
672
+
673
+ export interface CompilerRuntimeListDynamicObjectValuesIR {
674
+ kind: 'list_dynamic_object_values';
675
+ objectName: string;
676
+ resultName: string;
677
+ representation: CompilerRuntimeDynamicObjectRepresentationRefIR;
678
+ resultType:
679
+ | 'owned_array_ref'
680
+ | 'owned_number_array_ref'
681
+ | 'owned_boolean_array_ref'
682
+ | 'owned_tagged_array_ref';
683
+ }
684
+
685
+ export interface CompilerRuntimeListDynamicObjectEntriesIR {
686
+ kind: 'list_dynamic_object_entries';
687
+ objectName: string;
688
+ resultName: string;
689
+ representation: CompilerRuntimeDynamicObjectRepresentationRefIR;
690
+ pairValueType: 'owned_string_ref' | 'tagged_ref';
691
+ }
692
+
693
+ export type CompilerRuntimeOperationIR =
694
+ | CompilerRuntimeAllocateSpecializedObjectIR
695
+ | CompilerRuntimeAllocateFallbackObjectIR
696
+ | CompilerRuntimeAllocateDynamicObjectIR
697
+ | CompilerRuntimeCopyDynamicObjectEntriesIR
698
+ | CompilerRuntimeGetSpecializedObjectFieldIR
699
+ | CompilerRuntimeGetFallbackObjectPropertyIR
700
+ | CompilerRuntimeGetDynamicObjectPropertyIR
701
+ | CompilerRuntimeGetDynamicObjectSizeIR
702
+ | CompilerRuntimeDeleteDynamicObjectPropertyIR
703
+ | CompilerRuntimeClearDynamicObjectIR
704
+ | CompilerRuntimeSetFallbackObjectPropertyIR
705
+ | CompilerRuntimeSetDynamicObjectPropertyIR
706
+ | CompilerRuntimeHasSpecializedObjectOwnPropertyIR
707
+ | CompilerRuntimeHasFallbackObjectPropertyIR
708
+ | CompilerRuntimeHasDynamicObjectPropertyIR
709
+ | CompilerRuntimeListSpecializedObjectKeysIR
710
+ | CompilerRuntimeListFallbackObjectKeysIR
711
+ | CompilerRuntimeListDynamicObjectKeysIR
712
+ | CompilerRuntimeListDynamicObjectValuesIR
713
+ | CompilerRuntimeListDynamicObjectEntriesIR
714
+ | CompilerRuntimeAdaptObjectValueIR
715
+ | CompilerRuntimeAdaptArrayValueIR
716
+ | CompilerRuntimeAdaptStringValueIR;
717
+
718
+ export interface CompilerRuntimeFunctionIR {
719
+ functionName: string;
720
+ operations: CompilerRuntimeOperationIR[];
721
+ }
722
+
723
+ export interface CompilerRuntimeIR {
724
+ classStaticFields?: readonly CompilerRuntimeClassStaticFieldIR[];
725
+ representations: CompilerRuntimeRepresentationIR[];
726
+ functions: CompilerRuntimeFunctionIR[];
727
+ }