xbintsc 0.3.87 → 0.5.20

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 (458) hide show
  1. package/AGENTS.md +23 -11
  2. package/README.md +11 -9
  3. package/README.zh-CN.md +7 -7
  4. package/dist/src/binder/declarations.js +14 -3
  5. package/dist/src/binder/declarations.js.map +1 -1
  6. package/dist/src/cli/hints.js +7 -1
  7. package/dist/src/cli/hints.js.map +1 -1
  8. package/dist/src/cli/main.js +115 -15
  9. package/dist/src/cli/main.js.map +1 -1
  10. package/dist/src/cli/watch.d.ts +25 -0
  11. package/dist/src/cli/watch.js +93 -0
  12. package/dist/src/cli/watch.js.map +1 -0
  13. package/dist/src/codegen/generator/calls/access.js +17 -4
  14. package/dist/src/codegen/generator/calls/access.js.map +1 -1
  15. package/dist/src/codegen/generator/calls/closures.js +13 -1
  16. package/dist/src/codegen/generator/calls/closures.js.map +1 -1
  17. package/dist/src/codegen/generator/calls/invocation.js +4 -3
  18. package/dist/src/codegen/generator/calls/invocation.js.map +1 -1
  19. package/dist/src/codegen/generator/context.d.ts +8 -0
  20. package/dist/src/codegen/generator/context.js +22 -3
  21. package/dist/src/codegen/generator/context.js.map +1 -1
  22. package/dist/src/codegen/generator/expressions/operators.js +17 -15
  23. package/dist/src/codegen/generator/expressions/operators.js.map +1 -1
  24. package/dist/src/codegen/generator/expressions/primary.js +11 -1
  25. package/dist/src/codegen/generator/expressions/primary.js.map +1 -1
  26. package/dist/src/codegen/generator/module.d.ts +0 -1
  27. package/dist/src/codegen/generator/module.js +10 -17
  28. package/dist/src/codegen/generator/module.js.map +1 -1
  29. package/dist/src/codegen/generator/numeric.d.ts +6 -3
  30. package/dist/src/codegen/generator/numeric.js +54 -11
  31. package/dist/src/codegen/generator/numeric.js.map +1 -1
  32. package/dist/src/codegen/generator/state.js +27 -0
  33. package/dist/src/codegen/generator/state.js.map +1 -1
  34. package/dist/src/codegen/generator/statements/control-flow.js +2 -7
  35. package/dist/src/codegen/generator/statements/control-flow.js.map +1 -1
  36. package/dist/src/codegen/generator/statements/loops.js +48 -16
  37. package/dist/src/codegen/generator/statements/loops.js.map +1 -1
  38. package/dist/src/codegen/generator/tables.d.ts +9 -0
  39. package/dist/src/codegen/generator/tables.js +100 -3
  40. package/dist/src/codegen/generator/tables.js.map +1 -1
  41. package/dist/src/diagnostics/diagnostic.d.ts +3 -1
  42. package/dist/src/diagnostics/diagnostic.js +23 -3
  43. package/dist/src/diagnostics/diagnostic.js.map +1 -1
  44. package/dist/src/driver/app-artifacts.d.ts +42 -0
  45. package/dist/src/driver/app-artifacts.js +53 -0
  46. package/dist/src/driver/app-artifacts.js.map +1 -0
  47. package/dist/src/driver/build-key.d.ts +29 -0
  48. package/dist/src/driver/build-key.js +35 -0
  49. package/dist/src/driver/build-key.js.map +1 -0
  50. package/dist/src/driver/bundler/graph.js +61 -12
  51. package/dist/src/driver/bundler/graph.js.map +1 -1
  52. package/dist/src/driver/bundler/merge.js +7 -1
  53. package/dist/src/driver/bundler/merge.js.map +1 -1
  54. package/dist/src/driver/compiler.d.ts +10 -67
  55. package/dist/src/driver/compiler.js +94 -230
  56. package/dist/src/driver/compiler.js.map +1 -1
  57. package/dist/src/driver/config.d.ts +3 -0
  58. package/dist/src/driver/config.js +8 -0
  59. package/dist/src/driver/config.js.map +1 -1
  60. package/dist/src/driver/frontend.d.ts +37 -0
  61. package/dist/src/driver/frontend.js +92 -0
  62. package/dist/src/driver/frontend.js.map +1 -0
  63. package/dist/src/driver/index.d.ts +1 -1
  64. package/dist/src/driver/index.js.map +1 -1
  65. package/dist/src/driver/options.d.ts +64 -0
  66. package/dist/src/driver/options.js +9 -0
  67. package/dist/src/driver/options.js.map +1 -0
  68. package/dist/src/driver/runtime-objects.d.ts +38 -0
  69. package/dist/src/driver/runtime-objects.js +111 -0
  70. package/dist/src/driver/runtime-objects.js.map +1 -0
  71. package/dist/src/driver/toolchain-provider.d.ts +4 -0
  72. package/dist/src/driver/toolchain-provider.js +4 -0
  73. package/dist/src/driver/toolchain-provider.js.map +1 -1
  74. package/dist/src/driver/toolchain.d.ts +32 -1
  75. package/dist/src/driver/toolchain.js +115 -11
  76. package/dist/src/driver/toolchain.js.map +1 -1
  77. package/dist/src/driver/version.d.ts +12 -0
  78. package/dist/src/driver/version.js +13 -0
  79. package/dist/src/driver/version.js.map +1 -0
  80. package/dist/src/driver/win-icon.d.ts +7 -9
  81. package/dist/src/driver/win-icon.js +37 -35
  82. package/dist/src/driver/win-icon.js.map +1 -1
  83. package/dist/src/parser/declarations/classes.js +5 -0
  84. package/dist/src/parser/declarations/classes.js.map +1 -1
  85. package/dist/src/parser/declarations/functions.js +13 -1
  86. package/dist/src/parser/declarations/functions.js.map +1 -1
  87. package/dist/src/parser/modules.js +8 -3
  88. package/dist/src/parser/modules.js.map +1 -1
  89. package/dist/src/parser/parser.d.ts +1 -0
  90. package/dist/src/parser/parser.js +23 -0
  91. package/dist/src/parser/parser.js.map +1 -1
  92. package/dist/tests/cli/check.test.d.ts +6 -0
  93. package/dist/tests/cli/check.test.js +68 -0
  94. package/dist/tests/cli/check.test.js.map +1 -0
  95. package/dist/tests/cli/main.test.js +19 -0
  96. package/dist/tests/cli/main.test.js.map +1 -1
  97. package/dist/tests/cli/watch.test.d.ts +6 -0
  98. package/dist/tests/cli/watch.test.js +72 -0
  99. package/dist/tests/cli/watch.test.js.map +1 -0
  100. package/dist/tests/codegen/closures.test.js +8 -0
  101. package/dist/tests/codegen/closures.test.js.map +1 -1
  102. package/dist/tests/codegen/expressions.test.js +15 -3
  103. package/dist/tests/codegen/expressions.test.js.map +1 -1
  104. package/dist/tests/codegen/llvm.test.js +16 -0
  105. package/dist/tests/codegen/llvm.test.js.map +1 -1
  106. package/dist/tests/diagnostics/diagnostic.test.js +8 -0
  107. package/dist/tests/diagnostics/diagnostic.test.js.map +1 -1
  108. package/dist/tests/docs/structure.test.d.ts +1 -0
  109. package/dist/tests/docs/structure.test.js +92 -0
  110. package/dist/tests/docs/structure.test.js.map +1 -0
  111. package/dist/tests/driver/compiler.test.js +6 -0
  112. package/dist/tests/driver/compiler.test.js.map +1 -1
  113. package/dist/tests/driver/config.test.js +9 -0
  114. package/dist/tests/driver/config.test.js.map +1 -1
  115. package/dist/tests/driver/icon.test.js +19 -32
  116. package/dist/tests/driver/icon.test.js.map +1 -1
  117. package/dist/tests/driver/invalid-input.test.d.ts +10 -0
  118. package/dist/tests/driver/invalid-input.test.js +29 -0
  119. package/dist/tests/driver/invalid-input.test.js.map +1 -0
  120. package/dist/tests/driver/modules.test.js +42 -3
  121. package/dist/tests/driver/modules.test.js.map +1 -1
  122. package/dist/tests/driver/toolchain-provider.test.js +27 -1
  123. package/dist/tests/driver/toolchain-provider.test.js.map +1 -1
  124. package/dist/tests/driver/toolchain.test.js +60 -2
  125. package/dist/tests/driver/toolchain.test.js.map +1 -1
  126. package/dist/tests/e2e/array-buffer.test.d.ts +5 -0
  127. package/dist/tests/e2e/array-buffer.test.js +38 -0
  128. package/dist/tests/e2e/array-buffer.test.js.map +1 -0
  129. package/dist/tests/e2e/array-from-iterables.test.d.ts +7 -0
  130. package/dist/tests/e2e/array-from-iterables.test.js +34 -0
  131. package/dist/tests/e2e/array-from-iterables.test.js.map +1 -0
  132. package/dist/tests/e2e/array-symbol-iterator.test.d.ts +8 -0
  133. package/dist/tests/e2e/array-symbol-iterator.test.js +42 -0
  134. package/dist/tests/e2e/array-symbol-iterator.test.js.map +1 -0
  135. package/dist/tests/e2e/async-await.test.d.ts +10 -0
  136. package/dist/tests/e2e/async-await.test.js +247 -0
  137. package/dist/tests/e2e/async-await.test.js.map +1 -0
  138. package/dist/tests/e2e/async-generators.test.d.ts +1 -0
  139. package/dist/tests/e2e/async-generators.test.js +154 -0
  140. package/dist/tests/e2e/async-generators.test.js.map +1 -0
  141. package/dist/tests/e2e/await-ordering.test.d.ts +5 -0
  142. package/dist/tests/e2e/await-ordering.test.js +37 -0
  143. package/dist/tests/e2e/await-ordering.test.js.map +1 -0
  144. package/dist/tests/e2e/compile-builtins.test.js +1 -1
  145. package/dist/tests/e2e/compile-modules.test.js +7 -0
  146. package/dist/tests/e2e/compile-modules.test.js.map +1 -1
  147. package/dist/tests/e2e/date-parse.test.d.ts +8 -0
  148. package/dist/tests/e2e/date-parse.test.js +38 -0
  149. package/dist/tests/e2e/date-parse.test.js.map +1 -0
  150. package/dist/tests/e2e/default-anonymous-exports.test.d.ts +7 -0
  151. package/dist/tests/e2e/default-anonymous-exports.test.js +23 -0
  152. package/dist/tests/e2e/default-anonymous-exports.test.js.map +1 -0
  153. package/dist/tests/e2e/globals-microtask.test.d.ts +9 -0
  154. package/dist/tests/e2e/globals-microtask.test.js +37 -0
  155. package/dist/tests/e2e/globals-microtask.test.js.map +1 -0
  156. package/dist/tests/e2e/gui-media.test.js +8 -1
  157. package/dist/tests/e2e/gui-media.test.js.map +1 -1
  158. package/dist/tests/e2e/inspect-builtins.test.d.ts +10 -0
  159. package/dist/tests/e2e/inspect-builtins.test.js +43 -0
  160. package/dist/tests/e2e/inspect-builtins.test.js.map +1 -0
  161. package/dist/tests/e2e/json-builtin-objects.test.d.ts +9 -0
  162. package/dist/tests/e2e/json-builtin-objects.test.js +23 -0
  163. package/dist/tests/e2e/json-builtin-objects.test.js.map +1 -0
  164. package/dist/tests/e2e/json-circular.test.d.ts +6 -0
  165. package/dist/tests/e2e/json-circular.test.js +43 -0
  166. package/dist/tests/e2e/json-circular.test.js.map +1 -0
  167. package/dist/tests/e2e/json-parse-reviver.test.d.ts +6 -0
  168. package/dist/tests/e2e/json-parse-reviver.test.js +29 -0
  169. package/dist/tests/e2e/json-parse-reviver.test.js.map +1 -0
  170. package/dist/tests/e2e/json-stringify-replacer.test.d.ts +6 -0
  171. package/dist/tests/e2e/json-stringify-replacer.test.js +27 -0
  172. package/dist/tests/e2e/json-stringify-replacer.test.js.map +1 -0
  173. package/dist/tests/e2e/json-stringify-space.test.d.ts +6 -0
  174. package/dist/tests/e2e/json-stringify-space.test.js +23 -0
  175. package/dist/tests/e2e/json-stringify-space.test.js.map +1 -0
  176. package/dist/tests/e2e/method-dispatch-errors.test.d.ts +9 -0
  177. package/dist/tests/e2e/method-dispatch-errors.test.js +38 -0
  178. package/dist/tests/e2e/method-dispatch-errors.test.js.map +1 -0
  179. package/dist/tests/e2e/native-extensions.test.js +1 -1
  180. package/dist/tests/e2e/native-extensions.test.js.map +1 -1
  181. package/dist/tests/e2e/promise-with-resolvers.test.d.ts +5 -0
  182. package/dist/tests/e2e/promise-with-resolvers.test.js +20 -0
  183. package/dist/tests/e2e/promise-with-resolvers.test.js.map +1 -0
  184. package/dist/tests/e2e/property-descriptors.test.d.ts +5 -0
  185. package/dist/tests/e2e/property-descriptors.test.js +25 -0
  186. package/dist/tests/e2e/property-descriptors.test.js.map +1 -0
  187. package/dist/tests/e2e/property-ic.test.d.ts +1 -0
  188. package/dist/tests/e2e/property-ic.test.js +55 -0
  189. package/dist/tests/e2e/property-ic.test.js.map +1 -0
  190. package/dist/tests/e2e/runtime-coverage-globals.test.js +46 -0
  191. package/dist/tests/e2e/runtime-coverage-globals.test.js.map +1 -1
  192. package/dist/tests/e2e/runtime-errors.test.d.ts +10 -0
  193. package/dist/tests/e2e/runtime-errors.test.js +52 -0
  194. package/dist/tests/e2e/runtime-errors.test.js.map +1 -0
  195. package/dist/tests/e2e/string-utf16.test.d.ts +6 -0
  196. package/dist/tests/e2e/string-utf16.test.js +133 -0
  197. package/dist/tests/e2e/string-utf16.test.js.map +1 -0
  198. package/dist/tests/e2e/structured-clone.test.d.ts +6 -0
  199. package/dist/tests/e2e/structured-clone.test.js +49 -0
  200. package/dist/tests/e2e/structured-clone.test.js.map +1 -0
  201. package/dist/tests/e2e/text-codec.test.d.ts +6 -0
  202. package/dist/tests/e2e/text-codec.test.js +24 -0
  203. package/dist/tests/e2e/text-codec.test.js.map +1 -0
  204. package/dist/tests/e2e/typed-array-views.test.d.ts +6 -0
  205. package/dist/tests/e2e/typed-array-views.test.js +39 -0
  206. package/dist/tests/e2e/typed-array-views.test.js.map +1 -0
  207. package/dist/tests/e2e/url-search-params.test.d.ts +5 -0
  208. package/dist/tests/e2e/url-search-params.test.js +30 -0
  209. package/dist/tests/e2e/url-search-params.test.js.map +1 -0
  210. package/dist/tests/e2e/weak-collections.test.d.ts +1 -0
  211. package/dist/tests/e2e/weak-collections.test.js +88 -0
  212. package/dist/tests/e2e/weak-collections.test.js.map +1 -0
  213. package/dist/tests/parser/declarations.test.js +12 -0
  214. package/dist/tests/parser/declarations.test.js.map +1 -1
  215. package/dist/tests/parser/module-syntax.test.js +9 -0
  216. package/dist/tests/parser/module-syntax.test.js.map +1 -1
  217. package/dist/tests/parser/parser.test.js +7 -0
  218. package/dist/tests/parser/parser.test.js.map +1 -1
  219. package/dist/tests/version.test.js +5 -1
  220. package/dist/tests/version.test.js.map +1 -1
  221. package/doc/ai/README.md +4 -3
  222. package/doc/ai/cli.md +41 -0
  223. package/doc/ai/contributing.md +26 -21
  224. package/doc/ai/extensions.md +12 -9
  225. package/doc/ai/language-support.md +26 -19
  226. package/doc/ai/troubleshooting.md +15 -12
  227. package/doc/ai/zh-CN/README.md +3 -2
  228. package/doc/ai/zh-CN/cli.md +35 -0
  229. package/doc/ai/zh-CN/contributing.md +19 -18
  230. package/doc/ai/zh-CN/extensions.md +10 -7
  231. package/doc/ai/zh-CN/language-support.md +26 -20
  232. package/doc/ai/zh-CN/troubleshooting.md +12 -10
  233. package/doc/gui/build.md +13 -4
  234. package/doc/gui/known-issues.md +9 -5
  235. package/doc/gui/rendering.md +3 -1
  236. package/doc/gui.md +4 -3
  237. package/doc/icon.md +5 -4
  238. package/doc/implemented/async.md +38 -0
  239. package/doc/implemented/binder.md +13 -0
  240. package/doc/implemented/cli.md +47 -0
  241. package/doc/implemented/codegen.md +33 -0
  242. package/doc/implemented/collections.md +26 -0
  243. package/doc/implemented/driver.md +19 -0
  244. package/doc/implemented/extensions.md +19 -0
  245. package/doc/implemented/fetch.md +12 -0
  246. package/doc/implemented/lexer.md +23 -0
  247. package/doc/implemented/modules.md +28 -0
  248. package/doc/implemented/node/assert.md +17 -0
  249. package/doc/implemented/node/buffer.md +29 -0
  250. package/doc/implemented/node/child-process.md +29 -0
  251. package/doc/implemented/node/crypto.md +9 -0
  252. package/doc/implemented/node/dgram.md +15 -0
  253. package/doc/implemented/node/events.md +37 -0
  254. package/doc/implemented/node/fs-promises.md +38 -0
  255. package/doc/implemented/node/fs.md +112 -0
  256. package/doc/implemented/node/http.md +21 -0
  257. package/doc/implemented/node/net.md +17 -0
  258. package/doc/implemented/node/os.md +22 -0
  259. package/doc/implemented/node/path.md +33 -0
  260. package/doc/implemented/node/process.md +23 -0
  261. package/doc/implemented/node/querystring.md +20 -0
  262. package/doc/implemented/node/stream-promises.md +8 -0
  263. package/doc/implemented/node/stream.md +19 -0
  264. package/doc/implemented/node/test.md +10 -0
  265. package/doc/implemented/node/url.md +8 -0
  266. package/doc/implemented/node/util.md +25 -0
  267. package/doc/implemented/node/worker-threads.md +10 -0
  268. package/doc/implemented/node/zlib.md +8 -0
  269. package/doc/implemented/node.md +48 -0
  270. package/doc/implemented/operators.md +38 -0
  271. package/doc/implemented/parser.md +58 -0
  272. package/doc/implemented/pipeline.md +28 -0
  273. package/doc/implemented/runtime-core.md +32 -0
  274. package/doc/implemented/stdlib.md +78 -0
  275. package/doc/implemented/strings.md +27 -0
  276. package/doc/implemented/tests.md +10 -0
  277. package/doc/implemented/typed-arrays.md +26 -0
  278. package/doc/implemented/value-model.md +18 -0
  279. package/doc/implemented.md +54 -352
  280. package/doc/node-implemented.md +3 -585
  281. package/doc/node-unimplemented.md +3 -164
  282. package/doc/requirements.md +23 -8
  283. package/doc/unimplemented/classes.md +22 -0
  284. package/doc/unimplemented/deviations.md +27 -0
  285. package/doc/unimplemented/expressions.md +26 -0
  286. package/doc/unimplemented/functions.md +21 -0
  287. package/doc/unimplemented/modules.md +22 -0
  288. package/doc/unimplemented/node/async.md +17 -0
  289. package/doc/unimplemented/node/bun.md +9 -0
  290. package/doc/unimplemented/node/fs-promises.md +16 -0
  291. package/doc/unimplemented/node/fs.md +31 -0
  292. package/doc/unimplemented/node/globals.md +23 -0
  293. package/doc/unimplemented/node/modules.md +21 -0
  294. package/doc/unimplemented/node.md +21 -0
  295. package/doc/unimplemented/statements.md +18 -0
  296. package/doc/unimplemented/stdlib.md +54 -0
  297. package/doc/unimplemented/toolchain.md +14 -0
  298. package/doc/unimplemented/types.md +12 -0
  299. package/doc/unimplemented.md +18 -274
  300. package/doc/xbintsc.config.schema.json +12 -0
  301. package/doc/zh-CN/gui/build.md +11 -3
  302. package/doc/zh-CN/gui/known-issues.md +9 -4
  303. package/doc/zh-CN/gui/rendering.md +2 -1
  304. package/doc/zh-CN/gui.md +3 -2
  305. package/doc/zh-CN/icon.md +5 -4
  306. package/doc/zh-CN/implemented/async.md +38 -0
  307. package/doc/zh-CN/implemented/binder.md +13 -0
  308. package/doc/zh-CN/implemented/cli.md +46 -0
  309. package/doc/zh-CN/implemented/codegen.md +33 -0
  310. package/doc/zh-CN/implemented/collections.md +26 -0
  311. package/doc/zh-CN/implemented/driver.md +19 -0
  312. package/doc/zh-CN/implemented/extensions.md +19 -0
  313. package/doc/zh-CN/implemented/fetch.md +12 -0
  314. package/doc/zh-CN/implemented/lexer.md +23 -0
  315. package/doc/zh-CN/implemented/modules.md +28 -0
  316. package/doc/zh-CN/implemented/node/assert.md +17 -0
  317. package/doc/zh-CN/implemented/node/buffer.md +25 -0
  318. package/doc/zh-CN/implemented/node/child-process.md +27 -0
  319. package/doc/zh-CN/implemented/node/crypto.md +9 -0
  320. package/doc/zh-CN/implemented/node/dgram.md +15 -0
  321. package/doc/zh-CN/implemented/node/events.md +36 -0
  322. package/doc/zh-CN/implemented/node/fs-promises.md +27 -0
  323. package/doc/zh-CN/implemented/node/fs.md +105 -0
  324. package/doc/zh-CN/implemented/node/http.md +17 -0
  325. package/doc/zh-CN/implemented/node/net.md +17 -0
  326. package/doc/zh-CN/implemented/node/os.md +21 -0
  327. package/doc/zh-CN/implemented/node/path.md +26 -0
  328. package/doc/zh-CN/implemented/node/process.md +23 -0
  329. package/doc/zh-CN/implemented/node/querystring.md +20 -0
  330. package/doc/zh-CN/implemented/node/stream-promises.md +8 -0
  331. package/doc/zh-CN/implemented/node/stream.md +15 -0
  332. package/doc/zh-CN/implemented/node/test.md +10 -0
  333. package/doc/zh-CN/implemented/node/url.md +8 -0
  334. package/doc/zh-CN/implemented/node/util.md +25 -0
  335. package/doc/zh-CN/implemented/node/worker-threads.md +9 -0
  336. package/doc/zh-CN/implemented/node/zlib.md +8 -0
  337. package/doc/zh-CN/implemented/node.md +45 -0
  338. package/doc/zh-CN/implemented/operators.md +38 -0
  339. package/doc/zh-CN/implemented/parser.md +58 -0
  340. package/doc/zh-CN/implemented/pipeline.md +25 -0
  341. package/doc/zh-CN/implemented/runtime-core.md +31 -0
  342. package/doc/zh-CN/implemented/stdlib.md +76 -0
  343. package/doc/zh-CN/implemented/strings.md +27 -0
  344. package/doc/zh-CN/implemented/tests.md +10 -0
  345. package/doc/zh-CN/implemented/typed-arrays.md +26 -0
  346. package/doc/zh-CN/implemented/value-model.md +18 -0
  347. package/doc/zh-CN/implemented.md +50 -347
  348. package/doc/zh-CN/node-implemented.md +4 -531
  349. package/doc/zh-CN/node-unimplemented.md +4 -139
  350. package/doc/zh-CN/plan-require-node-modules.md +4 -4
  351. package/doc/zh-CN/requirements.md +20 -6
  352. package/doc/zh-CN/unimplemented/classes.md +22 -0
  353. package/doc/zh-CN/unimplemented/deviations.md +24 -0
  354. package/doc/zh-CN/unimplemented/expressions.md +24 -0
  355. package/doc/zh-CN/unimplemented/functions.md +21 -0
  356. package/doc/zh-CN/unimplemented/modules.md +19 -0
  357. package/doc/zh-CN/unimplemented/node/async.md +17 -0
  358. package/doc/zh-CN/unimplemented/node/bun.md +8 -0
  359. package/doc/zh-CN/unimplemented/node/fs-promises.md +12 -0
  360. package/doc/zh-CN/unimplemented/node/fs.md +24 -0
  361. package/doc/zh-CN/unimplemented/node/globals.md +14 -0
  362. package/doc/zh-CN/unimplemented/node/modules.md +15 -0
  363. package/doc/zh-CN/unimplemented/node.md +18 -0
  364. package/doc/zh-CN/unimplemented/statements.md +15 -0
  365. package/doc/zh-CN/unimplemented/stdlib.md +54 -0
  366. package/doc/zh-CN/unimplemented/toolchain.md +14 -0
  367. package/doc/zh-CN/unimplemented/types.md +11 -0
  368. package/doc/zh-CN/unimplemented.md +14 -236
  369. package/llms.txt +32 -4
  370. package/package.json +1 -1
  371. package/runtime/ext_gui/renderer_shaders.h +2 -2
  372. package/runtime/ext_gui/stb_image.h +1 -17
  373. package/runtime/ext_node/child_process/child_process.c +173 -73
  374. package/runtime/rt.h +47 -0
  375. package/runtime/rt_internal.h +205 -10
  376. package/runtime/xt_alloc.c +49 -7
  377. package/runtime/xt_array_buffer.c +284 -0
  378. package/runtime/xt_async.c +222 -0
  379. package/runtime/xt_bigint/helpers.inc +3 -3
  380. package/runtime/xt_builtins.c +59 -51
  381. package/runtime/xt_constructors.c +399 -0
  382. package/runtime/xt_containers/access.inc +195 -14
  383. package/runtime/xt_containers/arrays.inc +26 -2
  384. package/runtime/xt_containers/objects.inc +226 -5
  385. package/runtime/xt_containers/shapes.inc +71 -0
  386. package/runtime/xt_containers.c +1 -0
  387. package/runtime/xt_coroutine.c +229 -0
  388. package/runtime/xt_generator.c +325 -167
  389. package/runtime/xt_io/inspect.inc +147 -2
  390. package/runtime/xt_loop.c +35 -4
  391. package/runtime/xt_performance.c +37 -0
  392. package/runtime/xt_promise.c +125 -18
  393. package/runtime/xt_stdlib/arrays.inc +1 -1
  394. package/runtime/xt_stdlib/dispatch.inc +64 -13
  395. package/runtime/xt_stdlib/strings.inc +74 -17
  396. package/runtime/xt_stdlib2/array-statics.inc +28 -3
  397. package/runtime/xt_stdlib2/arrays.inc +5 -3
  398. package/runtime/xt_stdlib2/container.inc +5 -0
  399. package/runtime/xt_stdlib2/date.inc +111 -3
  400. package/runtime/xt_stdlib2/error.inc +35 -0
  401. package/runtime/xt_stdlib2/json.inc +353 -33
  402. package/runtime/xt_stdlib2/number-string-statics.inc +24 -15
  403. package/runtime/xt_stdlib2/objects.inc +123 -1
  404. package/runtime/xt_stdlib2/regexp-match.inc +2 -2
  405. package/runtime/xt_stdlib2/set.inc +7 -1
  406. package/runtime/xt_stdlib2/strings.inc +70 -40
  407. package/runtime/xt_structured_clone.c +159 -0
  408. package/runtime/xt_symbol.c +2 -2
  409. package/runtime/xt_text_codec.c +69 -0
  410. package/runtime/xt_typed_array/construction.inc +78 -7
  411. package/runtime/xt_typed_array/elements.inc +159 -0
  412. package/runtime/xt_typed_array/methods.inc +21 -5
  413. package/runtime/xt_typed_array.c +11 -10
  414. package/runtime/xt_url.c +375 -0
  415. package/runtime/xt_values/arithmetic.inc +2 -2
  416. package/runtime/xt_values/constructors.inc +8 -0
  417. package/runtime/xt_values/conversions.inc +1 -1
  418. package/runtime/xt_values/strings.inc +19 -3
  419. package/runtime/xt_values/utf16.inc +340 -0
  420. package/runtime/xt_values.c +1 -0
  421. package/runtime/xt_weak.c +281 -0
  422. package/scripts/build-gui.ts +133 -60
  423. package/scripts/check-version.ts +3 -3
  424. package/src/binder/declarations.ts +14 -3
  425. package/src/cli/hints.ts +8 -1
  426. package/src/cli/main.ts +119 -18
  427. package/src/cli/watch.ts +101 -0
  428. package/src/codegen/generator/calls/access.ts +17 -4
  429. package/src/codegen/generator/calls/closures.ts +12 -1
  430. package/src/codegen/generator/calls/invocation.ts +4 -3
  431. package/src/codegen/generator/context.ts +23 -3
  432. package/src/codegen/generator/expressions/operators.ts +27 -13
  433. package/src/codegen/generator/expressions/primary.ts +10 -1
  434. package/src/codegen/generator/module.ts +10 -19
  435. package/src/codegen/generator/numeric.ts +85 -11
  436. package/src/codegen/generator/state.ts +27 -0
  437. package/src/codegen/generator/statements/control-flow.ts +2 -6
  438. package/src/codegen/generator/statements/loops.ts +50 -16
  439. package/src/codegen/generator/tables.ts +110 -3
  440. package/src/diagnostics/diagnostic.ts +23 -3
  441. package/src/driver/app-artifacts.ts +77 -0
  442. package/src/driver/build-key.ts +55 -0
  443. package/src/driver/bundler/graph.ts +63 -13
  444. package/src/driver/bundler/merge.ts +4 -1
  445. package/src/driver/compiler.ts +93 -324
  446. package/src/driver/config.ts +11 -0
  447. package/src/driver/frontend.ts +120 -0
  448. package/src/driver/index.ts +0 -1
  449. package/src/driver/options.ts +70 -0
  450. package/src/driver/runtime-objects.ts +133 -0
  451. package/src/driver/toolchain-provider.ts +4 -0
  452. package/src/driver/toolchain.ts +154 -10
  453. package/src/driver/version.ts +12 -0
  454. package/src/driver/win-icon.ts +36 -36
  455. package/src/parser/declarations/classes.ts +4 -0
  456. package/src/parser/declarations/functions.ts +12 -1
  457. package/src/parser/modules.ts +8 -4
  458. package/src/parser/parser.ts +28 -0
@@ -2,7 +2,7 @@
2
2
  * Loop lowering: `while`, `do`/`while`, `for` and `for`/`of` / `for`/`in`.
3
3
  */
4
4
  import { SyntaxKind, } from "../../../ast/nodes.js";
5
- import { numberLiteral } from "../../values.js";
5
+ import { i64, numberLiteral, XT_TRUE } from "../../values.js";
6
6
  export const loopStatementMethods = {
7
7
  /** Consume labels accumulated by enclosing `LabeledStatement`s. */
8
8
  takePendingLabels() {
@@ -24,10 +24,7 @@ export const loopStatementMethods = {
24
24
  this.terminate(`br label %${condLabel}`);
25
25
  this.startBlock(condLabel);
26
26
  const condition = this.emitExpression(statement.condition);
27
- const truthy = this.reg();
28
- this.emit(` ${truthy} = call i32 @xt_truthy(i64 ${condition})`);
29
- const nonzero = this.reg();
30
- this.emit(` ${nonzero} = icmp ne i32 ${truthy}, 0`);
27
+ const nonzero = this.emitTruthiness(condition, statement.condition);
31
28
  this.terminate(`br i1 ${nonzero}, label %${bodyLabel}, label %${endLabel}`);
32
29
  this.startBlock(bodyLabel);
33
30
  this.current.loops.push({ breakLabel: endLabel, continueLabel: condLabel, tryDepth: this.current.tryFrames.length, labels: this.takePendingLabels() });
@@ -50,10 +47,7 @@ export const loopStatementMethods = {
50
47
  this.terminate(`br label %${condLabel}`);
51
48
  this.startBlock(condLabel);
52
49
  const condition = this.emitExpression(statement.condition);
53
- const truthy = this.reg();
54
- this.emit(` ${truthy} = call i32 @xt_truthy(i64 ${condition})`);
55
- const nonzero = this.reg();
56
- this.emit(` ${nonzero} = icmp ne i32 ${truthy}, 0`);
50
+ const nonzero = this.emitTruthiness(condition, statement.condition);
57
51
  this.terminate(`br i1 ${nonzero}, label %${bodyLabel}, label %${endLabel}`);
58
52
  this.startBlock(endLabel);
59
53
  },
@@ -78,10 +72,7 @@ export const loopStatementMethods = {
78
72
  this.startBlock(condLabel);
79
73
  if (statement.condition) {
80
74
  const condition = this.emitExpression(statement.condition);
81
- const truthy = this.reg();
82
- this.emit(` ${truthy} = call i32 @xt_truthy(i64 ${condition})`);
83
- const nonzero = this.reg();
84
- this.emit(` ${nonzero} = icmp ne i32 ${truthy}, 0`);
75
+ const nonzero = this.emitTruthiness(condition, statement.condition);
85
76
  this.terminate(`br i1 ${nonzero}, label %${bodyLabel}, label %${endLabel}`);
86
77
  }
87
78
  else {
@@ -103,6 +94,48 @@ export const loopStatementMethods = {
103
94
  emitForOf(statement) {
104
95
  const source = this.emitExpression(statement.expression);
105
96
  const isForIn = statement.kind === SyntaxKind.ForInStatement;
97
+ /* `for await (const x of xs)`: resolve the async iteration protocol once,
98
+ * await one step per iteration, then bind its `value`. Running the await
99
+ * inside the surrounding async coroutine is what makes the loop suspend
100
+ * between elements instead of blocking the event loop. */
101
+ if (!isForIn && statement.awaitModifier) {
102
+ const iterable = this.runtimeCall("xt_async_iter_open", [source]);
103
+ const condLabel = this.label("forawait.cond");
104
+ const bodyLabel = this.label("forawait.body");
105
+ const updateLabel = this.label("forawait.update");
106
+ const endLabel = this.label("forawait.end");
107
+ this.terminate(`br label %${condLabel}`);
108
+ this.startBlock(condLabel);
109
+ const next = this.runtimeCall("xt_async_iter_next", [iterable]);
110
+ const step = this.runtimeCall("xt_await", [next]);
111
+ const doneKey = this.stringValue("done");
112
+ const done = this.runtimeCall("xt_get", [step, doneKey]);
113
+ /* `xt_truthy` returns i32, so it cannot go through `runtimeCall`
114
+ * (which types every result as i64). */
115
+ const truthy = this.reg();
116
+ this.emit(` ${truthy} = call i32 @xt_truthy(i64 ${done})`);
117
+ const nonzero = this.reg();
118
+ this.emit(` ${nonzero} = icmp ne i32 ${truthy}, 0`);
119
+ this.terminate(`br i1 ${nonzero}, label %${endLabel}, label %${bodyLabel}`);
120
+ this.startBlock(bodyLabel);
121
+ const valueKey = this.stringValue("value");
122
+ const element = this.runtimeCall("xt_get", [step, valueKey]);
123
+ this.bindLoopVariable(statement.initializer, element);
124
+ this.current.loops.push({
125
+ breakLabel: endLabel,
126
+ continueLabel: updateLabel,
127
+ tryDepth: this.current.tryFrames.length,
128
+ labels: this.takePendingLabels(),
129
+ });
130
+ this.emitStatement(statement.statement);
131
+ this.current.loops.pop();
132
+ if (!this.current.terminated)
133
+ this.terminate(`br label %${updateLabel}`);
134
+ this.startBlock(updateLabel);
135
+ this.terminate(`br label %${condLabel}`);
136
+ this.startBlock(endLabel);
137
+ return;
138
+ }
106
139
  // `for...in` iterates the enumerable keys (indices become strings);
107
140
  // `for...of` resolves the iteration protocol once, then walks it.
108
141
  const iterable = isForIn
@@ -121,10 +154,9 @@ export const loopStatementMethods = {
121
154
  /* `xt_iter_has` covers generators too, which cannot be sized up front. */
122
155
  const hasValue = this.reg();
123
156
  this.emit(` ${hasValue} = call i64 @xt_iter_has(i64 ${iterable}, i64 ${index})`);
124
- const truthy = this.reg();
125
- this.emit(` ${truthy} = call i32 @xt_truthy(i64 ${hasValue})`);
157
+ /* `xt_iter_has` always returns a boolean tag, so skip `xt_truthy`. */
126
158
  const nonzero = this.reg();
127
- this.emit(` ${nonzero} = icmp ne i32 ${truthy}, 0`);
159
+ this.emit(` ${nonzero} = icmp eq i64 ${hasValue}, ${i64(XT_TRUE)}`);
128
160
  this.terminate(`br i1 ${nonzero}, label %${bodyLabel}, label %${endLabel}`);
129
161
  this.startBlock(bodyLabel);
130
162
  const element = this.reg();
@@ -1 +1 @@
1
- {"version":3,"file":"loops.js","sourceRoot":"","sources":["../../../../../src/codegen/generator/statements/loops.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loops.js","sourceRoot":"","sources":["../../../../../src/codegen/generator/statements/loops.ts"],"names":[],"mappings":"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"}
@@ -42,10 +42,19 @@ export declare const TYPED_ARRAYS: Record<string, {
42
42
  }>;
43
43
  /** Global namespaces whose static methods map to runtime dispatchers. */
44
44
  export declare const NAMESPACE_STATICS: Record<string, string>;
45
+ /** The well-known symbols exposed as properties of the `Symbol` namespace. */
46
+ export declare const SYMBOL_WELL_KNOWN: Set<string>;
45
47
  /** Namespace identifiers whose property access maps to a runtime getter. */
46
48
  export declare const NAMESPACE_PROPERTIES: Record<string, string>;
47
49
  /** Global constructors called as `new X(...)` (all have signature `(i32, i64*)`). */
48
50
  export declare const CTOR_FUNCTIONS: Record<string, string>;
51
+ /**
52
+ * Built-in constructors that are also ordinary first-class values. The codegen
53
+ * lowers a bare reference (`const A = Array`) to `xt_builtin_constructor`, which
54
+ * returns a cached function with `name`/`length`, a `prototype` and the
55
+ * constructor's statics (`A.isArray`, `A.from`, ...).
56
+ */
57
+ export declare const FIRST_CLASS_CONSTRUCTORS: Set<string>;
49
58
  export declare const BUILTIN_METHODS: Set<string>;
50
59
  export declare const ASSIGNMENT_OPERATORS: Set<string>;
51
60
  export declare function isAssignmentOperator(operator: string): boolean;
@@ -29,6 +29,9 @@ export const BUILTIN_INSTANCEOF = {
29
29
  Date: 5,
30
30
  RegExp: 6,
31
31
  Promise: 7,
32
+ WeakMap: 8,
33
+ WeakSet: 9,
34
+ WeakRef: 10,
32
35
  Uint8Array: 16,
33
36
  Int8Array: 17,
34
37
  Uint8ClampedArray: 18,
@@ -137,6 +140,10 @@ export const GLOBAL_FUNCTIONS = {
137
140
  clearTimeout: "xt_clear_timeout",
138
141
  setInterval: "xt_set_interval",
139
142
  clearInterval: "xt_clear_interval",
143
+ setImmediate: "xt_set_immediate",
144
+ clearImmediate: "xt_clear_immediate",
145
+ queueMicrotask: "xt_queue_microtask",
146
+ structuredClone: "xt_structured_clone",
140
147
  fetch: "xt_fetch",
141
148
  Number: "xt_number_ctor",
142
149
  String: "xt_string_ctor",
@@ -160,6 +167,10 @@ export const BUILTIN_FUNCTION_VALUES = {
160
167
  clearTimeout: "xt_builtin_value_clearTimeout",
161
168
  setInterval: "xt_builtin_value_setInterval",
162
169
  clearInterval: "xt_builtin_value_clearInterval",
170
+ setImmediate: "xt_builtin_value_setImmediate",
171
+ clearImmediate: "xt_builtin_value_clearImmediate",
172
+ queueMicrotask: "xt_builtin_value_queueMicrotask",
173
+ structuredClone: "xt_builtin_value_structuredClone",
163
174
  fetch: "xt_builtin_value_fetch",
164
175
  Number: "xt_builtin_value_number",
165
176
  String: "xt_builtin_value_string",
@@ -213,9 +224,11 @@ export const NAMESPACE_STATICS = {
213
224
  Symbol: "xt_symbol_static",
214
225
  Date: "xt_date_static",
215
226
  Promise: "xt_promise_static",
227
+ ArrayBuffer: "xt_array_buffer_static",
216
228
  path: "xt_path_static",
217
229
  os: "xt_os_static",
218
230
  process: "xt_process_call",
231
+ performance: "xt_performance_call",
219
232
  Buffer: "xt_buffer_static",
220
233
  stream: "xt_stream_static",
221
234
  Readable: "xt_stream_static",
@@ -232,17 +245,37 @@ export const NAMESPACE_STATICS = {
232
245
  assert: "xt_assert_static",
233
246
  ...TYPED_ARRAY_STATICS,
234
247
  };
248
+ /** The well-known symbols exposed as properties of the `Symbol` namespace. */
249
+ export const SYMBOL_WELL_KNOWN = new Set([
250
+ "asyncIterator",
251
+ "hasInstance",
252
+ "isConcatSpreadable",
253
+ "iterator",
254
+ "match",
255
+ "matchAll",
256
+ "replace",
257
+ "search",
258
+ "species",
259
+ "split",
260
+ "toPrimitive",
261
+ "toStringTag",
262
+ "unscopables",
263
+ ]);
235
264
  /** Namespace identifiers whose property access maps to a runtime getter. */
236
265
  export const NAMESPACE_PROPERTIES = {
237
266
  process: "xt_process_get",
238
267
  "import.meta": "xt_import_meta",
239
268
  Symbol: "xt_symbol_get",
269
+ performance: "xt_performance_get",
240
270
  };
241
271
  /** Global constructors called as `new X(...)` (all have signature `(i32, i64*)`). */
242
272
  export const CTOR_FUNCTIONS = {
243
- Array: "xt_array_new",
273
+ Array: "xt_array_ctor",
244
274
  Map: "xt_map_ctor",
245
275
  Set: "xt_set_ctor",
276
+ WeakMap: "xt_weak_map_ctor",
277
+ WeakSet: "xt_weak_set_ctor",
278
+ WeakRef: "xt_weak_ref_ctor",
246
279
  Date: "xt_date_ctor",
247
280
  RegExp: "xt_regexp_ctor",
248
281
  Promise: "xt_promise_ctor",
@@ -255,9 +288,40 @@ export const CTOR_FUNCTIONS = {
255
288
  Socket: "xt_net_socket_ctor",
256
289
  Server: "xt_net_server_ctor",
257
290
  EventEmitter: "xt_event_emitter_ctor",
291
+ URLSearchParams: "xt_url_search_params_ctor",
292
+ TextEncoder: "xt_text_encoder_ctor",
293
+ TextDecoder: "xt_text_decoder_ctor",
294
+ ArrayBuffer: "xt_array_buffer_ctor",
295
+ DataView: "xt_data_view_ctor",
258
296
  ...ERROR_CONSTRUCTORS,
259
297
  ...TYPED_ARRAY_CTORS,
260
298
  };
299
+ /**
300
+ * Built-in constructors that are also ordinary first-class values. The codegen
301
+ * lowers a bare reference (`const A = Array`) to `xt_builtin_constructor`, which
302
+ * returns a cached function with `name`/`length`, a `prototype` and the
303
+ * constructor's statics (`A.isArray`, `A.from`, ...).
304
+ */
305
+ export const FIRST_CLASS_CONSTRUCTORS = new Set([
306
+ "Array",
307
+ "Object",
308
+ "Function",
309
+ "Map",
310
+ "Set",
311
+ "WeakMap",
312
+ "WeakSet",
313
+ "WeakRef",
314
+ "Date",
315
+ "RegExp",
316
+ "Promise",
317
+ ...Object.keys(TYPED_ARRAYS),
318
+ ...Object.keys(ERROR_CONSTRUCTORS),
319
+ "Number",
320
+ "String",
321
+ "Boolean",
322
+ "BigInt",
323
+ "Symbol",
324
+ ]);
261
325
  export const BUILTIN_METHODS = new Set([
262
326
  "push", "pop", "shift", "unshift", "join", "slice", "indexOf", "includes", "map", "forEach", "filter",
263
327
  "reduce", "concat", "reverse", "charAt", "charCodeAt", "substring", "substr", "split", "toUpperCase",
@@ -321,7 +385,7 @@ export const KIND_NAMES = new Map([
321
385
  [SyntaxKind.DeleteExpression, "delete expression"],
322
386
  [SyntaxKind.AwaitExpression, "await expression"],
323
387
  [SyntaxKind.YieldExpression, "yield expression"],
324
- [SyntaxKind.SwitchStatement, "switch statement"],
388
+ [SyntaxKind.ModuleDeclaration, "namespace declaration"],
325
389
  ]);
326
390
  /**
327
391
  * The UTF-8 bytes of one code point, which must be an ASCII byte or a Unicode
@@ -367,7 +431,7 @@ export function utf8Bytes(text) {
367
431
  const bytes = [];
368
432
  for (let index = 0; index < text.length; index++)
369
433
  bytes.push(text.charCodeAt(index) & 0xff);
370
- return bytes;
434
+ return combineSurrogateBytes(bytes);
371
435
  }
372
436
  const bytes = [];
373
437
  const length = text.length;
@@ -393,6 +457,39 @@ function hasMultiByteUnit(text) {
393
457
  }
394
458
  return false;
395
459
  }
460
+ /**
461
+ * Join adjacent WTF-8 surrogate halves into one four-byte sequence.
462
+ *
463
+ * A literal such as `"\uD83D\uDE00"` scans to two separate three-byte
464
+ * escapes. JavaScript's string value is one code point, so the emitted bytes
465
+ * must be the four-byte UTF-8 form (and a lone escape must stay three bytes,
466
+ * which is why this runs after scanning rather than per escape).
467
+ */
468
+ function combineSurrogateBytes(bytes) {
469
+ const out = [];
470
+ for (let index = 0; index < bytes.length; index++) {
471
+ if (index + 5 < bytes.length &&
472
+ bytes[index] === 0xed &&
473
+ bytes[index + 1] >= 0xa0 &&
474
+ bytes[index + 1] <= 0xaf &&
475
+ bytes[index + 2] >= 0x80 &&
476
+ bytes[index + 2] <= 0xbf &&
477
+ bytes[index + 3] === 0xed &&
478
+ bytes[index + 4] >= 0xb0 &&
479
+ bytes[index + 4] <= 0xbf &&
480
+ bytes[index + 5] >= 0x80 &&
481
+ bytes[index + 5] <= 0xbf) {
482
+ const high = ((bytes[index] & 0x0f) << 12) | ((bytes[index + 1] & 0x3f) << 6) | (bytes[index + 2] & 0x3f);
483
+ const low = ((bytes[index + 3] & 0x0f) << 12) | ((bytes[index + 4] & 0x3f) << 6) | (bytes[index + 5] & 0x3f);
484
+ const code = 0x10000 + ((high - 0xd800) << 10) + (low - 0xdc00);
485
+ out.push(0xf0 | (code >> 18), 0x80 | ((code >> 12) & 0x3f), 0x80 | ((code >> 6) & 0x3f), 0x80 | (code & 0x3f));
486
+ index += 5;
487
+ continue;
488
+ }
489
+ out.push(bytes[index]);
490
+ }
491
+ return out;
492
+ }
396
493
  export function escapeBytes(bytes) {
397
494
  return bytes
398
495
  .map((byte) => {
@@ -1 +1 @@
1
- {"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../../src/codegen/generator/tables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../../src/codegen/generator/tables.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ export declare enum DiagnosticCode {
15
15
  InvalidAssignmentTarget = 2005,
16
16
  DuplicateDefault = 2006,
17
17
  InvalidTypeSyntax = 2007,
18
+ NestingTooDeep = 2008,
18
19
  DuplicateIdentifier = 3001,
19
20
  CannotFindName = 3002,
20
21
  IllegalRedeclaration = 3003,
@@ -28,7 +29,8 @@ export declare enum DiagnosticCode {
28
29
  ModuleNotFound = 6001,
29
30
  IOError = 6002,
30
31
  ToolchainError = 6003,
31
- IncrementalCacheError = 6004
32
+ IncrementalCacheError = 6004,
33
+ CircularDependency = 6005
32
34
  }
33
35
  export interface Diagnostic {
34
36
  readonly category: DiagnosticCategory;
@@ -16,6 +16,7 @@ export var DiagnosticCode;
16
16
  DiagnosticCode[DiagnosticCode["InvalidAssignmentTarget"] = 2005] = "InvalidAssignmentTarget";
17
17
  DiagnosticCode[DiagnosticCode["DuplicateDefault"] = 2006] = "DuplicateDefault";
18
18
  DiagnosticCode[DiagnosticCode["InvalidTypeSyntax"] = 2007] = "InvalidTypeSyntax";
19
+ DiagnosticCode[DiagnosticCode["NestingTooDeep"] = 2008] = "NestingTooDeep";
19
20
  // Binder 3xxx
20
21
  DiagnosticCode[DiagnosticCode["DuplicateIdentifier"] = 3001] = "DuplicateIdentifier";
21
22
  DiagnosticCode[DiagnosticCode["CannotFindName"] = 3002] = "CannotFindName";
@@ -34,6 +35,7 @@ export var DiagnosticCode;
34
35
  DiagnosticCode[DiagnosticCode["IOError"] = 6002] = "IOError";
35
36
  DiagnosticCode[DiagnosticCode["ToolchainError"] = 6003] = "ToolchainError";
36
37
  DiagnosticCode[DiagnosticCode["IncrementalCacheError"] = 6004] = "IncrementalCacheError";
38
+ DiagnosticCode[DiagnosticCode["CircularDependency"] = 6005] = "CircularDependency";
37
39
  })(DiagnosticCode || (DiagnosticCode = {}));
38
40
  export class DiagnosticError extends Error {
39
41
  diagnostics;
@@ -91,9 +93,27 @@ export function formatDiagnostic(d, source) {
91
93
  const lineText = source.text.split("\n")[line - 1] ?? "";
92
94
  const end = d.end ?? d.start;
93
95
  const endCol = source.positionAt(end).column;
94
- const caretPad = " ".repeat(Math.max(0, column - 1));
95
- const caret = "^".repeat(Math.max(1, endCol - column));
96
- excerpt = `\n${lineText}\n${caretPad}${caret}`;
96
+ /* Long lines (a minified bundle, a generated one-liner, deeply nested
97
+ * source) would otherwise print tens of thousands of characters and make
98
+ * the actual message impossible to find. Keep a window around the caret. */
99
+ const maxExcerpt = 160;
100
+ const caretIndex = Math.max(0, column - 1);
101
+ let windowStart = 0;
102
+ let windowEnd = lineText.length;
103
+ if (lineText.length > maxExcerpt) {
104
+ windowStart = Math.max(0, caretIndex - Math.floor(maxExcerpt / 2));
105
+ windowEnd = Math.min(lineText.length, windowStart + maxExcerpt);
106
+ if (windowEnd === lineText.length)
107
+ windowStart = Math.max(0, windowEnd - maxExcerpt);
108
+ }
109
+ const prefix = windowStart > 0 ? "\u2026" : "";
110
+ const suffix = windowEnd < lineText.length ? "\u2026" : "";
111
+ const visible = lineText.slice(windowStart, windowEnd);
112
+ const visibleCaret = caretIndex - windowStart;
113
+ const caretWidth = Math.max(1, Math.min(endCol - column, visible.length - visibleCaret));
114
+ const caretPad = " ".repeat(prefix.length + Math.max(0, visibleCaret));
115
+ const caret = "^".repeat(caretWidth);
116
+ excerpt = `\n${prefix}${visible}${suffix}\n${caretPad}${caret}`;
97
117
  }
98
118
  return `${location} - ${severity} TS${d.code}: ${d.message}${excerpt}`;
99
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../../../src/diagnostics/diagnostic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../../../src/diagnostics/diagnostic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Platform artifacts that turn a linked program into a desktop application:
3
+ * the Windows-subystem entry shim, the embedded icon object and the Windows PE
4
+ * icon resource.
5
+ *
6
+ * They are collected separately from the link call so icon/GUI/package work
7
+ * has a home of its own instead of growing `build`.
8
+ */
9
+ import type { ExtensionRegistry } from "../extensions/registry.js";
10
+ import { type IconInfo } from "./icon.js";
11
+ import type { AppConfig } from "./config.js";
12
+ import type { Runner } from "./toolchain.js";
13
+ export interface AppArtifactRequest {
14
+ readonly runner: Runner;
15
+ readonly clang: string;
16
+ readonly cacheDir: string;
17
+ readonly registry: ExtensionRegistry;
18
+ readonly app: AppConfig;
19
+ readonly icon: IconInfo | undefined;
20
+ readonly env: Record<string, string>;
21
+ readonly verbose: boolean | undefined;
22
+ }
23
+ export interface AppArtifacts {
24
+ /** Windows-subsystem entry shim, when the program is a GUI app. */
25
+ readonly entryObject?: string;
26
+ readonly iconObjects: readonly string[];
27
+ /** Extra linker flags implied by the subsystem (empty on other platforms). */
28
+ readonly linkerFlags: readonly string[];
29
+ /** Set when the icon could not be embedded; the caller reports it. */
30
+ readonly iconError?: string;
31
+ }
32
+ /**
33
+ * Build the objects (and flags) that accompany the program object.
34
+ *
35
+ * On Windows a GUI program links as a **Windows-subsystem** executable, so
36
+ * launching it does not flash a console window. That subsystem's C runtime
37
+ * wants `WinMain`, so a tiny shim object bridges it to the runtime's `main`.
38
+ * `app.console: true` keeps the console subsystem instead (useful while
39
+ * debugging, because stdout and stderr only exist there). Other platforms have
40
+ * no equivalent.
41
+ */
42
+ export declare function ensureAppArtifacts(request: AppArtifactRequest): AppArtifacts;
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Platform artifacts that turn a linked program into a desktop application:
3
+ * the Windows-subystem entry shim, the embedded icon object and the Windows PE
4
+ * icon resource.
5
+ *
6
+ * They are collected separately from the link call so icon/GUI/package work
7
+ * has a home of its own instead of growing `build`.
8
+ */
9
+ import { ensureIconObject, EMPTY_ICON, IconError } from "./icon.js";
10
+ import { ensureWindowsEntryObject } from "./win-entry.js";
11
+ import { ensureWindowsIconResource, resolveResourceCompiler } from "./win-icon.js";
12
+ /**
13
+ * Build the objects (and flags) that accompany the program object.
14
+ *
15
+ * On Windows a GUI program links as a **Windows-subsystem** executable, so
16
+ * launching it does not flash a console window. That subsystem's C runtime
17
+ * wants `WinMain`, so a tiny shim object bridges it to the runtime's `main`.
18
+ * `app.console: true` keeps the console subsystem instead (useful while
19
+ * debugging, because stdout and stderr only exist there). Other platforms have
20
+ * no equivalent.
21
+ */
22
+ export function ensureAppArtifacts(request) {
23
+ const { runner, clang, cacheDir, registry, app, icon, env, verbose } = request;
24
+ const windowsSubsystem = process.platform === "win32" && registry.has("gui") && app.console !== true;
25
+ const linkerFlags = windowsSubsystem ? ["-Wl,/SUBSYSTEM:WINDOWS"] : [];
26
+ const entryObject = windowsSubsystem
27
+ ? ensureWindowsEntryObject(runner, clang, cacheDir, env)
28
+ : undefined;
29
+ const iconObjects = [];
30
+ // The GUI extension references the icon symbols unconditionally, so a GUI
31
+ // program gets an (empty) icon object even with no icon configured.
32
+ if (icon !== undefined || registry.has("gui")) {
33
+ try {
34
+ iconObjects.push(ensureIconObject(runner, clang, cacheDir, icon ?? EMPTY_ICON, env));
35
+ if (icon && process.platform === "win32") {
36
+ const resourceCompiler = resolveResourceCompiler(runner, clang);
37
+ if (resourceCompiler) {
38
+ iconObjects.push(ensureWindowsIconResource(runner, cacheDir, icon, resourceCompiler, env));
39
+ }
40
+ else if (verbose) {
41
+ process.stderr.write("xbintsc: no llvm-rc found; skipping the embedded .exe icon\n");
42
+ }
43
+ }
44
+ }
45
+ catch (error) {
46
+ if (error instanceof IconError)
47
+ return { entryObject, iconObjects, linkerFlags, iconError: error.message };
48
+ throw error;
49
+ }
50
+ }
51
+ return { entryObject, iconObjects, linkerFlags };
52
+ }
53
+ //# sourceMappingURL=app-artifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-artifacts.js","sourceRoot":"","sources":["../../../src/driver/app-artifacts.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAiB,MAAM,WAAW,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAyBnF;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAA2B;IAC5D,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC/E,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC;IACrG,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,MAAM,WAAW,GAAG,gBAAgB;QAClC,CAAC,CAAC,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC;QACxD,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,0EAA0E;IAC1E,oEAAoE;IACpE,IAAI,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9C,IAAI,CAAC;YACH,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;YACrF,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACzC,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAChE,IAAI,gBAAgB,EAAE,CAAC;oBACrB,WAAW,CAAC,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC7F,CAAC;qBAAM,IAAI,OAAO,EAAE,CAAC;oBACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;gBACvF,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,SAAS;gBAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;YAC3G,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;AACnD,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * The incremental-cache key.
3
+ *
4
+ * Everything that can change the produced binary belongs here: compiler
5
+ * version, source text, emit kind, optimization/LTO/PGO mode, platform,
6
+ * extension and runtime fingerprints, and the embedded application metadata.
7
+ * A feature that adds such an input edits this module (and the call site),
8
+ * not the build orchestration.
9
+ */
10
+ import type { ExtensionRegistry } from "../extensions/registry.js";
11
+ import type { AppConfig } from "./config.js";
12
+ import type { IconInfo } from "./icon.js";
13
+ import type { PgoMode } from "./toolchain.js";
14
+ export interface CacheKeyInput {
15
+ /** The text the build compiled: the entry source, or the bundled module text. */
16
+ readonly sourceText: string;
17
+ readonly emit: string;
18
+ readonly optimize: string;
19
+ readonly registry: ExtensionRegistry;
20
+ readonly runtimeDir: string;
21
+ readonly icon?: IconInfo;
22
+ readonly app: AppConfig;
23
+ readonly debug: boolean;
24
+ readonly lto: boolean;
25
+ readonly pgo?: PgoMode;
26
+ readonly pgoDir: string;
27
+ }
28
+ /** Hash every input that can change the produced binary. */
29
+ export declare function buildCacheKey(input: CacheKeyInput): string;