@scriptc/compiler 0.4.7 → 0.4.8

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 (776) hide show
  1. package/ambient/node-fallback/child_process.d.ts +71 -22
  2. package/ambient/node-fallback/crypto.d.ts +15 -7
  3. package/ambient/node-fallback/events.d.ts +23 -5
  4. package/ambient/node-fallback/fs.d.ts +3 -2
  5. package/ambient/node-fallback/http.d.ts +23 -17
  6. package/ambient/node-fallback/https.d.ts +5 -2
  7. package/ambient/node-fallback/net.d.ts +6 -0
  8. package/ambient/node-fallback/os.d.ts +11 -1
  9. package/ambient/node-fallback/path-posix.d.ts +6 -0
  10. package/ambient/node-fallback/path-win32.d.ts +5 -0
  11. package/ambient/node-fallback/path.d.ts +2 -0
  12. package/ambient/node-fallback/zlib.d.ts +31 -2
  13. package/ambient/scriptc-node-fallback.d.ts +37 -7
  14. package/ambient/scriptc.d.ts +7 -2
  15. package/dist/backend/executable-features.js +11 -3
  16. package/dist/backend/executable-features.js.map +1 -1
  17. package/dist/backend/library-pack.d.ts +6 -0
  18. package/dist/backend/library-pack.js +17 -6
  19. package/dist/backend/library-pack.js.map +1 -1
  20. package/dist/backend/library-pack.test.d.ts +1 -0
  21. package/dist/backend/library-pack.test.js +28 -0
  22. package/dist/backend/library-pack.test.js.map +1 -0
  23. package/dist/backend/linker.d.ts +9 -2
  24. package/dist/backend/linker.js +190 -32
  25. package/dist/backend/linker.js.map +1 -1
  26. package/dist/backend/lld.d.ts +8 -4
  27. package/dist/backend/lld.js +19 -13
  28. package/dist/backend/lld.js.map +1 -1
  29. package/dist/backend/lld.test.js +3 -1
  30. package/dist/backend/lld.test.js.map +1 -1
  31. package/dist/backend/llvm/alloc.d.ts +15 -2
  32. package/dist/backend/llvm/alloc.js +172 -36
  33. package/dist/backend/llvm/alloc.js.map +1 -1
  34. package/dist/backend/llvm/alloc.test.js +69 -1
  35. package/dist/backend/llvm/alloc.test.js.map +1 -1
  36. package/dist/backend/llvm/arenas.d.ts +17 -4
  37. package/dist/backend/llvm/arenas.js +105 -10
  38. package/dist/backend/llvm/arenas.js.map +1 -1
  39. package/dist/backend/llvm/arenas.test.js +229 -0
  40. package/dist/backend/llvm/arenas.test.js.map +1 -1
  41. package/dist/backend/llvm/bytes-alias.js +10 -1
  42. package/dist/backend/llvm/bytes-alias.js.map +1 -1
  43. package/dist/backend/llvm/bytes-headers.js +6 -0
  44. package/dist/backend/llvm/bytes-headers.js.map +1 -1
  45. package/dist/backend/llvm/bytes-loop-versions.test.js +25 -0
  46. package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -1
  47. package/dist/backend/llvm/call-lifetimes.js +10 -0
  48. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  49. package/dist/backend/llvm/classes.d.ts +16 -9
  50. package/dist/backend/llvm/classes.js +142 -37
  51. package/dist/backend/llvm/classes.js.map +1 -1
  52. package/dist/backend/llvm/classes.test.js +42 -0
  53. package/dist/backend/llvm/classes.test.js.map +1 -1
  54. package/dist/backend/llvm/cpu-dispatch.d.ts +15 -5
  55. package/dist/backend/llvm/cpu-dispatch.js +31 -7
  56. package/dist/backend/llvm/cpu-dispatch.js.map +1 -1
  57. package/dist/backend/llvm/dyn.d.ts +12 -3
  58. package/dist/backend/llvm/dyn.js +31 -7
  59. package/dist/backend/llvm/dyn.js.map +1 -1
  60. package/dist/backend/llvm/emit-function.js +67 -4
  61. package/dist/backend/llvm/emit-function.js.map +1 -1
  62. package/dist/backend/llvm/emit-module.js +90 -39
  63. package/dist/backend/llvm/emit-module.js.map +1 -1
  64. package/dist/backend/llvm/emit-module.test.d.ts +1 -0
  65. package/dist/backend/llvm/emit-module.test.js +52 -0
  66. package/dist/backend/llvm/emit-module.test.js.map +1 -0
  67. package/dist/backend/llvm/emit-statements.js +99 -15
  68. package/dist/backend/llvm/emit-statements.js.map +1 -1
  69. package/dist/backend/llvm/emitter.d.ts +113 -8
  70. package/dist/backend/llvm/emitter.js +438 -67
  71. package/dist/backend/llvm/emitter.js.map +1 -1
  72. package/dist/backend/llvm/emitter.test.js +31 -3
  73. package/dist/backend/llvm/emitter.test.js.map +1 -1
  74. package/dist/backend/llvm/expr-async.js +19 -1
  75. package/dist/backend/llvm/expr-async.js.map +1 -1
  76. package/dist/backend/llvm/expr-bytes.js +16 -1
  77. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  78. package/dist/backend/llvm/expr-calls.js +18 -2
  79. package/dist/backend/llvm/expr-calls.js.map +1 -1
  80. package/dist/backend/llvm/expr-dynamic.js +31 -10
  81. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  82. package/dist/backend/llvm/expr-primitives.js +31 -3
  83. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  84. package/dist/backend/llvm/expr-records.d.ts +1 -1
  85. package/dist/backend/llvm/expr-records.js +124 -56
  86. package/dist/backend/llvm/expr-records.js.map +1 -1
  87. package/dist/backend/llvm/expr-stream-bridges.js +17 -0
  88. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  89. package/dist/backend/llvm/js-groups.d.ts +21 -0
  90. package/dist/backend/llvm/js-groups.js +277 -0
  91. package/dist/backend/llvm/js-groups.js.map +1 -0
  92. package/dist/backend/llvm/js-ic.d.ts +19 -1
  93. package/dist/backend/llvm/js-ic.js +96 -23
  94. package/dist/backend/llvm/js-ic.js.map +1 -1
  95. package/dist/backend/llvm/lib-dispatch.js +132 -1
  96. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  97. package/dist/backend/llvm/lib-network.js +33 -6
  98. package/dist/backend/llvm/lib-network.js.map +1 -1
  99. package/dist/backend/llvm/lib-process.js +44 -3
  100. package/dist/backend/llvm/lib-process.js.map +1 -1
  101. package/dist/backend/llvm/lib-shared.js +69 -2
  102. package/dist/backend/llvm/lib-shared.js.map +1 -1
  103. package/dist/backend/llvm/local-union-storage.test.js +32 -0
  104. package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
  105. package/dist/backend/llvm/loop-state.js +7 -2
  106. package/dist/backend/llvm/loop-state.js.map +1 -1
  107. package/dist/backend/llvm/map-entry-fusion.d.ts +8 -0
  108. package/dist/backend/llvm/map-entry-fusion.js +3 -3
  109. package/dist/backend/llvm/map-entry-fusion.js.map +1 -1
  110. package/dist/backend/llvm/map-number-lookup.test.js +6 -6
  111. package/dist/backend/llvm/map-number-lookup.test.js.map +1 -1
  112. package/dist/backend/llvm/nullable-unions.js +7 -6
  113. package/dist/backend/llvm/nullable-unions.js.map +1 -1
  114. package/dist/backend/llvm/nullable-unions.test.js +4 -1
  115. package/dist/backend/llvm/nullable-unions.test.js.map +1 -1
  116. package/dist/backend/llvm/receivers.js +3 -0
  117. package/dist/backend/llvm/receivers.js.map +1 -1
  118. package/dist/backend/llvm/record-entry-fusion.d.ts +32 -0
  119. package/dist/backend/llvm/record-entry-fusion.js +217 -0
  120. package/dist/backend/llvm/record-entry-fusion.js.map +1 -0
  121. package/dist/backend/llvm/record-results.d.ts +5 -2
  122. package/dist/backend/llvm/record-results.js +13 -12
  123. package/dist/backend/llvm/record-results.js.map +1 -1
  124. package/dist/backend/llvm/record-views.js +12 -6
  125. package/dist/backend/llvm/record-views.js.map +1 -1
  126. package/dist/backend/llvm/reference-effects.js +1 -0
  127. package/dist/backend/llvm/reference-effects.js.map +1 -1
  128. package/dist/backend/llvm/reference-writes.js +3 -0
  129. package/dist/backend/llvm/reference-writes.js.map +1 -1
  130. package/dist/backend/llvm/region-ir.js +1 -0
  131. package/dist/backend/llvm/region-ir.js.map +1 -1
  132. package/dist/backend/llvm/region-sites.d.ts +18 -0
  133. package/dist/backend/llvm/region-sites.js +79 -1
  134. package/dist/backend/llvm/region-sites.js.map +1 -1
  135. package/dist/backend/llvm/runtime-registries.test.js +53 -6
  136. package/dist/backend/llvm/runtime-registries.test.js.map +1 -1
  137. package/dist/backend/llvm/serialized-ir-emission.test.js +3 -1
  138. package/dist/backend/llvm/serialized-ir-emission.test.js.map +1 -1
  139. package/dist/backend/llvm/shapes.d.ts +33 -3
  140. package/dist/backend/llvm/shapes.js +183 -13
  141. package/dist/backend/llvm/shapes.js.map +1 -1
  142. package/dist/backend/llvm/stack-objects.d.ts +1 -2
  143. package/dist/backend/llvm/stack-objects.js +8 -5
  144. package/dist/backend/llvm/stack-objects.js.map +1 -1
  145. package/dist/backend/llvm/walkers.d.ts +12 -0
  146. package/dist/backend/llvm/walkers.js +46 -2
  147. package/dist/backend/llvm/walkers.js.map +1 -1
  148. package/dist/backend/may-throw.js +12 -2
  149. package/dist/backend/may-throw.js.map +1 -1
  150. package/dist/backend/may-throw.test.js +13 -0
  151. package/dist/backend/may-throw.test.js.map +1 -1
  152. package/dist/backend/native/contracts.d.ts +48 -8
  153. package/dist/backend/native/executable.js +55 -13
  154. package/dist/backend/native/executable.js.map +1 -1
  155. package/dist/backend/native/helper-identity-record.d.ts +11 -0
  156. package/dist/backend/native/helper-identity-record.js +76 -0
  157. package/dist/backend/native/helper-identity-record.js.map +1 -0
  158. package/dist/backend/native/helper-identity-record.test.d.ts +1 -0
  159. package/dist/backend/native/helper-identity-record.test.js +101 -0
  160. package/dist/backend/native/helper-identity-record.test.js.map +1 -0
  161. package/dist/backend/native/library.js +9 -1
  162. package/dist/backend/native/library.js.map +1 -1
  163. package/dist/backend/native/runtime-inputs.js +4 -1
  164. package/dist/backend/native/runtime-inputs.js.map +1 -1
  165. package/dist/backend/native/vendor.d.ts +1 -1
  166. package/dist/backend/native/vendor.js +1 -1
  167. package/dist/backend/native/vendor.js.map +1 -1
  168. package/dist/backend/native-codegen-core.d.ts +13 -10
  169. package/dist/backend/native-codegen-core.js +26 -13
  170. package/dist/backend/native-codegen-core.js.map +1 -1
  171. package/dist/backend/native-codegen.js +27 -8
  172. package/dist/backend/native-codegen.js.map +1 -1
  173. package/dist/backend/native-codegen.test.js +110 -14
  174. package/dist/backend/native-codegen.test.js.map +1 -1
  175. package/dist/backend/native-link-info-core.d.ts +37 -8
  176. package/dist/backend/native-link-info-core.js.map +1 -1
  177. package/dist/backend/runtime-pack-core.d.ts +17 -2
  178. package/dist/backend/runtime-pack-core.js +18 -3
  179. package/dist/backend/runtime-pack-core.js.map +1 -1
  180. package/dist/backend/runtime-pack-targets.test.js +1 -1
  181. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  182. package/dist/backend/runtime-pack.test.js +211 -2
  183. package/dist/backend/runtime-pack.test.js.map +1 -1
  184. package/dist/backend/tree-classes.d.ts +42 -0
  185. package/dist/backend/tree-classes.js +723 -0
  186. package/dist/backend/tree-classes.js.map +1 -0
  187. package/dist/backend/tree-classes.test.d.ts +1 -0
  188. package/dist/backend/tree-classes.test.js +338 -0
  189. package/dist/backend/tree-classes.test.js.map +1 -0
  190. package/dist/backend/vendor-archives.d.ts +5 -1
  191. package/dist/backend/vendor-archives.js +51 -7
  192. package/dist/backend/vendor-archives.js.map +1 -1
  193. package/dist/backend/vendor-inputs.d.ts +25 -4
  194. package/dist/backend/vendor-inputs.js +68 -4
  195. package/dist/backend/vendor-inputs.js.map +1 -1
  196. package/dist/backend/vendor-inputs.test.js +35 -1
  197. package/dist/backend/vendor-inputs.test.js.map +1 -1
  198. package/dist/backend/warm-cache.js +1 -1
  199. package/dist/backend/warm-cache.js.map +1 -1
  200. package/dist/compat/fetch-profile.js +2 -2
  201. package/dist/coverage/report.js +47 -0
  202. package/dist/coverage/report.js.map +1 -1
  203. package/dist/coverage/surface-manifest.js +1 -1
  204. package/dist/diagnostics/codes.d.ts +8 -0
  205. package/dist/diagnostics/codes.js +8 -0
  206. package/dist/diagnostics/codes.js.map +1 -1
  207. package/dist/diagnostics/diagnostic.d.ts +27 -9
  208. package/dist/diagnostics/diagnostic.js +60 -19
  209. package/dist/diagnostics/diagnostic.js.map +1 -1
  210. package/dist/diagnostics/envelope.d.ts +18 -0
  211. package/dist/diagnostics/envelope.js.map +1 -1
  212. package/dist/executable/executable-cache.d.ts +21 -2
  213. package/dist/executable/executable-cache.js +21 -1
  214. package/dist/executable/executable-cache.js.map +1 -1
  215. package/dist/executable/executable-cache.test.js +123 -1
  216. package/dist/executable/executable-cache.test.js.map +1 -1
  217. package/dist/executable/prepare.js +199 -248
  218. package/dist/executable/prepare.js.map +1 -1
  219. package/dist/frontend/analysis.js +200 -18
  220. package/dist/frontend/analysis.js.map +1 -1
  221. package/dist/frontend/builtin-modules.d.ts +4 -0
  222. package/dist/frontend/builtin-modules.js +10 -0
  223. package/dist/frontend/builtin-modules.js.map +1 -1
  224. package/dist/frontend/early-errors.d.ts +12 -2
  225. package/dist/frontend/early-errors.js +535 -4
  226. package/dist/frontend/early-errors.js.map +1 -1
  227. package/dist/frontend/early-errors.test.js +165 -0
  228. package/dist/frontend/early-errors.test.js.map +1 -1
  229. package/dist/frontend/inferred-js-diagnostics.test.js +65 -0
  230. package/dist/frontend/inferred-js-diagnostics.test.js.map +1 -1
  231. package/dist/frontend/jsx-opinion-sites.test.d.ts +1 -0
  232. package/dist/frontend/jsx-opinion-sites.test.js +86 -0
  233. package/dist/frontend/jsx-opinion-sites.test.js.map +1 -0
  234. package/dist/frontend/lib-exports.d.ts +23 -4
  235. package/dist/frontend/lib-exports.js +98 -26
  236. package/dist/frontend/lib-exports.js.map +1 -1
  237. package/dist/frontend/lowering/binding-analysis.js +21 -3
  238. package/dist/frontend/lowering/binding-analysis.js.map +1 -1
  239. package/dist/frontend/lowering/buffers.d.ts +8 -0
  240. package/dist/frontend/lowering/buffers.js +43 -0
  241. package/dist/frontend/lowering/buffers.js.map +1 -0
  242. package/dist/frontend/lowering/builtin-calls.js +4 -0
  243. package/dist/frontend/lowering/builtin-calls.js.map +1 -1
  244. package/dist/frontend/lowering/builtin-namespaces.d.ts +3 -2
  245. package/dist/frontend/lowering/builtin-namespaces.js +24 -3
  246. package/dist/frontend/lowering/builtin-namespaces.js.map +1 -1
  247. package/dist/frontend/lowering/builtin-statics.d.ts +24 -0
  248. package/dist/frontend/lowering/builtin-statics.js +407 -0
  249. package/dist/frontend/lowering/builtin-statics.js.map +1 -0
  250. package/dist/frontend/lowering/builtins/arguments.d.ts +4 -0
  251. package/dist/frontend/lowering/builtins/arguments.js +12 -0
  252. package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
  253. package/dist/frontend/lowering/builtins/atomics.d.ts +6 -1
  254. package/dist/frontend/lowering/builtins/atomics.js +87 -1
  255. package/dist/frontend/lowering/builtins/atomics.js.map +1 -1
  256. package/dist/frontend/lowering/builtins/child-process-methods.js +2 -2
  257. package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
  258. package/dist/frontend/lowering/builtins/child-process-sync.d.ts +13 -0
  259. package/dist/frontend/lowering/builtins/child-process-sync.js +1 -13
  260. package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -1
  261. package/dist/frontend/lowering/builtins/child-process.d.ts +10 -4
  262. package/dist/frontend/lowering/builtins/child-process.js +560 -27
  263. package/dist/frontend/lowering/builtins/child-process.js.map +1 -1
  264. package/dist/frontend/lowering/builtins/compression.d.ts +2 -2
  265. package/dist/frontend/lowering/builtins/compression.js +41 -21
  266. package/dist/frontend/lowering/builtins/compression.js.map +1 -1
  267. package/dist/frontend/lowering/builtins/constants.js +7 -2
  268. package/dist/frontend/lowering/builtins/constants.js.map +1 -1
  269. package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +1 -0
  270. package/dist/frontend/lowering/builtins/filesystem-calls.js +28 -2
  271. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
  272. package/dist/frontend/lowering/builtins/json.js +4 -0
  273. package/dist/frontend/lowering/builtins/json.js.map +1 -1
  274. package/dist/frontend/lowering/builtins/module-calls.js +3 -1
  275. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  276. package/dist/frontend/lowering/builtins/numbers.d.ts +4 -1
  277. package/dist/frontend/lowering/builtins/numbers.js +10 -2
  278. package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
  279. package/dist/frontend/lowering/builtins/operating-system.d.ts +6 -3
  280. package/dist/frontend/lowering/builtins/operating-system.js +96 -16
  281. package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
  282. package/dist/frontend/lowering/builtins/process.d.ts +2 -2
  283. package/dist/frontend/lowering/builtins/process.js +103 -8
  284. package/dist/frontend/lowering/builtins/process.js.map +1 -1
  285. package/dist/frontend/lowering/builtins/promises.js +169 -8
  286. package/dist/frontend/lowering/builtins/promises.js.map +1 -1
  287. package/dist/frontend/lowering/builtins/properties.js +6 -2
  288. package/dist/frontend/lowering/builtins/properties.js.map +1 -1
  289. package/dist/frontend/lowering/builtins/readline.d.ts +6 -4
  290. package/dist/frontend/lowering/builtins/readline.js +180 -36
  291. package/dist/frontend/lowering/builtins/readline.js.map +1 -1
  292. package/dist/frontend/lowering/builtins/url.js +35 -12
  293. package/dist/frontend/lowering/builtins/url.js.map +1 -1
  294. package/dist/frontend/lowering/builtins/webassembly.js +2 -0
  295. package/dist/frontend/lowering/builtins/webassembly.js.map +1 -1
  296. package/dist/frontend/lowering/call-arguments.d.ts +10 -0
  297. package/dist/frontend/lowering/call-arguments.js +37 -2
  298. package/dist/frontend/lowering/call-arguments.js.map +1 -1
  299. package/dist/frontend/lowering/call-signatures.d.ts +10 -0
  300. package/dist/frontend/lowering/call-signatures.js +103 -0
  301. package/dist/frontend/lowering/call-signatures.js.map +1 -1
  302. package/dist/frontend/lowering/class-construction.d.ts +14 -2
  303. package/dist/frontend/lowering/class-construction.js +99 -5
  304. package/dist/frontend/lowering/class-construction.js.map +1 -1
  305. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +9 -0
  306. package/dist/frontend/lowering/class-dynamic-dispatch.js +1283 -1030
  307. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  308. package/dist/frontend/lowering/class-dynamic-dispatch.test.js +158 -0
  309. package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
  310. package/dist/frontend/lowering/class-prototypes.js +20 -15
  311. package/dist/frontend/lowering/class-prototypes.js.map +1 -1
  312. package/dist/frontend/lowering/class-runtime-statics.d.ts +8 -0
  313. package/dist/frontend/lowering/class-runtime-statics.js +20 -1
  314. package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
  315. package/dist/frontend/lowering/class-unions.js +21 -4
  316. package/dist/frontend/lowering/class-unions.js.map +1 -1
  317. package/dist/frontend/lowering/coercions/function-adapters.js +9 -0
  318. package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
  319. package/dist/frontend/lowering/coercions/state.d.ts +8 -0
  320. package/dist/frontend/lowering/coercions/state.js +17 -0
  321. package/dist/frontend/lowering/coercions/state.js.map +1 -1
  322. package/dist/frontend/lowering/coercions/structural-plans.js +20 -5
  323. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
  324. package/dist/frontend/lowering/coercions/structural.js +10 -1
  325. package/dist/frontend/lowering/coercions/structural.js.map +1 -1
  326. package/dist/frontend/lowering/coercions/unions.d.ts +2 -1
  327. package/dist/frontend/lowering/coercions/unions.js +54 -10
  328. package/dist/frontend/lowering/coercions/unions.js.map +1 -1
  329. package/dist/frontend/lowering/constructor-returns.d.ts +23 -2
  330. package/dist/frontend/lowering/constructor-returns.js +284 -58
  331. package/dist/frontend/lowering/constructor-returns.js.map +1 -1
  332. package/dist/frontend/lowering/containers/array-callbacks.js +156 -62
  333. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  334. package/dist/frontend/lowering/containers/array-construction.js +21 -3
  335. package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
  336. package/dist/frontend/lowering/containers/array-from-async.js +139 -3
  337. package/dist/frontend/lowering/containers/array-from-async.js.map +1 -1
  338. package/dist/frontend/lowering/containers/array-iteration.d.ts +14 -4
  339. package/dist/frontend/lowering/containers/array-iteration.js +24 -7
  340. package/dist/frontend/lowering/containers/array-iteration.js.map +1 -1
  341. package/dist/frontend/lowering/containers/array-methods.js +14 -11
  342. package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
  343. package/dist/frontend/lowering/containers/bytes.d.ts +6 -0
  344. package/dist/frontend/lowering/containers/bytes.js +446 -86
  345. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  346. package/dist/frontend/lowering/containers/callback-arguments.d.ts +5 -0
  347. package/dist/frontend/lowering/containers/callback-arguments.js +21 -12
  348. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
  349. package/dist/frontend/lowering/containers/collection-grouping.js +421 -2
  350. package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -1
  351. package/dist/frontend/lowering/containers/collection-methods.js +52 -17
  352. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
  353. package/dist/frontend/lowering/containers/iterator-helpers.d.ts +23 -0
  354. package/dist/frontend/lowering/containers/iterator-helpers.js +176 -10
  355. package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -1
  356. package/dist/frontend/lowering/containers/string-and-regexp.d.ts +5 -2
  357. package/dist/frontend/lowering/containers/string-and-regexp.js +45 -11
  358. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  359. package/dist/frontend/lowering/crypto-tables.d.ts +3 -3
  360. package/dist/frontend/lowering/crypto-tables.js +5 -5
  361. package/dist/frontend/lowering/dispatch-sites.js +3 -0
  362. package/dist/frontend/lowering/dispatch-sites.js.map +1 -1
  363. package/dist/frontend/lowering/divergences.d.ts +40 -0
  364. package/dist/frontend/lowering/divergences.js +239 -20
  365. package/dist/frontend/lowering/divergences.js.map +1 -1
  366. package/dist/frontend/lowering/effect-free.d.ts +12 -0
  367. package/dist/frontend/lowering/effect-free.js +44 -0
  368. package/dist/frontend/lowering/effect-free.js.map +1 -0
  369. package/dist/frontend/lowering/expressions/array-literals.d.ts +10 -0
  370. package/dist/frontend/lowering/expressions/array-literals.js +62 -0
  371. package/dist/frontend/lowering/expressions/array-literals.js.map +1 -1
  372. package/dist/frontend/lowering/expressions/binary.js +115 -5
  373. package/dist/frontend/lowering/expressions/binary.js.map +1 -1
  374. package/dist/frontend/lowering/expressions/element-access.js +151 -7
  375. package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
  376. package/dist/frontend/lowering/expressions/hosted-narrowing.d.ts +15 -0
  377. package/dist/frontend/lowering/expressions/hosted-narrowing.js +54 -1
  378. package/dist/frontend/lowering/expressions/hosted-narrowing.js.map +1 -1
  379. package/dist/frontend/lowering/expressions/identifiers.js +31 -2
  380. package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
  381. package/dist/frontend/lowering/expressions/narrowing.d.ts +3 -0
  382. package/dist/frontend/lowering/expressions/narrowing.js +175 -22
  383. package/dist/frontend/lowering/expressions/narrowing.js.map +1 -1
  384. package/dist/frontend/lowering/expressions/object-literals.js +173 -11
  385. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  386. package/dist/frontend/lowering/expressions/optional-chains.js +5 -1
  387. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
  388. package/dist/frontend/lowering/expressions/property-access.d.ts +8 -0
  389. package/dist/frontend/lowering/expressions/property-access.js +379 -109
  390. package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
  391. package/dist/frontend/lowering/expressions/relational.js +237 -7
  392. package/dist/frontend/lowering/expressions/relational.js.map +1 -1
  393. package/dist/frontend/lowering/expressions/typeof.js +8 -0
  394. package/dist/frontend/lowering/expressions/typeof.js.map +1 -1
  395. package/dist/frontend/lowering/expressions/union-fields.d.ts +20 -1
  396. package/dist/frontend/lowering/expressions/union-fields.js +103 -13
  397. package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
  398. package/dist/frontend/lowering/expressions/updates.js +74 -55
  399. package/dist/frontend/lowering/expressions/updates.js.map +1 -1
  400. package/dist/frontend/lowering/function-returns.js +37 -10
  401. package/dist/frontend/lowering/function-returns.js.map +1 -1
  402. package/dist/frontend/lowering/general-streams.js +5 -0
  403. package/dist/frontend/lowering/general-streams.js.map +1 -1
  404. package/dist/frontend/lowering/generator-delegation.d.ts +15 -7
  405. package/dist/frontend/lowering/generator-delegation.js +301 -118
  406. package/dist/frontend/lowering/generator-delegation.js.map +1 -1
  407. package/dist/frontend/lowering/generic-functions.d.ts +27 -1
  408. package/dist/frontend/lowering/generic-functions.js +432 -18
  409. package/dist/frontend/lowering/generic-functions.js.map +1 -1
  410. package/dist/frontend/lowering/global-function-values.d.ts +25 -0
  411. package/dist/frontend/lowering/global-function-values.js +193 -0
  412. package/dist/frontend/lowering/global-function-values.js.map +1 -0
  413. package/dist/frontend/lowering/global-values.d.ts +6 -4
  414. package/dist/frontend/lowering/global-values.js +24 -10
  415. package/dist/frontend/lowering/global-values.js.map +1 -1
  416. package/dist/frontend/lowering/host-global-values.d.ts +31 -0
  417. package/dist/frontend/lowering/host-global-values.js +121 -0
  418. package/dist/frontend/lowering/host-global-values.js.map +1 -0
  419. package/dist/frontend/lowering/host-globals.d.ts +74 -0
  420. package/dist/frontend/lowering/host-globals.js +344 -0
  421. package/dist/frontend/lowering/host-globals.js.map +1 -0
  422. package/dist/frontend/lowering/http2-constants.js +1 -1
  423. package/dist/frontend/lowering/iterator-adapters.js +46 -17
  424. package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
  425. package/dist/frontend/lowering/iterator-prototype.d.ts +30 -0
  426. package/dist/frontend/lowering/iterator-prototype.js +160 -0
  427. package/dist/frontend/lowering/iterator-prototype.js.map +1 -0
  428. package/dist/frontend/lowering/key-order-witness.js +43 -22
  429. package/dist/frontend/lowering/key-order-witness.js.map +1 -1
  430. package/dist/frontend/lowering/key-order-witness.test.js +1 -0
  431. package/dist/frontend/lowering/key-order-witness.test.js.map +1 -1
  432. package/dist/frontend/lowering/lib-boundary.js +11 -3
  433. package/dist/frontend/lowering/lib-boundary.js.map +1 -1
  434. package/dist/frontend/lowering/lower-assert.js +30 -15
  435. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  436. package/dist/frontend/lowering/lower-async-iteration.d.ts +11 -0
  437. package/dist/frontend/lowering/lower-async-iteration.js +15 -0
  438. package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
  439. package/dist/frontend/lowering/lower-builtin-values.js +11 -1
  440. package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
  441. package/dist/frontend/lowering/lower-calls.d.ts +25 -0
  442. package/dist/frontend/lowering/lower-calls.js +929 -227
  443. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  444. package/dist/frontend/lowering/lower-calls.test.js +59 -16
  445. package/dist/frontend/lowering/lower-calls.test.js.map +1 -1
  446. package/dist/frontend/lowering/lower-classes.d.ts +20 -0
  447. package/dist/frontend/lowering/lower-classes.js +468 -44
  448. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  449. package/dist/frontend/lowering/lower-event-emitter.d.ts +6 -2
  450. package/dist/frontend/lowering/lower-event-emitter.js +253 -83
  451. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  452. package/dist/frontend/lowering/lower-exprs.d.ts +1 -1
  453. package/dist/frontend/lowering/lower-exprs.js +71 -20
  454. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  455. package/dist/frontend/lowering/lower-functions.js +25 -6
  456. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  457. package/dist/frontend/lowering/lower-generators.js +57 -10
  458. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  459. package/dist/frontend/lowering/lower-global-value.d.ts +6 -0
  460. package/dist/frontend/lowering/lower-global-value.js +14 -5
  461. package/dist/frontend/lowering/lower-global-value.js.map +1 -1
  462. package/dist/frontend/lowering/lower-inspect.d.ts +4 -0
  463. package/dist/frontend/lowering/lower-inspect.js +638 -64
  464. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  465. package/dist/frontend/lowering/lower-modules.js +48 -2
  466. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  467. package/dist/frontend/lowering/lower-namespaces.js +18 -0
  468. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  469. package/dist/frontend/lowering/lower-node-island.js +16 -6
  470. package/dist/frontend/lowering/lower-node-island.js.map +1 -1
  471. package/dist/frontend/lowering/lower-server.js +303 -87
  472. package/dist/frontend/lowering/lower-server.js.map +1 -1
  473. package/dist/frontend/lowering/lower-stdlib.js +45 -0
  474. package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
  475. package/dist/frontend/lowering/lower-stmts.d.ts +14 -11
  476. package/dist/frontend/lowering/lower-stmts.js +270 -52
  477. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  478. package/dist/frontend/lowering/lower-timers.js +110 -27
  479. package/dist/frontend/lowering/lower-timers.js.map +1 -1
  480. package/dist/frontend/lowering/lower-url.js +6 -3
  481. package/dist/frontend/lowering/lower-url.js.map +1 -1
  482. package/dist/frontend/lowering/lowerer.d.ts +227 -21
  483. package/dist/frontend/lowering/lowerer.js +651 -92
  484. package/dist/frontend/lowering/lowerer.js.map +1 -1
  485. package/dist/frontend/lowering/lowerer.test.js +18 -0
  486. package/dist/frontend/lowering/lowerer.test.js.map +1 -1
  487. package/dist/frontend/lowering/lowering-facts.d.ts +110 -0
  488. package/dist/frontend/lowering/lowering-facts.js +323 -0
  489. package/dist/frontend/lowering/lowering-facts.js.map +1 -0
  490. package/dist/frontend/lowering/lowering-facts.test.d.ts +1 -0
  491. package/dist/frontend/lowering/lowering-facts.test.js +100 -0
  492. package/dist/frontend/lowering/lowering-facts.test.js.map +1 -0
  493. package/dist/frontend/lowering/nan-coded-reads.d.ts +27 -4
  494. package/dist/frontend/lowering/nan-coded-reads.js +112 -9
  495. package/dist/frontend/lowering/nan-coded-reads.js.map +1 -1
  496. package/dist/frontend/lowering/optional-arguments.d.ts +4 -0
  497. package/dist/frontend/lowering/optional-arguments.js +26 -2
  498. package/dist/frontend/lowering/optional-arguments.js.map +1 -1
  499. package/dist/frontend/lowering/partial-assertions.d.ts +0 -3
  500. package/dist/frontend/lowering/partial-assertions.js +9 -15
  501. package/dist/frontend/lowering/partial-assertions.js.map +1 -1
  502. package/dist/frontend/lowering/primitive-throws.d.ts +100 -0
  503. package/dist/frontend/lowering/primitive-throws.js +241 -0
  504. package/dist/frontend/lowering/primitive-throws.js.map +1 -0
  505. package/dist/frontend/lowering/primitive-wrappers.js +1 -0
  506. package/dist/frontend/lowering/primitive-wrappers.js.map +1 -1
  507. package/dist/frontend/lowering/record-inherited.d.ts +17 -1
  508. package/dist/frontend/lowering/record-inherited.js +16 -2
  509. package/dist/frontend/lowering/record-inherited.js.map +1 -1
  510. package/dist/frontend/lowering/record-links.d.ts +73 -0
  511. package/dist/frontend/lowering/record-links.js +797 -0
  512. package/dist/frontend/lowering/record-links.js.map +1 -0
  513. package/dist/frontend/lowering/runtime-optional-provenance.d.ts +27 -7
  514. package/dist/frontend/lowering/runtime-optional-provenance.js +25 -11
  515. package/dist/frontend/lowering/runtime-optional-provenance.js.map +1 -1
  516. package/dist/frontend/lowering/runtime-optional-report.d.ts +40 -0
  517. package/dist/frontend/lowering/runtime-optional-report.js +300 -0
  518. package/dist/frontend/lowering/runtime-optional-report.js.map +1 -0
  519. package/dist/frontend/lowering/scoped-type-memo.test.d.ts +1 -0
  520. package/dist/frontend/lowering/scoped-type-memo.test.js +86 -0
  521. package/dist/frontend/lowering/scoped-type-memo.test.js.map +1 -0
  522. package/dist/frontend/lowering/static-typeof.d.ts +3 -1
  523. package/dist/frontend/lowering/static-typeof.js +6 -1
  524. package/dist/frontend/lowering/static-typeof.js.map +1 -1
  525. package/dist/frontend/lowering/strict-mode.d.ts +1 -5
  526. package/dist/frontend/lowering/strict-mode.js +4 -30
  527. package/dist/frontend/lowering/strict-mode.js.map +1 -1
  528. package/dist/frontend/lowering/structural-instances.d.ts +7 -0
  529. package/dist/frontend/lowering/structural-instances.js +23 -0
  530. package/dist/frontend/lowering/structural-instances.js.map +1 -1
  531. package/dist/frontend/lowering/surfaces.d.ts +15 -1
  532. package/dist/frontend/lowering/surfaces.js +78 -10
  533. package/dist/frontend/lowering/surfaces.js.map +1 -1
  534. package/dist/frontend/lowering/union-retag.d.ts +13 -1
  535. package/dist/frontend/lowering/union-retag.js +55 -1
  536. package/dist/frontend/lowering/union-retag.js.map +1 -1
  537. package/dist/frontend/lowering/union-retag.test.js +51 -0
  538. package/dist/frontend/lowering/union-retag.test.js.map +1 -1
  539. package/dist/frontend/lowering/unit-journal.d.ts +8 -0
  540. package/dist/frontend/lowering/unit-journal.js +14 -0
  541. package/dist/frontend/lowering/unit-journal.js.map +1 -1
  542. package/dist/frontend/lowering/unit-journal.test.js +36 -1
  543. package/dist/frontend/lowering/unit-journal.test.js.map +1 -1
  544. package/dist/frontend/lowering/zlib-constants.js +3 -2
  545. package/dist/frontend/lowering/zlib-constants.js.map +1 -1
  546. package/dist/frontend/npm-static.js +78 -9
  547. package/dist/frontend/npm-static.js.map +1 -1
  548. package/dist/frontend/npm-static.test.js +95 -2
  549. package/dist/frontend/npm-static.test.js.map +1 -1
  550. package/dist/frontend/pipeline.d.ts +5 -4
  551. package/dist/frontend/pipeline.js +94 -31
  552. package/dist/frontend/pipeline.js.map +1 -1
  553. package/dist/frontend/pipeline.test.js +68 -11
  554. package/dist/frontend/pipeline.test.js.map +1 -1
  555. package/dist/frontend/program.d.ts +62 -2
  556. package/dist/frontend/program.js +695 -422
  557. package/dist/frontend/program.js.map +1 -1
  558. package/dist/frontend/program.test.js +37 -1
  559. package/dist/frontend/program.test.js.map +1 -1
  560. package/dist/frontend/services-node.d.ts +7 -0
  561. package/dist/frontend/services-node.js +32 -1
  562. package/dist/frontend/services-node.js.map +1 -1
  563. package/dist/frontend/services-node.test.js +51 -0
  564. package/dist/frontend/services-node.test.js.map +1 -1
  565. package/dist/frontend/shape-inference/overlay.js +68 -2
  566. package/dist/frontend/shape-inference/overlay.js.map +1 -1
  567. package/dist/frontend/tier-analysis.d.ts +9 -0
  568. package/dist/frontend/tier-analysis.js +1 -0
  569. package/dist/frontend/tier-analysis.js.map +1 -1
  570. package/dist/frontend/tsc-codes.d.ts +57 -3
  571. package/dist/frontend/tsc-codes.js +935 -150
  572. package/dist/frontend/tsc-codes.js.map +1 -1
  573. package/dist/frontend/tsc-codes.test.js +221 -12
  574. package/dist/frontend/tsc-codes.test.js.map +1 -1
  575. package/dist/frontend/type-mapper.d.ts +91 -9
  576. package/dist/frontend/type-mapper.js +622 -181
  577. package/dist/frontend/type-mapper.js.map +1 -1
  578. package/dist/index.d.ts +1 -1
  579. package/dist/index.js +80 -15
  580. package/dist/index.js.map +1 -1
  581. package/dist/index.test.d.ts +1 -0
  582. package/dist/index.test.js +60 -0
  583. package/dist/index.test.js.map +1 -0
  584. package/dist/ir/builtin-effects.js +43 -0
  585. package/dist/ir/builtin-effects.js.map +1 -1
  586. package/dist/ir/builtin-signatures.d.ts +1 -1
  587. package/dist/ir/builtin-signatures.js +242 -16
  588. package/dist/ir/builtin-signatures.js.map +1 -1
  589. package/dist/ir/callback-specialization.d.ts +3 -2
  590. package/dist/ir/callback-specialization.js +35 -25
  591. package/dist/ir/callback-specialization.js.map +1 -1
  592. package/dist/ir/capture-values.d.ts +8 -4
  593. package/dist/ir/capture-values.js +9 -6
  594. package/dist/ir/capture-values.js.map +1 -1
  595. package/dist/ir/char-unit-locals.d.ts +6 -2
  596. package/dist/ir/char-unit-locals.js +11 -2
  597. package/dist/ir/char-unit-locals.js.map +1 -1
  598. package/dist/ir/class-key-index.d.ts +18 -0
  599. package/dist/ir/class-key-index.js +29 -0
  600. package/dist/ir/class-key-index.js.map +1 -0
  601. package/dist/ir/class-key-index.test.d.ts +1 -0
  602. package/dist/ir/class-key-index.test.js +25 -0
  603. package/dist/ir/class-key-index.test.js.map +1 -0
  604. package/dist/ir/codec.generated.d.ts +1 -1
  605. package/dist/ir/codec.generated.js +724 -648
  606. package/dist/ir/codec.generated.js.map +1 -1
  607. package/dist/ir/constant-globals.d.ts +5 -2
  608. package/dist/ir/constant-globals.js +25 -27
  609. package/dist/ir/constant-globals.js.map +1 -1
  610. package/dist/ir/expression-inlining.d.ts +4 -2
  611. package/dist/ir/expression-inlining.js +8 -2
  612. package/dist/ir/expression-inlining.js.map +1 -1
  613. package/dist/ir/field-values.d.ts +5 -2
  614. package/dist/ir/field-values.js +32 -21
  615. package/dist/ir/field-values.js.map +1 -1
  616. package/dist/ir/fields.generated.d.ts +11 -2
  617. package/dist/ir/fields.generated.js +8 -0
  618. package/dist/ir/fields.generated.js.map +1 -1
  619. package/dist/ir/final-fields.js +1 -1
  620. package/dist/ir/final-fields.js.map +1 -1
  621. package/dist/ir/function-references.d.ts +5 -4
  622. package/dist/ir/function-references.js +7 -4
  623. package/dist/ir/function-references.js.map +1 -1
  624. package/dist/ir/function-references.test.js +7 -0
  625. package/dist/ir/function-references.test.js.map +1 -1
  626. package/dist/ir/init-only-globals.d.ts +4 -2
  627. package/dist/ir/init-only-globals.js +17 -18
  628. package/dist/ir/init-only-globals.js.map +1 -1
  629. package/dist/ir/inline-array-views.js +1 -0
  630. package/dist/ir/inline-array-views.js.map +1 -1
  631. package/dist/ir/int32-slots.js +7 -0
  632. package/dist/ir/int32-slots.js.map +1 -1
  633. package/dist/ir/ir.d.ts +59 -4
  634. package/dist/ir/ir.js +7 -0
  635. package/dist/ir/ir.js.map +1 -1
  636. package/dist/ir/js-groups.d.ts +51 -0
  637. package/dist/ir/js-groups.js +394 -0
  638. package/dist/ir/js-groups.js.map +1 -0
  639. package/dist/ir/js-groups.test.d.ts +1 -0
  640. package/dist/ir/js-groups.test.js +555 -0
  641. package/dist/ir/js-groups.test.js.map +1 -0
  642. package/dist/ir/js-ic.js +30 -5
  643. package/dist/ir/js-ic.js.map +1 -1
  644. package/dist/ir/js-ic.test.js +27 -1
  645. package/dist/ir/js-ic.test.js.map +1 -1
  646. package/dist/ir/node-index.d.ts +23 -6
  647. package/dist/ir/node-index.js +126 -49
  648. package/dist/ir/node-index.js.map +1 -1
  649. package/dist/ir/numeric-call-specialization.d.ts +4 -2
  650. package/dist/ir/numeric-call-specialization.js +40 -26
  651. package/dist/ir/numeric-call-specialization.js.map +1 -1
  652. package/dist/ir/paired-while-loops.d.ts +4 -2
  653. package/dist/ir/paired-while-loops.js +8 -2
  654. package/dist/ir/paired-while-loops.js.map +1 -1
  655. package/dist/ir/parameter-versions.d.ts +13 -4
  656. package/dist/ir/parameter-versions.js +63 -42
  657. package/dist/ir/parameter-versions.js.map +1 -1
  658. package/dist/ir/property-bags.d.ts +4 -2
  659. package/dist/ir/property-bags.js +22 -17
  660. package/dist/ir/property-bags.js.map +1 -1
  661. package/dist/ir/row-pairs.d.ts +4 -2
  662. package/dist/ir/row-pairs.js +12 -11
  663. package/dist/ir/row-pairs.js.map +1 -1
  664. package/dist/ir/runtime-features.d.ts +87 -12
  665. package/dist/ir/runtime-features.js +263 -160
  666. package/dist/ir/runtime-features.js.map +1 -1
  667. package/dist/ir/runtime-features.test.js +109 -139
  668. package/dist/ir/runtime-features.test.js.map +1 -1
  669. package/dist/ir/runtime-jam-loops.d.ts +35 -0
  670. package/dist/ir/runtime-jam-loops.js +604 -0
  671. package/dist/ir/runtime-jam-loops.js.map +1 -0
  672. package/dist/ir/runtime-jam-loops.test.d.ts +1 -0
  673. package/dist/ir/runtime-jam-loops.test.js +565 -0
  674. package/dist/ir/runtime-jam-loops.test.js.map +1 -0
  675. package/dist/ir/saturating-loop-jams.d.ts +4 -2
  676. package/dist/ir/saturating-loop-jams.js +11 -10
  677. package/dist/ir/saturating-loop-jams.js.map +1 -1
  678. package/dist/ir/scalar-records.d.ts +5 -2
  679. package/dist/ir/scalar-records.js +12 -2
  680. package/dist/ir/scalar-records.js.map +1 -1
  681. package/dist/ir/self-captures.d.ts +4 -2
  682. package/dist/ir/self-captures.js +32 -27
  683. package/dist/ir/self-captures.js.map +1 -1
  684. package/dist/ir/serialize.d.ts +6 -1
  685. package/dist/ir/serialize.js +87 -23
  686. package/dist/ir/serialize.js.map +1 -1
  687. package/dist/ir/serialize.test.js +26 -0
  688. package/dist/ir/serialize.test.js.map +1 -1
  689. package/dist/ir/tiers.js +1 -0
  690. package/dist/ir/tiers.js.map +1 -1
  691. package/dist/ir/traverse.js +4 -0
  692. package/dist/ir/traverse.js.map +1 -1
  693. package/dist/ir/typed-argument-clones.d.ts +30 -0
  694. package/dist/ir/typed-argument-clones.js +789 -0
  695. package/dist/ir/typed-argument-clones.js.map +1 -0
  696. package/dist/ir/union-arm-loops.d.ts +3 -0
  697. package/dist/ir/union-arm-loops.js +373 -0
  698. package/dist/ir/union-arm-loops.js.map +1 -0
  699. package/dist/ir/union-arm-loops.test.d.ts +1 -0
  700. package/dist/ir/union-arm-loops.test.js +230 -0
  701. package/dist/ir/union-arm-loops.test.js.map +1 -0
  702. package/dist/ir/validate.js +88 -18
  703. package/dist/ir/validate.js.map +1 -1
  704. package/dist/library/compiler-self-identity.d.ts +8 -2
  705. package/dist/library/compiler-self-identity.js +92 -18
  706. package/dist/library/compiler-self-identity.js.map +1 -1
  707. package/dist/library/compiler-self-identity.test.js +150 -3
  708. package/dist/library/compiler-self-identity.test.js.map +1 -1
  709. package/dist/library/int-infer.d.ts +5 -0
  710. package/dist/library/int-infer.js +15 -3
  711. package/dist/library/int-infer.js.map +1 -1
  712. package/dist/library/ir-policy.js +1 -0
  713. package/dist/library/ir-policy.js.map +1 -1
  714. package/dist/library/library-cache.d.ts +4 -0
  715. package/dist/library/library-cache.js +2 -0
  716. package/dist/library/library-cache.js.map +1 -1
  717. package/dist/library/library-cache.test.js +26 -0
  718. package/dist/library/library-cache.test.js.map +1 -1
  719. package/dist/library/prepare.js +99 -31
  720. package/dist/library/prepare.js.map +1 -1
  721. package/dist/native/cache.d.ts +7 -0
  722. package/dist/native/cache.js +47 -0
  723. package/dist/native/cache.js.map +1 -1
  724. package/dist/native/cache.test.js +13 -1
  725. package/dist/native/cache.test.js.map +1 -1
  726. package/dist/native/cli.js +1 -1
  727. package/dist/native/cli.js.map +1 -1
  728. package/dist/native/compiler.js +18 -3
  729. package/dist/native/compiler.js.map +1 -1
  730. package/dist/native/executable-cache-open.test.js +31 -5
  731. package/dist/native/executable-cache-open.test.js.map +1 -1
  732. package/dist/native/executable-cache.d.ts +6 -1
  733. package/dist/native/executable-cache.js +7 -1
  734. package/dist/native/executable-cache.js.map +1 -1
  735. package/dist/native/prepare.d.ts +3 -0
  736. package/dist/native/prepare.js +43 -26
  737. package/dist/native/prepare.js.map +1 -1
  738. package/dist/native/prepare.test.js +25 -3
  739. package/dist/native/prepare.test.js.map +1 -1
  740. package/dist/native/sanitizer.js +10 -1
  741. package/dist/native/sanitizer.js.map +1 -1
  742. package/dist/native/sanitizer.test.js +7 -2
  743. package/dist/native/sanitizer.test.js.map +1 -1
  744. package/dist/node-islands/boundary.d.ts +12 -0
  745. package/dist/node-islands/boundary.js +38 -6
  746. package/dist/node-islands/boundary.js.map +1 -1
  747. package/dist/node-islands/boundary.test.d.ts +1 -0
  748. package/dist/node-islands/boundary.test.js +76 -0
  749. package/dist/node-islands/boundary.test.js.map +1 -0
  750. package/dist/node-islands/detect.d.ts +9 -0
  751. package/dist/node-islands/detect.js +110 -0
  752. package/dist/node-islands/detect.js.map +1 -1
  753. package/dist/node-islands/detect.test.js +24 -0
  754. package/dist/node-islands/detect.test.js.map +1 -1
  755. package/dist/node-islands/graph-islands.d.ts +40 -0
  756. package/dist/node-islands/graph-islands.js +128 -0
  757. package/dist/node-islands/graph-islands.js.map +1 -0
  758. package/dist/node-islands/growth.d.ts +57 -0
  759. package/dist/node-islands/growth.js +205 -0
  760. package/dist/node-islands/growth.js.map +1 -0
  761. package/dist/node-islands/report.d.ts +12 -0
  762. package/dist/node-islands/report.js +28 -0
  763. package/dist/node-islands/report.js.map +1 -1
  764. package/dist/node-islands/report.test.js +2 -0
  765. package/dist/node-islands/report.test.js.map +1 -1
  766. package/dist/node-islands/rules.js +5 -0
  767. package/dist/node-islands/rules.js.map +1 -1
  768. package/dist/node-islands/scan.d.ts +11 -2
  769. package/dist/node-islands/scan.js +61 -9
  770. package/dist/node-islands/scan.js.map +1 -1
  771. package/dist/wasm/translate.js +11 -5
  772. package/dist/wasm/translate.js.map +1 -1
  773. package/dist/wasm/translate.test.js +35 -0
  774. package/dist/wasm/translate.test.js.map +1 -1
  775. package/package.json +20 -20
  776. package/surface-manifest.json +184 -117
@@ -10,8 +10,8 @@
10
10
  *
11
11
  * One code per construct, so C1's checker relaxation stays safe: relaxing a
12
12
  * tsc code that doubles as an early error removes the ONLY rejection some
13
- * parse-negative test had, which is why these codes live beside
14
- * JS_RELAXED_TSC_CODES in tsc-codes.ts and never depend on it.
13
+ * parse-negative test had, which is why these codes live beside the
14
+ * JS_OPINIONS table in tsc-codes.ts and never depend on it.
15
15
  *
16
16
  * Scope: JavaScript sources only. A TypeScript source is type-checked, and
17
17
  * its checker diagnostics (TS2451 and friends) are the gate; re-reporting
@@ -25,14 +25,46 @@ import { isJsSourceFileName } from "./tsc-codes.js";
25
25
  /** The early-error codes. SC0005 and SC0006 are the Block/CaseBlock static
26
26
  * semantics (a statement list may not declare one lexical name twice, and a
27
27
  * lexical name may not be `var`-declared in the same list); SC0007 is a
28
- * declaration where the grammar admits only a Statement. */
29
- export const EARLY_ERROR_CODES = ["SC0005", "SC0006", "SC0007"];
28
+ * declaration where the grammar admits only a Statement; SC0008 is the
29
+ * ImportCall grammar (a dynamic import takes one or two arguments, and
30
+ * `import.defer` and friends take exactly one); SC0009 is
31
+ * AllPrivateNamesValid (a `#name` may only be read where an enclosing class
32
+ * declares it); SC0010 is AssignmentTargetType (an assignment target must be
33
+ * a variable reference or a property access); SC0011 is the reserved-word
34
+ * rule for `await` in the positions a keyword-`await` context owns; SC0012 is
35
+ * ContainsArguments, the ban on `arguments` in a class field initializer or
36
+ * a class static block; SC0013 is the Script-goal rule for `using`; SC0014 is
37
+ * the strict-mode ban on `eval` and `arguments` as assignment targets;
38
+ * SC0015 is the CatchParameter/LexicallyDeclaredNames collision. */
39
+ export const EARLY_ERROR_CODES = [
40
+ "SC0005",
41
+ "SC0006",
42
+ "SC0007",
43
+ "SC0008",
44
+ "SC0009",
45
+ "SC0010",
46
+ "SC0011",
47
+ "SC0012",
48
+ "SC0013",
49
+ "SC0014",
50
+ "SC0015",
51
+ ];
30
52
  const NO_DUPLICATE_LEXICAL = "SC0005";
31
53
  const LEXICAL_VAR_COLLISION = "SC0006";
32
54
  const NOT_A_STATEMENT = "SC0007";
55
+ const IMPORT_CALL_FORM = "SC0008";
56
+ const UNBOUND_PRIVATE_NAME = "SC0009";
57
+ const INVALID_ASSIGNMENT_TARGET = "SC0010";
58
+ const AWAIT_IS_RESERVED = "SC0011";
59
+ const ARGUMENTS_IN_CLASS_INITIALIZER = "SC0012";
60
+ const USING_IN_SCRIPT_TOP_LEVEL = "SC0013";
61
+ const STRICT_EVAL_BINDING = "SC0014";
62
+ const CATCH_PARAMETER_COLLISION = "SC0015";
33
63
  export function earlyErrorDiagnostics7(files, isModuleCode) {
34
64
  const diags = [];
35
65
  const isStrict = (sf, node) => isStrictCode(sf, node, isModuleCode);
66
+ // PrivateBoundNames per class, for this run only.
67
+ const privateNames = new Map();
36
68
  for (const sf of files) {
37
69
  if (!isJsSourceFileName(sf.fileName))
38
70
  continue;
@@ -43,6 +75,13 @@ export function earlyErrorDiagnostics7(files, isModuleCode) {
43
75
  const node = stack.pop();
44
76
  checkStatementListScope(sf, node, diags, isStrict);
45
77
  checkStatementSlot(node, diags, isStrict);
78
+ checkImportCallForm(node, diags);
79
+ checkPrivateNameUse(node, diags, privateNames);
80
+ checkAssignmentTarget(node, diags, isStrict);
81
+ checkAwaitIdentifier(node, diags, isModuleCode);
82
+ checkClassInitializerArguments(node, diags);
83
+ checkScriptTopLevelUsing(node, diags, isModuleCode);
84
+ checkCatchParameterCollision(node, diags);
46
85
  ts.forEachChild(node, (child) => {
47
86
  stack.push(child);
48
87
  return undefined;
@@ -263,6 +302,258 @@ function labelledFunctionOf(stmt) {
263
302
  cur = cur.statement;
264
303
  return ts.isFunctionDeclaration(cur) ? cur : null;
265
304
  }
305
+ /* ── SC0008: the ImportCall grammar ─────────────────────────────────────
306
+ *
307
+ * ImportCall : import ( AssignmentExpression )
308
+ * import ( AssignmentExpression , AssignmentExpression? )
309
+ * ImportCall : import . defer ( AssignmentExpression )
310
+ *
311
+ * ImportCall is not extensible: no argument list is a SyntaxError, and a
312
+ * third argument is too. The checker reports TS1450 for these in its
313
+ * MESSAGE category ("Dynamic imports can only accept a module specifier and
314
+ * an optional set of attributes as arguments"), which the tsc gate keeps
315
+ * only for errors — so the program compiled and its parse-negative test
316
+ * ran. Node's own parser refuses every form below. */
317
+ function checkImportCallForm(node, diags) {
318
+ if (!ts.isCallExpression(node))
319
+ return;
320
+ const callee = node.expression;
321
+ const argc = node.arguments.nodes.length;
322
+ if (callee.kind === ts.SyntaxKind.ImportKeyword) {
323
+ if (argc < 1 || argc > 2)
324
+ report(diags, IMPORT_CALL_FORM, node, "import() takes a module specifier and an optional second argument; the argument list cannot be omitted or extended");
325
+ return;
326
+ }
327
+ // `import.defer` parses as a MetaProperty (the parser folds the member
328
+ // into one node) and as a property access in adapters that keep the two
329
+ // apart; both spell the same grammar production.
330
+ const deferName = ts.isMetaProperty(callee)
331
+ ? callee.keywordToken === ts.SyntaxKind.ImportKeyword
332
+ ? callee.name.text
333
+ : null
334
+ : ts.isPropertyAccessExpression(callee) &&
335
+ callee.expression.kind === ts.SyntaxKind.ImportKeyword &&
336
+ !ts.isPrivateIdentifier(callee.name)
337
+ ? callee.name.text
338
+ : null;
339
+ if (deferName === null)
340
+ return;
341
+ // import.defer(...) is the one form with a member name today; any other
342
+ // `import.<name>(...)` is module syntax the checker already refuses.
343
+ if (deferName === "defer" && argc !== 1)
344
+ report(diags, IMPORT_CALL_FORM, node, "import.defer() takes exactly one module specifier");
345
+ }
346
+ /* ── SC0009: AllPrivateNamesValid ───────────────────────────────────────
347
+ *
348
+ * ScriptBody : StatementList
349
+ * It is a Syntax Error if AllPrivateNamesValid of StatementList with an
350
+ * empty List is false.
351
+ * ClassBody : ClassElementList
352
+ * newNames = PrivateBoundNames of ClassBody concatenated with names.
353
+ *
354
+ * A `.#name` read or a `#name in obj` check may only name a private
355
+ * declaration of an ENCLOSING class; the class heritage is the exception —
356
+ * it is evaluated in the outer private environment, so a class cannot name
357
+ * its own `#private` from `extends`. TypeScript reports the common case as
358
+ * TS2339 ("Property '#x' does not exist on type 'C'"), which is a relaxed
359
+ * JavaScript code because an ordinary member read of it is legal — but a
360
+ * private name never is, so the pass owns the rule. */
361
+ function checkPrivateNameUse(node, diags, privateNames) {
362
+ if (ts.isPropertyAccessExpression(node) && ts.isPrivateIdentifier(node.name)) {
363
+ if (node.expression.kind === ts.SyntaxKind.SuperKeyword) {
364
+ report(diags, UNBOUND_PRIVATE_NAME, node, `'super.${node.name.text}' is not a SuperProperty: a private name is only readable on 'this' or another object of a declaring class`);
365
+ return;
366
+ }
367
+ if (!privateNameVisible(node, node.name.text, privateNames))
368
+ report(diags, UNBOUND_PRIVATE_NAME, node, `the private name '${node.name.text}' is not declared in an enclosing class`);
369
+ return;
370
+ }
371
+ if (ts.isBinaryExpression(node) &&
372
+ node.operatorToken.kind === ts.SyntaxKind.InKeyword &&
373
+ ts.isPrivateIdentifier(node.left) &&
374
+ !privateNameVisible(node, node.left.text, privateNames))
375
+ report(diags, UNBOUND_PRIVATE_NAME, node.left, `the private name '${node.left.text}' is not declared in an enclosing class`);
376
+ }
377
+ /** Whether the private name `text` is in the environment of `node`: the
378
+ * PrivateBoundNames of every enclosing class body, save a heritage clause,
379
+ * which sees only the classes outside the one it belongs to. */
380
+ function privateNameVisible(node, text, privateNames) {
381
+ let child = node;
382
+ for (let n = node.parent; n !== undefined; child = n, n = n.parent) {
383
+ if (!ts.isClassDeclaration(n) && !ts.isClassExpression(n))
384
+ continue;
385
+ if (ts.isHeritageClause(child))
386
+ continue;
387
+ if (privateBoundNamesOf(n, privateNames).has(text))
388
+ return true;
389
+ }
390
+ return false;
391
+ }
392
+ /** PrivateBoundNames of a ClassBody: every PrivateIdentifier that names an
393
+ * element. A class's own names are visible throughout its body, including
394
+ * the computed names of its elements, so the set is order-independent.
395
+ * `cache` is the pass run's own table, so nothing outlives the walk. */
396
+ function privateBoundNamesOf(classNode, cache) {
397
+ let names = cache.get(classNode);
398
+ if (names !== undefined)
399
+ return names;
400
+ names = new Set();
401
+ for (const member of classNode.members.nodes) {
402
+ const name = member.name;
403
+ if (name !== undefined && ts.isPrivateIdentifier(name))
404
+ names.add(name.text);
405
+ }
406
+ cache.set(classNode, names);
407
+ return names;
408
+ }
409
+ /* ── SC0010: AssignmentTargetType ───────────────────────────────────────
410
+ *
411
+ * AssignmentExpression : LeftHandSideExpression = AssignmentExpression
412
+ * It is a Syntax Error if AssignmentTargetType of LeftHandSideExpression
413
+ * is not simple.
414
+ * ... and the compound-assignment, update and for-in/of productions.
415
+ *
416
+ * A "simple" target is an identifier or a property access (parentheses
417
+ * around one are transparent); a plain assignment additionally accepts a
418
+ * destructuring pattern. A call expression is never either — which is the
419
+ * case that reaches here, because the checker reports `import('') -= 1` as
420
+ * a TS2362 OPERATOR type error, and the JavaScript-any relaxation drops
421
+ * every 2362 whose message names 'any'. Every other invalid target
422
+ * (`f() = 1`, `f() += 1`, `[a] = b = c`) is the same static semantics;
423
+ * reporting it here costs nothing, since an accepted program never reaches
424
+ * this check as a failure.
425
+ *
426
+ * SC0014 rides the same walk: in strict mode code an ASSIGNMENT to `eval` or
427
+ * `arguments` is a Syntax Error (AssignmentTargetType is not simple for those
428
+ * two names in strict code), not the caught TypeError a writable binding
429
+ * would throw. The declarations the checker already refuses (`let eval`,
430
+ * `arguments` as a parameter of strict code, a sloppy-only `with`) are its
431
+ * own diagnostics; this is the reference side the checker types fine. */
432
+ function checkAssignmentTarget(node, diags, isStrict) {
433
+ if (ts.isBinaryExpression(node)) {
434
+ const kind = node.operatorToken.kind;
435
+ if (kind === ts.SyntaxKind.EqualsToken) {
436
+ checkTargetForm(node.left, true, node, diags, strictTargetCheck(node, isStrict));
437
+ return;
438
+ }
439
+ if (assignmentOperatorTokens.has(kind)) {
440
+ checkTargetForm(node.left, false, node, diags, strictTargetCheck(node, isStrict));
441
+ return;
442
+ }
443
+ return;
444
+ }
445
+ if (ts.isPrefixUnaryExpression(node) && isUpdateToken(node.operator)) {
446
+ checkTargetForm(node.operand, false, node, diags, strictTargetCheck(node, isStrict));
447
+ return;
448
+ }
449
+ if (ts.isPostfixUnaryExpression(node) && isUpdateToken(node.operator)) {
450
+ checkTargetForm(node.operand, false, node, diags, strictTargetCheck(node, isStrict));
451
+ return;
452
+ }
453
+ if (ts.isForInStatement(node) || ts.isForOfStatement(node)) {
454
+ const initializer = node.initializer;
455
+ if (!ts.isVariableDeclarationList(initializer))
456
+ checkTargetForm(initializer, true, node, diags, strictTargetCheck(node, isStrict));
457
+ }
458
+ }
459
+ /** Answers whether a target identifier is in strict mode code, for SC0014;
460
+ * a lazy answer keeps the (parent-walking) strictness computation off the
461
+ * targets that never need it. */
462
+ function strictTargetCheck(node, isStrict) {
463
+ const sf = ts.getSourceFileOfNode(node);
464
+ let answer;
465
+ return (identifier) => {
466
+ if (answer === undefined)
467
+ answer = isStrict(sf, identifier);
468
+ return answer;
469
+ };
470
+ }
471
+ const assignmentOperatorTokens = new Set([
472
+ ts.SyntaxKind.PlusEqualsToken,
473
+ ts.SyntaxKind.MinusEqualsToken,
474
+ ts.SyntaxKind.AsteriskEqualsToken,
475
+ ts.SyntaxKind.SlashEqualsToken,
476
+ ts.SyntaxKind.PercentEqualsToken,
477
+ ts.SyntaxKind.AsteriskAsteriskEqualsToken,
478
+ ts.SyntaxKind.LessThanLessThanEqualsToken,
479
+ ts.SyntaxKind.GreaterThanGreaterThanEqualsToken,
480
+ ts.SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken,
481
+ ts.SyntaxKind.AmpersandEqualsToken,
482
+ ts.SyntaxKind.BarEqualsToken,
483
+ ts.SyntaxKind.CaretEqualsToken,
484
+ ts.SyntaxKind.AmpersandAmpersandEqualsToken,
485
+ ts.SyntaxKind.BarBarEqualsToken,
486
+ ts.SyntaxKind.QuestionQuestionEqualsToken,
487
+ ]);
488
+ function isUpdateToken(token) {
489
+ return token === ts.SyntaxKind.PlusPlusToken || token === ts.SyntaxKind.MinusMinusToken;
490
+ }
491
+ /** Reports `target` when it is not an assignment target of the given kind.
492
+ * `pattern` admits a destructuring pattern (a plain `=` and a for-in/of
493
+ * head) around simple targets; a compound assignment and an update take a
494
+ * simple target only. `strict` answers, per identifier, whether SC0014
495
+ * applies. */
496
+ function checkTargetForm(target, pattern, at, diags, strict) {
497
+ // Parentheses are transparent around a simple target only: a pattern is
498
+ // not a LeftHandSideExpression, so `([a]) = rows` is a Syntax Error and
499
+ // `((a)) = 1` is not.
500
+ if (ts.isParenthesizedExpression(target)) {
501
+ checkTargetForm(target.expression, false, at, diags, strict);
502
+ return;
503
+ }
504
+ const node = target;
505
+ if (ts.isIdentifier(node)) {
506
+ if (strict !== null && (node.text === "eval" || node.text === "arguments") && strict(node))
507
+ report(diags, STRICT_EVAL_BINDING, at, `strict mode code may not assign to '${node.text}'`);
508
+ return;
509
+ }
510
+ if (ts.isPropertyAccessExpression(node) || ts.isElementAccessExpression(node))
511
+ return;
512
+ // `new.target = 1` is caught by the checker; a meta property is never a
513
+ // reference and never a pattern, so it falls through.
514
+ if (pattern && ts.isArrayLiteralExpression(node)) {
515
+ for (const element of node.elements.nodes) {
516
+ if (ts.isOmittedExpression(element))
517
+ continue;
518
+ // A rest target and the target of a default admit a nested pattern
519
+ // (`[...[a]] = rows`, `[[a] = [1]] = rows`).
520
+ if (ts.isSpreadElement(element)) {
521
+ checkTargetForm(element.expression, true, at, diags, strict);
522
+ continue;
523
+ }
524
+ if (ts.isBinaryExpression(element) &&
525
+ element.operatorToken.kind === ts.SyntaxKind.EqualsToken) {
526
+ checkTargetForm(element.left, true, at, diags, strict);
527
+ continue;
528
+ }
529
+ checkTargetForm(element, true, at, diags, strict);
530
+ }
531
+ return;
532
+ }
533
+ if (pattern && ts.isObjectLiteralExpression(node)) {
534
+ for (const property of node.properties.nodes) {
535
+ if (ts.isSpreadAssignment(property)) {
536
+ checkTargetForm(property.expression, false, at, diags, strict);
537
+ continue;
538
+ }
539
+ if (ts.isShorthandPropertyAssignment(property)) {
540
+ // The shorthand's own name is the target.
541
+ checkTargetForm(property.name, false, at, diags, strict);
542
+ continue;
543
+ }
544
+ if (!ts.isPropertyAssignment(property))
545
+ continue;
546
+ const value = property.initializer;
547
+ if (ts.isBinaryExpression(value) && value.operatorToken.kind === ts.SyntaxKind.EqualsToken) {
548
+ checkTargetForm(value.left, true, at, diags, strict);
549
+ continue;
550
+ }
551
+ checkTargetForm(value, true, at, diags, strict);
552
+ }
553
+ return;
554
+ }
555
+ report(diags, INVALID_ASSIGNMENT_TARGET, at, "the left-hand side of an assignment must be a variable reference or a property access");
556
+ }
266
557
  /* ── strictness of the code around a node ───────────────────────────────
267
558
  *
268
559
  * A directive prologue's "use strict" applies to the function (or script) it
@@ -302,4 +593,244 @@ function hasUseStrictPrologue(statements) {
302
593
  }
303
594
  return false;
304
595
  }
596
+ /* ── SC0011: `await` where the grammar makes it an operator ─────────────
597
+ *
598
+ * Identifier : IdentifierName but not ReservedWord
599
+ *
600
+ * The grammar passes an [Await] parameter down to every production whose
601
+ * tokens are parsed in an async context, and there `await` is the
602
+ * AwaitExpression keyword rather than an Identifier: an async function's
603
+ * FormalParameters and FunctionBody, a class static block's body (its
604
+ * ClassStaticBlockStatementList is parsed with Await=true), and a module's
605
+ * ModuleItemList (top-level await). What resets [Await] to false is a
606
+ * syntactic scope of its own: a non-async function's parameters and body, a
607
+ * class field initializer, and — the one that reads as a surprise — an
608
+ * arrow function's BODY (ConciseBody is [~Await] by production, whatever
609
+ * the arrow's own async-ness), while the arrow's PARAMETERS keep the
610
+ * context's [Await].
611
+ *
612
+ * tsc accepts every one of these positions, so nothing in the checker's
613
+ * gate rejects them; Node's parser does (`var await = 1` in an async
614
+ * function is "Unexpected reserved word"), and the position a negative
615
+ * parse test pins is exactly this one. The IdentifierName positions stay
616
+ * open — `o.await`, `{ await: 1 }`, `class C { await() {} }` are ordinary
617
+ * JavaScript — as do the labels' identifier slots only where [Await] is
618
+ * false (`await: for (;;) break await;` is legal in sloppy script code and
619
+ * a Syntax Error inside an async function). */
620
+ function checkAwaitIdentifier(node, diags, isModuleCode) {
621
+ if (!ts.isIdentifier(node) || node.text !== "await")
622
+ return;
623
+ if (isIdentifierNamePosition(node))
624
+ return;
625
+ if (!awaitIsReservedAt(node, isModuleCode))
626
+ return;
627
+ report(diags, AWAIT_IS_RESERVED, node, "'await' is an operator in this context, not an identifier: an async function body or parameter list, a class static block, and a module's top level parse it as the await keyword");
628
+ }
629
+ /** The [Await] parameter of the context `node` sits in. */
630
+ function awaitIsReservedAt(node, isModuleCode) {
631
+ let child = node;
632
+ for (let n = node.parent; n !== undefined; child = n, n = n.parent) {
633
+ if (ts.isSourceFile(n))
634
+ return isModuleCode(n);
635
+ if (ts.isClassStaticBlockDeclaration(n))
636
+ return true;
637
+ if (ts.isPropertyDeclaration(n)) {
638
+ // A field initializer is its own function-like scope with Await=false;
639
+ // the element's computed name is evaluated in the enclosing one.
640
+ if (n.initializer !== undefined && isWithin(n.initializer, child))
641
+ return false;
642
+ continue;
643
+ }
644
+ if (ts.isArrowFunction(n)) {
645
+ // The body resets [Await] to the arrow's own async-ness; the parameters
646
+ // inherit the enclosing context.
647
+ if (isWithin(n.body, child))
648
+ return isAsyncFunction(n);
649
+ if (isAsyncFunction(n))
650
+ return true;
651
+ continue;
652
+ }
653
+ if (ts.isFunctionLike(n)) {
654
+ // A computed member name is evaluated in the enclosing context: the
655
+ // method's own [Await] applies to its parameter list and its body, not
656
+ // to the name that puts the member on the object or class.
657
+ const name = n.name;
658
+ if (name !== undefined && ts.isComputedPropertyName(name) && isWithin(name, child))
659
+ continue;
660
+ return isAsyncFunction(n);
661
+ }
662
+ if (ts.isClassDeclaration(n) || ts.isClassExpression(n))
663
+ continue;
664
+ }
665
+ return false;
666
+ }
667
+ /** Whether `node` is at or below `container`. */
668
+ function isWithin(container, node) {
669
+ for (let n = node; n !== undefined; n = n.parent) {
670
+ if (n === container)
671
+ return true;
672
+ }
673
+ return false;
674
+ }
675
+ function isAsyncFunction(node) {
676
+ const modifiers = node.modifiers?.nodes;
677
+ if (modifiers !== undefined) {
678
+ for (const modifier of modifiers)
679
+ if (modifier.kind === ts.SyntaxKind.AsyncKeyword)
680
+ return true;
681
+ }
682
+ return (ts.getCombinedModifierFlags(node) & ts.ModifierFlags.Async) !== 0;
683
+ }
684
+ /** The positions whose identifier slot is an IdentifierName or a keyword the
685
+ * grammar spells out, never a ReservedWord-checked Identifier: property
686
+ * names, member names, labels, specifier names, and type references. */
687
+ function isIdentifierNamePosition(node) {
688
+ const parent = node.parent;
689
+ if (parent === undefined)
690
+ return false;
691
+ if (ts.isPropertyAccessExpression(parent) && parent.name === node)
692
+ return true;
693
+ if (ts.isQualifiedName(parent) && parent.right === node)
694
+ return true;
695
+ if (ts.isImportSpecifier(parent) || ts.isExportSpecifier(parent))
696
+ return true;
697
+ // A destructuring rename's property name is an IdentifierName; its binding
698
+ // name (`{ await: x }` vs `{ await }`) is a BindingIdentifier and is not.
699
+ if (ts.isBindingElement(parent) && parent.propertyName === node)
700
+ return true;
701
+ if (ts.isTypeReferenceNode(parent) || ts.isExpressionWithTypeArguments(parent))
702
+ return true;
703
+ const named = parent;
704
+ if (named.name === node) {
705
+ if (ts.isPropertyAssignment(parent) ||
706
+ ts.isPropertyDeclaration(parent) ||
707
+ ts.isPropertySignatureDeclaration(parent) ||
708
+ ts.isMethodDeclaration(parent) ||
709
+ ts.isMethodSignatureDeclaration(parent) ||
710
+ ts.isGetAccessorDeclaration(parent) ||
711
+ ts.isSetAccessorDeclaration(parent) ||
712
+ ts.isEnumMember(parent) ||
713
+ ts.isModuleDeclaration(parent) ||
714
+ ts.isClassDeclaration(parent) ||
715
+ ts.isClassExpression(parent) ||
716
+ ts.isFunctionDeclaration(parent) ||
717
+ ts.isFunctionExpression(parent))
718
+ return true;
719
+ }
720
+ return false;
721
+ }
722
+ /* ── SC0012: ContainsArguments in a class field initializer ─────────────
723
+ *
724
+ * FieldDefinition : ClassElementName Initializer_opt
725
+ * It is a Syntax Error if ContainsArguments of Initializer is true.
726
+ * ClassStaticBlockBody : StatementList
727
+ * It is a Syntax Error if ContainsArguments of ClassStaticBlockBody is
728
+ * true.
729
+ *
730
+ * ContainsArguments walks the production tree for an IdentifierReference
731
+ * spelling `arguments` and stops at a function boundary — except an arrow
732
+ * function, whose body is part of the initializer's own evaluation. The
733
+ * computed ClassElementName is NOT part of the rule (`class C { [arguments]
734
+ * = 1 }` is legal: the name is evaluated in the enclosing scope), and a
735
+ * method's `arguments` is a method's own.
736
+ *
737
+ * The checker reports the common spelling of this as TS2304 ("Cannot find
738
+ * name 'arguments'"), which JavaScript sources relax because an undeclared
739
+ * name is Node's catchable ReferenceError — but here the construct never
740
+ * runs at all: Node refuses the source. */
741
+ function checkClassInitializerArguments(node, diags) {
742
+ let root;
743
+ if (ts.isPropertyDeclaration(node))
744
+ root = node.initializer;
745
+ else if (ts.isClassStaticBlockDeclaration(node))
746
+ root = node.body;
747
+ if (root === undefined)
748
+ return;
749
+ const hit = firstArgumentsReference(root);
750
+ if (hit === null)
751
+ return;
752
+ report(diags, ARGUMENTS_IN_CLASS_INITIALIZER, hit, "'arguments' is not allowed in a class field initializer or a class static block");
753
+ }
754
+ /** The first IdentifierReference to `arguments` below `root`, for
755
+ * ContainsArguments: arrows are transparent, every other function form stops
756
+ * the walk. */
757
+ function firstArgumentsReference(root) {
758
+ const stack = [root];
759
+ while (stack.length > 0) {
760
+ const node = stack.pop();
761
+ if (ts.isFunctionLike(node) && !ts.isArrowFunction(node))
762
+ continue;
763
+ if (ts.isIdentifier(node) && node.text === "arguments" && !isIdentifierNamePosition(node))
764
+ return node;
765
+ ts.forEachChild(node, (child) => {
766
+ stack.push(child);
767
+ return undefined;
768
+ });
769
+ }
770
+ return null;
771
+ }
772
+ /* ── SC0013: a `using` declaration at the top level of a Script ─────────
773
+ *
774
+ * UsingDeclaration : using BindingList ;
775
+ * It is a Syntax Error if the goal symbol is Script and the declaration
776
+ * is not contained, directly or indirectly, within a Block, a
777
+ * ForStatement, a ForInOfStatement, a FunctionBody, a GeneratorBody, an
778
+ * AsyncGeneratorBody, an AsyncFunctionBody, a ClassStaticBlockBody, or a
779
+ * ClassBody.
780
+ *
781
+ * A Module's top level is NOT in that list (a module's resources live until
782
+ * the module finishes evaluating), so the rule is the script goal's alone —
783
+ * which is why the check asks the program's own Node classification rather
784
+ * than the statement position. */
785
+ function checkScriptTopLevelUsing(node, diags, isModuleCode) {
786
+ if (!ts.isSourceFile(node))
787
+ return;
788
+ if (isModuleCode(node))
789
+ return;
790
+ for (const stmt of node.statements.nodes) {
791
+ if (!ts.isVariableStatement(stmt))
792
+ continue;
793
+ // `using` is the Using bit; `await using` spells AwaitUsing (Const |
794
+ // Using), so the Using bit alone answers both — and only those.
795
+ if ((stmt.declarationList.flags & ts.NodeFlags.Using) === 0)
796
+ continue;
797
+ report(diags, USING_IN_SCRIPT_TOP_LEVEL, stmt.declarationList, "a 'using' declaration is not allowed at the top level of a script: put it in a block, a function body, or a class static block");
798
+ }
799
+ }
800
+ /* ── SC0015: a catch parameter colliding with a block declaration ───────
801
+ *
802
+ * Catch : catch ( CatchParameter ) Block
803
+ * It is a Syntax Error if any element of the BoundNames of CatchParameter
804
+ * also occurs in the LexicallyDeclaredNames of Block.
805
+ *
806
+ * A `var` in the block is Annex B's legacy and stays legal, and a nested
807
+ * block is a different Block (its declarations are not this list's).
808
+ * TypeScript reports the let/const/class spellings as TS2300, which the
809
+ * preflight gate keeps; a plain function declaration is the form it does
810
+ * not report (`try {} catch (e) { function e() {} }`), and Node refuses it
811
+ * in both modes. */
812
+ function checkCatchParameterCollision(node, diags) {
813
+ if (!ts.isTryStatement(node) || node.catchClause === undefined)
814
+ return;
815
+ const clause = node.catchClause;
816
+ const parameter = clause.variableDeclaration;
817
+ const block = clause.block;
818
+ if (parameter === undefined || block === undefined)
819
+ return;
820
+ const names = new Set();
821
+ const entries = [];
822
+ collectBindingNames(parameter.name, entries);
823
+ for (const [name] of entries)
824
+ names.add(name);
825
+ if (names.size === 0)
826
+ return;
827
+ for (const stmt of block.statements.nodes) {
828
+ if (!ts.isFunctionDeclaration(stmt))
829
+ continue;
830
+ const name = stmt.name;
831
+ if (name === undefined || !ts.isIdentifier(name) || !names.has(name.text))
832
+ continue;
833
+ report(diags, CATCH_PARAMETER_COLLISION, name, `the catch parameter '${name.text}' is already declared in this catch block`);
834
+ }
835
+ }
305
836
  //# sourceMappingURL=early-errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"early-errors.js","sourceRoot":"","sources":["../../src/frontend/early-errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"early-errors.js","sourceRoot":"","sources":["../../src/frontend/early-errors.ts"],"names":[],"mappings":"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"}