@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,561 @@
1
+ import ts from 'typescript';
2
+ import type { OperationId, StructuralTypeId } from '../../../identity/ids.js';
3
+ import type { SemanticEdge } from '../../model/edges.js';
4
+ import type { OperandSource, SemanticOperand } from '../../model/operands.js';
5
+ import type { CandidateContribution } from '../contribution.js';
6
+ import { type StructuralMember } from '../../model/structural-types.js';
7
+ import { blocked } from './mint.js';
8
+ import type { ProducerContext } from '../producer-context.js';
9
+ import { type CitedBranch } from './references.js';
10
+ export { unwrapErasedExpression as unwrapErased } from './erasure.js';
11
+ /**
12
+ * Helpers every producer needs, kept in one place.
13
+ *
14
+ * Each of these existed as three or four private copies, and the copies did not
15
+ * stay identical: one `resultEdge` published ordinal zero for every operand
16
+ * while another carried the real one, so two producers disagreed about which
17
+ * operand an edge described. A duplicated helper is not a style problem here --
18
+ * it is a second authority waiting to drift, and drift in this layer is silent
19
+ * (a wrong citation produces no error, just an operation that never appears).
20
+ */
21
+ /** `blocked()` mints a `CensusBlocker`; a producer's `contribute` must return a `CandidateContribution`. */
22
+ export declare const asBlocked: (...args: Parameters<typeof blocked>) => CandidateContribution;
23
+ /**
24
+ * The `ValueEdge` a cited result needs to stay visible to whole-program
25
+ * authority-connectivity analysis. A `constant`/`absent` source crosses no
26
+ * operation boundary, so it needs none.
27
+ *
28
+ * The ordinal is a parameter and not a constant: an operand's role and ordinal
29
+ * together name it, and an edge that always claimed ordinal zero would describe
30
+ * the first argument of a call no matter which argument it actually carried.
31
+ */
32
+ export declare const resultEdge: (source: OperandSource, to: OperationId, role: string, ordinal: number) => SemanticEdge | null;
33
+ /** Every operand of an operation that cites a result, as edges into it. */
34
+ export declare const valueEdgesInto: (to: OperationId, operands: readonly SemanticOperand[]) => SemanticEdge[];
35
+ export declare const isAssignmentOperatorKind: (kind: ts.SyntaxKind) => boolean;
36
+ /**
37
+ * Whether this source position evaluates in ECMAScript strict mode.
38
+ *
39
+ * An ES MODULE is strict in its entirety, unconditionally (ECMA-262 11.2.2) --
40
+ * no prologue, no `export`, nothing else required.
41
+ *
42
+ * Established against real `node`, not argued: the same `delete` of a
43
+ * non-configurable property answers `false` when the emitted file is loaded as
44
+ * CommonJS and throws `TypeError` when it is loaded as an ES module. Both
45
+ * `strict-delete.ts` and `native-handle-computed-access.runtime.js` throw under
46
+ * the module setting their own tsconfig states.
47
+ *
48
+ * THE `module` SETTING IS NOT THE QUESTION. It used to short-circuit this walk
49
+ * -- `module: ESNext` was read as "every file is a module, so every file is
50
+ * strict" -- and that is false for a file with no import and no export, which
51
+ * is a Script whatever the emit setting says. What actually makes every file in
52
+ * a build strict is `alwaysStrict` (implied by `strict`): tsc parses strict and
53
+ * writes a `'use strict'` prologue into each emitted file. That is
54
+ * `buildIsStrict`, and it is the only whole-build fact this needs; the rest --
55
+ * external module, prologue, class body -- is per position and walked here.
56
+ *
57
+ * `test/runtime/tsconfig.json` sets `strict: true`, so the suite's answer does
58
+ * not change. A build with `module: CommonJS` and `strict: true` was the case
59
+ * this got wrong in both directions at once.
60
+ */
61
+ export declare const isStrictContext: (node: ts.Node, buildIsStrict: boolean) => boolean;
62
+ /**
63
+ * A logical assignment writes only when the short-circuit does not fire, so it
64
+ * is not a read-operate-write at all; decomposing it as one would write a value
65
+ * the source program leaves untouched.
66
+ */
67
+ export declare const logicalAssignmentOperators: ReadonlySet<ts.SyntaxKind>;
68
+ /**
69
+ * A compound assignment reads its target, so the property and computation
70
+ * families must agree on exactly which operators those are. Derived from the
71
+ * assignment range minus the two forms that are not read-operate-write.
72
+ */
73
+ export declare const isCompoundAssignmentOperator: (kind: ts.SyntaxKind) => boolean;
74
+ /**
75
+ * Where an expression's value comes from, as an operand source.
76
+ *
77
+ * The identity is predictive, not observed: the owning family's producer mints
78
+ * this exact id independently from the same node, so the graph is wired by
79
+ * agreement on identity and never by execution order. Citation has exactly one
80
+ * implementation for that agreement to be worth anything -- three private
81
+ * copies of this drifted from it, kept citing a name's Reference Record after
82
+ * the shared rule moved to the value GetValue publishes, and every operand they
83
+ * built named a result nobody published. The publication guard then withheld
84
+ * those operations silently: no error, no blocker, just missing operations.
85
+ *
86
+ * The throw is deliberate. Every runtime-producing expression is censused, a
87
+ * literal, or `this`/`super`; reaching it means a form exists that neither this
88
+ * layer nor the census knows about, which is an implementation gap to fix here
89
+ * rather than a missing capability to report about the program.
90
+ */
91
+ export declare const sourceForValue: (context: ProducerContext, expr: ts.Expression, branch?: CitedBranch) => OperandSource;
92
+ /**
93
+ * `Object.getOwnPropertyDescriptor(receiver, key)`'s result, minted from the
94
+ * RECEIVER's own structural shape rather than the ambient `PropertyDescriptor`
95
+ * interface's own declared `value?: any` -- see `structural.ts`'s own
96
+ * `objectDescriptorReturnTypeAt` for the full reasoning and the actual
97
+ * decision. Delegates rather than re-deriving: `context.types.typeAt(call)`
98
+ * (the general per-node structural authority, asked by a property access's
99
+ * own receiver typing, a local binding's declared type, and everything else
100
+ * that asks "what is this node's type") already computes this exact answer
101
+ * for the bare CallExpression, and `validateInvocationResult`
102
+ * (`model/selected-signature.ts`) requires this producer's own
103
+ * `resultType`/`selectedSignature.returnType` to agree with it exactly --
104
+ * two independently-written copies of the same decision is precisely the
105
+ * shape that disagreement bit once already this session (a `buildSelectedSignature`-only
106
+ * version published a native record for the call's own SSA value while
107
+ * `context.types.typeAt` kept answering the old boxed one for every other
108
+ * reader of the same node).
109
+ */
110
+ export declare const objectDescriptorReturnTypeAt: (context: ProducerContext, call: ts.CallExpression | ts.NewExpression) => StructuralTypeId | null;
111
+ export declare const resolvedCalleeSignatureType: (context: ProducerContext, node: ts.Expression) => StructuralTypeId | null;
112
+ export declare const calleeAwareTypeAt: (context: ProducerContext, node: ts.Expression) => StructuralTypeId;
113
+ /**
114
+ * Whether a structural type is a plain `T[]`/`Array<T>` -- never a tuple,
115
+ * never a union, never an interned `unresolved`.
116
+ *
117
+ * This is the one predicate that decides whether a spread or a destructuring
118
+ * pattern's source may take the array/string fast path (index reads,
119
+ * `appendRange`) instead of needing the general iterator protocol. A tuple's
120
+ * elements are individually typed and keyed by position, not a single
121
+ * repeated element type, so it is deliberately excluded even though it is
122
+ * also array-shaped at runtime -- `lower-allocation.ts`'s own tuple-vs-array
123
+ * carrier split already draws this exact line, and this predicate answers it
124
+ * from the same source of truth (the interned shape), not a second opinion.
125
+ */
126
+ export declare const isPlainArrayType: (context: ProducerContext, type: StructuralTypeId) => boolean;
127
+ /**
128
+ * The members an object spread copies, when the source's own-property set is
129
+ * statically known -- or the reason it is not.
130
+ *
131
+ * `{ ...a }` is `CopyDataProperties` (ECMA-262 7.3.25) over the source's OWN
132
+ * ENUMERABLE properties, and for a data-only object shape that set is exactly
133
+ * its members. This is the one authority on when that holds, asked by BOTH
134
+ * halves that must agree about it: `producers/allocations.ts` copies the
135
+ * members field by field, and `producers/protocol.ts` publishes its generic
136
+ * `spread` protocol operation only when this says no -- the same bypass shape,
137
+ * and for the same reason, that `isPlainArrayType` gives an array-literal
138
+ * spread. Two independent predicates here would let one half copy the fields
139
+ * while the other published a protocol step nothing lowers.
140
+ *
141
+ * A named interface interns as `declared` around its body; the BODY carries the
142
+ * members, so one level is unwrapped. Every other shape -- and every member
143
+ * this cannot copy correctly -- answers with a reason instead:
144
+ *
145
+ * - an INDEX SIGNATURE: the own-property set is not known until runtime, and
146
+ * copying only the declared members would silently drop the rest;
147
+ * - an ACCESSOR: `{ ...o }` copies a getter's RETURNED value, so it must be
148
+ * called, which is user code this layer does not invoke;
149
+ * - a `signature`-shaped member: a method on a class instance lives on the
150
+ * prototype and is not own-enumerable at all, and the shape alone cannot
151
+ * tell that from an own function-valued field;
152
+ * - `membersDropped`: a projection already filtered this body, so its member
153
+ * list is not the source's own-property set (see `representation/object-shape.ts`);
154
+ * - a SYMBOL key: `CopyDataProperties` skips a non-enumerable one, and the
155
+ * shape does not record enumerability.
156
+ */
157
+ export declare const staticSpreadMembersOf: (context: ProducerContext, type: StructuralTypeId) => {
158
+ readonly members: readonly StructuralMember[];
159
+ } | {
160
+ readonly blocked: string;
161
+ };
162
+ /**
163
+ * Whether a structural type is the standard `Set<T>` -- the second source
164
+ * whose iteration needs no dynamic `@@iterator` lookup.
165
+ *
166
+ * The sibling of `isPlainArrayType` above, answering the same question about a
167
+ * shape whose answer is a DECLARATION identity rather than a shape kind. It
168
+ * reads `context.keyedCollections`, the frontend's one census
169
+ * (`host-protocols.ts`'s `keyedCollectionDeclarationsOf`), which is also what
170
+ * `representation/derive.ts` selects the collection carrier from -- so the
171
+ * producer's "skip the method lookup" decision and the carrier's "this is a
172
+ * `keyed-collection`" decision can never be made about different declarations.
173
+ *
174
+ * `'set'` ONLY -- `isNativeIterableMapType` below answers the Map half, which
175
+ * needs a different fact from the carrier side and so cannot share one
176
+ * predicate. The weak families have no iteration at all (ECMA-262 24.3/24.4)
177
+ * and are covered by neither.
178
+ */
179
+ export declare const isNativeIterableSetType: (context: ProducerContext, type: StructuralTypeId) => boolean;
180
+ /**
181
+ * Whether a structural type is the standard `Map<K, V>` -- the fourth source
182
+ * whose iteration needs no dynamic `@@iterator` lookup, and the only one whose
183
+ * element is not storage the source already holds.
184
+ *
185
+ * ECMA-262 24.1.5.1 `%MapIteratorPrototype%.next` yields a `[K, V]` PAIR, and
186
+ * this compiler carries a tuple as a record of "0"/"1" fields. That is why the
187
+ * decision has two halves that must agree: this one, which says the census may
188
+ * skip the method lookup, and `representation/publish.ts`'s
189
+ * `nativeCursorIteratorOf`, which must be able to publish a cursor over the
190
+ * pair's own carrier. The carrier side is the stricter of the two -- it reads
191
+ * the pair's record layout back out of the iterator record's declared element
192
+ * type and refuses unless the fields really are "0"/"1" carrying the
193
+ * collection's own key and value -- so a Map whose pair this compiler cannot
194
+ * lay out publishes no cursor, keys as the unclaimed
195
+ * `protocol:iterator:next:record`, and refuses at preflight. Skipping the
196
+ * method lookup for it is therefore safe in the one direction that matters:
197
+ * it can only ever cost a refusal, never a wrong lowering.
198
+ */
199
+ export declare const isNativeIterableMapType: (context: ProducerContext, type: StructuralTypeId) => boolean;
200
+ /**
201
+ * Whether a structural type is a `string` -- the third source whose iteration
202
+ * needs no dynamic `@@iterator` lookup.
203
+ *
204
+ * ECMA-262 22.1.3.36 `String.prototype[@@iterator]` walks the receiver by CODE
205
+ * POINT, and a String is an immutable primitive, so the step sequence is fixed
206
+ * the moment the loop starts: there is nothing for `GetIterator` to resolve
207
+ * that the value itself does not already answer. `gea::Iterator<std::string>`'s
208
+ * string source (`runtime/gea_runtime.h`) is that walk.
209
+ *
210
+ * Deliberately narrower than "everything that CARRIES as `string`": a union of
211
+ * string literals collapses to the `string` carrier in `derive.ts`, and this
212
+ * answers `false` for it. That asymmetry is safe in exactly one direction --
213
+ * `publish.ts` would publish the cursor, this producer would still mint the
214
+ * `get-method` step, and `protocol:iterator:get-method:string` is claimed by no
215
+ * manifest, so the program refuses at preflight by name. The reverse (claiming
216
+ * the fast path for a shape whose carrier is not `string`) would emit a
217
+ * constructor call that does not exist, so the predicate is written to fail in
218
+ * the safe direction rather than to re-derive `deriveUnion`'s collapse rule as
219
+ * a second authority.
220
+ */
221
+ export declare const isNativeIterableStringType: (context: ProducerContext, type: StructuralTypeId) => boolean;
222
+ /**
223
+ * Whether a source is a tuple with a fixed arity -- every element at a known
224
+ * position, none of them rest or variadic.
225
+ *
226
+ * A tuple IS an Array at runtime, so `for (const x of ['a', 'b'] as const)` is
227
+ * ordinary TypeScript that every JavaScript engine iterates through
228
+ * `Array.prototype[Symbol.iterator]`. This compiler carries a tuple as "a
229
+ * record whose keys are its indices" (`derive.ts`'s `deriveTuple`), which has
230
+ * no `@@iterator` FIELD, so the general dynamic protocol correctly refused
231
+ * every such loop -- nine of them in the mongodb driver alone, each over a
232
+ * `const [...] as const` option list.
233
+ *
234
+ * A fixed arity is what makes the walk settled: the elements are the record's
235
+ * own fields, in order, known before the program runs. Whether they also share
236
+ * ONE element carrier is a question about representations, which this layer
237
+ * cannot ask -- `preflight/runtime-helper-key.ts`'s `iteratorMethodCarrierKind`
238
+ * refines the carrier per site and leaves a heterogeneous tuple on an
239
+ * unclaimed key, so it refuses at preflight rather than reaching an emitter
240
+ * with nothing to build.
241
+ */
242
+ export declare const isFixedArityTupleType: (context: ProducerContext, type: StructuralTypeId) => boolean;
243
+ /**
244
+ * A tuple with a `rest` position and no variadic one -- `[A, ...B[]]`. Its
245
+ * carrier is an ARRAY (`representation/derive.ts`'s `deriveTuple`: the array
246
+ * carrier over the union of its positions), so iterating it is the array's
247
+ * own native cursor, the same one a plain `T[]` has.
248
+ */
249
+ export declare const isOpenTupleType: (context: ProducerContext, type: StructuralTypeId) => boolean;
250
+ /**
251
+ * Whether a source's iteration is settled before the program runs -- an
252
+ * `array`, a `Set<T>`, a `Map<K, V>`, a `string`, a `Generator<T, ...>`, a
253
+ * fixed-arity tuple, or a union whose every present arm is one of those.
254
+ *
255
+ * The ONE predicate every consumer of the native iterator cursor asks, so that
256
+ * `for`-`of` (`control.ts`), array-literal spread (`allocations.ts`),
257
+ * call-argument spread (`spread-arguments.ts`, `protocol.ts`) and array
258
+ * destructuring (`destructuring.ts`) can never disagree about which sources it
259
+ * covers. They did disagree before it existed: a `for`-`of` over a `Set` took
260
+ * the fast path while `[...set]` in the same program minted a `get-method`
261
+ * step for the identical value and refused.
262
+ */
263
+ /**
264
+ * The one PRESENT arm of a union whose only other arms are absent -- `T[] |
265
+ * undefined`, `Set<T> | null` -- or `null` for every other shape.
266
+ *
267
+ * Iterating an absent value is a runtime `TypeError` in ECMA-262 (7.4.2
268
+ * `GetIterator` calls `GetMethod` on `undefined`, which throws), never a
269
+ * static impossibility, so `T[] | undefined` iterates through exactly the
270
+ * cursor `T[]` does with a presence assertion in front of it. The ONLY thing
271
+ * absence changes is whether the walk starts.
272
+ *
273
+ * That distinction is the reason this looks through the wrapper rather than
274
+ * `hasNativeIterationCursor` growing an arm per absent-shaped source: the
275
+ * cursor, its element and every capability claim behind it are the payload's,
276
+ * and the absence is a separate, single fact the backend spells once
277
+ * (`targets/cpp/emit-iterator.ts`'s presence assertion) for whichever payload
278
+ * shape it wraps.
279
+ *
280
+ * Exactly one present arm, deliberately. Two would be a real union needing a
281
+ * discriminated walk -- a question about representations this layer cannot
282
+ * ask -- and zero is `never`, which iterates nothing.
283
+ */
284
+ export declare const presentIterationArm: (context: ProducerContext, type: StructuralTypeId) => StructuralTypeId | null;
285
+ export declare const hasNativeIterationCursor: (context: ProducerContext, type: StructuralTypeId) => boolean;
286
+ /**
287
+ * The type an iteration actually reads FROM, once a union that names one real
288
+ * iterable has been peeled to it.
289
+ *
290
+ * ONE authority, because two questions are asked about this same peeled type
291
+ * and they must not be able to disagree: `hasNativeIterationCursor` below asks
292
+ * whether it has a native cursor, and `producers/protocol.ts`'s
293
+ * `iterationElementType` asks what that cursor yields. Those are the two
294
+ * callers, and they are the only two.
295
+ *
296
+ * They HAD disagreed, in three different spellings of the same peel:
297
+ * `presentIterationArm` answers only when something nullish was actually
298
+ * removed, `soleDistinctPresentArm` dedupes members first, and
299
+ * `iterationElementType` carried a third, inline copy that did neither. A
300
+ * union whose arms intern to ONE id (`NodeArray<BindingElement> |
301
+ * NodeArray<ArrayBindingElement>`, tsc's `Node` family being one layout) is
302
+ * peeled by the deduping spelling and not by the inline one -- so the cursor
303
+ * predicate said "native cursor, no dynamic `Symbol.iterator` lookup needed"
304
+ * while the element reader fell through to the checker walk and refused with
305
+ * `the source declares no @@iterator/next/IteratorResult chain this can read
306
+ * an element type from`. That is `nested-array-assignment-pattern.runtime.js`'s
307
+ * for-`of` arm: a certified cursor whose element type nothing could state.
308
+ *
309
+ * Returns `null` when the type is not such a union at all -- the caller then
310
+ * uses the type it already had, which is what both callers did before.
311
+ */
312
+ export declare const iterationPayloadArm: (context: ProducerContext, type: StructuralTypeId) => StructuralTypeId | null;
313
+ /**
314
+ * Whether a `for`-`in` over this source enumerates one of the NATIVE cursors
315
+ * `targets/cpp/emit-iterator.ts` renders: a runtime key TABLE
316
+ * (`gea::Dictionary<V>`), a STATIC field-name snapshot built from a
317
+ * statically shaped receiver's own compile-time member set
318
+ * (`emitStaticEnumerateIterator`, over `gea::nativeDynamicKeys`), or a
319
+ * genuinely DYNAMIC receiver's real own-enumerable-key walk
320
+ * (`emitDynamicEnumerateIterator`, over `Value::ownEnumerableStringKeys`).
321
+ *
322
+ * The enumerate sibling of `hasNativeIterationCursor`, and the same kind of
323
+ * fact for the first two: the keys are storage the receiver already holds
324
+ * (a runtime table, or a compile-time field list), so `for (const k in t)`
325
+ * needs no `[[OwnPropertyKeys]]` machinery and no dynamic protocol.
326
+ *
327
+ * The dictionary test mirrors `representation/object-shape.ts`'s
328
+ * `dictionaryIndexOf` exactly -- no members, exactly one index signature,
329
+ * string-keyed -- because the two have to agree: this decides the LOOP SHAPE
330
+ * and that decides the CARRIER, and a loop reshaped for a cursor the deriver
331
+ * then does not produce would refuse with a key naming neither. It is a
332
+ * structural test rather than a call into `representation/`, which normalize
333
+ * runs before and must not depend on -- `producer-context.ts`'s own doc says
334
+ * as much: a question this predicate cannot answer from the sealed structural
335
+ * table alone needs a NEW primitive threaded onto `ProducerContext`, never a
336
+ * second derivation of a representation-layer policy.
337
+ *
338
+ * A NAMED type (`'declared'`: an interface or type alias) COULD be
339
+ * intercepted by a declaration-identity policy in `representation/derive.ts`
340
+ * before ever reaching a plain `record`/`record-with-index` carrier --
341
+ * `Date`, `RegExp`, `Promise`, a data-only host-bound plugin struct via
342
+ * `nativeTypes` (`GeaEmbeddedImage`, `FetchResponse`, ...) -- and none of
343
+ * those policies' censuses (`DateDeclarationPolicy`, `RegExpDeclarationPolicy`,
344
+ * the host binding table, ...) are threaded onto `ProducerContext`, so this
345
+ * predicate cannot ask the identity question `derive.ts` asks and get the
346
+ * same answer; it can only ask the STRUCTURAL question (is the body a
347
+ * complete record) that `object-anchor` and bare `'object'` already answer
348
+ * below. The host-binding case is the one that matters: `derive.ts`'s own
349
+ * `'declared'` case hardcodes `{ kind: 'native-record-ref', ownership:
350
+ * 'owned', native: bound.native }` for a data-only bound type -- the EXACT
351
+ * `native !== null` combination `emitStaticEnumerateIterator` refuses -- and
352
+ * it shares its `.kind` (`'native-record-ref'`) with the safe,
353
+ * compiler-defined case (a plain interface derives the identical kind with
354
+ * `native: null`), so a carrier-kind obligation keyed only on `.kind` cannot
355
+ * tell the two apart. That is not a reason to keep `'declared'` OUT of this
356
+ * widening, though -- it is a reason the DISTINGUISHING question has to be
357
+ * asked somewhere that still has the full representation to inspect.
358
+ * `'declared'` is therefore treated exactly like `object-anchor` below (both
359
+ * unwrap to their body and take the identical dictionary/record checks), and
360
+ * the host-bound sub-case is caught downstream instead, at preflight:
361
+ * `runtime-helper-key.ts`'s `enumerateGetIteratorCarrierKind` re-resolves the
362
+ * `get-iterator` target's own representation (not just its bare kind, which
363
+ * is all this structural predicate has) and reports a host-bound
364
+ * `native-record-ref` under its own, deliberately unclaimed key --
365
+ * `native-record-ref(host-bound)` -- the same "refine the receiver key" move
366
+ * `preflight/property-access.ts`'s `nativeRecordRefHasIndexSidecar` makes for
367
+ * a `native-record-ref` property read. So a host-bound `for`-`in` is still
368
+ * refused by NAME, still at preflight, still before either loop shape is
369
+ * lowered -- it is just a different file that owns the distinction, because
370
+ * that file is the one still holding the representation once normalize's own
371
+ * structural view of it has been discarded.
372
+ *
373
+ * A compiler-defined CLASS instance (`'class-instance'` with a non-null
374
+ * `body`) does not share that risk, for a reason specific to it:
375
+ * `derive.ts`'s `'class-instance'` case checks the SAME host-binding census
376
+ * before ever looking at `shape.body`, but a bound class -- data-only or not
377
+ * -- resolves to a DIFFERENT kind there, `native-handle`, never `class-ref`;
378
+ * there is no shared-kind trap for the carrier-kind obligation to miss. And
379
+ * `class-ref`'s ownership is never the value-record `'owned'` override either
380
+ * -- `compiler.ts`'s own policy only overrides `shape.kind === 'object'`,
381
+ * never `'class-instance'` -- so it is always `shared-refcount`. A bound
382
+ * class is caught cleanly (unclaimed `native-handle` key); an unbound one is
383
+ * exactly the `class-ref` `emitStaticEnumerateIterator` renders.
384
+ *
385
+ * `'object'` (bare, or unwrapped from a callable-bearing object-literal
386
+ * anchor) needs none of that caution either: it names no declaration a policy
387
+ * could intercept by identity, so a plain, non-generic `record`/
388
+ * `record-with-index` is the only carrier `derive.ts`'s `deriveObject` can
389
+ * ever produce for it.
390
+ */
391
+ export declare const hasNativeEnumerationCursor: (context: ProducerContext, type: StructuralTypeId) => boolean;
392
+ /**
393
+ * Whether a structural type is the standard `Generator<T, TReturn, TNext>` --
394
+ * what a `function*` returns, and the fifth source with no `@@iterator` lookup
395
+ * behind it.
396
+ *
397
+ * A generator IS its own iterator: ECMA-262 27.5.1.2
398
+ * `%GeneratorPrototype%[@@iterator]` returns `this`, so `GetIterator` over one
399
+ * resolves to the value already in hand and there is nothing dynamic to look
400
+ * up. `representation/derive.ts`'s `GeneratorDeclarationPolicy` carries it as
401
+ * the same `iterator(T)` cursor for exactly that reason -- one value, one
402
+ * carrier, whether it is being called or being walked.
403
+ *
404
+ * Keyed on the declaration the frontend resolved, never on the name, for the
405
+ * reason `isNativeIterableSetType` states about `Set`: the deriver reads the
406
+ * SAME identity, so the two cannot disagree about which declaration is meant.
407
+ */
408
+ export declare const isGeneratorType: (context: ProducerContext, type: StructuralTypeId) => boolean;
409
+ /**
410
+ * The canonical *static* key text a bracketed key expression resolves to when
411
+ * it names a `unique symbol`, or `null` when it does not.
412
+ *
413
+ * `this[GEA_STATIC_ELEMENT]` is not a dynamic property access. The checker
414
+ * resolves it to a declared member exactly as it resolves `this.rendered`: a
415
+ * `unique symbol` is a compile-time identity, `class C { [S]: T }` declares a
416
+ * member named by it, and `keyof C` includes it. So the key here is static in
417
+ * the only sense this layer's `computed` flag means -- "the key resolved to a
418
+ * constant text" -- which is already why `o["0"]` and `o[0]` are reported
419
+ * non-computed despite being written in brackets.
420
+ *
421
+ * The text is `structural-types.ts`'s `symbolPropertyKeyText`, which is also
422
+ * what `representation/object-shape.ts` names the record field by, so the
423
+ * access and the layout cannot disagree about which member is meant. The
424
+ * `unique-symbol` shape is read back out of the interned table rather than
425
+ * asked of the checker a second time: `structural.ts` already resolved the
426
+ * declaration anchor (and already answered `unresolved` for a symbol that has
427
+ * none), and a second resolution here would be a second authority over one
428
+ * fact.
429
+ */
430
+ export declare const uniqueSymbolKeyTextOf: (context: ProducerContext, type: StructuralTypeId) => string | null;
431
+ /** The shared layout fact that requires retaining a symbol's evaluated identity. */
432
+ export declare const isRuntimeSymbolMember: (context: ProducerContext, receiver: StructuralTypeId, keyType: StructuralTypeId) => boolean;
433
+ /**
434
+ * `ToPropertyKey` of a key whose value is fixed at compile time, or `null` when
435
+ * it is not.
436
+ *
437
+ * `{ [K]: v }` is not a dynamic property definition when `K`'s *type* pins the
438
+ * key: the checker itself types `{ [K]: 1 }` as `{ a: number }` for
439
+ * `const K = 'a'`, lists `a` in `keyof`, and resolves `o.a` against it. So the
440
+ * key is static in the only sense this layer's `computed` flag means -- the
441
+ * same sense in which `o["0"]` and `o[0]` are already reported non-computed --
442
+ * and lowering it as anything else would put a member the layout declares into
443
+ * a dictionary the layout does not have.
444
+ *
445
+ * The answer is read out of the interned shape rather than off the key's
446
+ * syntax, which is what makes `const K = 'a'` and `'a'` one case: a
447
+ * declaration's literal type is exactly as fixed as a literal written in place,
448
+ * and `structural-leaves.ts` has already interned both as the same shape.
449
+ * Reading syntax would see two different programs.
450
+ *
451
+ * Every literal shape resolves, because ECMA-262 7.1.19 `ToPropertyKey` is
452
+ * total over them and `structural-leaves.ts` already interned each one's text
453
+ * in the exact spelling `ToString` produces: a number through `String(value)`
454
+ * (which is `Number::toString`, and answers `"0"` for `-0` as the language
455
+ * does), a bigint in decimal, a boolean as `"true"`/`"false"`. A `unique
456
+ * symbol` needs no `ToString` at all -- it is already a property key -- and
457
+ * shares `uniqueSymbolKeyTextOf`'s spelling so a computed definition and a
458
+ * `receiver[K]` read name one member.
459
+ */
460
+ export declare const staticPropertyKeyTextOf: (context: ProducerContext, type: StructuralTypeId) => string | null;
461
+ /**
462
+ * The static member key `receiver[SOME_SYMBOL]` names, or `null` when the
463
+ * access is not a declared-member read at all.
464
+ *
465
+ * This is the whole difference between two accesses that look identical:
466
+ *
467
+ * this[GEA_STATIC_ELEMENT] // a declared class member
468
+ * (obj as Record<symbol, unknown>)[GEA_DIRTY] // an index signature
469
+ *
470
+ * The first is a struct member load with a compile-time name -- the checker
471
+ * resolves it to a declared member exactly as it resolves `this.rendered`. The
472
+ * second is a genuine dynamic-table lookup keyed by the symbol's RUNTIME
473
+ * value, and spelling it as a static text would file it under the string half
474
+ * of the object's key space, where `Object.keys` would list a property whose
475
+ * whole purpose is not being enumerated.
476
+ *
477
+ * The RECEIVER'S MEMBER LIST decides, and it is asked of the checker rather
478
+ * than of the already-interned shape: `structural.ts` interns some bodies
479
+ * data-only (its `MemberMode`), so a symbol-named METHOD -- which
480
+ * `this[GEA_STATIC_TEMPLATE]()` is -- is absent from the interned body while
481
+ * being a perfectly ordinary declared member. Reading the interned body would
482
+ * therefore answer "dynamic" for a member the class really declares.
483
+ *
484
+ * Matching is by DECLARATION IDENTITY, never by spelling:
485
+ * `symbolKeyDeclarationOf` resolves a member's key to the `const` the symbol
486
+ * was bound to, which is the identical anchor `structural.ts`'s
487
+ * `UniqueESSymbol` branch gives the key expression's own type, so the two
488
+ * sides compare one fact.
489
+ */
490
+ export declare const symbolMemberKeyOf: (context: ProducerContext, receiver: ts.Expression, keyType: StructuralTypeId) => string | null;
491
+ type NamedCallableNode = ts.FunctionDeclaration | ts.FunctionExpression | ts.ArrowFunction | ts.MethodDeclaration | ts.GetAccessorDeclaration | ts.SetAccessorDeclaration;
492
+ /**
493
+ * ECMA-262's `[[Name]]` internal slot for a callable, decided entirely at
494
+ * compile time from its syntax: a function/method/accessor's own written
495
+ * name (with `get `/`set ` prefixed for an accessor, exactly as
496
+ * `MethodDefinitionEvaluation`'s own `SetFunctionName` calls do), or --
497
+ * for an anonymous function/arrow expression -- the `NamedEvaluation` name
498
+ * from wherever it was defined (`namedEvaluationNameOf`).
499
+ *
500
+ * Both halves are pure syntax facts, independent of any value the callable
501
+ * ever carries at runtime, which is what makes this safe to decide once per
502
+ * allocation site and register in the runtime's static `SourceRegistration`
503
+ * table exactly as `functionSource` already is -- see
504
+ * `producers/allocations.ts`'s and `producers/class-lifecycle.ts`'s own
505
+ * `functionName` fields.
506
+ */
507
+ /**
508
+ * ECMA-262's `[[Name]]` for a class constructor, the same way
509
+ * `staticFunctionNameOf` below decides it for a function: the class's own
510
+ * written name, or -- for an anonymous class expression -- the
511
+ * `NamedEvaluation` name of the position it was written in (`const A = class
512
+ * {}` is `"A"`, `[cls = class {}]` is `"cls"`), or `"default"` for an
513
+ * anonymous `export default class`. A class that declares its own static
514
+ * `name` member shadows this at the read site, which is the reader's rule
515
+ * (`emit-class-properties.ts`'s static-member walk runs first), not this one's.
516
+ */
517
+ export declare const staticClassNameOf: (node: ts.ClassLikeDeclaration) => string;
518
+ /**
519
+ * `Function.prototype.length` for a class constructor: the written
520
+ * constructor's `ExpectedArgumentCount` (`expectedParameterCountOf`), or 0
521
+ * for a class relying on the implicit one -- the default constructor of a
522
+ * base class takes no parameters, and a derived class's `(...args)` has a
523
+ * rest parameter first, so both count 0.
524
+ */
525
+ export declare const staticClassLengthOf: (node: ts.ClassLikeDeclaration) => number;
526
+ export declare const staticFunctionNameOf: (node: NamedCallableNode) => string;
527
+ /**
528
+ * ECMA-262 `ExpectedArgumentCount`: the leading run of a callable's own
529
+ * written parameters, up to (and excluding) the first one that has a default
530
+ * initializer or is a rest parameter. This is `Function.prototype.length`,
531
+ * and it is a fact about the written parameter list alone -- independent of
532
+ * `NamedEvaluation`, and independent of the calling convention this compiler
533
+ * projects, which erases exactly the "has a default" bit this needs (a
534
+ * defaulted parameter is narrowed to its own storage type same as a required
535
+ * one). So it is read directly off the syntax here, once, the same way
536
+ * `functionSource` is.
537
+ *
538
+ * TypeScript's synthetic `this` parameter (`function f(this: Foo, x: number)`)
539
+ * binds no argument position and is invisible to `.length`; the grammar
540
+ * allows it only in leading position, so skipping index 0 when it names
541
+ * `this` is exhaustive.
542
+ */
543
+ export declare const expectedParameterCountOf: (node: ts.SignatureDeclarationBase) => number;
544
+ /**
545
+ * Whether the declaration performs ECMA-262 10.2.5 `MakeConstructor`, and so
546
+ * owns a `prototype` object, or `null` where the answer exists but this
547
+ * compiler does not model it.
548
+ *
549
+ * A syntax fact decided once per allocation site, exactly as
550
+ * `expectedParameterCountOf` above is: an ordinary `function` declaration or
551
+ * expression makes a constructor, while an arrow, a method, an accessor and
552
+ * an `async function` are created by `OrdinaryFunctionCreate` with no such
553
+ * step and own no `prototype` at all.
554
+ *
555
+ * A generator answers `null` rather than `true`. It does own a `prototype`,
556
+ * but 27.3.1's object inherits `%GeneratorFunction.prototype.prototype%`,
557
+ * which this runtime has no object for -- and reporting `true` would hand a
558
+ * read a plain object whose `constructor` chain is wrong. `null` keeps the
559
+ * read refused, which is the honest answer while that intrinsic is missing.
560
+ */
561
+ export declare const ownPrototypePropertyOf: (node: ts.Node) => boolean | null;