@scriptc/compiler 0.3.2 → 0.3.4

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 (454) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +1202 -64
  2. package/dist/backend/cycle-analysis.js +6 -1
  3. package/dist/backend/cycle-analysis.js.map +1 -1
  4. package/dist/backend/cycle-mutability.d.ts +5 -0
  5. package/dist/backend/cycle-mutability.js +62 -3
  6. package/dist/backend/cycle-mutability.js.map +1 -1
  7. package/dist/backend/executable-features.js +1 -0
  8. package/dist/backend/executable-features.js.map +1 -1
  9. package/dist/backend/library-pack.js +1 -0
  10. package/dist/backend/library-pack.js.map +1 -1
  11. package/dist/backend/llvm/alloc.js +24 -10
  12. package/dist/backend/llvm/alloc.js.map +1 -1
  13. package/dist/backend/llvm/alloc.test.js +47 -1
  14. package/dist/backend/llvm/alloc.test.js.map +1 -1
  15. package/dist/backend/llvm/array-search.d.ts +8 -0
  16. package/dist/backend/llvm/array-search.js +52 -0
  17. package/dist/backend/llvm/array-search.js.map +1 -0
  18. package/dist/backend/llvm/array-search.test.d.ts +1 -0
  19. package/dist/backend/llvm/array-search.test.js +72 -0
  20. package/dist/backend/llvm/array-search.test.js.map +1 -0
  21. package/dist/backend/llvm/call-lifetimes.d.ts +12 -1
  22. package/dist/backend/llvm/call-lifetimes.js +41 -11
  23. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  24. package/dist/backend/llvm/call-lifetimes.test.js +85 -1
  25. package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
  26. package/dist/backend/llvm/classes.js +87 -36
  27. package/dist/backend/llvm/classes.js.map +1 -1
  28. package/dist/backend/llvm/common.d.ts +6 -1
  29. package/dist/backend/llvm/common.js +8 -1
  30. package/dist/backend/llvm/common.js.map +1 -1
  31. package/dist/backend/llvm/dense-array-access.d.ts +5 -0
  32. package/dist/backend/llvm/dense-array-access.js +3 -3
  33. package/dist/backend/llvm/dense-array-access.js.map +1 -1
  34. package/dist/backend/llvm/dyn.d.ts +44 -1
  35. package/dist/backend/llvm/dyn.js +251 -36
  36. package/dist/backend/llvm/dyn.js.map +1 -1
  37. package/dist/backend/llvm/emitter.d.ts +77 -14
  38. package/dist/backend/llvm/emitter.js +461 -108
  39. package/dist/backend/llvm/emitter.js.map +1 -1
  40. package/dist/backend/llvm/emitter.test.js +26 -3
  41. package/dist/backend/llvm/emitter.test.js.map +1 -1
  42. package/dist/backend/llvm/expr-async.js +52 -1
  43. package/dist/backend/llvm/expr-async.js.map +1 -1
  44. package/dist/backend/llvm/expr-bytes.d.ts +9 -0
  45. package/dist/backend/llvm/expr-bytes.js +169 -63
  46. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  47. package/dist/backend/llvm/expr-callbacks.js +16 -2
  48. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  49. package/dist/backend/llvm/expr-calls.d.ts +3 -1
  50. package/dist/backend/llvm/expr-calls.js +57 -2
  51. package/dist/backend/llvm/expr-calls.js.map +1 -1
  52. package/dist/backend/llvm/expr-containers.js +57 -19
  53. package/dist/backend/llvm/expr-containers.js.map +1 -1
  54. package/dist/backend/llvm/expr-dynamic.js +19 -8
  55. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  56. package/dist/backend/llvm/expr-primitives.js +28 -30
  57. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  58. package/dist/backend/llvm/expr-records.js +8 -4
  59. package/dist/backend/llvm/expr-records.js.map +1 -1
  60. package/dist/backend/llvm/expr-stream-bridges.js +35 -32
  61. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  62. package/dist/backend/llvm/expr-stream-callbacks.d.ts +13 -2
  63. package/dist/backend/llvm/expr-stream-callbacks.js +80 -5
  64. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  65. package/dist/backend/llvm/inline-unions.d.ts +48 -0
  66. package/dist/backend/llvm/inline-unions.js +134 -0
  67. package/dist/backend/llvm/inline-unions.js.map +1 -0
  68. package/dist/backend/llvm/inline-unions.test.d.ts +1 -0
  69. package/dist/backend/llvm/inline-unions.test.js +124 -0
  70. package/dist/backend/llvm/inline-unions.test.js.map +1 -0
  71. package/dist/backend/llvm/integer-remainder.d.ts +28 -5
  72. package/dist/backend/llvm/integer-remainder.js +80 -9
  73. package/dist/backend/llvm/integer-remainder.js.map +1 -1
  74. package/dist/backend/llvm/intern-tables.test.d.ts +1 -0
  75. package/dist/backend/llvm/intern-tables.test.js +77 -0
  76. package/dist/backend/llvm/intern-tables.test.js.map +1 -0
  77. package/dist/backend/llvm/lib-datagram.js +10 -0
  78. package/dist/backend/llvm/lib-datagram.js.map +1 -1
  79. package/dist/backend/llvm/lib-dispatch.js +255 -29
  80. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  81. package/dist/backend/llvm/lib-filesystem.js +176 -7
  82. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  83. package/dist/backend/llvm/lib-network.js +25 -6
  84. package/dist/backend/llvm/lib-network.js.map +1 -1
  85. package/dist/backend/llvm/lib-process.js +2 -2
  86. package/dist/backend/llvm/lib-process.js.map +1 -1
  87. package/dist/backend/llvm/lib-shared.d.ts +5 -0
  88. package/dist/backend/llvm/lib-shared.js +212 -1
  89. package/dist/backend/llvm/lib-shared.js.map +1 -1
  90. package/dist/backend/llvm/lib-stream.js +184 -0
  91. package/dist/backend/llvm/lib-stream.js.map +1 -1
  92. package/dist/backend/llvm/lib-test.js +9 -0
  93. package/dist/backend/llvm/lib-test.js.map +1 -1
  94. package/dist/backend/llvm/local-array-reads.js +7 -3
  95. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  96. package/dist/backend/llvm/local-array-reads.test.js +6 -3
  97. package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
  98. package/dist/backend/llvm/local-union-storage.d.ts +2 -0
  99. package/dist/backend/llvm/local-union-storage.js +5 -0
  100. package/dist/backend/llvm/local-union-storage.js.map +1 -1
  101. package/dist/backend/llvm/local-union-storage.test.js +1 -0
  102. package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
  103. package/dist/backend/llvm/loop-array-borrows.d.ts +8 -2
  104. package/dist/backend/llvm/loop-array-borrows.js +93 -13
  105. package/dist/backend/llvm/loop-array-borrows.js.map +1 -1
  106. package/dist/backend/llvm/map-number-lookup.d.ts +24 -0
  107. package/dist/backend/llvm/map-number-lookup.js +88 -0
  108. package/dist/backend/llvm/map-number-lookup.js.map +1 -1
  109. package/dist/backend/llvm/map-number-lookup.test.d.ts +1 -0
  110. package/dist/backend/llvm/map-number-lookup.test.js +158 -0
  111. package/dist/backend/llvm/map-number-lookup.test.js.map +1 -0
  112. package/dist/backend/llvm/map-read-lifetimes.d.ts +9 -0
  113. package/dist/backend/llvm/map-read-lifetimes.js +90 -1
  114. package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
  115. package/dist/backend/llvm/map-read-lifetimes.test.js +129 -1
  116. package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
  117. package/dist/backend/llvm/publish.d.ts +9 -0
  118. package/dist/backend/llvm/publish.js +25 -4
  119. package/dist/backend/llvm/publish.js.map +1 -1
  120. package/dist/backend/llvm/record-results.d.ts +8 -5
  121. package/dist/backend/llvm/record-results.js +20 -12
  122. package/dist/backend/llvm/record-results.js.map +1 -1
  123. package/dist/backend/llvm/reference-effects.js +13 -0
  124. package/dist/backend/llvm/reference-effects.js.map +1 -1
  125. package/dist/backend/llvm/reference-writes.js +19 -2
  126. package/dist/backend/llvm/reference-writes.js.map +1 -1
  127. package/dist/backend/llvm/regions.d.ts +5 -1
  128. package/dist/backend/llvm/regions.js +24 -10
  129. package/dist/backend/llvm/regions.js.map +1 -1
  130. package/dist/backend/llvm/serialized-ir-emission.test.js +2 -0
  131. package/dist/backend/llvm/serialized-ir-emission.test.js.map +1 -1
  132. package/dist/backend/llvm/shapes.d.ts +56 -10
  133. package/dist/backend/llvm/shapes.js +178 -39
  134. package/dist/backend/llvm/shapes.js.map +1 -1
  135. package/dist/backend/llvm/shapes.test.js +61 -3
  136. package/dist/backend/llvm/shapes.test.js.map +1 -1
  137. package/dist/backend/llvm/stack-objects.js +16 -4
  138. package/dist/backend/llvm/stack-objects.js.map +1 -1
  139. package/dist/backend/llvm/stack-objects.test.js +3 -0
  140. package/dist/backend/llvm/stack-objects.test.js.map +1 -1
  141. package/dist/backend/llvm/string-reads.js +2 -2
  142. package/dist/backend/llvm/string-reads.js.map +1 -1
  143. package/dist/backend/llvm/string-slices.js +2 -2
  144. package/dist/backend/llvm/string-slices.js.map +1 -1
  145. package/dist/backend/llvm/walkers.d.ts +11 -0
  146. package/dist/backend/llvm/walkers.js +106 -10
  147. package/dist/backend/llvm/walkers.js.map +1 -1
  148. package/dist/backend/may-throw.js +13 -4
  149. package/dist/backend/may-throw.js.map +1 -1
  150. package/dist/backend/native/contracts.d.ts +5 -2
  151. package/dist/backend/native/executable.js +27 -8
  152. package/dist/backend/native/executable.js.map +1 -1
  153. package/dist/backend/native/runtime-inputs.d.ts +1 -1
  154. package/dist/backend/native/runtime-inputs.js +2 -0
  155. package/dist/backend/native/runtime-inputs.js.map +1 -1
  156. package/dist/backend/native-codegen-core.d.ts +4 -4
  157. package/dist/backend/native-codegen-core.js +4 -6
  158. package/dist/backend/native-codegen-core.js.map +1 -1
  159. package/dist/backend/native-codegen.test.js +7 -8
  160. package/dist/backend/native-codegen.test.js.map +1 -1
  161. package/dist/backend/native-link-info-core.d.ts +3 -0
  162. package/dist/backend/native-link-info-core.js.map +1 -1
  163. package/dist/backend/native-toolchain.test.js +1 -1
  164. package/dist/backend/native-toolchain.test.js.map +1 -1
  165. package/dist/backend/publication.js +3 -1
  166. package/dist/backend/publication.js.map +1 -1
  167. package/dist/backend/runtime-abi.d.ts +2 -2
  168. package/dist/backend/runtime-abi.js +2 -2
  169. package/dist/backend/runtime-pack-targets.test.js +2 -1
  170. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  171. package/dist/backend/runtime-pack.test.js +2 -1
  172. package/dist/backend/runtime-pack.test.js.map +1 -1
  173. package/dist/backend/target-diagnostics.js +11 -1
  174. package/dist/backend/target-diagnostics.js.map +1 -1
  175. package/dist/backend/target-diagnostics.test.js +4 -1
  176. package/dist/backend/target-diagnostics.test.js.map +1 -1
  177. package/dist/backend/warm-cache.js +1 -0
  178. package/dist/backend/warm-cache.js.map +1 -1
  179. package/dist/compat/fetch-profile.js +4 -4
  180. package/dist/compat/fetch-profile.js.map +1 -1
  181. package/dist/contracts/check.js +2 -0
  182. package/dist/contracts/check.js.map +1 -1
  183. package/dist/coverage/report.js +1 -1
  184. package/dist/coverage/report.js.map +1 -1
  185. package/dist/diagnostics/diagnostic.d.ts +6 -5
  186. package/dist/diagnostics/diagnostic.js +7 -6
  187. package/dist/diagnostics/diagnostic.js.map +1 -1
  188. package/dist/executable/executable-cache.d.ts +1 -0
  189. package/dist/executable/executable-cache.js +1 -0
  190. package/dist/executable/executable-cache.js.map +1 -1
  191. package/dist/executable/executable-cache.test.js +1 -0
  192. package/dist/executable/executable-cache.test.js.map +1 -1
  193. package/dist/frontend/builtin-modules.d.ts +1 -1
  194. package/dist/frontend/builtin-modules.js +1 -0
  195. package/dist/frontend/builtin-modules.js.map +1 -1
  196. package/dist/frontend/comptime-node.js +2 -2
  197. package/dist/frontend/comptime-node.js.map +1 -1
  198. package/dist/frontend/experimental-import.d.ts +5 -1
  199. package/dist/frontend/experimental-import.js +28 -3
  200. package/dist/frontend/experimental-import.js.map +1 -1
  201. package/dist/frontend/lowering/assert-instances.d.ts +38 -0
  202. package/dist/frontend/lowering/assert-instances.js +269 -0
  203. package/dist/frontend/lowering/assert-instances.js.map +1 -0
  204. package/dist/frontend/lowering/binding-analysis.d.ts +1 -1
  205. package/dist/frontend/lowering/binding-analysis.js +1 -1
  206. package/dist/frontend/lowering/builtins/arguments.d.ts +4 -0
  207. package/dist/frontend/lowering/builtins/arguments.js +8 -4
  208. package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
  209. package/dist/frontend/lowering/builtins/blob.d.ts +20 -0
  210. package/dist/frontend/lowering/builtins/blob.js +167 -0
  211. package/dist/frontend/lowering/builtins/blob.js.map +1 -0
  212. package/dist/frontend/lowering/builtins/child-process-async.d.ts +2 -2
  213. package/dist/frontend/lowering/builtins/child-process-async.js +2 -2
  214. package/dist/frontend/lowering/builtins/child-process-methods.js +1 -1
  215. package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
  216. package/dist/frontend/lowering/builtins/child-process-sync.js +1 -1
  217. package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -1
  218. package/dist/frontend/lowering/builtins/compression.d.ts +18 -0
  219. package/dist/frontend/lowering/builtins/compression.js +178 -4
  220. package/dist/frontend/lowering/builtins/compression.js.map +1 -1
  221. package/dist/frontend/lowering/builtins/constants.js +7 -2
  222. package/dist/frontend/lowering/builtins/constants.js.map +1 -1
  223. package/dist/frontend/lowering/builtins/crypto.d.ts +6 -0
  224. package/dist/frontend/lowering/builtins/crypto.js +526 -121
  225. package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
  226. package/dist/frontend/lowering/builtins/errors.js +23 -0
  227. package/dist/frontend/lowering/builtins/errors.js.map +1 -1
  228. package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +10 -0
  229. package/dist/frontend/lowering/builtins/filesystem-calls.js +89 -1
  230. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
  231. package/dist/frontend/lowering/builtins/filesystem.d.ts +16 -7
  232. package/dist/frontend/lowering/builtins/filesystem.js +97 -15
  233. package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
  234. package/dist/frontend/lowering/builtins/fs-glob.d.ts +23 -0
  235. package/dist/frontend/lowering/builtins/fs-glob.js +224 -0
  236. package/dist/frontend/lowering/builtins/fs-glob.js.map +1 -0
  237. package/dist/frontend/lowering/builtins/key-object.d.ts +13 -0
  238. package/dist/frontend/lowering/builtins/key-object.js +56 -0
  239. package/dist/frontend/lowering/builtins/key-object.js.map +1 -0
  240. package/dist/frontend/lowering/builtins/module-calls.js +44 -11
  241. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  242. package/dist/frontend/lowering/builtins/performance.d.ts +25 -3
  243. package/dist/frontend/lowering/builtins/performance.js +340 -5
  244. package/dist/frontend/lowering/builtins/performance.js.map +1 -1
  245. package/dist/frontend/lowering/builtins/process.d.ts +2 -2
  246. package/dist/frontend/lowering/builtins/process.js +107 -14
  247. package/dist/frontend/lowering/builtins/process.js.map +1 -1
  248. package/dist/frontend/lowering/builtins/properties.d.ts +0 -7
  249. package/dist/frontend/lowering/builtins/properties.js +39 -11
  250. package/dist/frontend/lowering/builtins/properties.js.map +1 -1
  251. package/dist/frontend/lowering/builtins/readline.d.ts +23 -8
  252. package/dist/frontend/lowering/builtins/readline.js +266 -90
  253. package/dist/frontend/lowering/builtins/readline.js.map +1 -1
  254. package/dist/frontend/lowering/builtins/timers.d.ts +3 -0
  255. package/dist/frontend/lowering/builtins/timers.js +109 -23
  256. package/dist/frontend/lowering/builtins/timers.js.map +1 -1
  257. package/dist/frontend/lowering/builtins/url.d.ts +8 -0
  258. package/dist/frontend/lowering/builtins/url.js +36 -0
  259. package/dist/frontend/lowering/builtins/url.js.map +1 -1
  260. package/dist/frontend/lowering/call-arguments.js +1 -1
  261. package/dist/frontend/lowering/call-arguments.js.map +1 -1
  262. package/dist/frontend/lowering/call-signatures.js +26 -2
  263. package/dist/frontend/lowering/call-signatures.js.map +1 -1
  264. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +2 -0
  265. package/dist/frontend/lowering/class-dynamic-dispatch.js +171 -13
  266. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  267. package/dist/frontend/lowering/class-dynamic-dispatch.test.js +1 -0
  268. package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
  269. package/dist/frontend/lowering/class-protocol-dispatch.d.ts +45 -0
  270. package/dist/frontend/lowering/class-protocol-dispatch.js +516 -0
  271. package/dist/frontend/lowering/class-protocol-dispatch.js.map +1 -0
  272. package/dist/frontend/lowering/coercions/structural-plans.js +2 -1
  273. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
  274. package/dist/frontend/lowering/coercions/structural.js +3 -3
  275. package/dist/frontend/lowering/coercions/structural.js.map +1 -1
  276. package/dist/frontend/lowering/collation-repertoire.js +6 -5
  277. package/dist/frontend/lowering/collation-repertoire.js.map +1 -1
  278. package/dist/frontend/lowering/containers/array-callbacks.js +4 -7
  279. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  280. package/dist/frontend/lowering/containers/array-methods.d.ts +0 -7
  281. package/dist/frontend/lowering/containers/array-methods.js +43 -2
  282. package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
  283. package/dist/frontend/lowering/containers/bytes.js +38 -26
  284. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  285. package/dist/frontend/lowering/containers/for-of.d.ts +1 -1
  286. package/dist/frontend/lowering/containers/for-of.js +5 -1
  287. package/dist/frontend/lowering/containers/for-of.js.map +1 -1
  288. package/dist/frontend/lowering/containers/indexed-objects.js +1 -1
  289. package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
  290. package/dist/frontend/lowering/crypto-tables.d.ts +3 -3
  291. package/dist/frontend/lowering/crypto-tables.js +77 -12
  292. package/dist/frontend/lowering/crypto-tables.js.map +1 -1
  293. package/dist/frontend/lowering/expressions/nullish-assignment.js +10 -0
  294. package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
  295. package/dist/frontend/lowering/expressions/object-literals.js +16 -12
  296. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  297. package/dist/frontend/lowering/generic-functions.d.ts +2 -2
  298. package/dist/frontend/lowering/generic-functions.js +2 -2
  299. package/dist/frontend/lowering/generic-functions.js.map +1 -1
  300. package/dist/frontend/lowering/http2-constants.js +1 -1
  301. package/dist/frontend/lowering/intern-tables.d.ts +13 -0
  302. package/dist/frontend/lowering/intern-tables.js +536 -0
  303. package/dist/frontend/lowering/intern-tables.js.map +1 -0
  304. package/dist/frontend/lowering/lower-array-sort.d.ts +12 -1
  305. package/dist/frontend/lowering/lower-array-sort.js +561 -191
  306. package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
  307. package/dist/frontend/lowering/lower-array-sort.test.js +4 -2
  308. package/dist/frontend/lowering/lower-array-sort.test.js.map +1 -1
  309. package/dist/frontend/lowering/lower-assert.js +702 -63
  310. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  311. package/dist/frontend/lowering/lower-async-iteration.d.ts +6 -3
  312. package/dist/frontend/lowering/lower-async-iteration.js +259 -4
  313. package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
  314. package/dist/frontend/lowering/lower-calls.js +118 -12
  315. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  316. package/dist/frontend/lowering/lower-classes.d.ts +11 -2
  317. package/dist/frontend/lowering/lower-classes.js +76 -9
  318. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  319. package/dist/frontend/lowering/lower-comptime.d.ts +1 -1
  320. package/dist/frontend/lowering/lower-comptime.js +4 -4
  321. package/dist/frontend/lowering/lower-comptime.js.map +1 -1
  322. package/dist/frontend/lowering/lower-dgram.js +77 -52
  323. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  324. package/dist/frontend/lowering/lower-event-target.d.ts +63 -0
  325. package/dist/frontend/lowering/lower-event-target.js +362 -0
  326. package/dist/frontend/lowering/lower-event-target.js.map +1 -0
  327. package/dist/frontend/lowering/lower-expando.js +2 -2
  328. package/dist/frontend/lowering/lower-exprs.js +124 -22
  329. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  330. package/dist/frontend/lowering/lower-inspect.d.ts +6 -0
  331. package/dist/frontend/lowering/lower-inspect.js +240 -49
  332. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  333. package/dist/frontend/lowering/lower-mixins.js +1 -1
  334. package/dist/frontend/lowering/lower-mock.d.ts +11 -0
  335. package/dist/frontend/lowering/lower-mock.js +504 -0
  336. package/dist/frontend/lowering/lower-mock.js.map +1 -0
  337. package/dist/frontend/lowering/lower-modules.d.ts +1 -1
  338. package/dist/frontend/lowering/lower-modules.js +14 -3
  339. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  340. package/dist/frontend/lowering/lower-namespaces.d.ts +2 -2
  341. package/dist/frontend/lowering/lower-namespaces.js +2 -2
  342. package/dist/frontend/lowering/lower-server.d.ts +3 -0
  343. package/dist/frontend/lowering/lower-server.js +419 -44
  344. package/dist/frontend/lowering/lower-server.js.map +1 -1
  345. package/dist/frontend/lowering/lower-stdlib.d.ts +7 -1
  346. package/dist/frontend/lowering/lower-stdlib.js +10 -3
  347. package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
  348. package/dist/frontend/lowering/lower-stmts.d.ts +2 -2
  349. package/dist/frontend/lowering/lower-stmts.js +69 -14
  350. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  351. package/dist/frontend/lowering/lower-stream.d.ts +10 -6
  352. package/dist/frontend/lowering/lower-stream.js +1020 -49
  353. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  354. package/dist/frontend/lowering/lower-test.js +86 -8
  355. package/dist/frontend/lowering/lower-test.js.map +1 -1
  356. package/dist/frontend/lowering/lower-timers.js +1 -1
  357. package/dist/frontend/lowering/lowerer.d.ts +45 -5
  358. package/dist/frontend/lowering/lowerer.js +317 -48
  359. package/dist/frontend/lowering/lowerer.js.map +1 -1
  360. package/dist/frontend/lowering/native-ffi.js +2 -2
  361. package/dist/frontend/lowering/native-ffi.js.map +1 -1
  362. package/dist/frontend/lowering/pairs-snapshot.d.ts +6 -0
  363. package/dist/frontend/lowering/pairs-snapshot.js +49 -0
  364. package/dist/frontend/lowering/pairs-snapshot.js.map +1 -1
  365. package/dist/frontend/lowering/runtime-optional-records.d.ts +115 -0
  366. package/dist/frontend/lowering/runtime-optional-records.js +715 -0
  367. package/dist/frontend/lowering/runtime-optional-records.js.map +1 -0
  368. package/dist/frontend/lowering/runtime-optional-records.test.d.ts +1 -0
  369. package/dist/frontend/lowering/runtime-optional-records.test.js +175 -0
  370. package/dist/frontend/lowering/runtime-optional-records.test.js.map +1 -0
  371. package/dist/frontend/lowering/surfaces.d.ts +11 -3
  372. package/dist/frontend/lowering/surfaces.js +334 -37
  373. package/dist/frontend/lowering/surfaces.js.map +1 -1
  374. package/dist/frontend/lowering/zlib-constants.d.ts +1 -0
  375. package/dist/frontend/lowering/zlib-constants.js +181 -0
  376. package/dist/frontend/lowering/zlib-constants.js.map +1 -0
  377. package/dist/frontend/mock-shapes.d.ts +10 -0
  378. package/dist/frontend/mock-shapes.js +76 -0
  379. package/dist/frontend/mock-shapes.js.map +1 -0
  380. package/dist/frontend/module-syntax.d.ts +1 -1
  381. package/dist/frontend/module-syntax.js +1 -1
  382. package/dist/frontend/npm-static-prune.js +1 -1
  383. package/dist/frontend/npm-static-prune.js.map +1 -1
  384. package/dist/frontend/npm-static-rewrite-syntax.js +4 -3
  385. package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
  386. package/dist/frontend/pipeline.js +6 -4
  387. package/dist/frontend/pipeline.js.map +1 -1
  388. package/dist/frontend/program.d.ts +3 -3
  389. package/dist/frontend/program.js +25 -18
  390. package/dist/frontend/program.js.map +1 -1
  391. package/dist/frontend/resolve.d.ts +4 -0
  392. package/dist/frontend/resolve.js +15 -1
  393. package/dist/frontend/resolve.js.map +1 -1
  394. package/dist/frontend/ts7/adapter.js +1 -1
  395. package/dist/frontend/ts7/ast-bytes.d.ts +1 -1
  396. package/dist/frontend/ts7/ast-bytes.js +1 -1
  397. package/dist/frontend/ts7/semantic-json.d.ts +1 -1
  398. package/dist/frontend/ts7/semantic-json.js +1 -1
  399. package/dist/frontend/ts7/semantic-json.js.map +1 -1
  400. package/dist/frontend/ts7/world-check.js +1 -1
  401. package/dist/frontend/tsc-codes.js +3 -2
  402. package/dist/frontend/tsc-codes.js.map +1 -1
  403. package/dist/frontend/type-mapper.d.ts +21 -1
  404. package/dist/frontend/type-mapper.js +245 -27
  405. package/dist/frontend/type-mapper.js.map +1 -1
  406. package/dist/index.js +7 -5
  407. package/dist/index.js.map +1 -1
  408. package/dist/ir/analysis.d.ts +12 -6
  409. package/dist/ir/analysis.js +26 -10
  410. package/dist/ir/analysis.js.map +1 -1
  411. package/dist/ir/analysis.test.js +15 -3
  412. package/dist/ir/analysis.test.js.map +1 -1
  413. package/dist/ir/builtin-effects.js +115 -0
  414. package/dist/ir/builtin-effects.js.map +1 -1
  415. package/dist/ir/builtin-signatures.d.ts +1 -1
  416. package/dist/ir/builtin-signatures.js +438 -46
  417. package/dist/ir/builtin-signatures.js.map +1 -1
  418. package/dist/ir/int32-slots.js +1 -0
  419. package/dist/ir/int32-slots.js.map +1 -1
  420. package/dist/ir/ir.d.ts +84 -17
  421. package/dist/ir/ir.js +54 -1
  422. package/dist/ir/ir.js.map +1 -1
  423. package/dist/ir/runtime-features.d.ts +1 -0
  424. package/dist/ir/runtime-features.js +111 -7
  425. package/dist/ir/runtime-features.js.map +1 -1
  426. package/dist/ir/serialize.js +1 -1
  427. package/dist/ir/serialize.js.map +1 -1
  428. package/dist/ir/traverse.js +1 -0
  429. package/dist/ir/traverse.js.map +1 -1
  430. package/dist/ir/validate.js +295 -14
  431. package/dist/ir/validate.js.map +1 -1
  432. package/dist/ir/validate.test.js +60 -0
  433. package/dist/ir/validate.test.js.map +1 -1
  434. package/dist/library/fence-eval.d.ts +1 -1
  435. package/dist/library/fence-eval.js +5 -4
  436. package/dist/library/fence-eval.js.map +1 -1
  437. package/dist/library/ir-policy.js +11 -4
  438. package/dist/library/ir-policy.js.map +1 -1
  439. package/dist/library/library-profile.js +13 -13
  440. package/dist/library/library-profile.js.map +1 -1
  441. package/dist/library/prepare.js +1 -1
  442. package/dist/library/prepare.js.map +1 -1
  443. package/dist/library/sidecar.js +3 -3
  444. package/dist/library/sidecar.js.map +1 -1
  445. package/dist/native/cli.js +1 -0
  446. package/dist/native/cli.js.map +1 -1
  447. package/dist/native/compiler.js +1 -3
  448. package/dist/native/compiler.js.map +1 -1
  449. package/dist/native/prepare.js +4 -2
  450. package/dist/native/prepare.js.map +1 -1
  451. package/dist/native/sanitizer.test.js +1 -0
  452. package/dist/native/sanitizer.test.js.map +1 -1
  453. package/package.json +20 -20
  454. package/surface-manifest.json +1279 -221
@@ -0,0 +1,362 @@
1
+ /* Compiled subclasses of EventTarget and Event (`class Bus extends
2
+ * EventTarget`, `class Ping extends Event`).
3
+ *
4
+ * Plain `new EventTarget()` / `new Event()` values are checked-dynamic
5
+ * handles over the runtime engine (scr_event_target.c). A program class
6
+ * extending either one roots at a runtime base class (%EventTarget /
7
+ * %Event) whose instance prefix points at the same engine state: super()
8
+ * creates it, and the backend embeds the prefix like the emitter's. The
9
+ * inherited members lower here for typed receivers. Checked-dynamic
10
+ * capsules of the instances are recognized by the runtime, so the
11
+ * engine's own values are the instances themselves: a target's capsule is
12
+ * its listeners' `this` and its events' target, and an Event subclass
13
+ * instance is what its listeners receive. Property reads, writes and
14
+ * method calls on those capsules reach the inherited members through the
15
+ * class property dispatch (class-dynamic-dispatch.ts) and the runtime's
16
+ * capsule hooks.
17
+ *
18
+ * Subclass members spelling an inherited member are fenced: the engine
19
+ * reads its own state (the event's type, the target's listener lists)
20
+ * and never calls an override.
21
+ */
22
+ import * as ts from "../ts7/adapter.js";
23
+ import { locOf } from "../program.js";
24
+ import { strLit } from "../../ir/build.js";
25
+ import { BOOL, DYN, RUNTIME_EVENT_CLASS, RUNTIME_EVENT_TARGET_CLASS, VOID, } from "../../ir/ir.js";
26
+ const HANDLE_EVENT_READER = "%event.handleEventOf";
27
+ /** A program that can register EventTarget listeners and declares a class
28
+ * with a handleEvent method lifts `%event.handleEventOf(listener) =
29
+ * listener.handleEvent`, a checked-dynamic read the class property
30
+ * dispatch resolves through each class's compiled members (overrides and
31
+ * own properties included). %main installs it for the engine, which reads
32
+ * a capsule listener's handleEvent through it at every dispatch, as Node
33
+ * does; class views alone carry fields, not methods. Called by the
34
+ * EventTarget lowerings. */
35
+ export function noteEventListeners(lowerer, loc) {
36
+ if (lowerer.handleEventReader)
37
+ return;
38
+ const declares = [...lowerer.classes.values()].some((info) => !info.def.runtime && lowerer.findMethodOn(info, "handleEvent") !== null);
39
+ if (!declares)
40
+ return;
41
+ lowerer.handleEventReader = true;
42
+ lowerer.liftedFns.push({
43
+ name: HANDLE_EVENT_READER,
44
+ params: [{ localId: "listener", name: "listener", type: DYN }],
45
+ returnType: DYN,
46
+ locals: [{ id: "listener", name: "listener", type: DYN, mutable: false }],
47
+ body: [
48
+ {
49
+ kind: "return",
50
+ value: {
51
+ kind: "dynKeyGet",
52
+ value: { kind: "varRef", localId: "listener", type: DYN, loc },
53
+ key: strLit("handleEvent", loc),
54
+ type: DYN,
55
+ loc,
56
+ },
57
+ loc,
58
+ },
59
+ ],
60
+ loc,
61
+ });
62
+ }
63
+ /** %main's installation of the handleEvent reader, when one was lifted. */
64
+ export function handleEventReaderPrelude(lowerer, loc) {
65
+ if (!lowerer.handleEventReader)
66
+ return [];
67
+ const reader = {
68
+ kind: "dynFrom",
69
+ value: {
70
+ kind: "closure",
71
+ fnName: HANDLE_EVENT_READER,
72
+ captures: [],
73
+ type: { kind: "func", params: [DYN], ret: DYN },
74
+ loc,
75
+ },
76
+ type: DYN,
77
+ loc,
78
+ };
79
+ return [
80
+ {
81
+ kind: "exprStmt",
82
+ expr: { kind: "libCall", fn: "event.handleEventReader", args: [reader], type: VOID, loc },
83
+ loc,
84
+ },
85
+ ];
86
+ }
87
+ /** The EventTarget methods compiled subclasses inherit. */
88
+ export const EVENT_TARGET_API_MEMBERS = new Set([
89
+ "addEventListener",
90
+ "removeEventListener",
91
+ "dispatchEvent",
92
+ ]);
93
+ /** The Event methods compiled subclasses inherit. */
94
+ const EVENT_API_METHODS = new Set([
95
+ "preventDefault",
96
+ "stopPropagation",
97
+ "stopImmediatePropagation",
98
+ "composedPath",
99
+ "initEvent",
100
+ ]);
101
+ /** The Event accessors compiled subclasses inherit (Event.prototype's). */
102
+ const EVENT_API_PROPERTIES = new Set([
103
+ "type",
104
+ "target",
105
+ "srcElement",
106
+ "currentTarget",
107
+ "eventPhase",
108
+ "bubbles",
109
+ "cancelable",
110
+ "composed",
111
+ "defaultPrevented",
112
+ "returnValue",
113
+ "cancelBubble",
114
+ "timeStamp",
115
+ "isTrusted",
116
+ ]);
117
+ /** Whether `name` is an inherited member (accessor or method) of
118
+ * `info`'s instances. */
119
+ export function eventTargetInheritedMember(info, name) {
120
+ return eventTargetApiMembers(info)?.has(name) ?? false;
121
+ }
122
+ /** Every inherited Event member name (the subclass-member fence). */
123
+ export const EVENT_API_MEMBERS = new Set([
124
+ ...EVENT_API_METHODS,
125
+ ...EVENT_API_PROPERTIES,
126
+ ]);
127
+ /** Registers the runtime bases as ClassInfos (the emitter story): no
128
+ * decl and no lowerable bodies; super() reaches them through event.*
129
+ * libCalls. `new EventTarget()` takes no arguments; `new Event(type,
130
+ * options)` takes the argument vector as one dyn array, which the runtime
131
+ * validates like Node's constructor. */
132
+ export function registerBuiltinEventTargetClasses(lowerer) {
133
+ const loc = { file: "<builtin>", start: 0, end: 0 };
134
+ const classes = [
135
+ [RUNTIME_EVENT_TARGET_CLASS, "target"],
136
+ [RUNTIME_EVENT_CLASS, "event"],
137
+ ];
138
+ for (const [name, kind] of classes) {
139
+ lowerer.classes.set(name, {
140
+ def: { name, runtime: true, fields: [], loc },
141
+ fields: new Map(),
142
+ fieldOrder: [],
143
+ methods: new Map(),
144
+ decl: null,
145
+ builtinEventTarget: kind,
146
+ ctor: null,
147
+ ctorParams: kind === "event" ? [{ type: DYN, mode: "dynRest" }] : [],
148
+ base: null,
149
+ subclasses: [],
150
+ throwingSetters: [],
151
+ staticFields: [],
152
+ });
153
+ }
154
+ }
155
+ /** The runtime base an `extends` expression names (the global EventTarget
156
+ * or Event), or null. */
157
+ export function builtinEventTargetBaseOf(lowerer, expr) {
158
+ if (lowerer.isStdlibGlobal(expr, "EventTarget"))
159
+ return lowerer.classes.get(RUNTIME_EVENT_TARGET_CLASS) ?? null;
160
+ if (lowerer.isStdlibGlobal(expr, "Event"))
161
+ return lowerer.classes.get(RUNTIME_EVENT_CLASS) ?? null;
162
+ return null;
163
+ }
164
+ /** Which runtime base a class roots at, or null. */
165
+ export function eventTargetRootOf(info) {
166
+ for (let c = info ?? null; c; c = c.base)
167
+ if (c.builtinEventTarget)
168
+ return c.builtinEventTarget;
169
+ return null;
170
+ }
171
+ /** The inherited member names of a class rooted at a runtime base. */
172
+ export function eventTargetApiMembers(info) {
173
+ const root = eventTargetRootOf(info);
174
+ return root === "target" ? EVENT_TARGET_API_MEMBERS : root === "event" ? EVENT_API_MEMBERS : null;
175
+ }
176
+ /** Whether `name` is an inherited method of a class rooted at a runtime
177
+ * base. */
178
+ export function eventTargetApiMethod(info, name) {
179
+ const root = eventTargetRootOf(info);
180
+ return root === "target"
181
+ ? EVENT_TARGET_API_MEMBERS.has(name)
182
+ : root === "event" && EVENT_API_METHODS.has(name);
183
+ }
184
+ /** super() / super(type, options) into a runtime base. `args` is the
185
+ * completed argument list: nothing for EventTarget, the dyn argument
186
+ * vector for Event. */
187
+ export function eventTargetSuperCall(lowerer, base, thisRef, args, loc) {
188
+ noteEventListeners(lowerer, loc);
189
+ const receiver = lowerer.upcastTo(thisRef, base.def.name);
190
+ const vector = args[0] ?? { kind: "dynArrLit", elems: [], type: DYN, loc };
191
+ // super(type) with a string needs no argument vector.
192
+ const only = vector.kind === "dynArrLit" && vector.elems.length === 1 ? vector.elems[0] : null;
193
+ const expr = base.builtinEventTarget === "target"
194
+ ? { kind: "libCall", fn: "event.targetInit", args: [receiver], type: VOID, loc }
195
+ : only?.kind === "dynFrom" && only.value.type.kind === "string"
196
+ ? { kind: "libCall", fn: "event.initType", args: [receiver, only.value], type: VOID, loc }
197
+ : { kind: "libCall", fn: "event.init", args: [receiver, vector], type: VOID, loc };
198
+ return { kind: "exprStmt", expr, loc };
199
+ }
200
+ /** The receiver lowered once: a local or `this` is used as is; anything
201
+ * else evaluates into a hidden local first. */
202
+ function singleReceiver(lowerer, receiver, loc) {
203
+ if (receiver.kind === "varRef")
204
+ return { stmts: [], ref: receiver };
205
+ const local = lowerer.declareHiddenLocal("%eventReceiver", receiver.type);
206
+ return {
207
+ stmts: [{ kind: "varDecl", localId: local.id, init: receiver, loc }],
208
+ ref: { kind: "varRef", localId: local.id, type: receiver.type, loc },
209
+ };
210
+ }
211
+ function withReceiver(stmts, result, loc) {
212
+ if (stmts.length === 0)
213
+ return result;
214
+ return { kind: "seqExpr", stmts, result, type: result.type, loc };
215
+ }
216
+ /** The dyn result of an inherited member, converted to the type the
217
+ * checker gives the expression (void and checked-dynamic stay as is). */
218
+ function typedResult(lowerer, node, value) {
219
+ const expected = lowerer.mapTypeOf(lowerer.typeOf(node));
220
+ if (!expected || expected.kind === "void" || expected.kind === "dyn")
221
+ return value;
222
+ return lowerer.coerceToExpected(value, expected);
223
+ }
224
+ /** A call of an inherited EventTarget or Event method on a typed receiver
225
+ * of a class rooted at a runtime base. Listener arguments cross as live
226
+ * values (typed `handleEvent` records keep their identity), the rest as
227
+ * checked-dynamic values. */
228
+ export function lowerEventTargetMethodCall(lowerer, call, access, info, receiverExpr) {
229
+ const member = access.name.text;
230
+ const loc = locOf(call);
231
+ if (call.arguments.some(ts.isSpreadElement)) {
232
+ lowerer.noLowering(`${member} with spread arguments`, call);
233
+ }
234
+ const target = eventTargetRootOf(info) === "target";
235
+ if (target)
236
+ noteEventListeners(lowerer, loc);
237
+ const { stmts, ref } = singleReceiver(lowerer, receiverExpr, loc);
238
+ const args = call.arguments.map((arg, index) => target && index === 1 && member !== "dispatchEvent"
239
+ ? lowerer.lowerLiveWebValue(arg)
240
+ : lowerer.lowerExprExpecting(arg, DYN));
241
+ const self = () => lowerer.coerceToExpected(ref, DYN);
242
+ if (target && member === "dispatchEvent" && args.length === 1) {
243
+ const dispatched = {
244
+ kind: "libCall",
245
+ fn: "event.targetDispatch",
246
+ args: [ref, self(), args[0]],
247
+ type: BOOL,
248
+ loc,
249
+ };
250
+ return withReceiver(stmts, dispatched, loc);
251
+ }
252
+ const vector = { kind: "dynArrLit", elems: args, type: DYN, loc };
253
+ const value = target
254
+ ? {
255
+ kind: "libCall",
256
+ fn: "event.targetCall",
257
+ args: [ref, self(), strLit(member, loc), vector],
258
+ type: DYN,
259
+ loc,
260
+ }
261
+ : {
262
+ kind: "libCall",
263
+ fn: "event.call",
264
+ args: [ref, strLit(member, loc), vector],
265
+ type: DYN,
266
+ loc,
267
+ };
268
+ return typedResult(lowerer, call, withReceiver(stmts, value, loc));
269
+ }
270
+ /** A read of an inherited member on a typed receiver (an Event accessor,
271
+ * or a method read as a value), or null when the access is not one. */
272
+ export function lowerEventObjectProperty(lowerer, expr) {
273
+ if (expr.questionDotToken && !lowerer.chainHandled.has(expr))
274
+ return null;
275
+ const name = expr.name.text;
276
+ const recvT = lowerer.mapTypeOf(lowerer.typeOf(expr.expression));
277
+ if (recvT?.kind !== "object")
278
+ return null;
279
+ const info = lowerer.classes.get(recvT.className);
280
+ if (!eventTargetApiMembers(info)?.has(name))
281
+ return null;
282
+ const loc = locOf(expr);
283
+ const receiver = lowerer.lowerExpr(expr.expression);
284
+ if (receiver.type.kind !== "object")
285
+ return null;
286
+ // Accessors read the event directly; method values come from the
287
+ // capsule view (the prototype's function, run on its `this`).
288
+ const value = EVENT_API_PROPERTIES.has(name)
289
+ ? { kind: "libCall", fn: "event.get", args: [receiver, strLit(name, loc)], type: DYN, loc }
290
+ : {
291
+ kind: "dynKeyGet",
292
+ value: lowerer.coerceToExpected(receiver, DYN),
293
+ key: strLit(name, loc),
294
+ type: DYN,
295
+ loc,
296
+ };
297
+ return typedResult(lowerer, expr, value);
298
+ }
299
+ /** Whether `target` is `returnValue` or `cancelBubble` (the two writable
300
+ * accessors) on a typed receiver of an Event subclass. */
301
+ export function isEventWritableAccessor(lowerer, target) {
302
+ const name = target.name.text;
303
+ if (name !== "returnValue" && name !== "cancelBubble")
304
+ return false;
305
+ if (target.questionDotToken)
306
+ return false;
307
+ const recvT = lowerer.mapTypeOf(lowerer.typeOf(target.expression));
308
+ if (recvT?.kind !== "object")
309
+ return false;
310
+ return eventTargetRootOf(lowerer.classes.get(recvT.className)) === "event";
311
+ }
312
+ /** The event.set write of an Event subclass's writable accessor. */
313
+ export function eventAccessorWrite(receiver, name, value, lowerer, loc) {
314
+ return {
315
+ kind: "exprStmt",
316
+ expr: {
317
+ kind: "libCall",
318
+ fn: "event.set",
319
+ args: [receiver, strLit(name, loc), lowerer.coerceToExpected(value, DYN)],
320
+ type: VOID,
321
+ loc,
322
+ },
323
+ loc,
324
+ };
325
+ }
326
+ /** The event.get read of an Event subclass's writable accessor, typed as
327
+ * the accessor's boolean. */
328
+ export function eventAccessorRead(receiver, name, lowerer, loc) {
329
+ return lowerer.coerceToExpected({ kind: "libCall", fn: "event.get", args: [receiver, strLit(name, loc)], type: DYN, loc }, BOOL);
330
+ }
331
+ /** `event.returnValue = v` / `event.cancelBubble = v` on a typed receiver
332
+ * of an Event subclass, in statement or value position, or null when the
333
+ * target is not one. The receiver evaluates before the value, and the
334
+ * expression's value is the assigned one, whatever the setter does. */
335
+ export function lowerEventObjectPropertyWrite(lowerer, target, value) {
336
+ if (!isEventWritableAccessor(lowerer, target))
337
+ return null;
338
+ const loc = locOf(target);
339
+ const receiver = lowerer.lowerExpr(target.expression);
340
+ const receiverLocal = lowerer.declareHiddenLocal("%eventReceiver", receiver.type);
341
+ const receiverRef = {
342
+ kind: "varRef",
343
+ localId: receiverLocal.id,
344
+ type: receiver.type,
345
+ loc,
346
+ };
347
+ const assigned = lowerer.lowerExpr(value);
348
+ const local = lowerer.declareHiddenLocal("%eventAssigned", assigned.type);
349
+ const ref = { kind: "varRef", localId: local.id, type: assigned.type, loc };
350
+ return {
351
+ kind: "seqExpr",
352
+ stmts: [
353
+ { kind: "varDecl", localId: receiverLocal.id, init: receiver, loc },
354
+ { kind: "varDecl", localId: local.id, init: assigned, loc },
355
+ eventAccessorWrite(receiverRef, target.name.text, ref, lowerer, loc),
356
+ ],
357
+ result: ref,
358
+ type: assigned.type,
359
+ loc,
360
+ };
361
+ }
362
+ //# sourceMappingURL=lower-event-target.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lower-event-target.js","sourceRoot":"","sources":["../../../src/frontend/lowering/lower-event-target.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@
21
21
  * a later write's value);
22
22
  * - writes to the READ-ONLY function members (`length`, `name`,
23
23
  * `caller`, `arguments`) fence: strict-mode JS (every module) throws
24
- * TypeError there, and a global slot would silently succeed. WRITABLE
24
+ * TypeError there, and a global slot write would succeed. WRITABLE
25
25
  * Function.prototype members (`apply`, `call`, `bind`, `toString`)
26
26
  * shadow through an own property in JS and lower like any other member
27
27
  * — reads route to the registry, so the shadowed value is what reads
@@ -39,7 +39,7 @@ function memberOf(members, key) {
39
39
  }
40
40
  /** Function members JS refuses to assign in strict mode (every module is
41
41
  * strict): non-writable own properties of functions plus the poisoned
42
- * caller/arguments pair. A global slot would silently succeed where Node
42
+ * caller/arguments pair. A global slot write would succeed where Node
43
43
  * throws TypeError, so writes fence by name. */
44
44
  const READONLY_FN_MEMBERS = new Set(["length", "name", "caller", "arguments", "prototype"]);
45
45
  /** The member key of an assignment target / read site: a spelled or