@scriptc/compiler 0.3.0 → 0.3.2

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 (413) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +346 -17
  2. package/dist/backend/executable-features.js +1 -0
  3. package/dist/backend/executable-features.js.map +1 -1
  4. package/dist/backend/literals.d.ts +7 -0
  5. package/dist/backend/literals.js +32 -0
  6. package/dist/backend/literals.js.map +1 -1
  7. package/dist/backend/literals.test.js +17 -1
  8. package/dist/backend/literals.test.js.map +1 -1
  9. package/dist/backend/llvm/alloc.d.ts +15 -4
  10. package/dist/backend/llvm/alloc.js +39 -15
  11. package/dist/backend/llvm/alloc.js.map +1 -1
  12. package/dist/backend/llvm/alloc.test.js +15 -1
  13. package/dist/backend/llvm/alloc.test.js.map +1 -1
  14. package/dist/backend/llvm/appended-array-literals.d.ts +2 -0
  15. package/dist/backend/llvm/appended-array-literals.js +109 -0
  16. package/dist/backend/llvm/appended-array-literals.js.map +1 -0
  17. package/dist/backend/llvm/appended-array-literals.test.d.ts +1 -0
  18. package/dist/backend/llvm/appended-array-literals.test.js +90 -0
  19. package/dist/backend/llvm/appended-array-literals.test.js.map +1 -0
  20. package/dist/backend/llvm/bigint-wrap.d.ts +4 -0
  21. package/dist/backend/llvm/bigint-wrap.js +590 -0
  22. package/dist/backend/llvm/bigint-wrap.js.map +1 -0
  23. package/dist/backend/llvm/blocks.d.ts +2 -0
  24. package/dist/backend/llvm/blocks.js +4 -0
  25. package/dist/backend/llvm/blocks.js.map +1 -1
  26. package/dist/backend/llvm/call-lifetimes.d.ts +4 -1
  27. package/dist/backend/llvm/call-lifetimes.js +66 -7
  28. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  29. package/dist/backend/llvm/call-lifetimes.test.js +14 -3
  30. package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
  31. package/dist/backend/llvm/checked-narrows.test.js +1 -1
  32. package/dist/backend/llvm/checked-narrows.test.js.map +1 -1
  33. package/dist/backend/llvm/classes.js +67 -14
  34. package/dist/backend/llvm/classes.js.map +1 -1
  35. package/dist/backend/llvm/classes.test.js +6 -6
  36. package/dist/backend/llvm/classes.test.js.map +1 -1
  37. package/dist/backend/llvm/common.d.ts +7 -5
  38. package/dist/backend/llvm/common.js +7 -5
  39. package/dist/backend/llvm/common.js.map +1 -1
  40. package/dist/backend/llvm/constant-callbacks.js +10 -28
  41. package/dist/backend/llvm/constant-callbacks.js.map +1 -1
  42. package/dist/backend/llvm/dense-array-access.js +146 -53
  43. package/dist/backend/llvm/dense-array-access.js.map +1 -1
  44. package/dist/backend/llvm/dense-array-access.test.js +68 -3
  45. package/dist/backend/llvm/dense-array-access.test.js.map +1 -1
  46. package/dist/backend/llvm/dyn.d.ts +4 -0
  47. package/dist/backend/llvm/dyn.js +15 -2
  48. package/dist/backend/llvm/dyn.js.map +1 -1
  49. package/dist/backend/llvm/emitter.d.ts +163 -8
  50. package/dist/backend/llvm/emitter.js +973 -100
  51. package/dist/backend/llvm/emitter.js.map +1 -1
  52. package/dist/backend/llvm/emitter.test.js +14 -7
  53. package/dist/backend/llvm/emitter.test.js.map +1 -1
  54. package/dist/backend/llvm/expr-async.js +242 -49
  55. package/dist/backend/llvm/expr-async.js.map +1 -1
  56. package/dist/backend/llvm/expr-async.test.js +1 -1
  57. package/dist/backend/llvm/expr-async.test.js.map +1 -1
  58. package/dist/backend/llvm/expr-bytes.js +51 -36
  59. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  60. package/dist/backend/llvm/expr-callbacks.d.ts +8 -0
  61. package/dist/backend/llvm/expr-callbacks.js +153 -4
  62. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  63. package/dist/backend/llvm/expr-calls.d.ts +12 -1
  64. package/dist/backend/llvm/expr-calls.js +279 -78
  65. package/dist/backend/llvm/expr-calls.js.map +1 -1
  66. package/dist/backend/llvm/expr-calls.test.d.ts +1 -0
  67. package/dist/backend/llvm/expr-calls.test.js +132 -0
  68. package/dist/backend/llvm/expr-calls.test.js.map +1 -0
  69. package/dist/backend/llvm/expr-containers.d.ts +7 -0
  70. package/dist/backend/llvm/expr-containers.js +49 -5
  71. package/dist/backend/llvm/expr-containers.js.map +1 -1
  72. package/dist/backend/llvm/expr-context.d.ts +4 -0
  73. package/dist/backend/llvm/expr-control.d.ts +8 -0
  74. package/dist/backend/llvm/expr-control.js +103 -69
  75. package/dist/backend/llvm/expr-control.js.map +1 -1
  76. package/dist/backend/llvm/expr-dispatch.js +3 -0
  77. package/dist/backend/llvm/expr-dispatch.js.map +1 -1
  78. package/dist/backend/llvm/expr-dynamic.js +28 -6
  79. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  80. package/dist/backend/llvm/expr-primitives.d.ts +14 -0
  81. package/dist/backend/llvm/expr-primitives.js +110 -48
  82. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  83. package/dist/backend/llvm/expr-primitives.test.js +95 -5
  84. package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
  85. package/dist/backend/llvm/expr-records.d.ts +9 -0
  86. package/dist/backend/llvm/expr-records.js +144 -16
  87. package/dist/backend/llvm/expr-records.js.map +1 -1
  88. package/dist/backend/llvm/expr-stream-bridges.d.ts +9 -1
  89. package/dist/backend/llvm/expr-stream-bridges.js +152 -4
  90. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  91. package/dist/backend/llvm/expr-stream-bridges.test.js +98 -1
  92. package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -1
  93. package/dist/backend/llvm/int32-abi.d.ts +47 -0
  94. package/dist/backend/llvm/int32-abi.js +83 -0
  95. package/dist/backend/llvm/int32-abi.js.map +1 -0
  96. package/dist/backend/llvm/int32-abi.test.d.ts +1 -0
  97. package/dist/backend/llvm/int32-abi.test.js +181 -0
  98. package/dist/backend/llvm/int32-abi.test.js.map +1 -0
  99. package/dist/backend/llvm/int32-locals.d.ts +30 -0
  100. package/dist/backend/llvm/int32-locals.js +95 -0
  101. package/dist/backend/llvm/int32-locals.js.map +1 -0
  102. package/dist/backend/llvm/integer-values.d.ts +4 -0
  103. package/dist/backend/llvm/integer-values.js +30 -1
  104. package/dist/backend/llvm/integer-values.js.map +1 -1
  105. package/dist/backend/llvm/integer-views.d.ts +8 -1
  106. package/dist/backend/llvm/integer-views.js +47 -2
  107. package/dist/backend/llvm/integer-views.js.map +1 -1
  108. package/dist/backend/llvm/lazy-captures.d.ts +16 -0
  109. package/dist/backend/llvm/lazy-captures.js +88 -2
  110. package/dist/backend/llvm/lazy-captures.js.map +1 -1
  111. package/dist/backend/llvm/lazy-captures.test.js +48 -0
  112. package/dist/backend/llvm/lazy-captures.test.js.map +1 -1
  113. package/dist/backend/llvm/lib-dispatch.js +21 -0
  114. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  115. package/dist/backend/llvm/lib-filesystem.js +61 -0
  116. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  117. package/dist/backend/llvm/lib-shared.js +83 -9
  118. package/dist/backend/llvm/lib-shared.js.map +1 -1
  119. package/dist/backend/llvm/local-array-reads.js +26 -5
  120. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  121. package/dist/backend/llvm/local-array-reads.test.js +3 -2
  122. package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
  123. package/dist/backend/llvm/local-union-storage.d.ts +24 -2
  124. package/dist/backend/llvm/local-union-storage.js +127 -12
  125. package/dist/backend/llvm/local-union-storage.js.map +1 -1
  126. package/dist/backend/llvm/local-union-storage.test.js +108 -3
  127. package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
  128. package/dist/backend/llvm/map-read-lifetimes.test.js +2 -2
  129. package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
  130. package/dist/backend/llvm/record-results.d.ts +26 -0
  131. package/dist/backend/llvm/record-results.js +252 -0
  132. package/dist/backend/llvm/record-results.js.map +1 -0
  133. package/dist/backend/llvm/reference-effects.js +4 -0
  134. package/dist/backend/llvm/reference-effects.js.map +1 -1
  135. package/dist/backend/llvm/reference-writes.d.ts +3 -0
  136. package/dist/backend/llvm/reference-writes.js +25 -11
  137. package/dist/backend/llvm/reference-writes.js.map +1 -1
  138. package/dist/backend/llvm/regex-matchers.d.ts +39 -0
  139. package/dist/backend/llvm/regex-matchers.js +1649 -0
  140. package/dist/backend/llvm/regex-matchers.js.map +1 -0
  141. package/dist/backend/llvm/regex-matchers.test.d.ts +1 -0
  142. package/dist/backend/llvm/regex-matchers.test.js +96 -0
  143. package/dist/backend/llvm/regex-matchers.test.js.map +1 -0
  144. package/dist/backend/llvm/regions.d.ts +67 -0
  145. package/dist/backend/llvm/regions.js +309 -0
  146. package/dist/backend/llvm/regions.js.map +1 -0
  147. package/dist/backend/llvm/regions.test.d.ts +1 -0
  148. package/dist/backend/llvm/regions.test.js +173 -0
  149. package/dist/backend/llvm/regions.test.js.map +1 -0
  150. package/dist/backend/llvm/shapes.d.ts +70 -8
  151. package/dist/backend/llvm/shapes.js +157 -29
  152. package/dist/backend/llvm/shapes.js.map +1 -1
  153. package/dist/backend/llvm/shapes.test.js +7 -6
  154. package/dist/backend/llvm/shapes.test.js.map +1 -1
  155. package/dist/backend/llvm/split-loops.js +1 -1
  156. package/dist/backend/llvm/split-loops.js.map +1 -1
  157. package/dist/backend/llvm/stack-objects.d.ts +29 -0
  158. package/dist/backend/llvm/stack-objects.js +130 -0
  159. package/dist/backend/llvm/stack-objects.js.map +1 -0
  160. package/dist/backend/llvm/stack-objects.test.d.ts +1 -0
  161. package/dist/backend/llvm/stack-objects.test.js +252 -0
  162. package/dist/backend/llvm/stack-objects.test.js.map +1 -0
  163. package/dist/backend/llvm/stack-unions.test.js +1 -1
  164. package/dist/backend/llvm/stack-unions.test.js.map +1 -1
  165. package/dist/backend/llvm/string-construction.test.js +2 -2
  166. package/dist/backend/llvm/string-construction.test.js.map +1 -1
  167. package/dist/backend/llvm/string-lifetimes.test.js +5 -5
  168. package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
  169. package/dist/backend/llvm/string-literal-equality.d.ts +22 -0
  170. package/dist/backend/llvm/string-literal-equality.js +78 -0
  171. package/dist/backend/llvm/string-literal-equality.js.map +1 -0
  172. package/dist/backend/llvm/string-reads.d.ts +4 -1
  173. package/dist/backend/llvm/string-reads.js +89 -9
  174. package/dist/backend/llvm/string-reads.js.map +1 -1
  175. package/dist/backend/llvm/switch-dispatch.js +60 -13
  176. package/dist/backend/llvm/switch-dispatch.js.map +1 -1
  177. package/dist/backend/llvm/switch-dispatch.test.js +71 -6
  178. package/dist/backend/llvm/switch-dispatch.test.js.map +1 -1
  179. package/dist/backend/llvm/union-retype.test.d.ts +1 -0
  180. package/dist/backend/llvm/union-retype.test.js +229 -0
  181. package/dist/backend/llvm/union-retype.test.js.map +1 -0
  182. package/dist/backend/llvm/walkers.d.ts +2 -0
  183. package/dist/backend/llvm/walkers.js +4 -2
  184. package/dist/backend/llvm/walkers.js.map +1 -1
  185. package/dist/backend/llvm/wrapping-sums.d.ts +17 -0
  186. package/dist/backend/llvm/wrapping-sums.js +113 -0
  187. package/dist/backend/llvm/wrapping-sums.js.map +1 -0
  188. package/dist/backend/loop-polls.js +1 -0
  189. package/dist/backend/loop-polls.js.map +1 -1
  190. package/dist/backend/mangle.d.ts +9 -0
  191. package/dist/backend/mangle.js +15 -0
  192. package/dist/backend/mangle.js.map +1 -1
  193. package/dist/backend/may-throw.js +7 -3
  194. package/dist/backend/may-throw.js.map +1 -1
  195. package/dist/backend/native/contracts.d.ts +5 -0
  196. package/dist/backend/native/executable.js +16 -1
  197. package/dist/backend/native/executable.js.map +1 -1
  198. package/dist/backend/native/library.js +1 -1
  199. package/dist/backend/native/library.js.map +1 -1
  200. package/dist/backend/native/runtime-inputs.d.ts +1 -1
  201. package/dist/backend/native/runtime-inputs.js +2 -0
  202. package/dist/backend/native/runtime-inputs.js.map +1 -1
  203. package/dist/backend/native-link-info-core.d.ts +1 -0
  204. package/dist/backend/native-link-info-core.js.map +1 -1
  205. package/dist/backend/runtime-abi.d.ts +2 -2
  206. package/dist/backend/runtime-abi.js +2 -2
  207. package/dist/backend/runtime-pack-core.d.ts +1 -0
  208. package/dist/backend/runtime-pack-core.js +1 -0
  209. package/dist/backend/runtime-pack-core.js.map +1 -1
  210. package/dist/backend/runtime-pack-targets.test.js +1 -1
  211. package/dist/backend/runtime-pack.test.js +1 -1
  212. package/dist/backend/target-diagnostics.js +14 -0
  213. package/dist/backend/target-diagnostics.js.map +1 -1
  214. package/dist/backend/target-diagnostics.test.js +13 -0
  215. package/dist/backend/target-diagnostics.test.js.map +1 -1
  216. package/dist/contracts/check.js +4 -0
  217. package/dist/contracts/check.js.map +1 -1
  218. package/dist/executable/executable-cache.d.ts +1 -0
  219. package/dist/executable/executable-cache.js.map +1 -1
  220. package/dist/frontend/experimental-import.d.ts +12 -0
  221. package/dist/frontend/experimental-import.js +63 -0
  222. package/dist/frontend/experimental-import.js.map +1 -0
  223. package/dist/frontend/lowering/array-values.d.ts +14 -0
  224. package/dist/frontend/lowering/array-values.js +29 -0
  225. package/dist/frontend/lowering/array-values.js.map +1 -1
  226. package/dist/frontend/lowering/builtin-calls.d.ts +6 -1
  227. package/dist/frontend/lowering/builtin-calls.js +36 -0
  228. package/dist/frontend/lowering/builtin-calls.js.map +1 -1
  229. package/dist/frontend/lowering/builtins/console.d.ts +16 -6
  230. package/dist/frontend/lowering/builtins/console.js +33 -9
  231. package/dist/frontend/lowering/builtins/console.js.map +1 -1
  232. package/dist/frontend/lowering/builtins/errors.js +20 -0
  233. package/dist/frontend/lowering/builtins/errors.js.map +1 -1
  234. package/dist/frontend/lowering/builtins/json.d.ts +2 -2
  235. package/dist/frontend/lowering/builtins/json.js +13 -4
  236. package/dist/frontend/lowering/builtins/json.js.map +1 -1
  237. package/dist/frontend/lowering/builtins/module-calls.js +16 -1
  238. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  239. package/dist/frontend/lowering/builtins/numbers.d.ts +1 -0
  240. package/dist/frontend/lowering/builtins/numbers.js +17 -0
  241. package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
  242. package/dist/frontend/lowering/builtins/operating-system.d.ts +18 -0
  243. package/dist/frontend/lowering/builtins/operating-system.js +361 -1
  244. package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
  245. package/dist/frontend/lowering/builtins/process.js +15 -3
  246. package/dist/frontend/lowering/builtins/process.js.map +1 -1
  247. package/dist/frontend/lowering/builtins/promises.js +109 -2
  248. package/dist/frontend/lowering/builtins/promises.js.map +1 -1
  249. package/dist/frontend/lowering/builtins/text-codecs.d.ts +3 -4
  250. package/dist/frontend/lowering/builtins/text-codecs.js +3 -4
  251. package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -1
  252. package/dist/frontend/lowering/checked-promise-all.d.ts +10 -3
  253. package/dist/frontend/lowering/checked-promise-all.js +52 -6
  254. package/dist/frontend/lowering/checked-promise-all.js.map +1 -1
  255. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +6 -3
  256. package/dist/frontend/lowering/class-dynamic-dispatch.js +54 -31
  257. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  258. package/dist/frontend/lowering/containers/array-callbacks.js +74 -4
  259. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  260. package/dist/frontend/lowering/containers/array-construction.js +8 -4
  261. package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
  262. package/dist/frontend/lowering/containers/array-pipelines.d.ts +54 -0
  263. package/dist/frontend/lowering/containers/array-pipelines.js +1827 -0
  264. package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -0
  265. package/dist/frontend/lowering/containers/exec-result-uses.d.ts +10 -0
  266. package/dist/frontend/lowering/containers/exec-result-uses.js +88 -0
  267. package/dist/frontend/lowering/containers/exec-result-uses.js.map +1 -0
  268. package/dist/frontend/lowering/containers/string-and-regexp.js +106 -7
  269. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  270. package/dist/frontend/lowering/containers/string-replacement.d.ts +2 -1
  271. package/dist/frontend/lowering/containers/string-replacement.js +32 -136
  272. package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
  273. package/dist/frontend/lowering/cycle-initialization.d.ts +18 -2
  274. package/dist/frontend/lowering/cycle-initialization.js +166 -12
  275. package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
  276. package/dist/frontend/lowering/deferred-module-initializers.js +7 -2
  277. package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
  278. package/dist/frontend/lowering/deferred-module-initializers.test.js +28 -0
  279. package/dist/frontend/lowering/deferred-module-initializers.test.js.map +1 -1
  280. package/dist/frontend/lowering/devirtualize.d.ts +33 -0
  281. package/dist/frontend/lowering/devirtualize.js +199 -0
  282. package/dist/frontend/lowering/devirtualize.js.map +1 -0
  283. package/dist/frontend/lowering/expressions/nullish-assignment.js +55 -7
  284. package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
  285. package/dist/frontend/lowering/expressions/object-literals.js +5 -56
  286. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  287. package/dist/frontend/lowering/generator-delegation.d.ts +8 -0
  288. package/dist/frontend/lowering/generator-delegation.js +231 -10
  289. package/dist/frontend/lowering/generator-delegation.js.map +1 -1
  290. package/dist/frontend/lowering/identifier-uses.d.ts +7 -0
  291. package/dist/frontend/lowering/identifier-uses.js +23 -0
  292. package/dist/frontend/lowering/identifier-uses.js.map +1 -0
  293. package/dist/frontend/lowering/iterator-adapters.js +51 -3
  294. package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
  295. package/dist/frontend/lowering/lifetime-regions.d.ts +11 -0
  296. package/dist/frontend/lowering/lifetime-regions.js +216 -0
  297. package/dist/frontend/lowering/lifetime-regions.js.map +1 -0
  298. package/dist/frontend/lowering/lower-array-sort.d.ts +28 -2
  299. package/dist/frontend/lowering/lower-array-sort.js +112 -2
  300. package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
  301. package/dist/frontend/lowering/lower-array-sort.test.js +99 -2
  302. package/dist/frontend/lowering/lower-array-sort.test.js.map +1 -1
  303. package/dist/frontend/lowering/lower-calls.js +135 -131
  304. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  305. package/dist/frontend/lowering/lower-classes.d.ts +4 -3
  306. package/dist/frontend/lowering/lower-classes.js +117 -13
  307. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  308. package/dist/frontend/lowering/lower-console.d.ts +27 -0
  309. package/dist/frontend/lowering/lower-console.js +651 -0
  310. package/dist/frontend/lowering/lower-console.js.map +1 -0
  311. package/dist/frontend/lowering/lower-event-emitter.d.ts +6 -0
  312. package/dist/frontend/lowering/lower-event-emitter.js +124 -38
  313. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  314. package/dist/frontend/lowering/lower-exprs.js +272 -25
  315. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  316. package/dist/frontend/lowering/lower-functions.js +7 -3
  317. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  318. package/dist/frontend/lowering/lower-generators.d.ts +25 -7
  319. package/dist/frontend/lowering/lower-generators.js +264 -113
  320. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  321. package/dist/frontend/lowering/lower-inspect.d.ts +8 -1
  322. package/dist/frontend/lowering/lower-inspect.js +119 -18
  323. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  324. package/dist/frontend/lowering/lower-modules.js +24 -14
  325. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  326. package/dist/frontend/lowering/lower-stdlib.d.ts +4 -0
  327. package/dist/frontend/lowering/lower-stdlib.js +35 -1
  328. package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
  329. package/dist/frontend/lowering/lower-stmts.js +66 -11
  330. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  331. package/dist/frontend/lowering/lower-stream.js +13 -10
  332. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  333. package/dist/frontend/lowering/lowerer.d.ts +47 -5
  334. package/dist/frontend/lowering/lowerer.js +235 -54
  335. package/dist/frontend/lowering/lowerer.js.map +1 -1
  336. package/dist/frontend/lowering/nan-coded-reads.d.ts +16 -0
  337. package/dist/frontend/lowering/nan-coded-reads.js +108 -1
  338. package/dist/frontend/lowering/nan-coded-reads.js.map +1 -1
  339. package/dist/frontend/lowering/regex-span-reads.d.ts +12 -0
  340. package/dist/frontend/lowering/regex-span-reads.js +164 -0
  341. package/dist/frontend/lowering/regex-span-reads.js.map +1 -0
  342. package/dist/frontend/lowering/runtime-optional-bounds.d.ts +4 -0
  343. package/dist/frontend/lowering/runtime-optional-bounds.js +2 -0
  344. package/dist/frontend/lowering/runtime-optional-bounds.js.map +1 -1
  345. package/dist/frontend/lowering/runtime-optional-bounds.test.js +27 -0
  346. package/dist/frontend/lowering/runtime-optional-bounds.test.js.map +1 -1
  347. package/dist/frontend/lowering/split-consumers.js +2 -18
  348. package/dist/frontend/lowering/split-consumers.js.map +1 -1
  349. package/dist/frontend/lowering/surfaces.js +115 -18
  350. package/dist/frontend/lowering/surfaces.js.map +1 -1
  351. package/dist/frontend/lowering/union-retag.d.ts +6 -1
  352. package/dist/frontend/lowering/union-retag.js +64 -1
  353. package/dist/frontend/lowering/union-retag.js.map +1 -1
  354. package/dist/frontend/lowering/union-retag.test.js +46 -0
  355. package/dist/frontend/lowering/union-retag.test.js.map +1 -1
  356. package/dist/frontend/lowering/var-hoisting.d.ts +3 -0
  357. package/dist/frontend/lowering/var-hoisting.js +261 -0
  358. package/dist/frontend/lowering/var-hoisting.js.map +1 -0
  359. package/dist/frontend/pipeline.js +5 -3
  360. package/dist/frontend/pipeline.js.map +1 -1
  361. package/dist/frontend/program.d.ts +3 -2
  362. package/dist/frontend/program.js +23 -5
  363. package/dist/frontend/program.js.map +1 -1
  364. package/dist/frontend/program.test.js +13 -0
  365. package/dist/frontend/program.test.js.map +1 -1
  366. package/dist/frontend/type-mapper.d.ts +13 -1
  367. package/dist/frontend/type-mapper.js +160 -14
  368. package/dist/frontend/type-mapper.js.map +1 -1
  369. package/dist/index.js +1 -0
  370. package/dist/index.js.map +1 -1
  371. package/dist/ir/builtin-effects.js +31 -2
  372. package/dist/ir/builtin-effects.js.map +1 -1
  373. package/dist/ir/builtin-signatures.d.ts +1 -1
  374. package/dist/ir/builtin-signatures.js +157 -16
  375. package/dist/ir/builtin-signatures.js.map +1 -1
  376. package/dist/ir/function-references.d.ts +12 -0
  377. package/dist/ir/function-references.js +29 -0
  378. package/dist/ir/function-references.js.map +1 -0
  379. package/dist/ir/function-references.test.d.ts +1 -0
  380. package/dist/ir/function-references.test.js +277 -0
  381. package/dist/ir/function-references.test.js.map +1 -0
  382. package/dist/ir/int32-slots.d.ts +7 -4
  383. package/dist/ir/int32-slots.js +215 -49
  384. package/dist/ir/int32-slots.js.map +1 -1
  385. package/dist/ir/int32-slots.test.js +38 -1
  386. package/dist/ir/int32-slots.test.js.map +1 -1
  387. package/dist/ir/integer-ranges.d.ts +4 -4
  388. package/dist/ir/integer-ranges.js +89 -64
  389. package/dist/ir/integer-ranges.js.map +1 -1
  390. package/dist/ir/integer-ranges.test.js +71 -9
  391. package/dist/ir/integer-ranges.test.js.map +1 -1
  392. package/dist/ir/intrinsic-signatures.js +3 -0
  393. package/dist/ir/intrinsic-signatures.js.map +1 -1
  394. package/dist/ir/ir.d.ts +111 -20
  395. package/dist/ir/ir.js +6 -0
  396. package/dist/ir/ir.js.map +1 -1
  397. package/dist/ir/runtime-features.d.ts +1 -0
  398. package/dist/ir/runtime-features.js +38 -3
  399. package/dist/ir/runtime-features.js.map +1 -1
  400. package/dist/ir/scalar-records.js +1 -2
  401. package/dist/ir/scalar-records.js.map +1 -1
  402. package/dist/ir/traverse.js +4 -0
  403. package/dist/ir/traverse.js.map +1 -1
  404. package/dist/ir/validate.js +201 -25
  405. package/dist/ir/validate.js.map +1 -1
  406. package/dist/ir/validate.test.js +90 -7
  407. package/dist/ir/validate.test.js.map +1 -1
  408. package/dist/library/ir-policy.js +1 -0
  409. package/dist/library/ir-policy.js.map +1 -1
  410. package/dist/native/sanitizer.test.js +1 -0
  411. package/dist/native/sanitizer.test.js.map +1 -1
  412. package/package.json +20 -20
  413. package/surface-manifest.json +159 -17
@@ -86,12 +86,14 @@ declare namespace NodeJS {
86
86
  * util.inspect rendering — so the parameters are unknown[], like stock
87
87
  * lib's console; values inspect cannot render statically (functions inside
88
88
  * composites, class hierarchies, `any`) fence per argument with a hint.
89
+ * assert, count/countReset, dir/dirxml, group/groupCollapsed/groupEnd,
90
+ * table, time/timeEnd/timeLog, clear, and the inspector-only
91
+ * profile/profileEnd/timeStamp lower on the global console.
89
92
  *
90
- * The REMAINING stock console members are declared too — not because they
91
- * lower (none do), but so a program that typechecks under its own tsc
92
- * reaches the per-site SC2020 fence naming the member and the supported
93
- * surface, instead of dying on a fallback-manufactured type error its own
94
- * tsc cannot reproduce. */
93
+ * trace is declared too — not because it lowers, but so a program that
94
+ * typechecks under its own tsc reaches the per-site SC2020 fence naming
95
+ * the member and the supported surface, instead of dying on a
96
+ * fallback-manufactured type error its own tsc cannot reproduce. */
95
97
  declare const console: {
96
98
  log(...args: unknown[]): void;
97
99
  info(...args: unknown[]): void;
@@ -112,11 +114,16 @@ declare const console: {
112
114
  timeEnd(label?: string): void;
113
115
  timeLog(label?: string, ...data: unknown[]): void;
114
116
  timeStamp(label?: string): void;
117
+ profile(label?: string): void;
118
+ profileEnd(label?: string): void;
115
119
  trace(...data: unknown[]): void;
120
+ Console: typeof import("node:console").Console;
116
121
  };
117
122
 
118
- // node:console exports the global instance's bound methods. The constructor
119
- // and remaining methods are declared so unsupported uses reach named fences.
123
+ // node:console exports the global instance's bound methods and the Console
124
+ // constructor: instances over process.stdout/process.stderr or node:stream
125
+ // writables lower their log/info/debug/error/warn members; their remaining
126
+ // methods are declared so unsupported uses reach named fences.
120
127
  type ScriptcConsoleMethods = typeof console;
121
128
  declare module "node:console" {
122
129
  export class Console {
@@ -142,6 +149,8 @@ declare module "node:console" {
142
149
  export const timeEnd: ScriptcConsoleMethods["timeEnd"];
143
150
  export const timeLog: ScriptcConsoleMethods["timeLog"];
144
151
  export const timeStamp: ScriptcConsoleMethods["timeStamp"];
152
+ export const profile: ScriptcConsoleMethods["profile"];
153
+ export const profileEnd: ScriptcConsoleMethods["profileEnd"];
145
154
  export const trace: ScriptcConsoleMethods["trace"];
146
155
  const defaultConsole: ScriptcConsoleMethods & { Console: typeof Console };
147
156
  export default defaultConsole;
@@ -226,6 +235,10 @@ declare var process: {
226
235
  env: { [name: string]: string | undefined };
227
236
  /** Numeric writes set the status returned by ordinary program exit. */
228
237
  exitCode?: number;
238
+ /* Silence and throw DeprecationWarnings (util.deprecate,
239
+ * process.emitWarning); undefined until assigned. */
240
+ noDeprecation?: boolean;
241
+ throwDeprecation?: boolean;
229
242
  /* `never`, like @types/node: code behind an early-exit guard narrows
230
243
  * (`if (!x) process.exit(1)` proves x afterwards) — typed `void` the
231
244
  * guard narrows nothing and correct programs fail preflight. The
@@ -1591,6 +1604,27 @@ declare module "path" {
1591
1604
  export function isAbsolute(path: string): boolean;
1592
1605
  export function relative(from: string, to: string): string;
1593
1606
  export function toNamespacedPath(path: string): string;
1607
+ /* matchesGlob() is Node's glob matcher: brace expansion, extglobs, POSIX
1608
+ * classes and the ** and dot rules. */
1609
+ export function matchesGlob(path: string, pattern: string): boolean;
1610
+ /* parse() splits a path into its root, directory, base, extension and
1611
+ * name; format() joins those fields back (Node's `||` defaults). */
1612
+ export interface ParsedPath {
1613
+ root: string;
1614
+ dir: string;
1615
+ base: string;
1616
+ ext: string;
1617
+ name: string;
1618
+ }
1619
+ export interface FormatInputPathObject {
1620
+ root?: string | undefined;
1621
+ dir?: string | undefined;
1622
+ base?: string | undefined;
1623
+ ext?: string | undefined;
1624
+ name?: string | undefined;
1625
+ }
1626
+ export function parse(path: string): ParsedPath;
1627
+ export function format(pathObject: FormatInputPathObject): string;
1594
1628
  /* The union @types/node declares: the bare module answers the TARGET
1595
1629
  * platform's value (a compile-time constant — "\\"/";" under a win32
1596
1630
  * triple, "/"/":" everywhere else). */
@@ -1616,6 +1650,9 @@ declare module "path/posix" {
1616
1650
  export function isAbsolute(path: string): boolean;
1617
1651
  export function relative(from: string, to: string): string;
1618
1652
  export function toNamespacedPath(path: string): string;
1653
+ export function matchesGlob(path: string, pattern: string): boolean;
1654
+ export function parse(path: string): import("path").ParsedPath;
1655
+ export function format(pathObject: import("path").FormatInputPathObject): string;
1619
1656
  export const sep: "/";
1620
1657
  export const delimiter: ":";
1621
1658
  }
@@ -1632,6 +1669,9 @@ declare module "path/win32" {
1632
1669
  export function isAbsolute(path: string): boolean;
1633
1670
  export function relative(from: string, to: string): string;
1634
1671
  export function toNamespacedPath(path: string): string;
1672
+ export function matchesGlob(path: string, pattern: string): boolean;
1673
+ export function parse(path: string): import("path").ParsedPath;
1674
+ export function format(pathObject: import("path").FormatInputPathObject): string;
1635
1675
  export const sep: "\\";
1636
1676
  export const delimiter: ";";
1637
1677
  }
@@ -1689,6 +1729,237 @@ declare module "os" {
1689
1729
  }
1690
1730
  export type NetworkInterfaceInfo = NetworkInterfaceInfoIPv4 | NetworkInterfaceInfoIPv6;
1691
1731
  export function networkInterfaces(): { [name: string]: NetworkInterfaceInfo[] | undefined };
1732
+ /* Host facts, libuv's answers: model/speed/times per logical CPU, the
1733
+ * host name, the 1/5/15-minute load averages, uptime in seconds, free
1734
+ * memory in bytes, process.arch, uname's machine and version fields,
1735
+ * the byte order, and a process's scheduling priority (an omitted pid
1736
+ * is the current process). Shapes mirror @types/node's. */
1737
+ export interface CpuInfo {
1738
+ model: string;
1739
+ speed: number;
1740
+ times: {
1741
+ user: number;
1742
+ nice: number;
1743
+ sys: number;
1744
+ idle: number;
1745
+ irq: number;
1746
+ };
1747
+ }
1748
+ export function cpus(): CpuInfo[];
1749
+ export function hostname(): string;
1750
+ export function loadavg(): number[];
1751
+ export function uptime(): number;
1752
+ export function freemem(): number;
1753
+ export function arch(): string;
1754
+ export function machine(): string;
1755
+ export function version(): string;
1756
+ export function endianness(): "BE" | "LE";
1757
+ export function getPriority(pid?: number): number;
1758
+ /* The TARGET platform's null device ("\\\\.\\nul" under a win32 triple). */
1759
+ export const devNull: string;
1760
+ /* The platform's constants: null-prototype objects with read-only
1761
+ * members, `signals` frozen (Node's internalBinding('constants').os). */
1762
+ export type SignalConstants = {
1763
+ [
1764
+ key in
1765
+ | "SIGABRT"
1766
+ | "SIGALRM"
1767
+ | "SIGBUS"
1768
+ | "SIGCHLD"
1769
+ | "SIGCONT"
1770
+ | "SIGFPE"
1771
+ | "SIGHUP"
1772
+ | "SIGILL"
1773
+ | "SIGINT"
1774
+ | "SIGIO"
1775
+ | "SIGIOT"
1776
+ | "SIGKILL"
1777
+ | "SIGPIPE"
1778
+ | "SIGPOLL"
1779
+ | "SIGPROF"
1780
+ | "SIGPWR"
1781
+ | "SIGQUIT"
1782
+ | "SIGSEGV"
1783
+ | "SIGSTKFLT"
1784
+ | "SIGSTOP"
1785
+ | "SIGSYS"
1786
+ | "SIGTERM"
1787
+ | "SIGTRAP"
1788
+ | "SIGTSTP"
1789
+ | "SIGTTIN"
1790
+ | "SIGTTOU"
1791
+ | "SIGUNUSED"
1792
+ | "SIGURG"
1793
+ | "SIGUSR1"
1794
+ | "SIGUSR2"
1795
+ | "SIGVTALRM"
1796
+ | "SIGWINCH"
1797
+ | "SIGXCPU"
1798
+ | "SIGXFSZ"
1799
+ | "SIGBREAK"
1800
+ | "SIGLOST"
1801
+ | "SIGINFO"
1802
+ ]: number;
1803
+ };
1804
+ export namespace constants {
1805
+ const UV_UDP_REUSEADDR: number;
1806
+ namespace signals {}
1807
+ const signals: SignalConstants;
1808
+ namespace errno {
1809
+ const E2BIG: number;
1810
+ const EACCES: number;
1811
+ const EADDRINUSE: number;
1812
+ const EADDRNOTAVAIL: number;
1813
+ const EAFNOSUPPORT: number;
1814
+ const EAGAIN: number;
1815
+ const EALREADY: number;
1816
+ const EBADF: number;
1817
+ const EBADMSG: number;
1818
+ const EBUSY: number;
1819
+ const ECANCELED: number;
1820
+ const ECHILD: number;
1821
+ const ECONNABORTED: number;
1822
+ const ECONNREFUSED: number;
1823
+ const ECONNRESET: number;
1824
+ const EDEADLK: number;
1825
+ const EDESTADDRREQ: number;
1826
+ const EDOM: number;
1827
+ const EDQUOT: number;
1828
+ const EEXIST: number;
1829
+ const EFAULT: number;
1830
+ const EFBIG: number;
1831
+ const EHOSTUNREACH: number;
1832
+ const EIDRM: number;
1833
+ const EILSEQ: number;
1834
+ const EINPROGRESS: number;
1835
+ const EINTR: number;
1836
+ const EINVAL: number;
1837
+ const EIO: number;
1838
+ const EISCONN: number;
1839
+ const EISDIR: number;
1840
+ const ELOOP: number;
1841
+ const EMFILE: number;
1842
+ const EMLINK: number;
1843
+ const EMSGSIZE: number;
1844
+ const EMULTIHOP: number;
1845
+ const ENAMETOOLONG: number;
1846
+ const ENETDOWN: number;
1847
+ const ENETRESET: number;
1848
+ const ENETUNREACH: number;
1849
+ const ENFILE: number;
1850
+ const ENOBUFS: number;
1851
+ const ENODATA: number;
1852
+ const ENODEV: number;
1853
+ const ENOENT: number;
1854
+ const ENOEXEC: number;
1855
+ const ENOLCK: number;
1856
+ const ENOLINK: number;
1857
+ const ENOMEM: number;
1858
+ const ENOMSG: number;
1859
+ const ENOPROTOOPT: number;
1860
+ const ENOSPC: number;
1861
+ const ENOSR: number;
1862
+ const ENOSTR: number;
1863
+ const ENOSYS: number;
1864
+ const ENOTCONN: number;
1865
+ const ENOTDIR: number;
1866
+ const ENOTEMPTY: number;
1867
+ const ENOTSOCK: number;
1868
+ const ENOTSUP: number;
1869
+ const ENOTTY: number;
1870
+ const ENXIO: number;
1871
+ const EOPNOTSUPP: number;
1872
+ const EOVERFLOW: number;
1873
+ const EPERM: number;
1874
+ const EPIPE: number;
1875
+ const EPROTO: number;
1876
+ const EPROTONOSUPPORT: number;
1877
+ const EPROTOTYPE: number;
1878
+ const ERANGE: number;
1879
+ const EROFS: number;
1880
+ const ESPIPE: number;
1881
+ const ESRCH: number;
1882
+ const ESTALE: number;
1883
+ const ETIME: number;
1884
+ const ETIMEDOUT: number;
1885
+ const ETXTBSY: number;
1886
+ const EWOULDBLOCK: number;
1887
+ const EXDEV: number;
1888
+ const WSAEINTR: number;
1889
+ const WSAEBADF: number;
1890
+ const WSAEACCES: number;
1891
+ const WSAEFAULT: number;
1892
+ const WSAEINVAL: number;
1893
+ const WSAEMFILE: number;
1894
+ const WSAEWOULDBLOCK: number;
1895
+ const WSAEINPROGRESS: number;
1896
+ const WSAEALREADY: number;
1897
+ const WSAENOTSOCK: number;
1898
+ const WSAEDESTADDRREQ: number;
1899
+ const WSAEMSGSIZE: number;
1900
+ const WSAEPROTOTYPE: number;
1901
+ const WSAENOPROTOOPT: number;
1902
+ const WSAEPROTONOSUPPORT: number;
1903
+ const WSAESOCKTNOSUPPORT: number;
1904
+ const WSAEOPNOTSUPP: number;
1905
+ const WSAEPFNOSUPPORT: number;
1906
+ const WSAEAFNOSUPPORT: number;
1907
+ const WSAEADDRINUSE: number;
1908
+ const WSAEADDRNOTAVAIL: number;
1909
+ const WSAENETDOWN: number;
1910
+ const WSAENETUNREACH: number;
1911
+ const WSAENETRESET: number;
1912
+ const WSAECONNABORTED: number;
1913
+ const WSAECONNRESET: number;
1914
+ const WSAENOBUFS: number;
1915
+ const WSAEISCONN: number;
1916
+ const WSAENOTCONN: number;
1917
+ const WSAESHUTDOWN: number;
1918
+ const WSAETOOMANYREFS: number;
1919
+ const WSAETIMEDOUT: number;
1920
+ const WSAECONNREFUSED: number;
1921
+ const WSAELOOP: number;
1922
+ const WSAENAMETOOLONG: number;
1923
+ const WSAEHOSTDOWN: number;
1924
+ const WSAEHOSTUNREACH: number;
1925
+ const WSAENOTEMPTY: number;
1926
+ const WSAEPROCLIM: number;
1927
+ const WSAEUSERS: number;
1928
+ const WSAEDQUOT: number;
1929
+ const WSAESTALE: number;
1930
+ const WSAEREMOTE: number;
1931
+ const WSASYSNOTREADY: number;
1932
+ const WSAVERNOTSUPPORTED: number;
1933
+ const WSANOTINITIALISED: number;
1934
+ const WSAEDISCON: number;
1935
+ const WSAENOMORE: number;
1936
+ const WSAECANCELLED: number;
1937
+ const WSAEINVALIDPROCTABLE: number;
1938
+ const WSAEINVALIDPROVIDER: number;
1939
+ const WSAEPROVIDERFAILEDINIT: number;
1940
+ const WSASYSCALLFAILURE: number;
1941
+ const WSASERVICE_NOT_FOUND: number;
1942
+ const WSATYPE_NOT_FOUND: number;
1943
+ const WSA_E_NO_MORE: number;
1944
+ const WSA_E_CANCELLED: number;
1945
+ const WSAEREFUSED: number;
1946
+ }
1947
+ namespace dlopen {
1948
+ const RTLD_LAZY: number;
1949
+ const RTLD_NOW: number;
1950
+ const RTLD_GLOBAL: number;
1951
+ const RTLD_LOCAL: number;
1952
+ const RTLD_DEEPBIND: number;
1953
+ }
1954
+ namespace priority {
1955
+ const PRIORITY_LOW: number;
1956
+ const PRIORITY_BELOW_NORMAL: number;
1957
+ const PRIORITY_NORMAL: number;
1958
+ const PRIORITY_ABOVE_NORMAL: number;
1959
+ const PRIORITY_HIGH: number;
1960
+ const PRIORITY_HIGHEST: number;
1961
+ }
1962
+ }
1692
1963
  }
1693
1964
  declare module "node:os" {
1694
1965
  export * from "os";
@@ -2188,6 +2459,60 @@ declare module "util" {
2188
2459
  options?: { validateStream?: boolean; stream?: unknown },
2189
2460
  ): string;
2190
2461
  export function parseEnv(content: string): { [key: string]: string | undefined };
2462
+ export function inherits(constructor: unknown, superConstructor: unknown): void;
2463
+ export interface DeprecateOptions {
2464
+ modifyPrototype?: boolean;
2465
+ }
2466
+ export function deprecate<T extends Function>(
2467
+ fn: T,
2468
+ msg: string,
2469
+ code?: string,
2470
+ options?: DeprecateOptions,
2471
+ ): T;
2472
+ /* The callback receives null on success and the rejection reason
2473
+ * otherwise (falsy reasons arrive as ERR_FALSY_VALUE_REJECTION). */
2474
+ export function callbackify(
2475
+ fn: () => Promise<void>,
2476
+ ): (callback: (err: NodeJS.ErrnoException | null) => void) => void;
2477
+ export function callbackify<TResult>(
2478
+ fn: () => Promise<TResult>,
2479
+ ): (callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void;
2480
+ export function callbackify<T1>(
2481
+ fn: (arg1: T1) => Promise<void>,
2482
+ ): (arg1: T1, callback: (err: NodeJS.ErrnoException | null) => void) => void;
2483
+ export function callbackify<T1, TResult>(
2484
+ fn: (arg1: T1) => Promise<TResult>,
2485
+ ): (arg1: T1, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void;
2486
+ export function callbackify<T1, T2>(
2487
+ fn: (arg1: T1, arg2: T2) => Promise<void>,
2488
+ ): (arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException | null) => void) => void;
2489
+ export function callbackify<T1, T2, TResult>(
2490
+ fn: (arg1: T1, arg2: T2) => Promise<TResult>,
2491
+ ): (
2492
+ arg1: T1,
2493
+ arg2: T2,
2494
+ callback: (err: NodeJS.ErrnoException | null, result: TResult) => void,
2495
+ ) => void;
2496
+ export function callbackify<T1, T2, T3>(
2497
+ fn: (arg1: T1, arg2: T2, arg3: T3) => Promise<void>,
2498
+ ): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException | null) => void) => void;
2499
+ export function callbackify<T1, T2, T3, TResult>(
2500
+ fn: (arg1: T1, arg2: T2, arg3: T3) => Promise<TResult>,
2501
+ ): (
2502
+ arg1: T1,
2503
+ arg2: T2,
2504
+ arg3: T3,
2505
+ callback: (err: NodeJS.ErrnoException | null, result: TResult) => void,
2506
+ ) => void;
2507
+ export type DebugLoggerFunction = (msg: string, ...param: unknown[]) => void;
2508
+ export interface DebugLogger extends DebugLoggerFunction {
2509
+ enabled: boolean;
2510
+ }
2511
+ export function debuglog(
2512
+ section: string,
2513
+ callback?: (fn: DebugLoggerFunction) => void,
2514
+ ): DebugLogger;
2515
+ export { debuglog as debug };
2191
2516
  export type TextEncoder = globalThis.TextEncoder;
2192
2517
  export type TextDecoder = globalThis.TextDecoder;
2193
2518
  export var TextEncoder: typeof globalThis.TextEncoder;
@@ -4207,16 +4532,20 @@ declare module "events" {
4207
4532
  class EventEmitter {
4208
4533
  constructor();
4209
4534
  static defaultMaxListeners: number;
4210
- on(eventName: string, listener: (...args: any[]) => void): this;
4211
- addListener(eventName: string, listener: (...args: any[]) => void): this;
4212
- once(eventName: string, listener: (...args: any[]) => void): this;
4213
- prependListener(eventName: string, listener: (...args: any[]) => void): this;
4214
- prependOnceListener(eventName: string, listener: (...args: any[]) => void): this;
4215
- off(eventName: string, listener: (...args: any[]) => void): this;
4216
- removeListener(eventName: string, listener: (...args: any[]) => void): this;
4217
- removeAllListeners(eventName?: string): this;
4218
- emit(eventName: string, ...args: any[]): boolean;
4219
- listenerCount(eventName: string, listener?: (...args: any[]) => void): number;
4535
+ /* Listeners registered under this symbol observe 'error' emits first
4536
+ * (an emit with no 'error' listener still throws). */
4537
+ static readonly errorMonitor: unique symbol;
4538
+ static addAbortListener(signal: AbortSignal, listener: (event: Event) => void): Disposable;
4539
+ on(eventName: string | symbol, listener: (...args: any[]) => void): this;
4540
+ addListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
4541
+ once(eventName: string | symbol, listener: (...args: any[]) => void): this;
4542
+ prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
4543
+ prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
4544
+ off(eventName: string | symbol, listener: (...args: any[]) => void): this;
4545
+ removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
4546
+ removeAllListeners(eventName?: string | symbol): this;
4547
+ emit(eventName: string | symbol, ...args: any[]): boolean;
4548
+ listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number;
4220
4549
  /* Declared as zero-parameter closures so the RESULT is statically
4221
4550
  * consumable (.length, indexing, identity): the lowering only admits
4222
4551
  * these calls for events whose argument tuple is empty — a listener
@@ -11,6 +11,7 @@ export function executableLinkFeatures(mod) {
11
11
  textDecoderLegacy: features.legacyTextDecoder,
12
12
  fileHandle: features.fileHandle,
13
13
  fetch: features.fetch,
14
+ ...(features.eventTarget ? { eventTarget: true } : {}),
14
15
  zlib: features.zlib,
15
16
  assert: features.assert,
16
17
  inspect: features.inspect,
@@ -1 +1 @@
1
- {"version":3,"file":"executable-features.js","sourceRoot":"","sources":["../../src/backend/executable-features.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAiB,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,MAAM,UAAU,sBAAsB,CAAC,GAAa;IAClD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO;QACL,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;QAC7C,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,MAAM,EAAE,QAAQ,CAAC,aAAa;QAC9B,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,KAAK,EAAE,QAAQ,CAAC,OAAO;QACvB,UAAU,EAAE,qBAAqB,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;QACvD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,KAAK,EAAE,QAAQ,CAAC,KAAK;KACtB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"executable-features.js","sourceRoot":"","sources":["../../src/backend/executable-features.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAiB,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,MAAM,UAAU,sBAAsB,CAAC,GAAa;IAClD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO;QACL,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;QAC7C,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,MAAM,EAAE,QAAQ,CAAC,aAAa;QAC9B,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,KAAK,EAAE,QAAQ,CAAC,OAAO;QACvB,UAAU,EAAE,qBAAqB,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;QACvD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,KAAK,EAAE,QAAQ,CAAC,KAAK;KACtB,CAAC;AACJ,CAAC"}
@@ -3,6 +3,13 @@ export { unsignedHex } from "../format-integer.js";
3
3
  export declare function octalByte(value: number): string;
4
4
  /** LLVM byte-string contents, without quotes or the c prefix. */
5
5
  export declare function llvmBytes(bytes: Uint8Array, nulTerminated?: boolean): string;
6
+ /** Whether a JS string holds a lone UTF-16 surrogate. */
7
+ export declare function hasLoneSurrogate(text: string): boolean;
8
+ /** A JS string's bytes in the runtime's string storage: UTF-8, with each
9
+ * lone surrogate as its generalized 3-byte encoding (WTF-8). A lone
10
+ * surrogate takes as many bytes as the U+FFFD that Buffer's UTF-8 encoder
11
+ * substitutes, so `Buffer.byteLength(text, "utf8")` is also this length. */
12
+ export declare function wtf8Bytes(text: string): Uint8Array;
6
13
  /** Metadata operands use the same UTF-8 escapes, without a trailing NUL. */
7
14
  export declare function llvmQuoted(text: string): string;
8
15
  /** Escape UTF-16 source-control units without combining surrogate pairs. */
@@ -16,6 +16,38 @@ export function llvmBytes(bytes, nulTerminated = true) {
16
16
  }
17
17
  return nulTerminated ? out + "\\00" : out;
18
18
  }
19
+ const LONE_SURROGATE = /\p{Cs}/u;
20
+ /** Whether a JS string holds a lone UTF-16 surrogate. */
21
+ export function hasLoneSurrogate(text) {
22
+ return LONE_SURROGATE.test(text);
23
+ }
24
+ /** A JS string's bytes in the runtime's string storage: UTF-8, with each
25
+ * lone surrogate as its generalized 3-byte encoding (WTF-8). A lone
26
+ * surrogate takes as many bytes as the U+FFFD that Buffer's UTF-8 encoder
27
+ * substitutes, so `Buffer.byteLength(text, "utf8")` is also this length. */
28
+ export function wtf8Bytes(text) {
29
+ const bytes = Buffer.from(text, "utf8");
30
+ if (!hasLoneSurrogate(text))
31
+ return bytes;
32
+ let at = 0;
33
+ for (let i = 0; i < text.length; i++) {
34
+ const code = text.codePointAt(i);
35
+ if (code >= 0x10000) {
36
+ i++;
37
+ at += 4;
38
+ }
39
+ else if (code >= 0xd800 && code <= 0xdfff) {
40
+ bytes[at] = 0xed;
41
+ bytes[at + 1] = 0x80 | ((code >> 6) & 0x3f);
42
+ bytes[at + 2] = 0x80 | (code & 0x3f);
43
+ at += 3;
44
+ }
45
+ else {
46
+ at += code < 0x80 ? 1 : code < 0x800 ? 2 : 3;
47
+ }
48
+ }
49
+ return bytes;
50
+ }
19
51
  /** Metadata operands use the same UTF-8 escapes, without a trailing NUL. */
20
52
  export function llvmQuoted(text) {
21
53
  return '"' + llvmBytes(Buffer.from(text, "utf8"), false) + '"';
@@ -1 +1 @@
1
- {"version":3,"file":"literals.js","sourceRoot":"","sources":["../../src/backend/literals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,+EAA+E;AAC/E,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,MAAM,MAAM,GAAG,UAAU,CAAC;IAC1B,OAAO,CACL,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAC/F,CAAC;AACJ,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,SAAS,CAAC,KAAiB,EAAE,aAAa,GAAG,IAAI;IAC/D,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,GAAG;YACD,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;gBAC3D,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;gBAC3B,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAChE,CAAC;IACD,OAAO,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;AAC5C,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC;AACjE,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACxF,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACzE,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"literals.js","sourceRoot":"","sources":["../../src/backend/literals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,+EAA+E;AAC/E,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,MAAM,MAAM,GAAG,UAAU,CAAC;IAC1B,OAAO,CACL,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAC/F,CAAC;AACJ,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,SAAS,CAAC,KAAiB,EAAE,aAAa,GAAG,IAAI;IAC/D,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,GAAG;YACD,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;gBAC3D,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;gBAC3B,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAChE,CAAC;IACD,OAAO,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;AAC5C,CAAC;AAED,MAAM,cAAc,GAAG,SAAS,CAAC;AAEjC,yDAAyD;AACzD,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;;4EAG4E;AAC5E,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC;QAClC,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;YACpB,CAAC,EAAE,CAAC;YACJ,EAAE,IAAI,CAAC,CAAC;QACV,CAAC;aAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YAC5C,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;YACjB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAC5C,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;YACrC,EAAE,IAAI,CAAC,CAAC;QACV,CAAC;aAAM,CAAC;YACN,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC;AACjE,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACxF,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACzE,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { expect, test } from "vitest";
2
- import { commentText, llvmBytes, llvmQuoted, octalByte, unsignedHex } from "./literals.js";
2
+ import { commentText, hasLoneSurrogate, llvmBytes, llvmQuoted, octalByte, unsignedHex, wtf8Bytes, } from "./literals.js";
3
3
  import { f64Lit, llvmCommentText } from "./llvm/common.js";
4
4
  import { mangleFunction, mangleLocal } from "./mangle.js";
5
5
  test("integer escaping agrees with JavaScript across all UTF-16 code units", () => {
@@ -75,4 +75,20 @@ test("double spelling preserves every bit, including signed zero and subnormals"
75
75
  expect(f64Lit(number)).toBe("0x" + bytes.toString("hex").toUpperCase());
76
76
  }
77
77
  });
78
+ test("string storage bytes keep lone surrogates as WTF-8 and pairs as UTF-8", () => {
79
+ const hex = (text) => Buffer.from(wtf8Bytes(text)).toString("hex");
80
+ expect(hex("")).toBe("");
81
+ expect(hex("é日😀")).toBe(Buffer.from("é日😀").toString("hex"));
82
+ expect(hex("\ud800")).toBe("eda080");
83
+ expect(hex("\udfff")).toBe("edbfbf");
84
+ expect(hex("a\ud83d\ude00b")).toBe("61f09f988062");
85
+ expect(hex("\ude00\ud83d")).toBe("edb880eda0bd");
86
+ expect(hex("\ud83d😀\ud7ff")).toBe("eda0bdf09f9880ed9fbf");
87
+ for (const text of ["\ud800", "x\udc00y", "\ud83d\ud83d", "😀\ude00"]) {
88
+ expect(hasLoneSurrogate(text)).toBe(true);
89
+ expect(wtf8Bytes(text).length).toBe(Buffer.byteLength(text, "utf8"));
90
+ }
91
+ for (const text of ["", "plain", "😀", "\ud7ff\ue000"])
92
+ expect(hasLoneSurrogate(text)).toBe(false);
93
+ });
78
94
  //# sourceMappingURL=literals.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"literals.test.js","sourceRoot":"","sources":["../../src/backend/literals.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"literals.test.js","sourceRoot":"","sources":["../../src/backend/literals.test.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,10 @@ export interface AllocHost {
12
12
  * (worker executables). */
13
13
  readonly threadLocalAlloc?: boolean;
14
14
  }
15
+ /** Worker executables: the calling script thread's ScrThreadHot block into
16
+ * `dest`. Its address also identifies the thread (the owner word of a
17
+ * lifetime-region chunk; llvm/regions.ts). */
18
+ export declare function threadHotAddressLines(host: AllocHost, dest: string): string[];
15
19
  /** Whether a target can use the inline allocation paths. */
16
20
  export declare function inlineAllocSupported(options: {
17
21
  pointerBits?: 32 | 64 | undefined;
@@ -19,6 +23,12 @@ export declare function inlineAllocSupported(options: {
19
23
  targetTriple?: string | undefined;
20
24
  threadInstances?: boolean | undefined;
21
25
  }): boolean;
26
+ /** sizeof(ScrCycHdr): the descriptor's i16 registry id, i8 color and
27
+ * generation, and an i32 `buf` whose sign bit marks a buffered candidate
28
+ * (scr_runtime.h asserts the offsets). */
29
+ export declare const CYC_HDR = 8;
30
+ /** ScrCycHdr.buf, an i32 at this header offset. */
31
+ export declare const CYC_BUF = 4;
22
32
  /** A collector header to install: the object type's constant ScrCycType
23
33
  * descriptor (its trace and teardown; see cycTypeDescriptor). */
24
34
  export interface CycHeader {
@@ -29,10 +39,11 @@ export interface CycHeader {
29
39
  * (SCR_CYC_KIND_EMITTED in scr_runtime.h). */
30
40
  export declare const FIRST_EMITTED_CYC_KIND = 32;
31
41
  /** The definition of a shape's ScrCycType descriptor `{ trace, free_fn,
32
- * kind }`, referenced by every header of that shape. `kind` indexes the
33
- * collector's per-type statistics (scr_runtime.h); emitted shapes number
34
- * themselves from FIRST_EMITTED_CYC_KIND (ShapeHost.nextCycKind) and 0
35
- * keeps none. */
42
+ * kind, id }`, named by every header of that shape through its registry
43
+ * id. `kind` indexes the collector's per-type statistics (scr_runtime.h);
44
+ * emitted shapes number themselves from FIRST_EMITTED_CYC_KIND
45
+ * (ShapeHost.nextCycKind) and 0 keeps none. The runtime assigns `id` on the
46
+ * first allocation, so the descriptor is writable. */
36
47
  export declare function cycTypeDescriptor(name: string, trace: string, free: string, kind?: number): string;
37
48
  /**
38
49
  * Lines that leave a zeroed object of `size` bytes (an integer constant