tsc-ts 0.0.9 → 0.1.0

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 (373) hide show
  1. package/README.md +2 -2
  2. package/bin/tsc-ts.js +70 -1
  3. package/dist/api/compiler/ast-utilities.d.ts +19 -1
  4. package/dist/api/compiler/ast-utilities.js +180 -95
  5. package/dist/api/compiler/ast.d.ts +22 -15
  6. package/dist/api/compiler/ast.js +1026 -995
  7. package/dist/api/compiler/astnav.js +15 -15
  8. package/dist/api/compiler/binder-utilities.js +186 -186
  9. package/dist/api/compiler/binder.js +290 -263
  10. package/dist/api/compiler/character-codes.js +2 -2
  11. package/dist/api/compiler/checker-calls.js +178 -124
  12. package/dist/api/compiler/checker-classes.d.ts +14 -3
  13. package/dist/api/compiler/checker-classes.js +134 -90
  14. package/dist/api/compiler/checker-contextual.js +64 -61
  15. package/dist/api/compiler/checker-declaration-order.js +79 -79
  16. package/dist/api/compiler/checker-declarations.d.ts +1 -0
  17. package/dist/api/compiler/checker-declarations.js +160 -136
  18. package/dist/api/compiler/checker-declared-types.js +67 -65
  19. package/dist/api/compiler/checker-decorators.js +77 -77
  20. package/dist/api/compiler/checker-deprecation.d.ts +8 -3
  21. package/dist/api/compiler/checker-deprecation.js +76 -55
  22. package/dist/api/compiler/checker-destructuring.js +47 -45
  23. package/dist/api/compiler/checker-elaboration.js +24 -24
  24. package/dist/api/compiler/checker-emit-helpers.js +4 -4
  25. package/dist/api/compiler/checker-emit-resolver.d.ts +4 -2
  26. package/dist/api/compiler/checker-emit-resolver.js +25 -13
  27. package/dist/api/compiler/checker-evaluator.js +9 -9
  28. package/dist/api/compiler/checker-expressions.js +244 -211
  29. package/dist/api/compiler/checker-functions.js +113 -107
  30. package/dist/api/compiler/checker-generated-code.d.ts +0 -11
  31. package/dist/api/compiler/checker-generated-code.js +28 -52
  32. package/dist/api/compiler/checker-grammar.d.ts +1 -0
  33. package/dist/api/compiler/checker-grammar.js +472 -440
  34. package/dist/api/compiler/checker-heritage.js +91 -93
  35. package/dist/api/compiler/checker-inference.d.ts +77 -5
  36. package/dist/api/compiler/checker-inference.js +487 -107
  37. package/dist/api/compiler/checker-iteration.d.ts +0 -10
  38. package/dist/api/compiler/checker-iteration.js +35 -52
  39. package/dist/api/compiler/checker-javascript.js +14 -14
  40. package/dist/api/compiler/checker-jsdoc.d.ts +8 -10
  41. package/dist/api/compiler/checker-jsdoc.js +67 -58
  42. package/dist/api/compiler/checker-jsx.js +105 -88
  43. package/dist/api/compiler/checker-members.d.ts +9 -2
  44. package/dist/api/compiler/checker-members.js +212 -75
  45. package/dist/api/compiler/checker-modules.d.ts +15 -6
  46. package/dist/api/compiler/checker-modules.js +469 -309
  47. package/dist/api/compiler/checker-narrowing.js +273 -189
  48. package/dist/api/compiler/checker-object-literals.js +25 -22
  49. package/dist/api/compiler/checker-operators.js +126 -118
  50. package/dist/api/compiler/checker-overloads.js +27 -27
  51. package/dist/api/compiler/checker-property-access.js +59 -55
  52. package/dist/api/compiler/checker-services.d.ts +1 -0
  53. package/dist/api/compiler/checker-services.js +222 -210
  54. package/dist/api/compiler/checker-signatures.js +65 -49
  55. package/dist/api/compiler/checker-source-file.d.ts +5 -0
  56. package/dist/api/compiler/checker-source-file.js +154 -130
  57. package/dist/api/compiler/checker-statements.js +33 -32
  58. package/dist/api/compiler/checker-super.js +50 -50
  59. package/dist/api/compiler/checker-symbol-types.js +109 -93
  60. package/dist/api/compiler/checker-symbols.d.ts +13 -1
  61. package/dist/api/compiler/checker-symbols.js +264 -149
  62. package/dist/api/compiler/checker-type-factory.d.ts +5 -0
  63. package/dist/api/compiler/checker-type-factory.js +145 -36
  64. package/dist/api/compiler/checker-type-nodes.d.ts +1 -0
  65. package/dist/api/compiler/checker-type-nodes.js +179 -141
  66. package/dist/api/compiler/checker-type-operators.d.ts +2 -0
  67. package/dist/api/compiler/checker-type-operators.js +110 -63
  68. package/dist/api/compiler/checker-types.d.ts +80 -3
  69. package/dist/api/compiler/checker-types.js +121 -2
  70. package/dist/api/compiler/checker-unused.js +114 -118
  71. package/dist/api/compiler/checker-utilities.js +11 -11
  72. package/dist/api/compiler/checker.d.ts +104 -31
  73. package/dist/api/compiler/checker.js +181 -33
  74. package/dist/api/compiler/command-line.d.ts +1 -3
  75. package/dist/api/compiler/command-line.js +47 -44
  76. package/dist/api/compiler/compile-program.d.ts +42 -3
  77. package/dist/api/compiler/compile-program.js +139 -27
  78. package/dist/api/compiler/diagnostic-messages.d.ts +1849 -1774
  79. package/dist/api/compiler/diagnostic-messages.js +128 -122
  80. package/dist/api/compiler/diagnostics.d.ts +22 -0
  81. package/dist/api/compiler/diagnostics.js +93 -11
  82. package/dist/api/compiler/emitter.d.ts +7 -1
  83. package/dist/api/compiler/emitter.js +53 -11
  84. package/dist/api/compiler/file-include.d.ts +2 -1
  85. package/dist/api/compiler/file-include.js +11 -7
  86. package/dist/api/compiler/file-loader.d.ts +21 -1
  87. package/dist/api/compiler/file-loader.js +201 -48
  88. package/dist/api/compiler/instantiation.d.ts +7 -0
  89. package/dist/api/compiler/instantiation.js +101 -49
  90. package/dist/api/compiler/jsdoc.js +23 -23
  91. package/dist/api/compiler/link-tables.d.ts +48 -18
  92. package/dist/api/compiler/link-tables.js +80 -37
  93. package/dist/api/compiler/locales/cs-CZ.d.ts +1 -1
  94. package/dist/api/compiler/locales/cs-CZ.js +1 -1
  95. package/dist/api/compiler/locales/de-DE.d.ts +1 -1
  96. package/dist/api/compiler/locales/de-DE.js +1 -1
  97. package/dist/api/compiler/locales/es-ES.d.ts +1 -1
  98. package/dist/api/compiler/locales/es-ES.js +1 -1
  99. package/dist/api/compiler/locales/fr-FR.d.ts +1 -1
  100. package/dist/api/compiler/locales/fr-FR.js +1 -1
  101. package/dist/api/compiler/locales/it-IT.d.ts +1 -1
  102. package/dist/api/compiler/locales/it-IT.js +1 -1
  103. package/dist/api/compiler/locales/ja-JP.d.ts +1 -1
  104. package/dist/api/compiler/locales/ja-JP.js +1 -1
  105. package/dist/api/compiler/locales/ko-KR.d.ts +1 -1
  106. package/dist/api/compiler/locales/ko-KR.js +1 -1
  107. package/dist/api/compiler/locales/pl-PL.d.ts +1 -1
  108. package/dist/api/compiler/locales/pl-PL.js +1 -1
  109. package/dist/api/compiler/locales/pt-BR.d.ts +1 -1
  110. package/dist/api/compiler/locales/pt-BR.js +1 -1
  111. package/dist/api/compiler/locales/ru-RU.d.ts +1 -1
  112. package/dist/api/compiler/locales/ru-RU.js +1 -1
  113. package/dist/api/compiler/locales/tr-TR.d.ts +1 -1
  114. package/dist/api/compiler/locales/tr-TR.js +1 -1
  115. package/dist/api/compiler/locales/zh-CN.d.ts +1 -1
  116. package/dist/api/compiler/locales/zh-CN.js +1 -1
  117. package/dist/api/compiler/locales/zh-TW.d.ts +1 -1
  118. package/dist/api/compiler/locales/zh-TW.js +1 -1
  119. package/dist/api/compiler/module-resolution-types.js +6 -6
  120. package/dist/api/compiler/module-resolution.d.ts +10 -1
  121. package/dist/api/compiler/module-resolution.js +115 -84
  122. package/dist/api/compiler/module-specifiers.d.ts +15 -0
  123. package/dist/api/compiler/module-specifiers.js +24 -18
  124. package/dist/api/compiler/name-resolver.js +74 -65
  125. package/dist/api/compiler/node-builder-names.d.ts +11 -3
  126. package/dist/api/compiler/node-builder-names.js +210 -90
  127. package/dist/api/compiler/node-builder-pseudo.js +29 -31
  128. package/dist/api/compiler/node-builder-reuse.js +23 -22
  129. package/dist/api/compiler/node-builder.d.ts +18 -1
  130. package/dist/api/compiler/node-builder.js +191 -102
  131. package/dist/api/compiler/option-declarations.d.ts +2 -6
  132. package/dist/api/compiler/option-declarations.js +315 -375
  133. package/dist/api/compiler/options.d.ts +15 -33
  134. package/dist/api/compiler/options.js +21 -54
  135. package/dist/api/compiler/output-paths.d.ts +4 -1
  136. package/dist/api/compiler/output-paths.js +6 -11
  137. package/dist/api/compiler/package-json.d.ts +3 -3
  138. package/dist/api/compiler/package-json.js +11 -10
  139. package/dist/api/compiler/parallel-parse.d.ts +3 -2
  140. package/dist/api/compiler/parallel-parse.js +17 -5
  141. package/dist/api/compiler/parser.d.ts +40 -19
  142. package/dist/api/compiler/parser.js +308 -216
  143. package/dist/api/compiler/path.d.ts +9 -0
  144. package/dist/api/compiler/path.js +20 -3
  145. package/dist/api/compiler/printer/emit-context.d.ts +5 -1
  146. package/dist/api/compiler/printer/emit-context.js +20 -1
  147. package/dist/api/compiler/printer/factory-base.d.ts +2 -2
  148. package/dist/api/compiler/printer/factory-base.js +7 -3
  149. package/dist/api/compiler/printer/factory.js +3 -1
  150. package/dist/api/compiler/printer/helpers.js +10 -1
  151. package/dist/api/compiler/printer/name-generator.d.ts +1 -1
  152. package/dist/api/compiler/printer/name-generator.js +35 -16
  153. package/dist/api/compiler/printer/printer.d.ts +49 -2
  154. package/dist/api/compiler/printer/printer.js +539 -293
  155. package/dist/api/compiler/printer/utilities.js +149 -147
  156. package/dist/api/compiler/program-checker.d.ts +12 -2
  157. package/dist/api/compiler/program-checker.js +88 -34
  158. package/dist/api/compiler/program-utilities.d.ts +3 -1
  159. package/dist/api/compiler/program-utilities.js +28 -15
  160. package/dist/api/compiler/program.d.ts +4 -6
  161. package/dist/api/compiler/program.js +74 -87
  162. package/dist/api/compiler/pseudo-bigint.d.ts +2 -0
  163. package/dist/api/compiler/pseudo-bigint.js +18 -0
  164. package/dist/api/compiler/regexp-checker.d.ts +1 -1
  165. package/dist/api/compiler/regexp-checker.js +93 -76
  166. package/dist/api/compiler/relations.d.ts +27 -4
  167. package/dist/api/compiler/relations.js +347 -180
  168. package/dist/api/compiler/reparser.js +60 -56
  169. package/dist/api/compiler/scanner.d.ts +19 -2
  170. package/dist/api/compiler/scanner.js +123 -108
  171. package/dist/api/compiler/shared-results.d.ts +463 -0
  172. package/dist/api/compiler/shared-results.js +2128 -0
  173. package/dist/api/compiler/sourcemap.js +2 -2
  174. package/dist/api/compiler/symbol-accessibility.js +87 -74
  175. package/dist/api/compiler/symbol.d.ts +23 -14
  176. package/dist/api/compiler/symbol.js +23 -11
  177. package/dist/api/compiler/syntax-kind.d.ts +198 -197
  178. package/dist/api/compiler/transformers/alias-references.js +247 -139
  179. package/dist/api/compiler/transformers/async-utilities.js +25 -25
  180. package/dist/api/compiler/transformers/async.d.ts +0 -1
  181. package/dist/api/compiler/transformers/async.js +64 -77
  182. package/dist/api/compiler/transformers/class-fields.d.ts +1 -0
  183. package/dist/api/compiler/transformers/class-fields.js +81 -78
  184. package/dist/api/compiler/transformers/commonjs-module.js +18 -15
  185. package/dist/api/compiler/transformers/const-enum-inliner.js +1 -1
  186. package/dist/api/compiler/transformers/declarations-diagnostics.js +247 -244
  187. package/dist/api/compiler/transformers/declarations-pseudo.js +100 -100
  188. package/dist/api/compiler/transformers/declarations-resolver.d.ts +0 -3
  189. package/dist/api/compiler/transformers/declarations-syntactic.d.ts +1 -2
  190. package/dist/api/compiler/transformers/declarations-syntactic.js +134 -156
  191. package/dist/api/compiler/transformers/declarations-tracker.js +18 -18
  192. package/dist/api/compiler/transformers/declarations.d.ts +4 -1
  193. package/dist/api/compiler/transformers/declarations.js +305 -238
  194. package/dist/api/compiler/transformers/decorator-metadata.d.ts +1 -1
  195. package/dist/api/compiler/transformers/decorator-metadata.js +53 -45
  196. package/dist/api/compiler/transformers/decorator-utilities.js +24 -24
  197. package/dist/api/compiler/transformers/destructuring.js +19 -18
  198. package/dist/api/compiler/transformers/emit-resolver.js +1 -1
  199. package/dist/api/compiler/transformers/es-decorators.js +55 -55
  200. package/dist/api/compiler/transformers/external-module-info.js +3 -3
  201. package/dist/api/compiler/transformers/for-await.js +25 -25
  202. package/dist/api/compiler/transformers/import-elision.js +14 -14
  203. package/dist/api/compiler/transformers/jsx.js +12 -12
  204. package/dist/api/compiler/transformers/legacy-decorators.js +17 -17
  205. package/dist/api/compiler/transformers/module.js +8 -8
  206. package/dist/api/compiler/transformers/named-evaluation.js +4 -4
  207. package/dist/api/compiler/transformers/object-rest-spread.js +20 -20
  208. package/dist/api/compiler/transformers/optional-chain.js +10 -10
  209. package/dist/api/compiler/transformers/reference-resolver.d.ts +12 -1
  210. package/dist/api/compiler/transformers/reference-resolver.js +131 -69
  211. package/dist/api/compiler/transformers/runtime-syntax.js +35 -31
  212. package/dist/api/compiler/transformers/subtree-facts.js +47 -47
  213. package/dist/api/compiler/transformers/syntax-facts.js +56 -58
  214. package/dist/api/compiler/transformers/type-eraser.js +73 -66
  215. package/dist/api/compiler/transformers/type-serialization.js +24 -24
  216. package/dist/api/compiler/transformers/using.js +12 -12
  217. package/dist/api/compiler/transformers/utilities.js +77 -77
  218. package/dist/api/compiler/transformers/visitor-base.js +172 -172
  219. package/dist/api/compiler/transformers/visitor-hooks.js +6 -2
  220. package/dist/api/compiler/tsconfig.d.ts +10 -2
  221. package/dist/api/compiler/tsconfig.js +136 -48
  222. package/dist/api/compiler/type-printer.js +40 -3
  223. package/dist/api/compiler/types.d.ts +2 -1
  224. package/dist/api/library/ast.generated.d.ts +42 -39
  225. package/dist/api/library/ast.generated.js +1 -1
  226. package/dist/api/library/compiler-options.generated.d.ts +111 -100
  227. package/dist/api/library/compiler-options.generated.js +1 -1
  228. package/dist/api/library/disk.js +12 -1
  229. package/dist/api/library/enums.generated.d.ts +206 -206
  230. package/dist/api/library/enums.generated.js +206 -206
  231. package/dist/api/library/nodes.js +26 -26
  232. package/package.json +9 -9
  233. package/src/compiler/ast-utilities.ts +99 -7
  234. package/src/compiler/ast.ts +58 -26
  235. package/src/compiler/binder.ts +39 -4
  236. package/src/compiler/character-codes.ts +2 -2
  237. package/src/compiler/checker-calls.ts +79 -9
  238. package/src/compiler/checker-classes.ts +78 -24
  239. package/src/compiler/checker-contextual.ts +6 -1
  240. package/src/compiler/checker-declarations.ts +31 -4
  241. package/src/compiler/checker-declared-types.ts +8 -5
  242. package/src/compiler/checker-decorators.ts +1 -1
  243. package/src/compiler/checker-deprecation.ts +29 -8
  244. package/src/compiler/checker-destructuring.ts +10 -3
  245. package/src/compiler/checker-emit-helpers.ts +1 -0
  246. package/src/compiler/checker-emit-resolver.ts +16 -6
  247. package/src/compiler/checker-expressions.ts +79 -46
  248. package/src/compiler/checker-functions.ts +21 -6
  249. package/src/compiler/checker-generated-code.ts +2 -22
  250. package/src/compiler/checker-grammar.ts +136 -62
  251. package/src/compiler/checker-heritage.ts +22 -21
  252. package/src/compiler/checker-inference.ts +514 -82
  253. package/src/compiler/checker-iteration.ts +18 -31
  254. package/src/compiler/checker-javascript.ts +1 -1
  255. package/src/compiler/checker-jsdoc.ts +50 -27
  256. package/src/compiler/checker-jsx.ts +26 -4
  257. package/src/compiler/checker-members.ts +200 -56
  258. package/src/compiler/checker-modules.ts +332 -65
  259. package/src/compiler/checker-narrowing.ts +98 -19
  260. package/src/compiler/checker-object-literals.ts +3 -0
  261. package/src/compiler/checker-operators.ts +11 -4
  262. package/src/compiler/checker-property-access.ts +7 -2
  263. package/src/compiler/checker-services.ts +39 -12
  264. package/src/compiler/checker-signatures.ts +15 -1
  265. package/src/compiler/checker-source-file.ts +39 -13
  266. package/src/compiler/checker-statements.ts +3 -2
  267. package/src/compiler/checker-symbol-types.ts +29 -6
  268. package/src/compiler/checker-symbols.ts +158 -15
  269. package/src/compiler/checker-type-factory.ts +124 -23
  270. package/src/compiler/checker-type-nodes.ts +46 -3
  271. package/src/compiler/checker-type-operators.ts +83 -26
  272. package/src/compiler/checker-types.ts +147 -4
  273. package/src/compiler/checker-unused.ts +9 -14
  274. package/src/compiler/checker.ts +203 -39
  275. package/src/compiler/command-line.ts +28 -28
  276. package/src/compiler/compile-program.ts +167 -27
  277. package/src/compiler/decoder.ts +13 -4
  278. package/src/compiler/diagnostic-messages.ts +1973 -1892
  279. package/src/compiler/diagnostics.ts +84 -3
  280. package/src/compiler/emitter.ts +57 -8
  281. package/src/compiler/encoder.ts +23 -8
  282. package/src/compiler/file-include.ts +9 -3
  283. package/src/compiler/file-loader.ts +197 -38
  284. package/src/compiler/help.ts +10 -14
  285. package/src/compiler/incremental.ts +165 -30
  286. package/src/compiler/init.ts +2 -7
  287. package/src/compiler/instantiation.ts +77 -22
  288. package/src/compiler/jsdoc.ts +3 -1
  289. package/src/compiler/link-tables.ts +82 -37
  290. package/src/compiler/locales/cs-CZ.ts +1 -1
  291. package/src/compiler/locales/de-DE.ts +1 -1
  292. package/src/compiler/locales/es-ES.ts +1 -1
  293. package/src/compiler/locales/fr-FR.ts +1 -1
  294. package/src/compiler/locales/it-IT.ts +1 -1
  295. package/src/compiler/locales/ja-JP.ts +1 -1
  296. package/src/compiler/locales/ko-KR.ts +1 -1
  297. package/src/compiler/locales/pl-PL.ts +1 -1
  298. package/src/compiler/locales/pt-BR.ts +1 -1
  299. package/src/compiler/locales/ru-RU.ts +1 -1
  300. package/src/compiler/locales/tr-TR.ts +1 -1
  301. package/src/compiler/locales/zh-CN.ts +1 -1
  302. package/src/compiler/locales/zh-TW.ts +1 -1
  303. package/src/compiler/module-resolution.ts +44 -8
  304. package/src/compiler/module-specifiers.ts +62 -20
  305. package/src/compiler/name-resolver.ts +9 -1
  306. package/src/compiler/node-builder-names.ts +236 -54
  307. package/src/compiler/node-builder-pseudo.ts +4 -7
  308. package/src/compiler/node-builder-reuse.ts +5 -4
  309. package/src/compiler/node-builder.ts +130 -31
  310. package/src/compiler/option-declarations.ts +33 -103
  311. package/src/compiler/options.ts +23 -62
  312. package/src/compiler/output-paths.ts +5 -18
  313. package/src/compiler/package-entrypoints.ts +345 -0
  314. package/src/compiler/package-json.ts +4 -4
  315. package/src/compiler/parallel-check.ts +326 -52
  316. package/src/compiler/parallel-emit.ts +320 -0
  317. package/src/compiler/parallel-parse.ts +16 -5
  318. package/src/compiler/parse-thread.ts +3 -0
  319. package/src/compiler/parser.ts +156 -39
  320. package/src/compiler/path.ts +22 -2
  321. package/src/compiler/printer/emit-context.ts +21 -0
  322. package/src/compiler/printer/factory-base.ts +10 -3
  323. package/src/compiler/printer/factory.ts +4 -1
  324. package/src/compiler/printer/helpers.ts +10 -1
  325. package/src/compiler/printer/name-generator.ts +24 -2
  326. package/src/compiler/printer/printer.ts +266 -30
  327. package/src/compiler/printer/utilities.ts +8 -2
  328. package/src/compiler/program-checker.ts +57 -5
  329. package/src/compiler/program-utilities.ts +23 -10
  330. package/src/compiler/program.ts +18 -26
  331. package/src/compiler/pseudo-bigint.ts +17 -0
  332. package/src/compiler/regexp-checker.ts +63 -30
  333. package/src/compiler/relations.ts +240 -77
  334. package/src/compiler/reparser.ts +7 -2
  335. package/src/compiler/scanner.ts +109 -79
  336. package/src/compiler/shared-results.ts +2414 -0
  337. package/src/compiler/show-config.ts +18 -1
  338. package/src/compiler/sourcemap.ts +2 -2
  339. package/src/compiler/symbol-accessibility.ts +26 -3
  340. package/src/compiler/symbol.ts +46 -24
  341. package/src/compiler/syntax-kind.ts +188 -187
  342. package/src/compiler/thread-entry.ts +64 -4
  343. package/src/compiler/transformers/alias-references.ts +123 -4
  344. package/src/compiler/transformers/async.ts +2 -17
  345. package/src/compiler/transformers/class-fields.ts +13 -12
  346. package/src/compiler/transformers/commonjs-module.ts +11 -7
  347. package/src/compiler/transformers/declarations-diagnostics.ts +5 -3
  348. package/src/compiler/transformers/declarations-pseudo.ts +2 -4
  349. package/src/compiler/transformers/declarations-resolver.ts +0 -3
  350. package/src/compiler/transformers/declarations-syntactic.ts +1 -21
  351. package/src/compiler/transformers/declarations.ts +134 -48
  352. package/src/compiler/transformers/decorator-metadata.ts +9 -1
  353. package/src/compiler/transformers/destructuring.ts +4 -3
  354. package/src/compiler/transformers/external-module-info.ts +1 -1
  355. package/src/compiler/transformers/jsx.ts +2 -1
  356. package/src/compiler/transformers/reference-resolver.ts +83 -19
  357. package/src/compiler/transformers/runtime-syntax.ts +6 -1
  358. package/src/compiler/transformers/syntax-facts.ts +2 -7
  359. package/src/compiler/transformers/type-eraser.ts +10 -1
  360. package/src/compiler/transformers/type-serialization.ts +3 -2
  361. package/src/compiler/transformers/visitor-base.ts +2 -1
  362. package/src/compiler/transformers/visitor-hooks.ts +9 -4
  363. package/src/compiler/tsc-build.ts +66 -9
  364. package/src/compiler/tsc-cli.ts +7 -0
  365. package/src/compiler/tsc-compile.ts +284 -4
  366. package/src/compiler/tsc-watch.ts +74 -45
  367. package/src/compiler/tsconfig.ts +176 -19
  368. package/src/compiler/type-printer.ts +36 -2
  369. package/src/compiler/types.ts +2 -1
  370. package/src/library/ast.generated.ts +57 -41
  371. package/src/library/compiler-options.generated.ts +117 -103
  372. package/src/library/disk.ts +10 -1
  373. package/src/library/enums.generated.ts +196 -196
@@ -6,21 +6,21 @@ import { VisitorBase } from './visitor-base.js';
6
6
  export function getFunctionFlags(node) {
7
7
  let flags = 0 /* FunctionFlags.Normal */;
8
8
  switch (node.kind) {
9
- case 263 /* SyntaxKind.FunctionDeclaration */:
10
- case 219 /* SyntaxKind.FunctionExpression */:
11
- case 175 /* SyntaxKind.MethodDeclaration */:
9
+ case 264 /* SyntaxKind.FunctionDeclaration */:
10
+ case 220 /* SyntaxKind.FunctionExpression */:
11
+ case 176 /* SyntaxKind.MethodDeclaration */:
12
12
  if (getAsteriskToken(node) !== undefined)
13
13
  flags |= 1 /* FunctionFlags.Generator */;
14
14
  if (hasAsyncModifier(node))
15
15
  flags |= 2 /* FunctionFlags.Async */;
16
16
  break;
17
- case 220 /* SyntaxKind.ArrowFunction */:
17
+ case 221 /* SyntaxKind.ArrowFunction */:
18
18
  if (hasAsyncModifier(node))
19
19
  flags |= 2 /* FunctionFlags.Async */;
20
20
  break;
21
- case 177 /* SyntaxKind.Constructor */:
22
- case 178 /* SyntaxKind.GetAccessor */:
23
- case 179 /* SyntaxKind.SetAccessor */:
21
+ case 178 /* SyntaxKind.Constructor */:
22
+ case 179 /* SyntaxKind.GetAccessor */:
23
+ case 180 /* SyntaxKind.SetAccessor */:
24
24
  break;
25
25
  default:
26
26
  return 4 /* FunctionFlags.Invalid */;
@@ -35,13 +35,13 @@ function hasAsyncModifier(node) {
35
35
  }
36
36
  export function isFunctionLikeDeclaration(node) {
37
37
  switch (node.kind) {
38
- case 263 /* SyntaxKind.FunctionDeclaration */:
39
- case 175 /* SyntaxKind.MethodDeclaration */:
40
- case 177 /* SyntaxKind.Constructor */:
41
- case 178 /* SyntaxKind.GetAccessor */:
42
- case 179 /* SyntaxKind.SetAccessor */:
43
- case 219 /* SyntaxKind.FunctionExpression */:
44
- case 220 /* SyntaxKind.ArrowFunction */:
38
+ case 264 /* SyntaxKind.FunctionDeclaration */:
39
+ case 176 /* SyntaxKind.MethodDeclaration */:
40
+ case 178 /* SyntaxKind.Constructor */:
41
+ case 179 /* SyntaxKind.GetAccessor */:
42
+ case 180 /* SyntaxKind.SetAccessor */:
43
+ case 220 /* SyntaxKind.FunctionExpression */:
44
+ case 221 /* SyntaxKind.ArrowFunction */:
45
45
  return true;
46
46
  }
47
47
  return false;
@@ -143,26 +143,26 @@ export class SuperAccess extends VisitorBase {
143
143
  /** Replaces super accesses in an async body, which ends up in a generator where `super` is invalid. */
144
144
  visit(node) {
145
145
  switch (node.kind) {
146
- case 214 /* SyntaxKind.CallExpression */:
146
+ case 215 /* SyntaxKind.CallExpression */:
147
147
  if (node instanceof CallExpression && isSuperProperty(node.expression))
148
148
  return this.substituteCallExpression(node);
149
149
  break;
150
- case 212 /* SyntaxKind.PropertyAccessExpression */:
150
+ case 213 /* SyntaxKind.PropertyAccessExpression */:
151
151
  if (node instanceof PropertyAccessExpression && node.expression.kind === 107 /* SyntaxKind.SuperKeyword */)
152
152
  return this.factory.createPropertyAccessExpression(this.superBinding, node.name);
153
153
  break;
154
- case 213 /* SyntaxKind.ElementAccessExpression */:
154
+ case 214 /* SyntaxKind.ElementAccessExpression */:
155
155
  if (node instanceof ElementAccessExpression && node.expression.kind === 107 /* SyntaxKind.SuperKeyword */)
156
156
  return this.createSuperElementAccess(node.argumentExpression);
157
157
  break;
158
- case 219 /* SyntaxKind.FunctionExpression */:
159
- case 263 /* SyntaxKind.FunctionDeclaration */:
160
- case 175 /* SyntaxKind.MethodDeclaration */:
161
- case 178 /* SyntaxKind.GetAccessor */:
162
- case 179 /* SyntaxKind.SetAccessor */:
163
- case 177 /* SyntaxKind.Constructor */:
164
- case 264 /* SyntaxKind.ClassDeclaration */:
165
- case 232 /* SyntaxKind.ClassExpression */:
158
+ case 220 /* SyntaxKind.FunctionExpression */:
159
+ case 264 /* SyntaxKind.FunctionDeclaration */:
160
+ case 176 /* SyntaxKind.MethodDeclaration */:
161
+ case 179 /* SyntaxKind.GetAccessor */:
162
+ case 180 /* SyntaxKind.SetAccessor */:
163
+ case 178 /* SyntaxKind.Constructor */:
164
+ case 265 /* SyntaxKind.ClassDeclaration */:
165
+ case 233 /* SyntaxKind.ClassExpression */:
166
166
  return node;
167
167
  }
168
168
  return this.visitEachChild(node);
@@ -48,6 +48,5 @@ export declare class AsyncFunctions extends Transformer {
48
48
  private transformAsyncFunctionParameterList;
49
49
  private transformAsyncFunctionBody;
50
50
  private transformAsyncFunctionBodyWorker;
51
- private convertToFunctionBlock;
52
51
  private getOriginalIfFunctionLike;
53
52
  }
@@ -1,6 +1,6 @@
1
1
  // ES2017 async functions: the body becomes a generator run by `__awaiter`, with `await` as
2
2
  // `yield`, and `this`, `arguments` and `super` accesses captured outside of the generator.
3
- import { ArrowFunction, BindingPattern, Block, CatchClause, ConstructorDeclaration, ForInOrOfStatement, ForStatement, FunctionDeclaration, FunctionExpression, GetAccessorDeclaration, Identifier, MethodDeclaration, ParameterDeclaration, SetAccessorDeclaration, SourceFile, VariableDeclaration, VariableDeclarationList, VariableStatement, YieldExpression, getBody, getName, getParameters, ArrayLiteralExpression, SpreadElement, ReturnStatement, AwaitExpression, QualifiedName, Token, getLabel, getPropertyName, } from '../ast.js';
3
+ import { ArrowFunction, BindingPattern, Block, CatchClause, ConstructorDeclaration, ForInOrOfStatement, ForStatement, FunctionDeclaration, FunctionExpression, GetAccessorDeclaration, Identifier, MethodDeclaration, ParameterDeclaration, SetAccessorDeclaration, SourceFile, VariableDeclaration, VariableDeclarationList, VariableStatement, YieldExpression, getBody, getName, getParameters, ArrayLiteralExpression, SpreadElement, AwaitExpression, QualifiedName, Token, getLabel, getPropertyName, } from '../ast.js';
4
4
  import { createAwaiterHelper, advancedAsyncSuperHelper, asyncSuperHelper } from '../printer/async-helpers.js';
5
5
  import { SuperAccess, getFunctionFlags, isFunctionLikeDeclaration, isSimpleParameterList, } from './async-utilities.js';
6
6
  import { convertBindingNameToTarget } from './destructuring.js';
@@ -56,24 +56,24 @@ export class AsyncFunctions extends Transformer {
56
56
  switch (node.kind) {
57
57
  case 133 /* SyntaxKind.AsyncKeyword */:
58
58
  return undefined;
59
- case 307 /* SyntaxKind.SourceFile */:
59
+ case 308 /* SyntaxKind.SourceFile */:
60
60
  if (node instanceof SourceFile)
61
61
  return this.visitSourceFile(node);
62
62
  break;
63
- case 224 /* SyntaxKind.AwaitExpression */:
63
+ case 225 /* SyntaxKind.AwaitExpression */:
64
64
  if (node instanceof AwaitExpression)
65
65
  return this.visitAwaitExpression(node);
66
66
  break;
67
- case 220 /* SyntaxKind.ArrowFunction */:
68
- case 175 /* SyntaxKind.MethodDeclaration */:
69
- case 263 /* SyntaxKind.FunctionDeclaration */:
70
- case 219 /* SyntaxKind.FunctionExpression */:
71
- case 178 /* SyntaxKind.GetAccessor */:
72
- case 179 /* SyntaxKind.SetAccessor */:
73
- case 177 /* SyntaxKind.Constructor */:
74
- case 264 /* SyntaxKind.ClassDeclaration */:
75
- case 232 /* SyntaxKind.ClassExpression */: {
76
- const flags = node.kind === 220 /* SyntaxKind.ArrowFunction */
67
+ case 221 /* SyntaxKind.ArrowFunction */:
68
+ case 176 /* SyntaxKind.MethodDeclaration */:
69
+ case 264 /* SyntaxKind.FunctionDeclaration */:
70
+ case 220 /* SyntaxKind.FunctionExpression */:
71
+ case 179 /* SyntaxKind.GetAccessor */:
72
+ case 180 /* SyntaxKind.SetAccessor */:
73
+ case 178 /* SyntaxKind.Constructor */:
74
+ case 265 /* SyntaxKind.ClassDeclaration */:
75
+ case 233 /* SyntaxKind.ClassExpression */: {
76
+ const flags = node.kind === 221 /* SyntaxKind.ArrowFunction */
77
77
  ? 1 /* ContextFlags.NonTopLevel */
78
78
  : 1 /* ContextFlags.NonTopLevel */ | 2 /* ContextFlags.HasLexicalThis */;
79
79
  const added = flags & ~this.contextFlags;
@@ -108,12 +108,12 @@ export class AsyncFunctions extends Transformer {
108
108
  return node;
109
109
  this.superAccess.track(node);
110
110
  switch (node.kind) {
111
- case 219 /* SyntaxKind.FunctionExpression */:
112
- case 263 /* SyntaxKind.FunctionDeclaration */:
113
- case 175 /* SyntaxKind.MethodDeclaration */:
114
- case 178 /* SyntaxKind.GetAccessor */:
115
- case 179 /* SyntaxKind.SetAccessor */:
116
- case 177 /* SyntaxKind.Constructor */:
111
+ case 220 /* SyntaxKind.FunctionExpression */:
112
+ case 264 /* SyntaxKind.FunctionDeclaration */:
113
+ case 176 /* SyntaxKind.MethodDeclaration */:
114
+ case 179 /* SyntaxKind.GetAccessor */:
115
+ case 180 /* SyntaxKind.SetAccessor */:
116
+ case 178 /* SyntaxKind.Constructor */:
117
117
  return node;
118
118
  case 79 /* SyntaxKind.Identifier */:
119
119
  if (this.argumentsBinding !== undefined &&
@@ -140,34 +140,34 @@ export class AsyncFunctions extends Transformer {
140
140
  // Async bodies
141
141
  visitAsyncBodyNode(node) {
142
142
  switch (node.kind) {
143
- case 244 /* SyntaxKind.VariableStatement */:
143
+ case 245 /* SyntaxKind.VariableStatement */:
144
144
  if (node instanceof VariableStatement)
145
145
  return this.visitVariableStatementInAsyncBody(node);
146
146
  break;
147
- case 249 /* SyntaxKind.ForStatement */:
147
+ case 250 /* SyntaxKind.ForStatement */:
148
148
  if (node instanceof ForStatement)
149
149
  return this.visitForStatementInAsyncBody(node);
150
150
  break;
151
- case 250 /* SyntaxKind.ForInStatement */:
152
- case 251 /* SyntaxKind.ForOfStatement */:
151
+ case 251 /* SyntaxKind.ForInStatement */:
152
+ case 252 /* SyntaxKind.ForOfStatement */:
153
153
  if (node instanceof ForInOrOfStatement)
154
154
  return this.visitForInOrOfStatementInAsyncBody(node);
155
155
  break;
156
- case 300 /* SyntaxKind.CatchClause */:
156
+ case 301 /* SyntaxKind.CatchClause */:
157
157
  if (node instanceof CatchClause)
158
158
  return this.visitCatchClauseInAsyncBody(node);
159
159
  break;
160
- case 242 /* SyntaxKind.Block */:
161
- case 256 /* SyntaxKind.SwitchStatement */:
162
- case 270 /* SyntaxKind.CaseBlock */:
163
- case 297 /* SyntaxKind.CaseClause */:
164
- case 298 /* SyntaxKind.DefaultClause */:
165
- case 259 /* SyntaxKind.TryStatement */:
166
- case 247 /* SyntaxKind.DoStatement */:
167
- case 248 /* SyntaxKind.WhileStatement */:
168
- case 246 /* SyntaxKind.IfStatement */:
169
- case 255 /* SyntaxKind.WithStatement */:
170
- case 257 /* SyntaxKind.LabeledStatement */:
160
+ case 243 /* SyntaxKind.Block */:
161
+ case 257 /* SyntaxKind.SwitchStatement */:
162
+ case 271 /* SyntaxKind.CaseBlock */:
163
+ case 298 /* SyntaxKind.CaseClause */:
164
+ case 299 /* SyntaxKind.DefaultClause */:
165
+ case 260 /* SyntaxKind.TryStatement */:
166
+ case 248 /* SyntaxKind.DoStatement */:
167
+ case 249 /* SyntaxKind.WhileStatement */:
168
+ case 247 /* SyntaxKind.IfStatement */:
169
+ case 256 /* SyntaxKind.WithStatement */:
170
+ case 258 /* SyntaxKind.LabeledStatement */:
171
171
  return this.asyncBodyVisitor.visitEachChild(node);
172
172
  }
173
173
  return this.visit(node);
@@ -209,7 +209,7 @@ export class AsyncFunctions extends Transformer {
209
209
  this.isVariableDeclarationListWithCollidingName(initializer)
210
210
  ? this.visitVariableDeclarationListWithCollidingNames(initializer, true)
211
211
  : this.visitNode(initializer);
212
- return this.factory.updateForInOrOfStatement(node, node.kind === 251 /* SyntaxKind.ForOfStatement */ ? asToken(this.visitNode(node.awaitModifier)) : undefined, visitedInitializer, this.visitNode(node.expression), this.asyncBodyVisitor.visitEmbeddedStatement(node.statement));
212
+ return this.factory.updateForInOrOfStatement(node, node.kind === 252 /* SyntaxKind.ForOfStatement */ ? asToken(this.visitNode(node.awaitModifier)) : undefined, visitedInitializer, this.visitNode(node.expression), this.asyncBodyVisitor.visitEmbeddedStatement(node.statement));
213
213
  }
214
214
  visitForStatementInAsyncBody(node) {
215
215
  const initializer = node.initializer;
@@ -365,7 +365,7 @@ export class AsyncFunctions extends Transformer {
365
365
  if (name instanceof BindingPattern) {
366
366
  const elements = name.elements.nodes;
367
367
  for (let i = 0; i < elements.length; i++)
368
- if (elements[i].kind !== 233 /* SyntaxKind.OmittedExpression */ && this.collidesWithParameterName(elements[i]))
368
+ if (elements[i].kind !== 234 /* SyntaxKind.OmittedExpression */ && this.collidesWithParameterName(elements[i]))
369
369
  return true;
370
370
  }
371
371
  return false;
@@ -394,7 +394,7 @@ export class AsyncFunctions extends Transformer {
394
394
  else if (name instanceof BindingPattern) {
395
395
  const elements = name.elements.nodes;
396
396
  for (let i = 0; i < elements.length; i++)
397
- if (elements[i].kind !== 233 /* SyntaxKind.OmittedExpression */)
397
+ if (elements[i].kind !== 234 /* SyntaxKind.OmittedExpression */)
398
398
  this.hoistVariable(elements[i]);
399
399
  }
400
400
  return true;
@@ -452,7 +452,7 @@ export class AsyncFunctions extends Transformer {
452
452
  for (let i = 0; i < list.nodes.length; i++) {
453
453
  const parameter = list.nodes[i];
454
454
  if (parameter.initializer !== undefined || parameter.dotDotDotToken !== undefined) {
455
- if (node.kind === 220 /* SyntaxKind.ArrowFunction */)
455
+ if (node.kind === 221 /* SyntaxKind.ArrowFunction */)
456
456
  parameters.push(factory.created(new ParameterDeclaration(undefined, factory.createToken(25 /* SyntaxKind.DotDotDotToken */), factory.createUniqueName('args', 8 /* GeneratedIdentifierFlags.ReservedInNestedScopes */), undefined, undefined, undefined)));
457
457
  break;
458
458
  }
@@ -464,7 +464,7 @@ export class AsyncFunctions extends Transformer {
464
464
  return result;
465
465
  }
466
466
  transformAsyncFunctionBody(node, outerParameters) {
467
- const isArrow = node.kind === 220 /* SyntaxKind.ArrowFunction */;
467
+ const isArrow = node.kind === 221 /* SyntaxKind.ArrowFunction */;
468
468
  const factory = this.factory;
469
469
  const context = this.context;
470
470
  const superAccess = this.superAccess;
@@ -533,7 +533,9 @@ export class AsyncFunctions extends Transformer {
533
533
  else {
534
534
  result = createAwaiterHelper(factory, hasLexicalThis, argumentsExpression, innerParameters, asyncBody);
535
535
  if (captureLexicalArguments && this.argumentsUsed) {
536
- const block = this.convertToFunctionBlock(result);
536
+ const block = context.convertToFunctionBlock(result, true);
537
+ if (!(result instanceof Block))
538
+ context.setOriginal(block.statements.nodes[0], result);
537
539
  result = factory.updateBlock(block, context.mergeEnvironmentList(block.statements, [this.createCaptureArgumentsStatement()]), block.multiLine);
538
540
  }
539
541
  }
@@ -569,21 +571,6 @@ export class AsyncFunctions extends Transformer {
569
571
  block.end = body.end;
570
572
  return block;
571
573
  }
572
- convertToFunctionBlock(node) {
573
- if (node instanceof Block)
574
- return node;
575
- const factory = this.factory;
576
- const statement = factory.created(new ReturnStatement(node));
577
- statement.pos = node.pos;
578
- statement.end = node.end;
579
- this.context.setOriginal(statement, node);
580
- const block = factory.createBlock([statement], true);
581
- block.statements.pos = node.pos;
582
- block.statements.end = node.end;
583
- block.pos = node.pos;
584
- block.end = node.end;
585
- return block;
586
- }
587
574
  getOriginalIfFunctionLike(node) {
588
575
  const original = this.context.mostOriginal(node);
589
576
  return isFunctionLikeDeclaration(original) ? original : node;
@@ -598,7 +585,7 @@ function recordDeclarationName(node, names) {
598
585
  else if (name instanceof BindingPattern) {
599
586
  const elements = name.elements.nodes;
600
587
  for (let i = 0; i < elements.length; i++)
601
- if (elements[i].kind !== 233 /* SyntaxKind.OmittedExpression */)
588
+ if (elements[i].kind !== 234 /* SyntaxKind.OmittedExpression */)
602
589
  recordDeclarationName(elements[i], names);
603
590
  }
604
591
  return true;
@@ -609,30 +596,30 @@ function isIdentifierNameOrLabel(node) {
609
596
  if (parent === undefined)
610
597
  return false;
611
598
  switch (parent.kind) {
612
- case 173 /* SyntaxKind.PropertyDeclaration */:
613
- case 172 /* SyntaxKind.PropertySignature */:
614
- case 175 /* SyntaxKind.MethodDeclaration */:
615
- case 174 /* SyntaxKind.MethodSignature */:
616
- case 178 /* SyntaxKind.GetAccessor */:
617
- case 179 /* SyntaxKind.SetAccessor */:
618
- case 306 /* SyntaxKind.EnumMember */:
619
- case 303 /* SyntaxKind.PropertyAssignment */:
620
- case 212 /* SyntaxKind.PropertyAccessExpression */:
599
+ case 174 /* SyntaxKind.PropertyDeclaration */:
600
+ case 173 /* SyntaxKind.PropertySignature */:
601
+ case 176 /* SyntaxKind.MethodDeclaration */:
602
+ case 175 /* SyntaxKind.MethodSignature */:
603
+ case 179 /* SyntaxKind.GetAccessor */:
604
+ case 180 /* SyntaxKind.SetAccessor */:
605
+ case 307 /* SyntaxKind.EnumMember */:
606
+ case 304 /* SyntaxKind.PropertyAssignment */:
607
+ case 213 /* SyntaxKind.PropertyAccessExpression */:
621
608
  return getName(parent) === node;
622
- case 167 /* SyntaxKind.QualifiedName */:
609
+ case 168 /* SyntaxKind.QualifiedName */:
623
610
  return parent instanceof QualifiedName && parent.right === node;
624
- case 209 /* SyntaxKind.BindingElement */:
625
- case 277 /* SyntaxKind.ImportSpecifier */:
611
+ case 210 /* SyntaxKind.BindingElement */:
612
+ case 278 /* SyntaxKind.ImportSpecifier */:
626
613
  return getPropertyName(parent) === node;
627
- case 282 /* SyntaxKind.ExportSpecifier */:
628
- case 292 /* SyntaxKind.JsxAttribute */:
629
- case 286 /* SyntaxKind.JsxSelfClosingElement */:
630
- case 287 /* SyntaxKind.JsxOpeningElement */:
631
- case 288 /* SyntaxKind.JsxClosingElement */:
614
+ case 283 /* SyntaxKind.ExportSpecifier */:
615
+ case 293 /* SyntaxKind.JsxAttribute */:
616
+ case 287 /* SyntaxKind.JsxSelfClosingElement */:
617
+ case 288 /* SyntaxKind.JsxOpeningElement */:
618
+ case 289 /* SyntaxKind.JsxClosingElement */:
632
619
  return true;
633
- case 257 /* SyntaxKind.LabeledStatement */:
634
- case 253 /* SyntaxKind.BreakStatement */:
635
- case 252 /* SyntaxKind.ContinueStatement */:
620
+ case 258 /* SyntaxKind.LabeledStatement */:
621
+ case 254 /* SyntaxKind.BreakStatement */:
622
+ case 253 /* SyntaxKind.ContinueStatement */:
636
623
  return getLabel(parent) === node;
637
624
  }
638
625
  return false;
@@ -122,6 +122,7 @@ export declare class ClassFieldsTransformer extends Transformer {
122
122
  /** `super.x` in a static initializer, with the class and its base available. */
123
123
  private staticSuperData;
124
124
  private visitPropertyAccessExpression;
125
+ /** Visits only the expression of a property access, with `visitor`, so that its name is never substituted. */
125
126
  private visitPropertyAccessExpressionForSubstitution;
126
127
  private visitElementAccessExpression;
127
128
  private visitPreOrPostfixUnaryExpression;