@geastack/compiler 1.0.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 (966) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +149 -0
  3. package/dist/cli-analyze.d.ts +1 -0
  4. package/dist/cli-analyze.js +61 -0
  5. package/dist/cli-coverage.d.ts +1 -0
  6. package/dist/cli-coverage.js +329 -0
  7. package/dist/cli-emit.d.ts +10 -0
  8. package/dist/cli-emit.js +398 -0
  9. package/dist/cli-module-graph.d.ts +18 -0
  10. package/dist/cli-module-graph.js +123 -0
  11. package/dist/cli-package-source.d.ts +5 -0
  12. package/dist/cli-package-source.js +116 -0
  13. package/dist/cli-project.d.ts +2 -0
  14. package/dist/cli-project.js +60 -0
  15. package/dist/cli.d.ts +2 -0
  16. package/dist/cli.js +199 -0
  17. package/dist/compiler.d.ts +228 -0
  18. package/dist/compiler.js +1029 -0
  19. package/dist/conversion/algebra.d.ts +218 -0
  20. package/dist/conversion/algebra.js +155 -0
  21. package/dist/conversion/build.d.ts +67 -0
  22. package/dist/conversion/build.js +1378 -0
  23. package/dist/conversion/derive.d.ts +37 -0
  24. package/dist/conversion/derive.js +260 -0
  25. package/dist/conversion/graph-validation.d.ts +8 -0
  26. package/dist/conversion/graph-validation.js +97 -0
  27. package/dist/conversion/native-callable-adapter.d.ts +13 -0
  28. package/dist/conversion/native-callable-adapter.js +53 -0
  29. package/dist/conversion/native-class-reference.d.ts +12 -0
  30. package/dist/conversion/native-class-reference.js +39 -0
  31. package/dist/conversion/native-payload-transport.d.ts +25 -0
  32. package/dist/conversion/native-payload-transport.js +33 -0
  33. package/dist/conversion/native-selection.d.ts +49 -0
  34. package/dist/conversion/native-selection.js +135 -0
  35. package/dist/conversion/native-sum.d.ts +42 -0
  36. package/dist/conversion/native-sum.js +115 -0
  37. package/dist/conversion/nodes.d.ts +55 -0
  38. package/dist/conversion/nodes.js +91 -0
  39. package/dist/conversion/operand-view.d.ts +14 -0
  40. package/dist/conversion/operand-view.js +20 -0
  41. package/dist/conversion/record-view.d.ts +157 -0
  42. package/dist/conversion/record-view.js +273 -0
  43. package/dist/conversion/registry.d.ts +217 -0
  44. package/dist/conversion/registry.js +1 -0
  45. package/dist/diagnostics/model.d.ts +76 -0
  46. package/dist/diagnostics/model.js +60 -0
  47. package/dist/diagnostics/sweep.d.ts +31 -0
  48. package/dist/diagnostics/sweep.js +112 -0
  49. package/dist/identity/ids.d.ts +179 -0
  50. package/dist/identity/ids.js +212 -0
  51. package/dist/ir/absent-class-arm.d.ts +48 -0
  52. package/dist/ir/absent-class-arm.js +157 -0
  53. package/dist/ir/borrow-effects.d.ts +23 -0
  54. package/dist/ir/borrow-effects.js +151 -0
  55. package/dist/ir/borrowed-call-arguments.d.ts +40 -0
  56. package/dist/ir/borrowed-call-arguments.js +117 -0
  57. package/dist/ir/build.d.ts +168 -0
  58. package/dist/ir/build.js +459 -0
  59. package/dist/ir/call-dispatch.d.ts +38 -0
  60. package/dist/ir/call-dispatch.js +502 -0
  61. package/dist/ir/call-entry.d.ts +142 -0
  62. package/dist/ir/call-entry.js +386 -0
  63. package/dist/ir/callable-class-flow.d.ts +27 -0
  64. package/dist/ir/callable-class-flow.js +1386 -0
  65. package/dist/ir/callable-field-slots.d.ts +22 -0
  66. package/dist/ir/callable-field-slots.js +166 -0
  67. package/dist/ir/callable-identity-demand.d.ts +52 -0
  68. package/dist/ir/callable-identity-demand.js +460 -0
  69. package/dist/ir/callable-member-candidates.d.ts +9 -0
  70. package/dist/ir/callable-member-candidates.js +39 -0
  71. package/dist/ir/callable-records.d.ts +21 -0
  72. package/dist/ir/callable-records.js +411 -0
  73. package/dist/ir/captures.d.ts +26 -0
  74. package/dist/ir/captures.js +335 -0
  75. package/dist/ir/certificate.d.ts +45 -0
  76. package/dist/ir/certificate.js +47 -0
  77. package/dist/ir/certify/carrier-keys.d.ts +73 -0
  78. package/dist/ir/certify/carrier-keys.js +221 -0
  79. package/dist/ir/certify/function-source.d.ts +4 -0
  80. package/dist/ir/certify/function-source.js +28 -0
  81. package/dist/ir/certify/has-property-key.d.ts +88 -0
  82. package/dist/ir/certify/has-property-key.js +116 -0
  83. package/dist/ir/certify/instanceof-key.d.ts +24 -0
  84. package/dist/ir/certify/instanceof-key.js +35 -0
  85. package/dist/ir/certify/property-access-keys.d.ts +172 -0
  86. package/dist/ir/certify/property-access-keys.js +291 -0
  87. package/dist/ir/certify/property-access.d.ts +3 -0
  88. package/dist/ir/certify/property-access.js +597 -0
  89. package/dist/ir/certify/runtime-helper.d.ts +3 -0
  90. package/dist/ir/certify/runtime-helper.js +326 -0
  91. package/dist/ir/certify/typeof-operand.d.ts +14 -0
  92. package/dist/ir/certify/typeof-operand.js +16 -0
  93. package/dist/ir/certify.d.ts +123 -0
  94. package/dist/ir/certify.js +481 -0
  95. package/dist/ir/class-evaluation.d.ts +26 -0
  96. package/dist/ir/class-evaluation.js +50 -0
  97. package/dist/ir/class-static-fields.d.ts +60 -0
  98. package/dist/ir/class-static-fields.js +108 -0
  99. package/dist/ir/construct-entry.d.ts +26 -0
  100. package/dist/ir/construct-entry.js +117 -0
  101. package/dist/ir/dead-values.d.ts +90 -0
  102. package/dist/ir/dead-values.js +184 -0
  103. package/dist/ir/deferral.d.ts +99 -0
  104. package/dist/ir/deferral.js +409 -0
  105. package/dist/ir/dense-loops.d.ts +230 -0
  106. package/dist/ir/dense-loops.js +697 -0
  107. package/dist/ir/dominance.d.ts +82 -0
  108. package/dist/ir/dominance.js +268 -0
  109. package/dist/ir/emission-representations.d.ts +71 -0
  110. package/dist/ir/emission-representations.js +350 -0
  111. package/dist/ir/facts.d.ts +218 -0
  112. package/dist/ir/facts.js +181 -0
  113. package/dist/ir/fixed-data-definition.d.ts +19 -0
  114. package/dist/ir/fixed-data-definition.js +49 -0
  115. package/dist/ir/generator-split.d.ts +38 -0
  116. package/dist/ir/generator-split.js +329 -0
  117. package/dist/ir/hoist.d.ts +55 -0
  118. package/dist/ir/hoist.js +375 -0
  119. package/dist/ir/instantiation.d.ts +61 -0
  120. package/dist/ir/instantiation.js +137 -0
  121. package/dist/ir/integer-storage.d.ts +170 -0
  122. package/dist/ir/integer-storage.js +822 -0
  123. package/dist/ir/integers.d.ts +161 -0
  124. package/dist/ir/integers.js +539 -0
  125. package/dist/ir/integrity-restrictions.d.ts +50 -0
  126. package/dist/ir/integrity-restrictions.js +118 -0
  127. package/dist/ir/local-iterators.d.ts +4 -0
  128. package/dist/ir/local-iterators.js +27 -0
  129. package/dist/ir/lower-allocation.d.ts +4 -0
  130. package/dist/ir/lower-allocation.js +325 -0
  131. package/dist/ir/lower-completion.d.ts +15 -0
  132. package/dist/ir/lower-completion.js +25 -0
  133. package/dist/ir/lower-destructuring.d.ts +5 -0
  134. package/dist/ir/lower-destructuring.js +693 -0
  135. package/dist/ir/lower-element.d.ts +29 -0
  136. package/dist/ir/lower-element.js +111 -0
  137. package/dist/ir/lower-exceptions.d.ts +47 -0
  138. package/dist/ir/lower-exceptions.js +92 -0
  139. package/dist/ir/lower-flow.d.ts +137 -0
  140. package/dist/ir/lower-flow.js +600 -0
  141. package/dist/ir/lower-graph.d.ts +218 -0
  142. package/dist/ir/lower-graph.js +687 -0
  143. package/dist/ir/lower-invocation.d.ts +4 -0
  144. package/dist/ir/lower-invocation.js +514 -0
  145. package/dist/ir/lower-narrow.d.ts +53 -0
  146. package/dist/ir/lower-narrow.js +320 -0
  147. package/dist/ir/lower-operands.d.ts +272 -0
  148. package/dist/ir/lower-operands.js +461 -0
  149. package/dist/ir/lower-property.d.ts +21 -0
  150. package/dist/ir/lower-property.js +132 -0
  151. package/dist/ir/lower-protocol.d.ts +11 -0
  152. package/dist/ir/lower-protocol.js +118 -0
  153. package/dist/ir/lower-short-circuit.d.ts +41 -0
  154. package/dist/ir/lower-short-circuit.js +63 -0
  155. package/dist/ir/lower.d.ts +82 -0
  156. package/dist/ir/lower.js +1346 -0
  157. package/dist/ir/model.d.ts +1474 -0
  158. package/dist/ir/model.js +6 -0
  159. package/dist/ir/native-absent-property.d.ts +3 -0
  160. package/dist/ir/native-absent-property.js +13 -0
  161. package/dist/ir/native-array-transport.d.ts +7 -0
  162. package/dist/ir/native-array-transport.js +46 -0
  163. package/dist/ir/native-callable-bind.d.ts +9 -0
  164. package/dist/ir/native-callable-bind.js +30 -0
  165. package/dist/ir/native-carrier-predicate.d.ts +34 -0
  166. package/dist/ir/native-carrier-predicate.js +49 -0
  167. package/dist/ir/native-class-accessor.d.ts +18 -0
  168. package/dist/ir/native-class-accessor.js +52 -0
  169. package/dist/ir/native-class-construction.d.ts +16 -0
  170. package/dist/ir/native-class-construction.js +71 -0
  171. package/dist/ir/native-class-initialization.d.ts +15 -0
  172. package/dist/ir/native-class-initialization.js +56 -0
  173. package/dist/ir/native-class-origins.d.ts +13 -0
  174. package/dist/ir/native-class-origins.js +237 -0
  175. package/dist/ir/native-dictionary-transport.d.ts +6 -0
  176. package/dist/ir/native-dictionary-transport.js +37 -0
  177. package/dist/ir/native-enumeration.d.ts +14 -0
  178. package/dist/ir/native-enumeration.js +26 -0
  179. package/dist/ir/native-equality.d.ts +10 -0
  180. package/dist/ir/native-equality.js +18 -0
  181. package/dist/ir/native-field-owner.d.ts +37 -0
  182. package/dist/ir/native-field-owner.js +183 -0
  183. package/dist/ir/native-fixed-layout.d.ts +41 -0
  184. package/dist/ir/native-fixed-layout.js +232 -0
  185. package/dist/ir/native-host-construction.d.ts +53 -0
  186. package/dist/ir/native-host-construction.js +62 -0
  187. package/dist/ir/native-key-query.d.ts +4 -0
  188. package/dist/ir/native-key-query.js +38 -0
  189. package/dist/ir/native-merge-transport.d.ts +25 -0
  190. package/dist/ir/native-merge-transport.js +71 -0
  191. package/dist/ir/native-record-index-transport.d.ts +11 -0
  192. package/dist/ir/native-record-index-transport.js +34 -0
  193. package/dist/ir/native-record-index.d.ts +12 -0
  194. package/dist/ir/native-record-index.js +27 -0
  195. package/dist/ir/native-reflect-field.d.ts +5 -0
  196. package/dist/ir/native-reflect-field.js +33 -0
  197. package/dist/ir/native-sequence-transport.d.ts +7 -0
  198. package/dist/ir/native-sequence-transport.js +53 -0
  199. package/dist/ir/numeric-intrinsics.d.ts +13 -0
  200. package/dist/ir/numeric-intrinsics.js +57 -0
  201. package/dist/ir/object-value-conversions.d.ts +20 -0
  202. package/dist/ir/object-value-conversions.js +50 -0
  203. package/dist/ir/physical-class-reflection.d.ts +9 -0
  204. package/dist/ir/physical-class-reflection.js +57 -0
  205. package/dist/ir/presence-proof.d.ts +42 -0
  206. package/dist/ir/presence-proof.js +490 -0
  207. package/dist/ir/program-facts.d.ts +106 -0
  208. package/dist/ir/program-facts.js +319 -0
  209. package/dist/ir/proven-branches.d.ts +16 -0
  210. package/dist/ir/proven-branches.js +219 -0
  211. package/dist/ir/queries.d.ts +41 -0
  212. package/dist/ir/queries.js +213 -0
  213. package/dist/ir/reflection-demand.d.ts +64 -0
  214. package/dist/ir/reflection-demand.js +1394 -0
  215. package/dist/ir/refusal.d.ts +43 -0
  216. package/dist/ir/refusal.js +28 -0
  217. package/dist/ir/shake.d.ts +37 -0
  218. package/dist/ir/shake.js +1078 -0
  219. package/dist/ir/static-callables.d.ts +11 -0
  220. package/dist/ir/static-callables.js +163 -0
  221. package/dist/ir/string-layout-reuse.d.ts +13 -0
  222. package/dist/ir/string-layout-reuse.js +39 -0
  223. package/dist/ir/string-length-reuse.d.ts +8 -0
  224. package/dist/ir/string-length-reuse.js +47 -0
  225. package/dist/ir/transfer.d.ts +78 -0
  226. package/dist/ir/transfer.js +270 -0
  227. package/dist/ir/type-query-results.d.ts +25 -0
  228. package/dist/ir/type-query-results.js +96 -0
  229. package/dist/ir/typed-property-access.d.ts +100 -0
  230. package/dist/ir/typed-property-access.js +161 -0
  231. package/dist/ir/verify.d.ts +19 -0
  232. package/dist/ir/verify.js +355 -0
  233. package/dist/plugins/apple/constructors.d.ts +112 -0
  234. package/dist/plugins/apple/constructors.js +217 -0
  235. package/dist/plugins/apple/host.d.ts +181 -0
  236. package/dist/plugins/apple/host.js +262 -0
  237. package/dist/plugins/apple/jsx.d.ts +2 -0
  238. package/dist/plugins/apple/jsx.js +293 -0
  239. package/dist/plugins/apple/members.d.ts +16 -0
  240. package/dist/plugins/apple/members.js +190 -0
  241. package/dist/plugins/apple/plugin.d.ts +2 -0
  242. package/dist/plugins/apple/plugin.js +156 -0
  243. package/dist/plugins/gea/component-classes.d.ts +25 -0
  244. package/dist/plugins/gea/component-classes.js +162 -0
  245. package/dist/plugins/gea/component-inline.d.ts +13 -0
  246. package/dist/plugins/gea/component-inline.js +532 -0
  247. package/dist/plugins/gea/constructors.d.ts +23 -0
  248. package/dist/plugins/gea/constructors.js +100 -0
  249. package/dist/plugins/gea/contract.d.ts +150 -0
  250. package/dist/plugins/gea/contract.js +195 -0
  251. package/dist/plugins/gea/element-ref.d.ts +31 -0
  252. package/dist/plugins/gea/element-ref.js +45 -0
  253. package/dist/plugins/gea/host.d.ts +520 -0
  254. package/dist/plugins/gea/host.js +762 -0
  255. package/dist/plugins/gea/lower.d.ts +6 -0
  256. package/dist/plugins/gea/lower.js +195 -0
  257. package/dist/plugins/gea/members.d.ts +22 -0
  258. package/dist/plugins/gea/members.js +221 -0
  259. package/dist/plugins/gea/plugin.d.ts +22 -0
  260. package/dist/plugins/gea/plugin.js +307 -0
  261. package/dist/plugins/gea/prelude.d.ts +78 -0
  262. package/dist/plugins/gea/prelude.js +153 -0
  263. package/dist/plugins/gea/producer.d.ts +5 -0
  264. package/dist/plugins/gea/producer.js +52 -0
  265. package/dist/plugins/gea/reactive-slots.d.ts +49 -0
  266. package/dist/plugins/gea/reactive-slots.js +578 -0
  267. package/dist/plugins/gea/render-bridge.d.ts +6 -0
  268. package/dist/plugins/gea/render-bridge.js +281 -0
  269. package/dist/plugins/gea/slots.d.ts +15 -0
  270. package/dist/plugins/gea/slots.js +36 -0
  271. package/dist/plugins/gea/template-analysis.d.ts +151 -0
  272. package/dist/plugins/gea/template-analysis.js +346 -0
  273. package/dist/plugins/gea/user-agent-styles.d.ts +9 -0
  274. package/dist/plugins/gea/user-agent-styles.js +94 -0
  275. package/dist/plugins/installed.d.ts +19 -0
  276. package/dist/plugins/installed.js +21 -0
  277. package/dist/plugins/load.d.ts +7 -0
  278. package/dist/plugins/load.js +207 -0
  279. package/dist/plugins/model.d.ts +735 -0
  280. package/dist/plugins/model.js +47 -0
  281. package/dist/plugins/webgl/host.d.ts +77 -0
  282. package/dist/plugins/webgl/host.js +162 -0
  283. package/dist/plugins/webgl/plugin.d.ts +40 -0
  284. package/dist/plugins/webgl/plugin.js +99 -0
  285. package/dist/preflight/obligations.d.ts +206 -0
  286. package/dist/preflight/obligations.js +36 -0
  287. package/dist/preflight/report.d.ts +20 -0
  288. package/dist/preflight/report.js +61 -0
  289. package/dist/preflight/run.d.ts +39 -0
  290. package/dist/preflight/run.js +403 -0
  291. package/dist/project-preparation.d.ts +33 -0
  292. package/dist/project-preparation.js +314 -0
  293. package/dist/projection/abi.d.ts +82 -0
  294. package/dist/projection/abi.js +349 -0
  295. package/dist/projection/apply-arguments.d.ts +12 -0
  296. package/dist/projection/apply-arguments.js +20 -0
  297. package/dist/projection/bindings.d.ts +250 -0
  298. package/dist/projection/bindings.js +340 -0
  299. package/dist/projection/callee.d.ts +196 -0
  300. package/dist/projection/callee.js +444 -0
  301. package/dist/projection/class-property-presence.d.ts +28 -0
  302. package/dist/projection/class-property-presence.js +58 -0
  303. package/dist/projection/class-prototype.d.ts +5 -0
  304. package/dist/projection/class-prototype.js +23 -0
  305. package/dist/projection/class-storage.d.ts +26 -0
  306. package/dist/projection/class-storage.js +236 -0
  307. package/dist/projection/classes.d.ts +283 -0
  308. package/dist/projection/classes.js +944 -0
  309. package/dist/projection/coercions.d.ts +20 -0
  310. package/dist/projection/coercions.js +33 -0
  311. package/dist/projection/dispatch.d.ts +167 -0
  312. package/dist/projection/dispatch.js +379 -0
  313. package/dist/projection/fields.d.ts +123 -0
  314. package/dist/projection/fields.js +383 -0
  315. package/dist/projection/instance-test.d.ts +78 -0
  316. package/dist/projection/instance-test.js +156 -0
  317. package/dist/projection/slots.d.ts +146 -0
  318. package/dist/projection/slots.js +663 -0
  319. package/dist/projection/synthesized-abi.d.ts +61 -0
  320. package/dist/projection/synthesized-abi.js +94 -0
  321. package/dist/representation/array-index.d.ts +14 -0
  322. package/dist/representation/array-index.js +17 -0
  323. package/dist/representation/callable-object.d.ts +3 -0
  324. package/dist/representation/callable-object.js +6 -0
  325. package/dist/representation/collections.d.ts +84 -0
  326. package/dist/representation/collections.js +139 -0
  327. package/dist/representation/derive.d.ts +159 -0
  328. package/dist/representation/derive.js +2546 -0
  329. package/dist/representation/difference.d.ts +30 -0
  330. package/dist/representation/difference.js +240 -0
  331. package/dist/representation/field-descriptor-policy.d.ts +19 -0
  332. package/dist/representation/field-descriptor-policy.js +39 -0
  333. package/dist/representation/function-constructor.d.ts +13 -0
  334. package/dist/representation/function-constructor.js +9 -0
  335. package/dist/representation/host-abi.d.ts +32 -0
  336. package/dist/representation/host-abi.js +97 -0
  337. package/dist/representation/host-templates.d.ts +67 -0
  338. package/dist/representation/host-templates.js +94 -0
  339. package/dist/representation/intersection.d.ts +84 -0
  340. package/dist/representation/intersection.js +149 -0
  341. package/dist/representation/literal-destination.d.ts +43 -0
  342. package/dist/representation/literal-destination.js +133 -0
  343. package/dist/representation/merge.d.ts +18 -0
  344. package/dist/representation/merge.js +83 -0
  345. package/dist/representation/model.d.ts +1160 -0
  346. package/dist/representation/model.js +1019 -0
  347. package/dist/representation/numeric-index.d.ts +13 -0
  348. package/dist/representation/numeric-index.js +29 -0
  349. package/dist/representation/object-shape.d.ts +109 -0
  350. package/dist/representation/object-shape.js +123 -0
  351. package/dist/representation/optional.d.ts +12 -0
  352. package/dist/representation/optional.js +87 -0
  353. package/dist/representation/plan.d.ts +60 -0
  354. package/dist/representation/plan.js +78 -0
  355. package/dist/representation/policies.d.ts +589 -0
  356. package/dist/representation/policies.js +107 -0
  357. package/dist/representation/primitive-domain.d.ts +1 -0
  358. package/dist/representation/primitive-domain.js +1 -0
  359. package/dist/representation/primitives.d.ts +44 -0
  360. package/dist/representation/primitives.js +78 -0
  361. package/dist/representation/publish.d.ts +49 -0
  362. package/dist/representation/publish.js +648 -0
  363. package/dist/representation/record-fields.d.ts +96 -0
  364. package/dist/representation/record-fields.js +116 -0
  365. package/dist/representation/template-object.d.ts +11 -0
  366. package/dist/representation/template-object.js +26 -0
  367. package/dist/representation/union.d.ts +30 -0
  368. package/dist/representation/union.js +324 -0
  369. package/dist/representation/value-records.d.ts +3 -0
  370. package/dist/representation/value-records.js +307 -0
  371. package/dist/representation/verify.d.ts +17 -0
  372. package/dist/representation/verify.js +221 -0
  373. package/dist/semantics/alias-this-field-declaration-transform.d.ts +4 -0
  374. package/dist/semantics/alias-this-field-declaration-transform.js +207 -0
  375. package/dist/semantics/ambient-type-realization-transform.d.ts +62 -0
  376. package/dist/semantics/ambient-type-realization-transform.js +168 -0
  377. package/dist/semantics/ambient.d.ts +24 -0
  378. package/dist/semantics/ambient.js +119 -0
  379. package/dist/semantics/borrowed-builtin-call-bind-source-transform.d.ts +4 -0
  380. package/dist/semantics/borrowed-builtin-call-bind-source-transform.js +341 -0
  381. package/dist/semantics/callable-origins.d.ts +46 -0
  382. package/dist/semantics/callable-origins.js +354 -0
  383. package/dist/semantics/class-alias.d.ts +7 -0
  384. package/dist/semantics/class-alias.js +37 -0
  385. package/dist/semantics/class-heritage.d.ts +34 -0
  386. package/dist/semantics/class-heritage.js +104 -0
  387. package/dist/semantics/commonjs-wrapper.d.ts +69 -0
  388. package/dist/semantics/commonjs-wrapper.js +231 -0
  389. package/dist/semantics/constructor-slot-subclasses.d.ts +28 -0
  390. package/dist/semantics/constructor-slot-subclasses.js +112 -0
  391. package/dist/semantics/declaration-overlay-transform.d.ts +35 -0
  392. package/dist/semantics/declaration-overlay-transform.js +2157 -0
  393. package/dist/semantics/define-property-source-transform.d.ts +4 -0
  394. package/dist/semantics/define-property-source-transform.js +437 -0
  395. package/dist/semantics/diagnostic-source-preparation.d.ts +24 -0
  396. package/dist/semantics/diagnostic-source-preparation.js +82 -0
  397. package/dist/semantics/documentation-ranges.d.ts +22 -0
  398. package/dist/semantics/documentation-ranges.js +36 -0
  399. package/dist/semantics/dynamic-fallback.d.ts +86 -0
  400. package/dist/semantics/dynamic-fallback.js +249 -0
  401. package/dist/semantics/frontend-timing.d.ts +6 -0
  402. package/dist/semantics/frontend-timing.js +35 -0
  403. package/dist/semantics/frontend.d.ts +504 -0
  404. package/dist/semantics/frontend.js +1157 -0
  405. package/dist/semantics/host-declaration-provenance.d.ts +11 -0
  406. package/dist/semantics/host-declaration-provenance.js +18 -0
  407. package/dist/semantics/host-methods.d.ts +24 -0
  408. package/dist/semantics/host-methods.js +74 -0
  409. package/dist/semantics/host-protocols.d.ts +429 -0
  410. package/dist/semantics/host-protocols.js +1501 -0
  411. package/dist/semantics/inherited-accessor.d.ts +7 -0
  412. package/dist/semantics/inherited-accessor.js +48 -0
  413. package/dist/semantics/interface-families.d.ts +70 -0
  414. package/dist/semantics/interface-families.js +180 -0
  415. package/dist/semantics/interface-implementors.d.ts +53 -0
  416. package/dist/semantics/interface-implementors.js +87 -0
  417. package/dist/semantics/jsdoc-namepath-transform.d.ts +4 -0
  418. package/dist/semantics/jsdoc-namepath-transform.js +85 -0
  419. package/dist/semantics/model/coverage.d.ts +68 -0
  420. package/dist/semantics/model/coverage.js +73 -0
  421. package/dist/semantics/model/edges.d.ts +103 -0
  422. package/dist/semantics/model/edges.js +20 -0
  423. package/dist/semantics/model/graph.d.ts +55 -0
  424. package/dist/semantics/model/graph.js +129 -0
  425. package/dist/semantics/model/operands.d.ts +159 -0
  426. package/dist/semantics/model/operands.js +26 -0
  427. package/dist/semantics/model/operations.d.ts +496 -0
  428. package/dist/semantics/model/operations.js +2 -0
  429. package/dist/semantics/model/primitive-domain.d.ts +26 -0
  430. package/dist/semantics/model/primitive-domain.js +38 -0
  431. package/dist/semantics/model/selected-signature.d.ts +261 -0
  432. package/dist/semantics/model/selected-signature.js +55 -0
  433. package/dist/semantics/model/structural-type-table.d.ts +93 -0
  434. package/dist/semantics/model/structural-type-table.js +237 -0
  435. package/dist/semantics/model/structural-types.d.ts +367 -0
  436. package/dist/semantics/model/structural-types.js +200 -0
  437. package/dist/semantics/module-resolution.d.ts +23 -0
  438. package/dist/semantics/module-resolution.js +227 -0
  439. package/dist/semantics/new-callee-class-tag-source-transform.d.ts +4 -0
  440. package/dist/semantics/new-callee-class-tag-source-transform.js +64 -0
  441. package/dist/semantics/node-project.d.ts +13 -0
  442. package/dist/semantics/node-project.js +107 -0
  443. package/dist/semantics/node-source-hooks.d.ts +1 -0
  444. package/dist/semantics/node-source-hooks.js +63 -0
  445. package/dist/semantics/normalize/absent-globals.d.ts +143 -0
  446. package/dist/semantics/normalize/absent-globals.js +191 -0
  447. package/dist/semantics/normalize/arguments-objects.d.ts +43 -0
  448. package/dist/semantics/normalize/arguments-objects.js +60 -0
  449. package/dist/semantics/normalize/asserted-arm-absence.d.ts +28 -0
  450. package/dist/semantics/normalize/asserted-arm-absence.js +61 -0
  451. package/dist/semantics/normalize/assignment-patterns.d.ts +70 -0
  452. package/dist/semantics/normalize/assignment-patterns.js +147 -0
  453. package/dist/semantics/normalize/bag-absence.d.ts +8 -0
  454. package/dist/semantics/normalize/bag-absence.js +42 -0
  455. package/dist/semantics/normalize/binding-fixpoint.d.ts +36 -0
  456. package/dist/semantics/normalize/binding-fixpoint.js +140 -0
  457. package/dist/semantics/normalize/callback-parameter-contracts.d.ts +16 -0
  458. package/dist/semantics/normalize/callback-parameter-contracts.js +91 -0
  459. package/dist/semantics/normalize/cells/agreement.d.ts +46 -0
  460. package/dist/semantics/normalize/cells/agreement.js +34 -0
  461. package/dist/semantics/normalize/cells/candidates.d.ts +17 -0
  462. package/dist/semantics/normalize/cells/candidates.js +35 -0
  463. package/dist/semantics/normalize/cells/facts.d.ts +19 -0
  464. package/dist/semantics/normalize/cells/facts.js +90 -0
  465. package/dist/semantics/normalize/cells/index.d.ts +10 -0
  466. package/dist/semantics/normalize/cells/index.js +6 -0
  467. package/dist/semantics/normalize/cells/model.d.ts +98 -0
  468. package/dist/semantics/normalize/cells/model.js +2 -0
  469. package/dist/semantics/normalize/cells/policies/bag.d.ts +44 -0
  470. package/dist/semantics/normalize/cells/policies/bag.js +114 -0
  471. package/dist/semantics/normalize/cells/policies/collection.d.ts +42 -0
  472. package/dist/semantics/normalize/cells/policies/collection.js +218 -0
  473. package/dist/semantics/normalize/cells/policies/field.d.ts +28 -0
  474. package/dist/semantics/normalize/cells/policies/field.js +40 -0
  475. package/dist/semantics/normalize/cells/policies/index.d.ts +49 -0
  476. package/dist/semantics/normalize/cells/policies/index.js +58 -0
  477. package/dist/semantics/normalize/cells/policies/local.d.ts +18 -0
  478. package/dist/semantics/normalize/cells/policies/local.js +37 -0
  479. package/dist/semantics/normalize/cells/policies/parameter.d.ts +28 -0
  480. package/dist/semantics/normalize/cells/policies/parameter.js +39 -0
  481. package/dist/semantics/normalize/cells/policies/return.d.ts +26 -0
  482. package/dist/semantics/normalize/cells/policies/return.js +45 -0
  483. package/dist/semantics/normalize/cells/policies/shared.d.ts +33 -0
  484. package/dist/semantics/normalize/cells/policies/shared.js +45 -0
  485. package/dist/semantics/normalize/cells/policy.d.ts +72 -0
  486. package/dist/semantics/normalize/cells/policy.js +18 -0
  487. package/dist/semantics/normalize/cells/registry.d.ts +14 -0
  488. package/dist/semantics/normalize/cells/registry.js +17 -0
  489. package/dist/semantics/normalize/census-refusal.d.ts +62 -0
  490. package/dist/semantics/normalize/census-refusal.js +27 -0
  491. package/dist/semantics/normalize/census.d.ts +109 -0
  492. package/dist/semantics/normalize/census.js +667 -0
  493. package/dist/semantics/normalize/collection-bindings.d.ts +278 -0
  494. package/dist/semantics/normalize/collection-bindings.js +677 -0
  495. package/dist/semantics/normalize/commonjs-module-record.d.ts +21 -0
  496. package/dist/semantics/normalize/commonjs-module-record.js +289 -0
  497. package/dist/semantics/normalize/commonjs-require.d.ts +13 -0
  498. package/dist/semantics/normalize/commonjs-require.js +1527 -0
  499. package/dist/semantics/normalize/contribution.d.ts +63 -0
  500. package/dist/semantics/normalize/contribution.js +172 -0
  501. package/dist/semantics/normalize/dead-typeof-guards.d.ts +64 -0
  502. package/dist/semantics/normalize/dead-typeof-guards.js +152 -0
  503. package/dist/semantics/normalize/deferred-intrinsic-protocols.d.ts +57 -0
  504. package/dist/semantics/normalize/deferred-intrinsic-protocols.js +109 -0
  505. package/dist/semantics/normalize/derived-expression-type.d.ts +1070 -0
  506. package/dist/semantics/normalize/derived-expression-type.js +3463 -0
  507. package/dist/semantics/normalize/evaluation-order.d.ts +16 -0
  508. package/dist/semantics/normalize/evaluation-order.js +37 -0
  509. package/dist/semantics/normalize/field-bindings.d.ts +167 -0
  510. package/dist/semantics/normalize/field-bindings.js +1125 -0
  511. package/dist/semantics/normalize/flow/array-element-continuation.d.ts +27 -0
  512. package/dist/semantics/normalize/flow/array-element-continuation.js +1452 -0
  513. package/dist/semantics/normalize/flow/callable-array-origins.d.ts +42 -0
  514. package/dist/semantics/normalize/flow/callable-array-origins.js +318 -0
  515. package/dist/semantics/normalize/flow/callable-completions.d.ts +45 -0
  516. package/dist/semantics/normalize/flow/callable-completions.js +82 -0
  517. package/dist/semantics/normalize/flow/callable-reach.d.ts +237 -0
  518. package/dist/semantics/normalize/flow/callable-reach.js +7174 -0
  519. package/dist/semantics/normalize/flow/class-family-member-read.d.ts +16 -0
  520. package/dist/semantics/normalize/flow/class-family-member-read.js +992 -0
  521. package/dist/semantics/normalize/flow/collection-value-continuation.d.ts +21 -0
  522. package/dist/semantics/normalize/flow/collection-value-continuation.js +192 -0
  523. package/dist/semantics/normalize/flow/component-solver.d.ts +199 -0
  524. package/dist/semantics/normalize/flow/component-solver.js +587 -0
  525. package/dist/semantics/normalize/flow/computed-key-set.d.ts +84 -0
  526. package/dist/semantics/normalize/flow/computed-key-set.js +660 -0
  527. package/dist/semantics/normalize/flow/export-importers.d.ts +24 -0
  528. package/dist/semantics/normalize/flow/export-importers.js +269 -0
  529. package/dist/semantics/normalize/flow/host-text-sink.d.ts +25 -0
  530. package/dist/semantics/normalize/flow/host-text-sink.js +87 -0
  531. package/dist/semantics/normalize/flow/intrinsic-array-callback-frames.d.ts +84 -0
  532. package/dist/semantics/normalize/flow/intrinsic-array-callback-frames.js +180 -0
  533. package/dist/semantics/normalize/flow/intrinsic-data-definition.d.ts +35 -0
  534. package/dist/semantics/normalize/flow/intrinsic-data-definition.js +140 -0
  535. package/dist/semantics/normalize/flow/invocation-facts.d.ts +98 -0
  536. package/dist/semantics/normalize/flow/invocation-facts.js +257 -0
  537. package/dist/semantics/normalize/flow/member-call-forwarding.d.ts +122 -0
  538. package/dist/semantics/normalize/flow/member-call-forwarding.js +835 -0
  539. package/dist/semantics/normalize/flow/model.d.ts +357 -0
  540. package/dist/semantics/normalize/flow/model.js +177 -0
  541. package/dist/semantics/normalize/flow/native-collection-protocol.d.ts +24 -0
  542. package/dist/semantics/normalize/flow/native-collection-protocol.js +252 -0
  543. package/dist/semantics/normalize/flow/node-path-token.d.ts +3 -0
  544. package/dist/semantics/normalize/flow/node-path-token.js +53 -0
  545. package/dist/semantics/normalize/flow/object-binding-continuation.d.ts +11 -0
  546. package/dist/semantics/normalize/flow/object-binding-continuation.js +42 -0
  547. package/dist/semantics/normalize/flow/origin-authority.d.ts +56 -0
  548. package/dist/semantics/normalize/flow/origin-authority.js +2 -0
  549. package/dist/semantics/normalize/flow/owned-class-receivers.d.ts +35 -0
  550. package/dist/semantics/normalize/flow/owned-class-receivers.js +191 -0
  551. package/dist/semantics/normalize/flow/parameter-values.d.ts +27 -0
  552. package/dist/semantics/normalize/flow/parameter-values.js +251 -0
  553. package/dist/semantics/normalize/flow/proof-hypotheses.d.ts +66 -0
  554. package/dist/semantics/normalize/flow/proof-hypotheses.js +162 -0
  555. package/dist/semantics/normalize/flow/record-alias-closure.d.ts +27 -0
  556. package/dist/semantics/normalize/flow/record-alias-closure.js +298 -0
  557. package/dist/semantics/normalize/flow/seeded-origins.d.ts +43 -0
  558. package/dist/semantics/normalize/flow/seeded-origins.js +54 -0
  559. package/dist/semantics/normalize/flow/source-class-data.d.ts +132 -0
  560. package/dist/semantics/normalize/flow/source-class-data.js +838 -0
  561. package/dist/semantics/normalize/flow/source-class-instanceof.d.ts +13 -0
  562. package/dist/semantics/normalize/flow/source-class-instanceof.js +37 -0
  563. package/dist/semantics/normalize/flow/source-class-static-data.d.ts +16 -0
  564. package/dist/semantics/normalize/flow/source-class-static-data.js +47 -0
  565. package/dist/semantics/normalize/flow/source-construction-frames.d.ts +12 -0
  566. package/dist/semantics/normalize/flow/source-construction-frames.js +118 -0
  567. package/dist/semantics/normalize/flow/source-invocation-frame-layout.d.ts +34 -0
  568. package/dist/semantics/normalize/flow/source-invocation-frame-layout.js +78 -0
  569. package/dist/semantics/normalize/flow/source-invocation-receiver.d.ts +37 -0
  570. package/dist/semantics/normalize/flow/source-invocation-receiver.js +95 -0
  571. package/dist/semantics/normalize/flow/source-prototype-method-identity.d.ts +23 -0
  572. package/dist/semantics/normalize/flow/source-prototype-method-identity.js +81 -0
  573. package/dist/semantics/normalize/flow/source-record-data.d.ts +29 -0
  574. package/dist/semantics/normalize/flow/source-record-data.js +626 -0
  575. package/dist/semantics/normalize/flow/source-value-session.d.ts +77 -0
  576. package/dist/semantics/normalize/flow/source-value-session.js +3089 -0
  577. package/dist/semantics/normalize/flow/targets.d.ts +118 -0
  578. package/dist/semantics/normalize/flow/targets.js +405 -0
  579. package/dist/semantics/normalize/flow/value-flow.d.ts +36 -0
  580. package/dist/semantics/normalize/flow/value-flow.js +823 -0
  581. package/dist/semantics/normalize/flow/value-provenance.d.ts +31 -0
  582. package/dist/semantics/normalize/flow/value-provenance.js +112 -0
  583. package/dist/semantics/normalize/gating.d.ts +51 -0
  584. package/dist/semantics/normalize/gating.js +560 -0
  585. package/dist/semantics/normalize/generic-function-choice.d.ts +31 -0
  586. package/dist/semantics/normalize/generic-function-choice.js +115 -0
  587. package/dist/semantics/normalize/global-host-mutations.d.ts +51 -0
  588. package/dist/semantics/normalize/global-host-mutations.js +5989 -0
  589. package/dist/semantics/normalize/host-effect-contracts.d.ts +77 -0
  590. package/dist/semantics/normalize/host-effect-contracts.js +143 -0
  591. package/dist/semantics/normalize/host-mutation-computed-keys.d.ts +38 -0
  592. package/dist/semantics/normalize/host-mutation-computed-keys.js +26 -0
  593. package/dist/semantics/normalize/host-mutation-key-reader.d.ts +66 -0
  594. package/dist/semantics/normalize/host-mutation-key-reader.js +192 -0
  595. package/dist/semantics/normalize/host-mutation-keys.d.ts +114 -0
  596. package/dist/semantics/normalize/host-mutation-keys.js +183 -0
  597. package/dist/semantics/normalize/identities.d.ts +172 -0
  598. package/dist/semantics/normalize/identities.js +426 -0
  599. package/dist/semantics/normalize/implicit-arguments-tuple.d.ts +97 -0
  600. package/dist/semantics/normalize/implicit-arguments-tuple.js +197 -0
  601. package/dist/semantics/normalize/implicit-arguments.d.ts +11 -0
  602. package/dist/semantics/normalize/implicit-arguments.js +39 -0
  603. package/dist/semantics/normalize/instantiation.d.ts +73 -0
  604. package/dist/semantics/normalize/instantiation.js +399 -0
  605. package/dist/semantics/normalize/intrinsic-property-call.d.ts +18 -0
  606. package/dist/semantics/normalize/intrinsic-property-call.js +69 -0
  607. package/dist/semantics/normalize/intrinsic-prototype.d.ts +41 -0
  608. package/dist/semantics/normalize/intrinsic-prototype.js +87 -0
  609. package/dist/semantics/normalize/intrinsic-static-member.d.ts +14 -0
  610. package/dist/semantics/normalize/intrinsic-static-member.js +23 -0
  611. package/dist/semantics/normalize/jsdoc-type-names.d.ts +32 -0
  612. package/dist/semantics/normalize/jsdoc-type-names.js +512 -0
  613. package/dist/semantics/normalize/keyof.d.ts +32 -0
  614. package/dist/semantics/normalize/keyof.js +110 -0
  615. package/dist/semantics/normalize/local-bindings.d.ts +176 -0
  616. package/dist/semantics/normalize/local-bindings.js +1826 -0
  617. package/dist/semantics/normalize/logical-result-type.d.ts +16 -0
  618. package/dist/semantics/normalize/logical-result-type.js +102 -0
  619. package/dist/semantics/normalize/namespace-paths.d.ts +57 -0
  620. package/dist/semantics/normalize/namespace-paths.js +108 -0
  621. package/dist/semantics/normalize/normalize.d.ts +57 -0
  622. package/dist/semantics/normalize/normalize.js +68 -0
  623. package/dist/semantics/normalize/object-bag-bindings.d.ts +305 -0
  624. package/dist/semantics/normalize/object-bag-bindings.js +1290 -0
  625. package/dist/semantics/normalize/omitted-stated-parameter.d.ts +53 -0
  626. package/dist/semantics/normalize/omitted-stated-parameter.js +59 -0
  627. package/dist/semantics/normalize/open-type-form.d.ts +10 -0
  628. package/dist/semantics/normalize/open-type-form.js +32 -0
  629. package/dist/semantics/normalize/parameter-bindings.d.ts +361 -0
  630. package/dist/semantics/normalize/parameter-bindings.js +3339 -0
  631. package/dist/semantics/normalize/parameter-slot.d.ts +264 -0
  632. package/dist/semantics/normalize/parameter-slot.js +491 -0
  633. package/dist/semantics/normalize/physical-overload-result.d.ts +77 -0
  634. package/dist/semantics/normalize/physical-overload-result.js +99 -0
  635. package/dist/semantics/normalize/primitive-property-absence.d.ts +12 -0
  636. package/dist/semantics/normalize/primitive-property-absence.js +60 -0
  637. package/dist/semantics/normalize/producer-context.d.ts +376 -0
  638. package/dist/semantics/normalize/producer-context.js +1 -0
  639. package/dist/semantics/normalize/producers/allocations.d.ts +3 -0
  640. package/dist/semantics/normalize/producers/allocations.js +863 -0
  641. package/dist/semantics/normalize/producers/binding-kind.d.ts +37 -0
  642. package/dist/semantics/normalize/producers/binding-kind.js +36 -0
  643. package/dist/semantics/normalize/producers/bindings.d.ts +85 -0
  644. package/dist/semantics/normalize/producers/bindings.js +710 -0
  645. package/dist/semantics/normalize/producers/boundary.d.ts +34 -0
  646. package/dist/semantics/normalize/producers/boundary.js +123 -0
  647. package/dist/semantics/normalize/producers/class-lifecycle.d.ts +3 -0
  648. package/dist/semantics/normalize/producers/class-lifecycle.js +902 -0
  649. package/dist/semantics/normalize/producers/computations.d.ts +3 -0
  650. package/dist/semantics/normalize/producers/computations.js +613 -0
  651. package/dist/semantics/normalize/producers/control-loops.d.ts +30 -0
  652. package/dist/semantics/normalize/producers/control-loops.js +91 -0
  653. package/dist/semantics/normalize/producers/control.d.ts +30 -0
  654. package/dist/semantics/normalize/producers/control.js +923 -0
  655. package/dist/semantics/normalize/producers/declaration-lifecycle.d.ts +3 -0
  656. package/dist/semantics/normalize/producers/declaration-lifecycle.js +390 -0
  657. package/dist/semantics/normalize/producers/destructuring.d.ts +45 -0
  658. package/dist/semantics/normalize/producers/destructuring.js +1180 -0
  659. package/dist/semantics/normalize/producers/dynamic-language.d.ts +3 -0
  660. package/dist/semantics/normalize/producers/dynamic-language.js +70 -0
  661. package/dist/semantics/normalize/producers/erasure.d.ts +51 -0
  662. package/dist/semantics/normalize/producers/erasure.js +90 -0
  663. package/dist/semantics/normalize/producers/installed.d.ts +3 -0
  664. package/dist/semantics/normalize/producers/installed.js +55 -0
  665. package/dist/semantics/normalize/producers/invocations.d.ts +35 -0
  666. package/dist/semantics/normalize/producers/invocations.js +1796 -0
  667. package/dist/semantics/normalize/producers/iteration-yield.d.ts +59 -0
  668. package/dist/semantics/normalize/producers/iteration-yield.js +235 -0
  669. package/dist/semantics/normalize/producers/jsx.d.ts +3 -0
  670. package/dist/semantics/normalize/producers/jsx.js +360 -0
  671. package/dist/semantics/normalize/producers/mint.d.ts +39 -0
  672. package/dist/semantics/normalize/producers/mint.js +44 -0
  673. package/dist/semantics/normalize/producers/nullish.d.ts +16 -0
  674. package/dist/semantics/normalize/producers/nullish.js +27 -0
  675. package/dist/semantics/normalize/producers/object-assignment.d.ts +8 -0
  676. package/dist/semantics/normalize/producers/object-assignment.js +204 -0
  677. package/dist/semantics/normalize/producers/object-tag.d.ts +9 -0
  678. package/dist/semantics/normalize/producers/object-tag.js +119 -0
  679. package/dist/semantics/normalize/producers/optional-chain.d.ts +44 -0
  680. package/dist/semantics/normalize/producers/optional-chain.js +75 -0
  681. package/dist/semantics/normalize/producers/properties.d.ts +21 -0
  682. package/dist/semantics/normalize/producers/properties.js +1053 -0
  683. package/dist/semantics/normalize/producers/protocol.d.ts +67 -0
  684. package/dist/semantics/normalize/producers/protocol.js +695 -0
  685. package/dist/semantics/normalize/producers/references.d.ts +53 -0
  686. package/dist/semantics/normalize/producers/references.js +1027 -0
  687. package/dist/semantics/normalize/producers/shared.d.ts +561 -0
  688. package/dist/semantics/normalize/producers/shared.js +1683 -0
  689. package/dist/semantics/normalize/producers/spread-arguments.d.ts +72 -0
  690. package/dist/semantics/normalize/producers/spread-arguments.js +375 -0
  691. package/dist/semantics/normalize/producers/tagged-template.d.ts +5 -0
  692. package/dist/semantics/normalize/producers/tagged-template.js +307 -0
  693. package/dist/semantics/normalize/producers/tuple-spread.d.ts +189 -0
  694. package/dist/semantics/normalize/producers/tuple-spread.js +279 -0
  695. package/dist/semantics/normalize/property-key-domain.d.ts +36 -0
  696. package/dist/semantics/normalize/property-key-domain.js +150 -0
  697. package/dist/semantics/normalize/reachability.d.ts +189 -0
  698. package/dist/semantics/normalize/reachability.js +1057 -0
  699. package/dist/semantics/normalize/reassigned-bindings.d.ts +13 -0
  700. package/dist/semantics/normalize/reassigned-bindings.js +41 -0
  701. package/dist/semantics/normalize/record-storage-families.d.ts +11 -0
  702. package/dist/semantics/normalize/record-storage-families.js +109 -0
  703. package/dist/semantics/normalize/return-bindings.d.ts +260 -0
  704. package/dist/semantics/normalize/return-bindings.js +1311 -0
  705. package/dist/semantics/normalize/return-paths.d.ts +2 -0
  706. package/dist/semantics/normalize/return-paths.js +28 -0
  707. package/dist/semantics/normalize/script-global-redefinition.d.ts +44 -0
  708. package/dist/semantics/normalize/script-global-redefinition.js +75 -0
  709. package/dist/semantics/normalize/specialization.d.ts +201 -0
  710. package/dist/semantics/normalize/specialization.js +1824 -0
  711. package/dist/semantics/normalize/structural-array-element.d.ts +176 -0
  712. package/dist/semantics/normalize/structural-array-element.js +700 -0
  713. package/dist/semantics/normalize/structural-array-read.d.ts +13 -0
  714. package/dist/semantics/normalize/structural-array-read.js +124 -0
  715. package/dist/semantics/normalize/structural-callable.d.ts +12 -0
  716. package/dist/semantics/normalize/structural-callable.js +82 -0
  717. package/dist/semantics/normalize/structural-creation-order.d.ts +32 -0
  718. package/dist/semantics/normalize/structural-creation-order.js +111 -0
  719. package/dist/semantics/normalize/structural-declarations.d.ts +395 -0
  720. package/dist/semantics/normalize/structural-declarations.js +968 -0
  721. package/dist/semantics/normalize/structural-declared-body.d.ts +25 -0
  722. package/dist/semantics/normalize/structural-declared-body.js +147 -0
  723. package/dist/semantics/normalize/structural-generics.d.ts +56 -0
  724. package/dist/semantics/normalize/structural-generics.js +120 -0
  725. package/dist/semantics/normalize/structural-indexed-access.d.ts +11 -0
  726. package/dist/semantics/normalize/structural-indexed-access.js +126 -0
  727. package/dist/semantics/normalize/structural-instantiated-member.d.ts +64 -0
  728. package/dist/semantics/normalize/structural-instantiated-member.js +407 -0
  729. package/dist/semantics/normalize/structural-joins.d.ts +44 -0
  730. package/dist/semantics/normalize/structural-joins.js +143 -0
  731. package/dist/semantics/normalize/structural-layout-relevance.d.ts +29 -0
  732. package/dist/semantics/normalize/structural-layout-relevance.js +391 -0
  733. package/dist/semantics/normalize/structural-layout-type.d.ts +11 -0
  734. package/dist/semantics/normalize/structural-layout-type.js +1468 -0
  735. package/dist/semantics/normalize/structural-leaves.d.ts +49 -0
  736. package/dist/semantics/normalize/structural-leaves.js +125 -0
  737. package/dist/semantics/normalize/structural-local-union.d.ts +13 -0
  738. package/dist/semantics/normalize/structural-local-union.js +133 -0
  739. package/dist/semantics/normalize/structural-members.d.ts +26 -0
  740. package/dist/semantics/normalize/structural-members.js +84 -0
  741. package/dist/semantics/normalize/structural-mutable-method.d.ts +15 -0
  742. package/dist/semantics/normalize/structural-mutable-method.js +109 -0
  743. package/dist/semantics/normalize/structural-parts.d.ts +131 -0
  744. package/dist/semantics/normalize/structural-parts.js +737 -0
  745. package/dist/semantics/normalize/structural-receiver.d.ts +66 -0
  746. package/dist/semantics/normalize/structural-receiver.js +551 -0
  747. package/dist/semantics/normalize/structural-rules.d.ts +112 -0
  748. package/dist/semantics/normalize/structural-rules.js +93 -0
  749. package/dist/semantics/normalize/structural-self-reference.d.ts +150 -0
  750. package/dist/semantics/normalize/structural-self-reference.js +494 -0
  751. package/dist/semantics/normalize/structural.d.ts +202 -0
  752. package/dist/semantics/normalize/structural.js +4218 -0
  753. package/dist/semantics/normalize/unreduced-type-form.d.ts +41 -0
  754. package/dist/semantics/normalize/unreduced-type-form.js +53 -0
  755. package/dist/semantics/normalize/unresolvable-names.d.ts +56 -0
  756. package/dist/semantics/normalize/unresolvable-names.js +140 -0
  757. package/dist/semantics/package-sources.d.ts +16 -0
  758. package/dist/semantics/package-sources.js +365 -0
  759. package/dist/semantics/program.d.ts +151 -0
  760. package/dist/semantics/program.js +667 -0
  761. package/dist/semantics/prototype-install-source-transform.d.ts +4 -0
  762. package/dist/semantics/prototype-install-source-transform.js +341 -0
  763. package/dist/semantics/prototype-object-class-source-transform.d.ts +4 -0
  764. package/dist/semantics/prototype-object-class-source-transform.js +525 -0
  765. package/dist/semantics/prototype-reparenting.d.ts +50 -0
  766. package/dist/semantics/prototype-reparenting.js +317 -0
  767. package/dist/semantics/stable-checker.d.ts +10 -0
  768. package/dist/semantics/stable-checker.js +148 -0
  769. package/dist/semantics/subclass-member-overlay-transform.d.ts +35 -0
  770. package/dist/semantics/subclass-member-overlay-transform.js +1418 -0
  771. package/dist/semantics/symbol-keyed-expando-source-transform.d.ts +4 -0
  772. package/dist/semantics/symbol-keyed-expando-source-transform.js +66 -0
  773. package/dist/semantics/this-constructor-source-transform.d.ts +4 -0
  774. package/dist/semantics/this-constructor-source-transform.js +122 -0
  775. package/dist/semantics/uninstantiable-classes.d.ts +22 -0
  776. package/dist/semantics/uninstantiable-classes.js +75 -0
  777. package/dist/targets/cpp/balanced-units.d.ts +3 -0
  778. package/dist/targets/cpp/balanced-units.js +58 -0
  779. package/dist/targets/cpp/borrowed-call-entry.d.ts +30 -0
  780. package/dist/targets/cpp/borrowed-call-entry.js +68 -0
  781. package/dist/targets/cpp/captures.d.ts +68 -0
  782. package/dist/targets/cpp/captures.js +269 -0
  783. package/dist/targets/cpp/class-layout.d.ts +313 -0
  784. package/dist/targets/cpp/class-layout.js +483 -0
  785. package/dist/targets/cpp/class-properties/computed-method-value.d.ts +25 -0
  786. package/dist/targets/cpp/class-properties/computed-method-value.js +22 -0
  787. package/dist/targets/cpp/class-properties/emit-class-properties.d.ts +216 -0
  788. package/dist/targets/cpp/class-properties/emit-class-properties.js +917 -0
  789. package/dist/targets/cpp/class-properties/native-prototype.d.ts +11 -0
  790. package/dist/targets/cpp/class-properties/native-prototype.js +101 -0
  791. package/dist/targets/cpp/class-ref-transport.d.ts +12 -0
  792. package/dist/targets/cpp/class-ref-transport.js +32 -0
  793. package/dist/targets/cpp/conversions.d.ts +3 -0
  794. package/dist/targets/cpp/conversions.js +2027 -0
  795. package/dist/targets/cpp/deferral-safety.d.ts +82 -0
  796. package/dist/targets/cpp/deferral-safety.js +86 -0
  797. package/dist/targets/cpp/direct-call-receivers.d.ts +37 -0
  798. package/dist/targets/cpp/direct-call-receivers.js +79 -0
  799. package/dist/targets/cpp/document.d.ts +74 -0
  800. package/dist/targets/cpp/document.js +106 -0
  801. package/dist/targets/cpp/emit-allocation.d.ts +60 -0
  802. package/dist/targets/cpp/emit-allocation.js +573 -0
  803. package/dist/targets/cpp/emit-arrays.d.ts +119 -0
  804. package/dist/targets/cpp/emit-arrays.js +1047 -0
  805. package/dist/targets/cpp/emit-binding-reference.d.ts +17 -0
  806. package/dist/targets/cpp/emit-binding-reference.js +120 -0
  807. package/dist/targets/cpp/emit-bindings.d.ts +158 -0
  808. package/dist/targets/cpp/emit-bindings.js +769 -0
  809. package/dist/targets/cpp/emit-buffers.d.ts +156 -0
  810. package/dist/targets/cpp/emit-buffers.js +573 -0
  811. package/dist/targets/cpp/emit-callable.d.ts +230 -0
  812. package/dist/targets/cpp/emit-callable.js +2154 -0
  813. package/dist/targets/cpp/emit-carrier-members.d.ts +406 -0
  814. package/dist/targets/cpp/emit-carrier-members.js +1224 -0
  815. package/dist/targets/cpp/emit-coercion.d.ts +26 -0
  816. package/dist/targets/cpp/emit-coercion.js +39 -0
  817. package/dist/targets/cpp/emit-context.d.ts +1882 -0
  818. package/dist/targets/cpp/emit-context.js +904 -0
  819. package/dist/targets/cpp/emit-dynamic-properties.d.ts +174 -0
  820. package/dist/targets/cpp/emit-dynamic-properties.js +1249 -0
  821. package/dist/targets/cpp/emit-equality.d.ts +39 -0
  822. package/dist/targets/cpp/emit-equality.js +472 -0
  823. package/dist/targets/cpp/emit-exceptions.d.ts +104 -0
  824. package/dist/targets/cpp/emit-exceptions.js +513 -0
  825. package/dist/targets/cpp/emit-field-owner.d.ts +4 -0
  826. package/dist/targets/cpp/emit-field-owner.js +27 -0
  827. package/dist/targets/cpp/emit-in.d.ts +31 -0
  828. package/dist/targets/cpp/emit-in.js +426 -0
  829. package/dist/targets/cpp/emit-instanceof.d.ts +19 -0
  830. package/dist/targets/cpp/emit-instanceof.js +601 -0
  831. package/dist/targets/cpp/emit-integers.d.ts +68 -0
  832. package/dist/targets/cpp/emit-integers.js +184 -0
  833. package/dist/targets/cpp/emit-iterator.d.ts +100 -0
  834. package/dist/targets/cpp/emit-iterator.js +1137 -0
  835. package/dist/targets/cpp/emit-json.d.ts +73 -0
  836. package/dist/targets/cpp/emit-json.js +823 -0
  837. package/dist/targets/cpp/emit-jsx.d.ts +74 -0
  838. package/dist/targets/cpp/emit-jsx.js +806 -0
  839. package/dist/targets/cpp/emit-mixed-binary.d.ts +51 -0
  840. package/dist/targets/cpp/emit-mixed-binary.js +60 -0
  841. package/dist/targets/cpp/emit-namespaces.d.ts +101 -0
  842. package/dist/targets/cpp/emit-namespaces.js +133 -0
  843. package/dist/targets/cpp/emit-narrowing.d.ts +738 -0
  844. package/dist/targets/cpp/emit-narrowing.js +3967 -0
  845. package/dist/targets/cpp/emit-native-equality.d.ts +3 -0
  846. package/dist/targets/cpp/emit-native-equality.js +14 -0
  847. package/dist/targets/cpp/emit-native-selection.d.ts +5 -0
  848. package/dist/targets/cpp/emit-native-selection.js +37 -0
  849. package/dist/targets/cpp/emit-object-tag.d.ts +4 -0
  850. package/dist/targets/cpp/emit-object-tag.js +108 -0
  851. package/dist/targets/cpp/emit-owned-record.d.ts +2 -0
  852. package/dist/targets/cpp/emit-owned-record.js +15 -0
  853. package/dist/targets/cpp/emit-presence.d.ts +78 -0
  854. package/dist/targets/cpp/emit-presence.js +376 -0
  855. package/dist/targets/cpp/emit-properties.d.ts +105 -0
  856. package/dist/targets/cpp/emit-properties.js +1640 -0
  857. package/dist/targets/cpp/emit-record-view.d.ts +20 -0
  858. package/dist/targets/cpp/emit-record-view.js +354 -0
  859. package/dist/targets/cpp/emit-return.d.ts +5 -0
  860. package/dist/targets/cpp/emit-return.js +237 -0
  861. package/dist/targets/cpp/emit-sum-widening.d.ts +10 -0
  862. package/dist/targets/cpp/emit-sum-widening.js +69 -0
  863. package/dist/targets/cpp/emit-tonumber.d.ts +38 -0
  864. package/dist/targets/cpp/emit-tonumber.js +177 -0
  865. package/dist/targets/cpp/emit-tostring.d.ts +92 -0
  866. package/dist/targets/cpp/emit-tostring.js +556 -0
  867. package/dist/targets/cpp/emit-typeof.d.ts +49 -0
  868. package/dist/targets/cpp/emit-typeof.js +317 -0
  869. package/dist/targets/cpp/emit-union-properties.d.ts +181 -0
  870. package/dist/targets/cpp/emit-union-properties.js +1281 -0
  871. package/dist/targets/cpp/emit.d.ts +45 -0
  872. package/dist/targets/cpp/emit.js +2225 -0
  873. package/dist/targets/cpp/error-types.d.ts +4 -0
  874. package/dist/targets/cpp/error-types.js +11 -0
  875. package/dist/targets/cpp/function-source-reads.d.ts +72 -0
  876. package/dist/targets/cpp/function-source-reads.js +148 -0
  877. package/dist/targets/cpp/host/atomics.d.ts +25 -0
  878. package/dist/targets/cpp/host/atomics.js +63 -0
  879. package/dist/targets/cpp/host/core-globals.d.ts +108 -0
  880. package/dist/targets/cpp/host/core-globals.js +158 -0
  881. package/dist/targets/cpp/host/dynamic-argument-members.d.ts +42 -0
  882. package/dist/targets/cpp/host/dynamic-argument-members.js +61 -0
  883. package/dist/targets/cpp/host/emit-host-arity.d.ts +139 -0
  884. package/dist/targets/cpp/host/emit-host-arity.js +232 -0
  885. package/dist/targets/cpp/host/emit-host-invoke.d.ts +91 -0
  886. package/dist/targets/cpp/host/emit-host-invoke.js +1105 -0
  887. package/dist/targets/cpp/host/emit-host-object.d.ts +55 -0
  888. package/dist/targets/cpp/host/emit-host-object.js +2206 -0
  889. package/dist/targets/cpp/host/emit-host-properties.d.ts +69 -0
  890. package/dist/targets/cpp/host/emit-host-properties.js +533 -0
  891. package/dist/targets/cpp/host/emit-host-reflect.d.ts +4 -0
  892. package/dist/targets/cpp/host/emit-host-reflect.js +180 -0
  893. package/dist/targets/cpp/host/emit-host-value.d.ts +120 -0
  894. package/dist/targets/cpp/host/emit-host-value.js +392 -0
  895. package/dist/targets/cpp/host/host-members.d.ts +505 -0
  896. package/dist/targets/cpp/host/host-members.js +819 -0
  897. package/dist/targets/cpp/host/host-method-aliases.d.ts +30 -0
  898. package/dist/targets/cpp/host/host-method-aliases.js +76 -0
  899. package/dist/targets/cpp/host/native-protocols.d.ts +47 -0
  900. package/dist/targets/cpp/host/native-protocols.js +183 -0
  901. package/dist/targets/cpp/host/object-protocol.d.ts +351 -0
  902. package/dist/targets/cpp/host/object-protocol.js +671 -0
  903. package/dist/targets/cpp/host-namespace-reads.d.ts +83 -0
  904. package/dist/targets/cpp/host-namespace-reads.js +113 -0
  905. package/dist/targets/cpp/manifest/capabilities.d.ts +39 -0
  906. package/dist/targets/cpp/manifest/capabilities.js +1484 -0
  907. package/dist/targets/cpp/manifest.d.ts +23 -0
  908. package/dist/targets/cpp/manifest.js +113 -0
  909. package/dist/targets/cpp/native-error-base.d.ts +38 -0
  910. package/dist/targets/cpp/native-error-base.js +74 -0
  911. package/dist/targets/cpp/native-narrowing-transport.d.ts +12 -0
  912. package/dist/targets/cpp/native-narrowing-transport.js +151 -0
  913. package/dist/targets/cpp/native-selection-helpers.d.ts +11 -0
  914. package/dist/targets/cpp/native-selection-helpers.js +46 -0
  915. package/dist/targets/cpp/native-symbol-keys.d.ts +8 -0
  916. package/dist/targets/cpp/native-symbol-keys.js +34 -0
  917. package/dist/targets/cpp/ownership.d.ts +43 -0
  918. package/dist/targets/cpp/ownership.js +38 -0
  919. package/dist/targets/cpp/owning-conversion-input.d.ts +14 -0
  920. package/dist/targets/cpp/owning-conversion-input.js +12 -0
  921. package/dist/targets/cpp/property-read-claims.d.ts +62 -0
  922. package/dist/targets/cpp/property-read-claims.js +23 -0
  923. package/dist/targets/cpp/property-store-claims.d.ts +62 -0
  924. package/dist/targets/cpp/property-store-claims.js +26 -0
  925. package/dist/targets/cpp/prototype/emit-prototype-array.d.ts +111 -0
  926. package/dist/targets/cpp/prototype/emit-prototype-array.js +602 -0
  927. package/dist/targets/cpp/prototype/emit-prototype-date.d.ts +133 -0
  928. package/dist/targets/cpp/prototype/emit-prototype-date.js +515 -0
  929. package/dist/targets/cpp/prototype/emit-prototype-error.d.ts +13 -0
  930. package/dist/targets/cpp/prototype/emit-prototype-error.js +54 -0
  931. package/dist/targets/cpp/prototype/emit-prototype-invoke.d.ts +34 -0
  932. package/dist/targets/cpp/prototype/emit-prototype-invoke.js +1003 -0
  933. package/dist/targets/cpp/prototype/emit-prototype-iterator.d.ts +47 -0
  934. package/dist/targets/cpp/prototype/emit-prototype-iterator.js +250 -0
  935. package/dist/targets/cpp/prototype/emit-prototype-promise.d.ts +46 -0
  936. package/dist/targets/cpp/prototype/emit-prototype-promise.js +143 -0
  937. package/dist/targets/cpp/prototype/emit-prototype-regexp.d.ts +335 -0
  938. package/dist/targets/cpp/prototype/emit-prototype-regexp.js +853 -0
  939. package/dist/targets/cpp/prototype/emit-prototype-string.d.ts +42 -0
  940. package/dist/targets/cpp/prototype/emit-prototype-string.js +252 -0
  941. package/dist/targets/cpp/prototype/prototype-method-reads.d.ts +25 -0
  942. package/dist/targets/cpp/prototype/prototype-method-reads.js +182 -0
  943. package/dist/targets/cpp/reactive-dependencies.d.ts +140 -0
  944. package/dist/targets/cpp/reactive-dependencies.js +432 -0
  945. package/dist/targets/cpp/reactive-origins.d.ts +44 -0
  946. package/dist/targets/cpp/reactive-origins.js +82 -0
  947. package/dist/targets/cpp/records.d.ts +277 -0
  948. package/dist/targets/cpp/records.js +2427 -0
  949. package/dist/targets/cpp/recursive-containers.d.ts +43 -0
  950. package/dist/targets/cpp/recursive-containers.js +144 -0
  951. package/dist/targets/cpp/regexp-types.d.ts +56 -0
  952. package/dist/targets/cpp/regexp-types.js +59 -0
  953. package/dist/targets/cpp/substrate.d.ts +125 -0
  954. package/dist/targets/cpp/substrate.js +12 -0
  955. package/dist/targets/cpp/translation-unit.d.ts +219 -0
  956. package/dist/targets/cpp/translation-unit.js +2063 -0
  957. package/dist/targets/cpp/types.d.ts +280 -0
  958. package/dist/targets/cpp/types.js +1135 -0
  959. package/dist/targets/cpp/virtual-methods.d.ts +95 -0
  960. package/dist/targets/cpp/virtual-methods.js +264 -0
  961. package/package.json +95 -0
  962. package/src/targets/cpp/runtime/gea_dynamic_proxy.h +824 -0
  963. package/src/targets/cpp/runtime/gea_eval.h +1376 -0
  964. package/src/targets/cpp/runtime/gea_native_class_prototype.h +44 -0
  965. package/src/targets/cpp/runtime/gea_runtime.h +29222 -0
  966. package/src/targets/cpp/runtime/gea_runtime_builtins.cpp +55 -0
@@ -0,0 +1,47 @@
1
+ import { noHostNamespaces } from '../targets/cpp/host/host-members.js';
2
+ export const noPluginCapabilities = Object.freeze({
3
+ runtimeHelpers: new Set(),
4
+ propertyRecipes: new Set(),
5
+ nativeProtocols: new Set(),
6
+ typedArrayDeclarations: [],
7
+ commonJsGlobals: new Map(),
8
+ commonJsBuiltinModules: new Map(),
9
+ commonJsBuiltinModuleSources: new Map(),
10
+ nativeTypes: new Map(),
11
+ nativeTypesByDeclaration: new Map(),
12
+ ambientTypeRealizations: new Map(),
13
+ hostMembers: new Map(),
14
+ hostMemberVoidResults: new Set(),
15
+ hostConstructors: new Map(),
16
+ hostInvocations: new Map(),
17
+ hostFunctions: new Map(),
18
+ hostFunctionsByDeclaration: new Map(),
19
+ hostNamespaces: noHostNamespaces,
20
+ hostNamespaceRootsByDeclaration: new Map(),
21
+ hostNamespaceRootDeclarations: [],
22
+ hostNamespaceRootTypes: new Map(),
23
+ hostInstanceTests: new Map(),
24
+ hostSingletons: new Set(),
25
+ hostSingletonsByDeclaration: new Map(),
26
+ hostSingletonDeclarations: new Map(),
27
+ absentGlobals: new Set(),
28
+ hostPreambles: new Map(),
29
+ nativeBases: new Map(),
30
+ nativeIncludes: new Map(),
31
+ nativeConstants: new Map(),
32
+ hostConstantsByDeclaration: new Map(),
33
+ generatedSupportIncludes: [],
34
+ runtimeDefinitions: [],
35
+ elementFragment: null,
36
+ elementTextTags: [],
37
+ reachedMemberKeys: new Set(),
38
+ reactiveClassFields: new Map(),
39
+ nativeReactiveCell: null,
40
+ nativeReactiveCellPreamble: []
41
+ });
42
+ /** A plugin instance that changes nothing, for a compilation with none installed. */
43
+ export const inertPluginInstance = Object.freeze({
44
+ producers: () => [],
45
+ lower: () => false,
46
+ capabilities: noPluginCapabilities
47
+ });
@@ -0,0 +1,77 @@
1
+ import type { AmbientTypeRealization } from '../../semantics/ambient-type-realization-transform.js';
2
+ import type { PluginSourceFile } from '../model.js';
3
+ /**
4
+ * The ambient free functions this host defines, to the C++ each is.
5
+ *
6
+ * This is the WHOLE of what the plugin has to state, and the reason it is so
7
+ * small is the point. `NativeWebGL2RenderingContext` and `NativeWebGLCanvas`
8
+ * are not host types at all -- they are ordinary TypeScript classes, shipped as
9
+ * source in the package's own `src/nativeWebGL.ts`, whose methods this compiler
10
+ * compiles natively like any other class. What crosses into the host is one
11
+ * layer below them: `threeWebGLCreateBuffer()` and its 126 siblings, ambient
12
+ * names declared in `nativeWebGLHost.ts` and defined in `angle_webgl_host.mm`.
13
+ *
14
+ * v1 states much more -- 88 `runtimeMemberCalls` and 333 `runtimeMemberReads`
15
+ * that recognize a call ON the context object and emit the host call directly,
16
+ * erasing the class. That is an optimization for a compiler that could not
17
+ * compile the class; it is not the meaning of the program, and restating it
18
+ * here would put 421 hand-written rows between this compiler and a class it can
19
+ * already read. If a direct-call fast path is ever worth its cost, it is worth
20
+ * it as a measurement, not as the only way the program compiles.
21
+ */
22
+ export declare const webglHostFunctions: () => ReadonlyMap<string, string>;
23
+ /**
24
+ * What a unit must declare before it may name one of those spellings.
25
+ *
26
+ * Keyed by the spelling, which is how the package already states it: a program
27
+ * that calls two of these carries two `extern "C"` lines and not 127.
28
+ */
29
+ export declare const webglHostPreambles: () => ReadonlyMap<string, readonly string[]>;
30
+ /** Source compatibility owned by the native WebGL package itself. */
31
+ export declare const webglSourceTransform: (input: PluginSourceFile) => string | null;
32
+ /**
33
+ * The browser globals a native ANGLE context does not provide.
34
+ *
35
+ * Scoped deliberately to this host's own neighbourhood -- the image, canvas and
36
+ * video element types a WebGL renderer reaches for when it uploads a texture.
37
+ * That is the surface this plugin replaces: `NativeWebGLCanvas` is the canvas,
38
+ * and there is no DOM behind it.
39
+ *
40
+ * Every name here is one three.js itself guards with `typeof X !== 'undefined'`,
41
+ * because three is written to run where they may not exist. Stating the absence
42
+ * is what makes that guard mean what it says; without it the guard folds to
43
+ * `true`, three takes a branch that reads `image.displayWidth` off something
44
+ * that is not a `VideoFrame`, and the unit emits an `extern` for a symbol no
45
+ * object file defines.
46
+ *
47
+ * Names deliberately NOT here, and why -- absence is a CLAIM about the target,
48
+ * so a name goes in only when this host is sure:
49
+ *
50
+ * - `performance`, `URL`, `Blob`, `fetch` and the network types: nothing about
51
+ * an ANGLE context says whether the target implements them, and `three` calls
52
+ * `performance.now()` unguarded. That is a different host's answer.
53
+ * - `WebGL2RenderingContext`: its constructor identity needs a native binding
54
+ * for programs that use it to detect WebGL 2. The WebGL 1 constructor is
55
+ * absent: this host only creates NativeWebGL2RenderingContext. In three's
56
+ * WebGL 1 rejection guard, absence correctly skips the rejected path.
57
+ * - `self`, `postMessage`, `importScripts`: worker globals, and whether this
58
+ * target has workers is not a fact about its GL context.
59
+ */
60
+ export declare const webglAbsentGlobals: ReadonlySet<string>;
61
+ /**
62
+ * The ambient WebGL context names three's own source (and `@types/three`'s
63
+ * mirrored declarations) states, to the concrete class
64
+ * `@geastack/native-webgl-angle` actually hands a program.
65
+ *
66
+ * Both `WebGLRenderingContext` (`@types/three`'s stale declared type for
67
+ * three's internal `_gl` parameters -- see `WebGLRenderer`'s own comment in
68
+ * a three.js app's entry module) and `WebGL2RenderingContext` (what
69
+ * three's own JSDoc states for `WebGLRenderer~Options.context`) name it: two
70
+ * ambient interfaces, one real replacement, so both keys route to the same
71
+ * `NativeWebGL2RenderingContext`. A package with nothing to state here
72
+ * answers an empty map, and every ambient name keeps whatever the census
73
+ * already does with it -- exactly `nativeTypes`'s own convention.
74
+ */
75
+ export declare const webglAmbientTypeRealizations: () => ReadonlyMap<string, AmbientTypeRealization>;
76
+ export declare const webglHostArraySnapshotFunctions: () => ReadonlySet<string>;
77
+ export declare const webglHostNativeArrayFunctions: () => ReadonlySet<string>;
@@ -0,0 +1,162 @@
1
+ import { createRequire } from 'node:module';
2
+ const require_ = createRequire(import.meta.url);
3
+ let loaded;
4
+ /**
5
+ * The package's own statement, loaded once.
6
+ *
7
+ * `require` rather than `import()`, and the same two failures told apart, for
8
+ * the reasons `geaNativeTypes` states in full: not installed is a
9
+ * configuration and answers empty, while a package that IS installed and does
10
+ * not answer is a defect and throws. `GEATSC2_WEBGL_PLUGIN` overrides the
11
+ * specifier with an explicit path, and naming one that does not resolve is a
12
+ * wrong path rather than an absent package -- so it throws too.
13
+ */
14
+ const shims = () => {
15
+ if (loaded !== undefined)
16
+ return loaded;
17
+ const requested = process.env.GEATSC2_WEBGL_PLUGIN;
18
+ const specifier = requested ?? '@geastack/native-webgl-angle/geatsc-plugin';
19
+ let module_;
20
+ try {
21
+ module_ = require_(specifier);
22
+ }
23
+ catch (error) {
24
+ const absent = error.code === 'MODULE_NOT_FOUND';
25
+ if (!absent || requested !== undefined) {
26
+ throw new Error(`native-webgl-angle host shims failed to load from '${specifier}': ${String(error)}`);
27
+ }
28
+ loaded = null;
29
+ return null;
30
+ }
31
+ const plugin = module_.default;
32
+ if (typeof plugin?.configure !== 'function') {
33
+ throw new Error(`native-webgl-angle plugin at '${specifier}' exports no default plugin with a configure()`);
34
+ }
35
+ const configured = plugin.configure().hostShims;
36
+ if (!configured) {
37
+ throw new Error(`native-webgl-angle plugin at '${specifier}' configured no hostShims`);
38
+ }
39
+ loaded = configured;
40
+ return configured;
41
+ };
42
+ /**
43
+ * The ambient free functions this host defines, to the C++ each is.
44
+ *
45
+ * This is the WHOLE of what the plugin has to state, and the reason it is so
46
+ * small is the point. `NativeWebGL2RenderingContext` and `NativeWebGLCanvas`
47
+ * are not host types at all -- they are ordinary TypeScript classes, shipped as
48
+ * source in the package's own `src/nativeWebGL.ts`, whose methods this compiler
49
+ * compiles natively like any other class. What crosses into the host is one
50
+ * layer below them: `threeWebGLCreateBuffer()` and its 126 siblings, ambient
51
+ * names declared in `nativeWebGLHost.ts` and defined in `angle_webgl_host.mm`.
52
+ *
53
+ * v1 states much more -- 88 `runtimeMemberCalls` and 333 `runtimeMemberReads`
54
+ * that recognize a call ON the context object and emit the host call directly,
55
+ * erasing the class. That is an optimization for a compiler that could not
56
+ * compile the class; it is not the meaning of the program, and restating it
57
+ * here would put 421 hand-written rows between this compiler and a class it can
58
+ * already read. If a direct-call fast path is ever worth its cost, it is worth
59
+ * it as a measurement, not as the only way the program compiles.
60
+ */
61
+ export const webglHostFunctions = () => {
62
+ const rows = new Map();
63
+ for (const [name, emit] of Object.entries(shims()?.embeddedHostFunctions ?? {})) {
64
+ if (typeof emit === 'string' && emit.length > 0)
65
+ rows.set(name, emit);
66
+ }
67
+ return rows;
68
+ };
69
+ /**
70
+ * What a unit must declare before it may name one of those spellings.
71
+ *
72
+ * Keyed by the spelling, which is how the package already states it: a program
73
+ * that calls two of these carries two `extern "C"` lines and not 127.
74
+ */
75
+ export const webglHostPreambles = () => {
76
+ const rows = new Map();
77
+ for (const [emit, declarations] of Object.entries(shims()?.hostExternDeclarations ?? {})) {
78
+ const lines = (declarations ?? []).filter((line) => typeof line === 'string' && line.length > 0);
79
+ if (lines.length > 0)
80
+ rows.set(emit, lines);
81
+ }
82
+ return rows;
83
+ };
84
+ /** Source compatibility owned by the native WebGL package itself. */
85
+ export const webglSourceTransform = (input) => shims()?.transformSource?.(input) ?? null;
86
+ /**
87
+ * The browser globals a native ANGLE context does not provide.
88
+ *
89
+ * Scoped deliberately to this host's own neighbourhood -- the image, canvas and
90
+ * video element types a WebGL renderer reaches for when it uploads a texture.
91
+ * That is the surface this plugin replaces: `NativeWebGLCanvas` is the canvas,
92
+ * and there is no DOM behind it.
93
+ *
94
+ * Every name here is one three.js itself guards with `typeof X !== 'undefined'`,
95
+ * because three is written to run where they may not exist. Stating the absence
96
+ * is what makes that guard mean what it says; without it the guard folds to
97
+ * `true`, three takes a branch that reads `image.displayWidth` off something
98
+ * that is not a `VideoFrame`, and the unit emits an `extern` for a symbol no
99
+ * object file defines.
100
+ *
101
+ * Names deliberately NOT here, and why -- absence is a CLAIM about the target,
102
+ * so a name goes in only when this host is sure:
103
+ *
104
+ * - `performance`, `URL`, `Blob`, `fetch` and the network types: nothing about
105
+ * an ANGLE context says whether the target implements them, and `three` calls
106
+ * `performance.now()` unguarded. That is a different host's answer.
107
+ * - `WebGL2RenderingContext`: its constructor identity needs a native binding
108
+ * for programs that use it to detect WebGL 2. The WebGL 1 constructor is
109
+ * absent: this host only creates NativeWebGL2RenderingContext. In three's
110
+ * WebGL 1 rejection guard, absence correctly skips the rejected path.
111
+ * - `self`, `postMessage`, `importScripts`: worker globals, and whether this
112
+ * target has workers is not a fact about its GL context.
113
+ */
114
+ export const webglAbsentGlobals = new Set([
115
+ ...(shims()?.absentGlobals ?? []),
116
+ 'WebGLRenderingContext',
117
+ 'ImageData',
118
+ 'ImageBitmap',
119
+ 'VideoFrame',
120
+ 'OffscreenCanvas',
121
+ 'HTMLCanvasElement',
122
+ 'HTMLImageElement',
123
+ 'HTMLVideoElement',
124
+ 'createImageBitmap',
125
+ // WebXR. A native ANGLE context can no more start an XR session than it can
126
+ // decode an `ImageBitmap`, and three says so in its own source the same way:
127
+ // `const supportsGlBinding = typeof XRWebGLBinding !== 'undefined'`
128
+ // (`renderers/webxr/WebXRManager.js`, `renderers/common/XRManager.js`).
129
+ //
130
+ // These arrive from `@types/webxr` rather than `lib.dom.d.ts`, which is why
131
+ // `absent-globals.ts` asks whether a declaration is the PLATFORM's rather
132
+ // than whether TypeScript ships it -- see `platformDeclarationTest`. Both are
133
+ // `declare class`, the form that made a `declare var`-only value test unable
134
+ // to deny a single WebXR name.
135
+ 'XRWebGLBinding',
136
+ 'XRWebGLLayer'
137
+ ]);
138
+ /**
139
+ * The ambient WebGL context names three's own source (and `@types/three`'s
140
+ * mirrored declarations) states, to the concrete class
141
+ * `@geastack/native-webgl-angle` actually hands a program.
142
+ *
143
+ * Both `WebGLRenderingContext` (`@types/three`'s stale declared type for
144
+ * three's internal `_gl` parameters -- see `WebGLRenderer`'s own comment in
145
+ * a three.js app's entry module) and `WebGL2RenderingContext` (what
146
+ * three's own JSDoc states for `WebGLRenderer~Options.context`) name it: two
147
+ * ambient interfaces, one real replacement, so both keys route to the same
148
+ * `NativeWebGL2RenderingContext`. A package with nothing to state here
149
+ * answers an empty map, and every ambient name keeps whatever the census
150
+ * already does with it -- exactly `nativeTypes`'s own convention.
151
+ */
152
+ export const webglAmbientTypeRealizations = () => {
153
+ const rows = new Map();
154
+ for (const [name, realization] of Object.entries(shims()?.ambientTypeRealizations ?? {})) {
155
+ if (realization && typeof realization.type === 'string' && typeof realization.importedFrom === 'string') {
156
+ rows.set(name, { type: realization.type, importedFrom: realization.importedFrom });
157
+ }
158
+ }
159
+ return rows;
160
+ };
161
+ export const webglHostArraySnapshotFunctions = () => new Set(shims()?.hostArraySnapshotFunctions ?? []);
162
+ export const webglHostNativeArrayFunctions = () => new Set(shims()?.hostNativeArrayFunctions ?? []);
@@ -0,0 +1,40 @@
1
+ import type { CompilerPlugin } from '../model.js';
2
+ /**
3
+ * ANGLE's WebGL bridge, as a plugin.
4
+ *
5
+ * The third host in this build, and the smallest by a long way: it states its
6
+ * free functions and nothing else. That is not a stub. This host's surface
7
+ * really is 127 ambient functions -- `threeWebGLCreateBuffer`,
8
+ * `threeWebGLDrawElements`, `threeWebGLTexImage2D` -- declared in the package's
9
+ * `nativeWebGLHost.ts` and defined in its `angle_webgl_host.mm`. The
10
+ * `WebGL2RenderingContext` a three.js program actually holds is a TypeScript
11
+ * class in that same package, and this compiler compiles it as one.
12
+ *
13
+ * So there is no `nativeTypes` here, and its absence is a statement rather than
14
+ * a gap. `nativeTypes` says "this declared name is a host object, and here is
15
+ * the C++ type its values are carried in"; `NativeWebGL2RenderingContext` has
16
+ * no such type, because the ANGLE context is a process global and the class is
17
+ * a facade over free calls. Naming a carrier for it would mint an identity the
18
+ * runtime does not have. No constructors either, for the same reason -- `new
19
+ * NativeWebGLCanvas()` constructs an ordinary object -- and no members, no
20
+ * bases, no includes, no constants.
21
+ *
22
+ * `ambientTypeRealizations` is the one non-empty table below, and it exists
23
+ * for a fact `nativeTypes` cannot state: three's own `WebGLRenderer` and its
24
+ * `@types/three` declarations describe the context this program holds as an
25
+ * AMBIENT BROWSER interface (`WebGLRenderingContext`, `WebGL2RenderingContext`)
26
+ * -- structurally unrelated to `NativeWebGL2RenderingContext`, which is why a
27
+ * `renderbufferStorageMultisample`/`blitFramebuffer`/`invalidateFramebuffer`
28
+ * call, or a `DRAW_FRAMEBUFFER`/`READ_FRAMEBUFFER` constant read -- real
29
+ * WebGL2 members `WebGLRenderingContext` (WebGL1) lacks entirely -- typed
30
+ * `any` and boxed every one of the ~230 boxed carriers rooted at
31
+ * `WebGLTextures.js`'s own `_gl` parameter. The fix is not a carrier this
32
+ * layer invents; it is the ambient name meaning the class the value already
33
+ * is. See `webglAmbientTypeRealizations` (`host.ts`).
34
+ *
35
+ * No producer and no lowering: like Apple's, this host adds no meaning to a
36
+ * language form. A three.js program is ordinary TypeScript calling methods on
37
+ * ordinary classes; the only thing the core cannot know is that seven-score
38
+ * bare names are C++ functions somebody else links in.
39
+ */
40
+ export declare const webglPlugin: CompilerPlugin;
@@ -0,0 +1,99 @@
1
+ import { noHostNamespaces } from '../../targets/cpp/host/host-members.js';
2
+ import { webglAbsentGlobals, webglAmbientTypeRealizations, webglHostFunctions, webglHostArraySnapshotFunctions, webglHostNativeArrayFunctions, webglHostPreambles, webglSourceTransform } from './host.js';
3
+ /**
4
+ * ANGLE's WebGL bridge, as a plugin.
5
+ *
6
+ * The third host in this build, and the smallest by a long way: it states its
7
+ * free functions and nothing else. That is not a stub. This host's surface
8
+ * really is 127 ambient functions -- `threeWebGLCreateBuffer`,
9
+ * `threeWebGLDrawElements`, `threeWebGLTexImage2D` -- declared in the package's
10
+ * `nativeWebGLHost.ts` and defined in its `angle_webgl_host.mm`. The
11
+ * `WebGL2RenderingContext` a three.js program actually holds is a TypeScript
12
+ * class in that same package, and this compiler compiles it as one.
13
+ *
14
+ * So there is no `nativeTypes` here, and its absence is a statement rather than
15
+ * a gap. `nativeTypes` says "this declared name is a host object, and here is
16
+ * the C++ type its values are carried in"; `NativeWebGL2RenderingContext` has
17
+ * no such type, because the ANGLE context is a process global and the class is
18
+ * a facade over free calls. Naming a carrier for it would mint an identity the
19
+ * runtime does not have. No constructors either, for the same reason -- `new
20
+ * NativeWebGLCanvas()` constructs an ordinary object -- and no members, no
21
+ * bases, no includes, no constants.
22
+ *
23
+ * `ambientTypeRealizations` is the one non-empty table below, and it exists
24
+ * for a fact `nativeTypes` cannot state: three's own `WebGLRenderer` and its
25
+ * `@types/three` declarations describe the context this program holds as an
26
+ * AMBIENT BROWSER interface (`WebGLRenderingContext`, `WebGL2RenderingContext`)
27
+ * -- structurally unrelated to `NativeWebGL2RenderingContext`, which is why a
28
+ * `renderbufferStorageMultisample`/`blitFramebuffer`/`invalidateFramebuffer`
29
+ * call, or a `DRAW_FRAMEBUFFER`/`READ_FRAMEBUFFER` constant read -- real
30
+ * WebGL2 members `WebGLRenderingContext` (WebGL1) lacks entirely -- typed
31
+ * `any` and boxed every one of the ~230 boxed carriers rooted at
32
+ * `WebGLTextures.js`'s own `_gl` parameter. The fix is not a carrier this
33
+ * layer invents; it is the ambient name meaning the class the value already
34
+ * is. See `webglAmbientTypeRealizations` (`host.ts`).
35
+ *
36
+ * No producer and no lowering: like Apple's, this host adds no meaning to a
37
+ * language form. A three.js program is ordinary TypeScript calling methods on
38
+ * ordinary classes; the only thing the core cannot know is that seven-score
39
+ * bare names are C++ functions somebody else links in.
40
+ */
41
+ export const webglPlugin = {
42
+ name: 'native-webgl-angle-host',
43
+ instantiate: () => ({
44
+ producers: () => [],
45
+ transformSource: webglSourceTransform,
46
+ lower: () => false,
47
+ capabilities: {
48
+ runtimeHelpers: new Set(),
49
+ propertyRecipes: new Set(),
50
+ // Protocols are derived from the carriers in `nativeTypes`, and this host
51
+ // states none -- see the class-is-not-a-host-object note above.
52
+ nativeProtocols: new Set(),
53
+ nativeTypes: new Map(),
54
+ ambientTypeRealizations: webglAmbientTypeRealizations(),
55
+ hostMembers: new Map(),
56
+ hostMemberVoidResults: new Set(),
57
+ hostConstructors: new Map(),
58
+ hostFunctions: webglHostFunctions(),
59
+ hostArraySnapshotFunctions: webglHostArraySnapshotFunctions(),
60
+ hostNativeArrayFunctions: webglHostNativeArrayFunctions(),
61
+ // One name, one function: nothing in this host is declared twice.
62
+ hostFunctionsByDeclaration: new Map(),
63
+ hostNamespaces: noHostNamespaces,
64
+ hostNamespaceRootsByDeclaration: new Map(),
65
+ hostNamespaceRootTypes: new Map(),
66
+ hostSingletons: new Set(),
67
+ hostSingletonsByDeclaration: new Map(),
68
+ absentGlobals: webglAbsentGlobals,
69
+ hostPreambles: webglHostPreambles(),
70
+ nativeBases: new Map(),
71
+ // Declarations arrive per spelling through `hostPreambles`, not per
72
+ // carrier -- this host has no carriers to key a header by.
73
+ nativeIncludes: new Map(),
74
+ nativeConstants: new Map(),
75
+ hostConstantsByDeclaration: new Map(),
76
+ // The WebGL constants a program reads (`gl.RGBA`, `gl.TRIANGLES`) are
77
+ // `readonly` fields of the TypeScript class, initialized to their
78
+ // numeric literals in the package's own source. They are the program's
79
+ // own data, and this compiler reads them as such.
80
+ // WebGL's declarations reach a unit through `nativeIncludes`, per
81
+ // carrier the plan actually selected. Nothing about this host is true of
82
+ // a unit that names none of its types, so the support header states
83
+ // nothing on its behalf.
84
+ generatedSupportIncludes: [],
85
+ runtimeDefinitions: [],
86
+ elementFragment: null,
87
+ elementTextTags: [],
88
+ // Nothing this host lowers calls a class member the program does not name.
89
+ reachedMemberKeys: new Set(),
90
+ // three's programs take the host mutation census's `*` wildcard through
91
+ // this host, under which no Object-prototype obligation is ever
92
+ // discharged; see `PluginCapabilities.refusesObjectPrototypeAbsenceProofs`.
93
+ refusesObjectPrototypeAbsenceProofs: true,
94
+ reactiveClassFields: new Map(),
95
+ nativeReactiveCell: null,
96
+ nativeReactiveCellPreamble: []
97
+ }
98
+ })
99
+ };
@@ -0,0 +1,206 @@
1
+ import type { ComponentId, DeclarationId, FunctionId, SemanticResultId } from '../identity/ids.js';
2
+ import type { Representation } from '../representation/model.js';
3
+ /**
4
+ * The obligation model.
5
+ *
6
+ * An obligation is one demanded thing the PLAN needs already installed: a
7
+ * selected carrier, a call path, a native boundary, a verifier recipe, an
8
+ * emitter recipe, a physical C++ type. It is not a proof and it does not
9
+ * compute anything -- it names what was checked, what was expected, what was
10
+ * actually found, and whether the two agree. `run.ts` walks the sealed
11
+ * semantic graph and representation plan to build these; nothing here may
12
+ * synthesize a carrier or invent a fact the earlier layers did not already
13
+ * publish. Site-level demands -- which conversion a slot needs, which recipe
14
+ * a receiver takes, which helper a protocol step calls -- are not obligations
15
+ * any more: `ir/certify.ts` reads them off the lowered IR as capability keys
16
+ * (the plan's census).
17
+ */
18
+ export declare const obligationKinds: readonly ["binding-carrier", "expression-carrier", "return-carrier", "call-abi", "native-boundary", "physical-cpp-type", "verifier-recipe", "emitter-recipe"];
19
+ export type ObligationKind = (typeof obligationKinds)[number];
20
+ /**
21
+ * `blocked-by-upstream` is never assigned by a local check. It is the one
22
+ * status `run.ts`'s propagation step may raise a `satisfied` obligation to,
23
+ * when an obligation it depends on is itself not satisfied -- so a row that
24
+ * reads `missing`/`unsupported` always names an independently provable
25
+ * defect, never a downstream echo of somebody else's.
26
+ */
27
+ export type ObligationStatus = 'satisfied' | 'missing' | 'unsupported' | 'blocked-by-upstream';
28
+ /**
29
+ * The four fields the spec this module implements requires on every
30
+ * predicate. A reader must be able to see what was expected and what was
31
+ * actually found without reverse-engineering either from the pass bit.
32
+ */
33
+ export interface ObligationPredicate {
34
+ readonly id: string;
35
+ readonly expected: string;
36
+ readonly actual: string;
37
+ readonly pass: boolean;
38
+ }
39
+ export declare const predicate: (id: string, expected: string, actual: string) => ObligationPredicate;
40
+ declare const obligationBrand: unique symbol;
41
+ /** Opaque the same way `identity/ids.ts` identities are, minted only here. */
42
+ export type ObligationId = string & {
43
+ readonly [obligationBrand]: 'ObligationId';
44
+ };
45
+ export declare const obligationId: (component: ComponentId, kind: ObligationKind, discriminator: string) => ObligationId;
46
+ /**
47
+ * One demanded thing. `derivesFrom` anchors every obligation kind to the
48
+ * semantic result whose lineage it is about, including operation-level
49
+ * obligations such as `call-abi`, which anchor to the invocation's own
50
+ * published result rather than to one of its operands.
51
+ *
52
+ * `optional` marks a fast-path optimization capability rather than the
53
+ * mandatory generic primitive it accelerates -- per the doc, a missing fast
54
+ * path must never read as a compilation failure when the generic path is
55
+ * installed, so only `optional: false` rows can hold back a certificate.
56
+ */
57
+ export interface Obligation {
58
+ readonly id: ObligationId;
59
+ readonly kind: ObligationKind;
60
+ readonly component: ComponentId;
61
+ readonly derivesFrom: SemanticResultId;
62
+ readonly predicate: ObligationPredicate;
63
+ readonly optional: boolean;
64
+ /**
65
+ * The status this obligation's own check produced, considering nothing but
66
+ * its own predicate. `run.ts`'s propagation may compute a higher-level
67
+ * `blocked-by-upstream` status from this, but never edits this field: it is
68
+ * the row's permanent, independently-provable evidence.
69
+ */
70
+ readonly localStatus: 'satisfied' | 'missing' | 'unsupported';
71
+ }
72
+ /**
73
+ * A failed predicate is `unsupported` only when the model it queried already
74
+ * gives an authoritative "never" answer for this coordinate -- a `Never`
75
+ * conversion node, a helper the manifest lists as never-installable. Every
76
+ * other failure is `missing`: capability that has not been installed yet, not
77
+ * capability that cannot exist. Collapsing the two would make an ordinary gap
78
+ * in an unfinished primitive read as a permanent language limitation.
79
+ */
80
+ export declare const localStatusOf: (check: ObligationPredicate, declaredUnsupported: boolean) => "satisfied" | "missing" | "unsupported";
81
+ /**
82
+ * Sealed backend registries the census checks against. Every field is a
83
+ * closed set: presence means installed, absence means not yet, and the
84
+ * `unsupported*` sets mean never by design -- the same three-way split the
85
+ * doc draws between generic lowering, optimization, and genuine unsupported
86
+ * behavior. Preflight never writes to this; it is frozen by whoever seals the
87
+ * backend registries before calling `runPreflight`.
88
+ */
89
+ export interface TargetRuntimeManifest {
90
+ /** The generic dynamic-dispatch call path every invocation may fall back to. */
91
+ readonly hasGenericCallPath: boolean;
92
+ /**
93
+ * Whether the box itself can be CALLED -- `const fn: any = table[i]; fn(x)`.
94
+ *
95
+ * Separate from `hasGenericCallPath`, which is about calling through a
96
+ * callable CARRIER whose ABI the plan published: there the frame is known
97
+ * and the call is an ordinary indirect one. This is the case where the
98
+ * callee's carrier is `dynamic` and there is no ABI at all, so the arguments
99
+ * cross as boxes and the callable's own declared parameters are recovered at
100
+ * runtime. A target without it refuses such a call rather than dropping to
101
+ * the generic path, which has no frame to use.
102
+ */
103
+ readonly hasDynamicCallPath: boolean;
104
+ /** Exact-target callable ABIs registered as a devirtualization fast path. */
105
+ readonly functionAbis: ReadonlySet<FunctionId>;
106
+ /** ABIs for classes with no written constructor, keyed by the class itself. */
107
+ readonly implicitConstructorAbis: ReadonlySet<DeclarationId>;
108
+ /** Authenticated plugin host `[[Call]]` spellings, keyed `${carrier}.call`. */
109
+ readonly hostInvocations?: ReadonlySet<string>;
110
+ /** Authenticated plugin host `[[Construct]]` spellings, keyed by carrier. */
111
+ readonly hostConstructors?: ReadonlySet<string>;
112
+ /**
113
+ * Every `${protocol}.${member}` the installed host member tables claim a
114
+ * spelling for -- the backend's own `host-members.ts` rows unioned with each
115
+ * plugin's. This is the set the printer's `nativeHostMemberText` decides a
116
+ * host property read against, so a constant-keyed read off a `native-handle`
117
+ * receiver is certified against the same rows it will later be rendered
118
+ * from; without it the printer's "claimed by no host member table" refusal
119
+ * was the first place a certified program learned the member did not exist.
120
+ */
121
+ readonly hostMembers?: ReadonlySet<string>;
122
+ /** Property-access recipes, keyed `${internalMethod}:${keyIsComputed}`. */
123
+ readonly propertyRecipes: ReadonlySet<string>;
124
+ /** Ownerships (`Ownership` values, plus `'value'`) the capture path can transport. */
125
+ readonly captureOwnershipSupport: ReadonlySet<string>;
126
+ /** Authenticated host protocols, keyed `${protocol}@${version}`. */
127
+ readonly nativeProtocols: ReadonlySet<string>;
128
+ /**
129
+ * `${protocol}.${member}:argument:${ordinal | "*"}` keys whose CALL the
130
+ * target spells at the site, from that argument's own carrier, and which
131
+ * take a `dynamic` argument at that exact position unconditionally.
132
+ *
133
+ * The narrow twin of `nativeProtocols`, and narrow for a reason. A call
134
+ * through an ordinary callee reaches the emitter's argument alignment, which
135
+ * reconciles each argument against the callee's DECLARED parameter -- so a
136
+ * dynamic argument there needs an installed conversion, and
137
+ * `invocation-arguments.ts` rightly demands one. A member listed here never
138
+ * reaches that path: the target intercepted the call before it and renders
139
+ * from the operands themselves. `lib`'s declared parameter is then a
140
+ * statement about what the LANGUAGE permits, not about any physical frame,
141
+ * and requiring a conversion into it asks for machinery no emitted line
142
+ * performs.
143
+ *
144
+ * `Object.values(o)` is the case that made this necessary. Its declared
145
+ * parameter is `{ [s: string]: T } | ArrayLike<T>`, which derives a
146
+ * `tagged-union(dictionary | native-record-ref)`; nothing converts a
147
+ * `dynamic` into that union and nothing should, because the emitted call is
148
+ * `gea::host::ObjectConstructor::values(v)` and passes the box straight
149
+ * through to a real own-property enumeration.
150
+ *
151
+ * Keyed per MEMBER, ROLE and POSITION, never per protocol or whole call,
152
+ * because even one intercepted member's arguments differ. In particular,
153
+ * `Object.defineProperty(target, key, descriptor)` accepts a dynamic target
154
+ * and PropertyKey, but its descriptor renderer requires an exact typed
155
+ * descriptor record. A member-wide waiver would certify the descriptor and
156
+ * let emission refuse afterward. `*` is reserved for a genuinely variadic
157
+ * intercepted role such as Object.assign's source list.
158
+ *
159
+ * Optional, and absent reads as empty: a manifest sealed before this
160
+ * existed keeps demanding the conversion, which is the fail-closed default
161
+ * every other optional field in this interface takes.
162
+ */
163
+ readonly dynamicArgumentHostParameters?: ReadonlySet<string>;
164
+ /**
165
+ * Whether this target can render an ambient value declaration's introducing
166
+ * cell as an `extern` reference to a host-defined symbol.
167
+ *
168
+ * This is one flag rather than a `nativeProtocols`-shaped set keyed per
169
+ * declaration. `nativeProtocols` exists because a `native-handle`'s
170
+ * `protocol`/`version` selects genuinely different runtime glue -- a
171
+ * different materializer, a different opaque layout -- so authenticating one
172
+ * protocol must never be read as authenticating another. An ambient value
173
+ * binding carries no such per-declaration machinery: its carrier is derived
174
+ * from its declared type exactly like any other binding's, and rendering it
175
+ * is one uniform recipe (`extern <carrier-type> <linkageName>;`) that does
176
+ * not vary by which global it is. What genuinely differs per declaration --
177
+ * whether a real host-side definition exists for its specific linkage name
178
+ * -- is a link-time fact this static census cannot see and an ordinary
179
+ * linker already reports; claiming to verify it here would be inventing
180
+ * proof this stage does not have. Optional so a manifest sealed before this
181
+ * capability existed still satisfies this interface: absence reads as
182
+ * `false`, the same fail-closed default `unsupportedRuntimeHelpers` and its
183
+ * siblings use elsewhere in this file.
184
+ */
185
+ readonly supportsExternalBindings?: boolean;
186
+ readonly runtimeHelpers: ReadonlySet<string>;
187
+ readonly unsupportedRuntimeHelpers: ReadonlySet<string>;
188
+ /** Physical C++ type mappings, keyed by `representationKey`. */
189
+ readonly physicalTypes: ReadonlySet<string>;
190
+ /**
191
+ * The predicate `physicalTypes` is the plan's projection of. Preflight
192
+ * asks about the carriers the plan selected, which the set enumerates;
193
+ * `ir/certify.ts` asks about every carrier the IR holds, including slot
194
+ * and conversion-result carriers the plan never selected, so it needs the
195
+ * predicate itself. Optional: a manifest without it is asked through the
196
+ * set, which is fail-closed for a carrier the set never saw.
197
+ */
198
+ readonly spellable?: (representation: Representation) => boolean;
199
+ /** Verifier recipes, keyed by `representationKey`. */
200
+ readonly verifierRecipes: ReadonlySet<string>;
201
+ /** Emitter recipes, keyed by `representationKey`. */
202
+ readonly emitterRecipes: ReadonlySet<string>;
203
+ /** Installed abrupt-completion handlers, keyed by completion kind. */
204
+ readonly abruptEdgeHandlers: ReadonlySet<string>;
205
+ }
206
+ export {};