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
@@ -8,7 +8,7 @@ export declare class DecoratorMetadata extends Transformer {
8
8
  private readonly legacyDecorators;
9
9
  private readonly facts;
10
10
  private readonly serializer;
11
- /** The class whose members are visited. */
11
+ /** The class, or object literal, whose members are visited. */
12
12
  private parentClass;
13
13
  constructor(context: EmitContext, options: CompilerOptions, resolver: EmitResolver, facts: SyntaxFacts);
14
14
  visit(node: Node): Node | undefined;
@@ -14,7 +14,7 @@ export class DecoratorMetadata extends Transformer {
14
14
  legacyDecorators;
15
15
  facts;
16
16
  serializer;
17
- /** The class whose members are visited. */
17
+ /** The class, or object literal, whose members are visited. */
18
18
  parentClass;
19
19
  constructor(context, options, resolver, facts) {
20
20
  super(context);
@@ -27,38 +27,46 @@ export class DecoratorMetadata extends Transformer {
27
27
  if (!this.facts.has(node, 262144 /* SubtreeFacts.ContainsDecorators */))
28
28
  return node;
29
29
  switch (node.kind) {
30
- case 264 /* SyntaxKind.ClassDeclaration */:
31
- case 232 /* SyntaxKind.ClassExpression */:
30
+ case 265 /* SyntaxKind.ClassDeclaration */:
31
+ case 233 /* SyntaxKind.ClassExpression */:
32
32
  return this.visitClass(node);
33
- case 173 /* SyntaxKind.PropertyDeclaration */:
33
+ case 212 /* SyntaxKind.ObjectLiteralExpression */: {
34
+ // Members of an object literal are not class elements and get no metadata.
35
+ const saved = this.parentClass;
36
+ this.parentClass = node;
37
+ const updated = this.visitEachChild(node);
38
+ this.parentClass = saved;
39
+ return updated;
40
+ }
41
+ case 174 /* SyntaxKind.PropertyDeclaration */:
34
42
  if (node instanceof PropertyDeclaration) {
35
43
  if (!hasDecorators(node))
36
44
  return this.visitEachChild(node);
37
45
  return this.factory.updatePropertyDeclaration(node, this.injectClassElementTypeMetadata(this.visitModifiers(node.modifiers), node), this.visitNode(node.name), node.postfixToken, this.visitNode(node.type), this.visitNode(node.initializer));
38
46
  }
39
47
  break;
40
- case 175 /* SyntaxKind.MethodDeclaration */:
48
+ case 176 /* SyntaxKind.MethodDeclaration */:
41
49
  if (node instanceof MethodDeclaration) {
42
50
  if (!hasDecorators(node) && !hasDecoratedParameter(node))
43
51
  return this.visitEachChild(node);
44
52
  return this.factory.updateMethodDeclaration(node, this.injectClassElementTypeMetadata(this.visitModifiers(node.modifiers), node), node.asteriskToken, this.visitNode(node.name), node.postfixToken, this.visitNodes(node.typeParameters), this.visitNodes(node.parameters), this.visitNode(node.type), this.visitNode(node.fullSignature), this.visitNode(node.body));
45
53
  }
46
54
  break;
47
- case 179 /* SyntaxKind.SetAccessor */:
55
+ case 180 /* SyntaxKind.SetAccessor */:
48
56
  if (node instanceof SetAccessorDeclaration) {
49
57
  if (!hasDecorators(node) && !hasDecoratedParameter(node))
50
58
  return this.visitEachChild(node);
51
59
  return this.factory.updateSetAccessorDeclaration(node, this.injectClassElementTypeMetadata(this.visitModifiers(node.modifiers), node), this.visitNode(node.name), this.visitNodes(node.typeParameters), this.visitNodes(node.parameters), this.visitNode(node.type), this.visitNode(node.fullSignature), this.visitNode(node.body));
52
60
  }
53
61
  break;
54
- case 178 /* SyntaxKind.GetAccessor */:
62
+ case 179 /* SyntaxKind.GetAccessor */:
55
63
  if (node instanceof GetAccessorDeclaration) {
56
64
  if (!hasDecorators(node))
57
65
  return this.visitEachChild(node);
58
66
  return this.factory.updateGetAccessorDeclaration(node, this.injectClassElementTypeMetadata(this.visitModifiers(node.modifiers), node), this.visitNode(node.name), this.visitNodes(node.typeParameters), this.visitNodes(node.parameters), this.visitNode(node.type), this.visitNode(node.fullSignature), this.visitNode(node.body));
59
67
  }
60
68
  break;
61
- case 307 /* SyntaxKind.SourceFile */:
69
+ case 308 /* SyntaxKind.SourceFile */:
62
70
  if (node instanceof SourceFile) {
63
71
  this.parentClass = undefined;
64
72
  this.serializer.currentLexicalScope = node;
@@ -70,9 +78,9 @@ export class DecoratorMetadata extends Transformer {
70
78
  return updated;
71
79
  }
72
80
  break;
73
- case 269 /* SyntaxKind.ModuleBlock */:
74
- case 242 /* SyntaxKind.Block */:
75
- case 270 /* SyntaxKind.CaseBlock */: {
81
+ case 270 /* SyntaxKind.ModuleBlock */:
82
+ case 243 /* SyntaxKind.Block */:
83
+ case 271 /* SyntaxKind.CaseBlock */: {
76
84
  const saved = this.serializer.currentLexicalScope;
77
85
  this.serializer.currentLexicalScope = node;
78
86
  const updated = this.visitEachChild(node);
@@ -166,15 +174,15 @@ export class DecoratorMetadata extends Transformer {
166
174
  const serializer = this.serializer;
167
175
  serializer.currentNameScope = container;
168
176
  switch (node.kind) {
169
- case 175 /* SyntaxKind.MethodDeclaration */:
170
- case 178 /* SyntaxKind.GetAccessor */:
171
- case 179 /* SyntaxKind.SetAccessor */:
172
- case 173 /* SyntaxKind.PropertyDeclaration */:
177
+ case 176 /* SyntaxKind.MethodDeclaration */:
178
+ case 179 /* SyntaxKind.GetAccessor */:
179
+ case 180 /* SyntaxKind.SetAccessor */:
180
+ case 174 /* SyntaxKind.PropertyDeclaration */:
173
181
  decorators.push(factory.created(new Decorator(createMetadataHelper(factory, 'design:type', serializer.serializeTypeOfNode(node, container)))));
174
182
  }
175
183
  if (shouldAddParamTypesMetadata(node))
176
184
  decorators.push(factory.created(new Decorator(createMetadataHelper(factory, 'design:paramtypes', serializer.serializeParameterTypesOfNode(node, container)))));
177
- if (node.kind === 175 /* SyntaxKind.MethodDeclaration */)
185
+ if (node.kind === 176 /* SyntaxKind.MethodDeclaration */)
178
186
  decorators.push(factory.created(new Decorator(createMetadataHelper(factory, 'design:returntype', serializer.serializeReturnTypeOfNode(node)))));
179
187
  serializer.currentNameScope = undefined;
180
188
  return decorators;
@@ -182,12 +190,12 @@ export class DecoratorMetadata extends Transformer {
182
190
  }
183
191
  function shouldAddParamTypesMetadata(node) {
184
192
  switch (node.kind) {
185
- case 264 /* SyntaxKind.ClassDeclaration */:
186
- case 232 /* SyntaxKind.ClassExpression */:
193
+ case 265 /* SyntaxKind.ClassDeclaration */:
194
+ case 233 /* SyntaxKind.ClassExpression */:
187
195
  return getFirstConstructorWithBody(node) !== undefined;
188
- case 175 /* SyntaxKind.MethodDeclaration */:
189
- case 178 /* SyntaxKind.GetAccessor */:
190
- case 179 /* SyntaxKind.SetAccessor */:
196
+ case 176 /* SyntaxKind.MethodDeclaration */:
197
+ case 179 /* SyntaxKind.GetAccessor */:
198
+ case 180 /* SyntaxKind.SetAccessor */:
191
199
  return true;
192
200
  }
193
201
  return false;
@@ -228,15 +236,15 @@ export class MetadataSerializer {
228
236
  serializeTypeOfNode(node, container) {
229
237
  const factory = this.context.factory;
230
238
  switch (node.kind) {
231
- case 173 /* SyntaxKind.PropertyDeclaration */:
232
- case 170 /* SyntaxKind.Parameter */:
239
+ case 174 /* SyntaxKind.PropertyDeclaration */:
240
+ case 171 /* SyntaxKind.Parameter */:
233
241
  return this.serializeTypeNode(getType(node));
234
- case 178 /* SyntaxKind.GetAccessor */:
235
- case 179 /* SyntaxKind.SetAccessor */:
242
+ case 179 /* SyntaxKind.GetAccessor */:
243
+ case 180 /* SyntaxKind.SetAccessor */:
236
244
  return this.serializeTypeNode(getAccessorTypeNode(node, container));
237
- case 264 /* SyntaxKind.ClassDeclaration */:
238
- case 232 /* SyntaxKind.ClassExpression */:
239
- case 175 /* SyntaxKind.MethodDeclaration */:
245
+ case 265 /* SyntaxKind.ClassDeclaration */:
246
+ case 233 /* SyntaxKind.ClassExpression */:
247
+ case 176 /* SyntaxKind.MethodDeclaration */:
240
248
  return factory.createIdentifier('Function');
241
249
  }
242
250
  return factory.createVoidZero();
@@ -282,24 +290,24 @@ export class MetadataSerializer {
282
290
  case 157 /* SyntaxKind.UndefinedKeyword */:
283
291
  case 146 /* SyntaxKind.NeverKeyword */:
284
292
  return factory.createVoidZero();
285
- case 185 /* SyntaxKind.FunctionType */:
286
- case 186 /* SyntaxKind.ConstructorType */:
293
+ case 186 /* SyntaxKind.FunctionType */:
294
+ case 187 /* SyntaxKind.ConstructorType */:
287
295
  return factory.createIdentifier('Function');
288
- case 189 /* SyntaxKind.ArrayType */:
289
- case 190 /* SyntaxKind.TupleType */:
296
+ case 190 /* SyntaxKind.ArrayType */:
297
+ case 191 /* SyntaxKind.TupleType */:
290
298
  return factory.createIdentifier('Array');
291
- case 183 /* SyntaxKind.TypePredicate */:
299
+ case 184 /* SyntaxKind.TypePredicate */:
292
300
  if (node instanceof TypePredicateNode && node.assertsModifier !== undefined)
293
301
  return factory.createVoidZero();
294
302
  return factory.createIdentifier('Boolean');
295
303
  case 135 /* SyntaxKind.BooleanKeyword */:
296
304
  return factory.createIdentifier('Boolean');
297
- case 204 /* SyntaxKind.TemplateLiteralType */:
305
+ case 205 /* SyntaxKind.TemplateLiteralType */:
298
306
  case 154 /* SyntaxKind.StringKeyword */:
299
307
  return factory.createIdentifier('String');
300
308
  case 151 /* SyntaxKind.ObjectKeyword */:
301
309
  return factory.createIdentifier('Object');
302
- case 202 /* SyntaxKind.LiteralType */:
310
+ case 203 /* SyntaxKind.LiteralType */:
303
311
  if (node instanceof LiteralTypeNode)
304
312
  return this.serializeLiteralOfLiteralTypeNode(node.literal);
305
313
  break;
@@ -309,19 +317,19 @@ export class MetadataSerializer {
309
317
  return this.serializeBigIntConstructor();
310
318
  case 155 /* SyntaxKind.SymbolKeyword */:
311
319
  return factory.createIdentifier('Symbol');
312
- case 184 /* SyntaxKind.TypeReference */:
320
+ case 185 /* SyntaxKind.TypeReference */:
313
321
  if (node instanceof TypeReferenceNode)
314
322
  return this.serializeTypeReferenceNode(node);
315
323
  break;
316
- case 194 /* SyntaxKind.IntersectionType */:
324
+ case 195 /* SyntaxKind.IntersectionType */:
317
325
  if (node instanceof IntersectionTypeNode)
318
326
  return this.serializeUnionOrIntersectionConstituents(node.types.nodes, true);
319
327
  break;
320
- case 193 /* SyntaxKind.UnionType */:
328
+ case 194 /* SyntaxKind.UnionType */:
321
329
  if (node instanceof UnionTypeNode)
322
330
  return this.serializeUnionOrIntersectionConstituents(node.types.nodes, false);
323
331
  break;
324
- case 195 /* SyntaxKind.ConditionalType */:
332
+ case 196 /* SyntaxKind.ConditionalType */:
325
333
  if (node instanceof ConditionalTypeNode) {
326
334
  const saved = this.serializingConditionalTypeBranch;
327
335
  this.serializingConditionalTypeBranch = true;
@@ -330,20 +338,20 @@ export class MetadataSerializer {
330
338
  return result;
331
339
  }
332
340
  break;
333
- case 199 /* SyntaxKind.TypeOperator */:
341
+ case 200 /* SyntaxKind.TypeOperator */:
334
342
  // `unique symbol` falls back to `Object` as in tsgo.
335
343
  if (node instanceof TypeOperatorNode && node.operator === 148 /* SyntaxKind.ReadonlyKeyword */)
336
344
  return this.serializeTypeNode(node.type);
337
345
  break;
338
- case 311 /* SyntaxKind.JSDocNullableType */:
346
+ case 312 /* SyntaxKind.JSDocNullableType */:
339
347
  if (node instanceof JSDocNullableType)
340
348
  return this.serializeTypeNode(node.type);
341
349
  break;
342
- case 312 /* SyntaxKind.JSDocNonNullableType */:
350
+ case 313 /* SyntaxKind.JSDocNonNullableType */:
343
351
  if (node instanceof JSDocNonNullableType)
344
352
  return this.serializeTypeNode(node.type);
345
353
  break;
346
- case 313 /* SyntaxKind.JSDocOptionalType */:
354
+ case 314 /* SyntaxKind.JSDocOptionalType */:
347
355
  if (node instanceof JSDocOptionalType)
348
356
  return this.serializeTypeNode(node.type);
349
357
  break;
@@ -387,7 +395,7 @@ export class MetadataSerializer {
387
395
  case 10 /* SyntaxKind.StringLiteral */:
388
396
  case 14 /* SyntaxKind.NoSubstitutionTemplateLiteral */:
389
397
  return factory.createIdentifier('String');
390
- case 225 /* SyntaxKind.PrefixUnaryExpression */:
398
+ case 226 /* SyntaxKind.PrefixUnaryExpression */:
391
399
  if (node instanceof PrefixUnaryExpression)
392
400
  return this.serializeLiteralOfLiteralTypeNode(node.operand);
393
401
  break;
@@ -542,7 +550,7 @@ function getAccessorTypeNode(node, container) {
542
550
  }
543
551
  /** A getter's metadata uses the parameters of its setter. */
544
552
  function getParametersOfDecoratedDeclaration(node, container) {
545
- if (node.kind === 178 /* SyntaxKind.GetAccessor */) {
553
+ if (node.kind === 179 /* SyntaxKind.GetAccessor */) {
546
554
  const accessors = getAllAccessorDeclarations(getMembers(container).nodes, node);
547
555
  if (accessors.setAccessor !== undefined)
548
556
  return getParameters(accessors.setAccessor).nodes;
@@ -18,7 +18,7 @@ export function getDecorators(node) {
18
18
  return decorators;
19
19
  }
20
20
  export function isAccessor(node) {
21
- return node.kind === 178 /* SyntaxKind.GetAccessor */ || node.kind === 179 /* SyntaxKind.SetAccessor */;
21
+ return node.kind === 179 /* SyntaxKind.GetAccessor */ || node.kind === 180 /* SyntaxKind.SetAccessor */;
22
22
  }
23
23
  export function getFirstConstructorWithBody(node) {
24
24
  const members = getMembers(node);
@@ -26,7 +26,7 @@ export function getFirstConstructorWithBody(node) {
26
26
  return undefined;
27
27
  for (let i = 0; i < members.nodes.length; i++) {
28
28
  const member = members.nodes[i];
29
- if (member.kind === 177 /* SyntaxKind.Constructor */ && nodeIsPresent(getBody(member)))
29
+ if (member.kind === 178 /* SyntaxKind.Constructor */ && nodeIsPresent(getBody(member)))
30
30
  return member;
31
31
  }
32
32
  return undefined;
@@ -38,34 +38,34 @@ export function nodeCanBeDecorated(legacy, node, parent, grandparent) {
38
38
  if (legacy && name !== undefined && name.kind === 80 /* SyntaxKind.PrivateIdentifier */)
39
39
  return false;
40
40
  switch (node.kind) {
41
- case 264 /* SyntaxKind.ClassDeclaration */:
41
+ case 265 /* SyntaxKind.ClassDeclaration */:
42
42
  return true;
43
- case 232 /* SyntaxKind.ClassExpression */:
43
+ case 233 /* SyntaxKind.ClassExpression */:
44
44
  return !legacy;
45
- case 173 /* SyntaxKind.PropertyDeclaration */:
45
+ case 174 /* SyntaxKind.PropertyDeclaration */:
46
46
  return (parent !== undefined &&
47
47
  (legacy
48
- ? parent.kind === 264 /* SyntaxKind.ClassDeclaration */
48
+ ? parent.kind === 265 /* SyntaxKind.ClassDeclaration */
49
49
  : isClassLike(parent) && !hasSyntacticModifier(node, 64 /* ModifierFlags.Abstract */ | 128 /* ModifierFlags.Ambient */)));
50
- case 178 /* SyntaxKind.GetAccessor */:
51
- case 179 /* SyntaxKind.SetAccessor */:
52
- case 175 /* SyntaxKind.MethodDeclaration */:
50
+ case 179 /* SyntaxKind.GetAccessor */:
51
+ case 180 /* SyntaxKind.SetAccessor */:
52
+ case 176 /* SyntaxKind.MethodDeclaration */:
53
53
  return (parent !== undefined &&
54
54
  getBody(node) !== undefined &&
55
- (legacy ? parent.kind === 264 /* SyntaxKind.ClassDeclaration */ : isClassLike(parent)));
56
- case 170 /* SyntaxKind.Parameter */: {
55
+ (legacy ? parent.kind === 265 /* SyntaxKind.ClassDeclaration */ : isClassLike(parent)));
56
+ case 171 /* SyntaxKind.Parameter */: {
57
57
  // Parameter decorators aren't standard yet.
58
58
  if (!legacy || parent === undefined || getBody(parent) === undefined)
59
59
  return false;
60
- if (parent.kind !== 177 /* SyntaxKind.Constructor */ &&
61
- parent.kind !== 175 /* SyntaxKind.MethodDeclaration */ &&
62
- parent.kind !== 179 /* SyntaxKind.SetAccessor */)
60
+ if (parent.kind !== 178 /* SyntaxKind.Constructor */ &&
61
+ parent.kind !== 176 /* SyntaxKind.MethodDeclaration */ &&
62
+ parent.kind !== 180 /* SyntaxKind.SetAccessor */)
63
63
  return false;
64
64
  const parameters = getParameters(parent);
65
65
  const thisParameter = parameters !== undefined && parameters.nodes.length > 0 && isThisParameter(parameters.nodes[0])
66
66
  ? parameters.nodes[0]
67
67
  : undefined;
68
- return thisParameter !== node && grandparent !== undefined && grandparent.kind === 264 /* SyntaxKind.ClassDeclaration */;
68
+ return thisParameter !== node && grandparent !== undefined && grandparent.kind === 265 /* SyntaxKind.ClassDeclaration */;
69
69
  }
70
70
  }
71
71
  return false;
@@ -79,17 +79,17 @@ export function nodeOrChildIsDecorated(legacy, node, parent, grandparent) {
79
79
  /** Whether a member of a class, or a parameter of a method, setter or constructor, is decorated. */
80
80
  export function childIsDecorated(legacy, node, parent) {
81
81
  switch (node.kind) {
82
- case 264 /* SyntaxKind.ClassDeclaration */:
83
- case 232 /* SyntaxKind.ClassExpression */: {
82
+ case 265 /* SyntaxKind.ClassDeclaration */:
83
+ case 233 /* SyntaxKind.ClassExpression */: {
84
84
  const members = getMembers(node).nodes;
85
85
  for (let i = 0; i < members.length; i++)
86
86
  if (nodeOrChildIsDecorated(legacy, members[i], node, parent))
87
87
  return true;
88
88
  return false;
89
89
  }
90
- case 175 /* SyntaxKind.MethodDeclaration */:
91
- case 179 /* SyntaxKind.SetAccessor */:
92
- case 177 /* SyntaxKind.Constructor */: {
90
+ case 176 /* SyntaxKind.MethodDeclaration */:
91
+ case 180 /* SyntaxKind.SetAccessor */:
92
+ case 178 /* SyntaxKind.Constructor */: {
93
93
  const parameters = getParameters(node).nodes;
94
94
  for (let i = 0; i < parameters.length; i++)
95
95
  if (nodeIsDecorated(legacy, parameters[i], node, parent))
@@ -115,7 +115,7 @@ export function classElementOrClassElementParameterIsDecorated(legacy, node, par
115
115
  if (accessors.setAccessor !== undefined)
116
116
  parameters = getParameters(accessors.setAccessor).nodes;
117
117
  }
118
- else if (node.kind === 175 /* SyntaxKind.MethodDeclaration */)
118
+ else if (node.kind === 176 /* SyntaxKind.MethodDeclaration */)
119
119
  parameters = getParameters(node).nodes;
120
120
  if (nodeIsDecorated(legacy, node, parent, undefined))
121
121
  return true;
@@ -150,7 +150,7 @@ export class AllAccessorDeclarations {
150
150
  }
151
151
  /** `accessor` and the other accessor among `members` with the same name and staticness. */
152
152
  export function getAllAccessorDeclarations(members, accessor) {
153
- const otherKind = accessor.kind === 179 /* SyntaxKind.SetAccessor */ ? 178 /* SyntaxKind.GetAccessor */ : 179 /* SyntaxKind.SetAccessor */;
153
+ const otherKind = accessor.kind === 180 /* SyntaxKind.SetAccessor */ ? 179 /* SyntaxKind.GetAccessor */ : 180 /* SyntaxKind.SetAccessor */;
154
154
  let other = undefined;
155
155
  // Dynamic names only match through the checker's symbols.
156
156
  if (!hasDynamicName(accessor)) {
@@ -167,7 +167,7 @@ export function getAllAccessorDeclarations(members, accessor) {
167
167
  const otherFirst = other !== undefined && other.pos < accessor.pos;
168
168
  const first = otherFirst ? other : accessor;
169
169
  const second = otherFirst ? accessor : other;
170
- return accessor.kind === 179 /* SyntaxKind.SetAccessor */
170
+ return accessor.kind === 180 /* SyntaxKind.SetAccessor */
171
171
  ? new AllAccessorDeclarations(first, second, other, accessor)
172
172
  : new AllAccessorDeclarations(first, second, accessor, other);
173
173
  }
@@ -187,7 +187,7 @@ export function getPropertyNameForPropertyNameNode(name) {
187
187
  }
188
188
  /** The range of `node` after its modifiers, for source maps of what replaces it. */
189
189
  export function moveRangePastModifiers(node) {
190
- if (node.kind === 173 /* SyntaxKind.PropertyDeclaration */ || node.kind === 175 /* SyntaxKind.MethodDeclaration */)
190
+ if (node.kind === 174 /* SyntaxKind.PropertyDeclaration */ || node.kind === 176 /* SyntaxKind.MethodDeclaration */)
191
191
  return new TextRange(getName(node).pos, node.end);
192
192
  const modifiers = getModifiers(node);
193
193
  if (modifiers !== undefined && modifiers.nodes.length > 0) {
@@ -124,7 +124,8 @@ class Flattener {
124
124
  if (this.hoistTempVariables) {
125
125
  const value = factory.inlineExpressions(this.expressions);
126
126
  this.expressions = [];
127
- this.emitBinding(temp, value, -1, -1, undefined);
127
+ // tsgo gives this declaration the empty range at the start of the file (core.TextRange{}), not a synthesized one.
128
+ this.emitBinding(temp, value, 0, 0, undefined);
128
129
  }
129
130
  else {
130
131
  this.visitor.context.addVariableDeclaration(temp);
@@ -189,7 +190,7 @@ class Flattener {
189
190
  const factory = this.visitor.factory;
190
191
  const list = factory.createNodeList(elements);
191
192
  if (this.binding)
192
- return factory.created(new BindingPattern(object ? 207 /* SyntaxKind.ObjectBindingPattern */ : 208 /* SyntaxKind.ArrayBindingPattern */, list));
193
+ return factory.created(new BindingPattern(object ? 208 /* SyntaxKind.ObjectBindingPattern */ : 209 /* SyntaxKind.ArrayBindingPattern */, list));
193
194
  if (object)
194
195
  return factory.created(new ObjectLiteralExpression(list, false));
195
196
  return factory.created(new ArrayLiteralExpression(list, false));
@@ -255,9 +256,9 @@ class Flattener {
255
256
  else if (value === undefined)
256
257
  value = this.visitor.factory.createVoidZero();
257
258
  }
258
- if (target instanceof ObjectLiteralExpression || target.kind === 207 /* SyntaxKind.ObjectBindingPattern */)
259
+ if (target instanceof ObjectLiteralExpression || target.kind === 208 /* SyntaxKind.ObjectBindingPattern */)
259
260
  return this.flattenObjectPattern(element, target, value, pos, end);
260
- if (target instanceof ArrayLiteralExpression || target.kind === 208 /* SyntaxKind.ArrayBindingPattern */)
261
+ if (target instanceof ArrayLiteralExpression || target.kind === 209 /* SyntaxKind.ArrayBindingPattern */)
261
262
  return this.flattenArrayPattern(element, target, value, pos, end);
262
263
  return this.emitBindingOrAssignment(target, value, pos, end, element);
263
264
  }
@@ -392,10 +393,10 @@ function isEmptyPattern(node) {
392
393
  }
393
394
  function isPattern(node) {
394
395
  switch (node.kind) {
395
- case 207 /* SyntaxKind.ObjectBindingPattern */:
396
- case 208 /* SyntaxKind.ArrayBindingPattern */:
397
- case 211 /* SyntaxKind.ObjectLiteralExpression */:
398
- case 210 /* SyntaxKind.ArrayLiteralExpression */:
396
+ case 208 /* SyntaxKind.ObjectBindingPattern */:
397
+ case 209 /* SyntaxKind.ArrayBindingPattern */:
398
+ case 212 /* SyntaxKind.ObjectLiteralExpression */:
399
+ case 211 /* SyntaxKind.ArrayLiteralExpression */:
399
400
  return true;
400
401
  }
401
402
  return false;
@@ -409,12 +410,12 @@ export function isSimpleCopiableExpression(node) {
409
410
  case 79 /* SyntaxKind.Identifier */:
410
411
  return true;
411
412
  }
412
- return node.kind >= 82 /* SyntaxKind.FirstKeyword */ && node.kind <= 166 /* SyntaxKind.LastKeyword */;
413
+ return node.kind >= 82 /* SyntaxKind.FirstKeyword */ && node.kind <= 167 /* SyntaxKind.LastKeyword */;
413
414
  }
414
415
  function isDeclarationBindingElement(node) {
415
- return (node.kind === 261 /* SyntaxKind.VariableDeclaration */ ||
416
- node.kind === 170 /* SyntaxKind.Parameter */ ||
417
- node.kind === 209 /* SyntaxKind.BindingElement */);
416
+ return (node.kind === 262 /* SyntaxKind.VariableDeclaration */ ||
417
+ node.kind === 171 /* SyntaxKind.Parameter */ ||
418
+ node.kind === 210 /* SyntaxKind.BindingElement */);
418
419
  }
419
420
  /** Whether an element binds identifiers to literal property names with simple defaults. */
420
421
  function isSimpleBindingOrAssignmentElement(element) {
@@ -454,9 +455,9 @@ export function getTargetOfBindingOrAssignmentElement(element) {
454
455
  return element.name;
455
456
  if (element instanceof SpreadAssignment)
456
457
  return getTargetOfBindingOrAssignmentElement(element.expression);
457
- if (element.kind === 175 /* SyntaxKind.MethodDeclaration */ || element.kind === 178 /* SyntaxKind.GetAccessor */)
458
+ if (element.kind === 176 /* SyntaxKind.MethodDeclaration */ || element.kind === 179 /* SyntaxKind.GetAccessor */)
458
459
  return undefined;
459
- if (element.kind === 179 /* SyntaxKind.SetAccessor */)
460
+ if (element.kind === 180 /* SyntaxKind.SetAccessor */)
460
461
  return undefined;
461
462
  if (element instanceof BinaryExpression && isAssignmentExpression(element, true))
462
463
  return getTargetOfBindingOrAssignmentElement(element.left);
@@ -522,7 +523,7 @@ function isPropertyName(node) {
522
523
  case 80 /* SyntaxKind.PrivateIdentifier */:
523
524
  case 10 /* SyntaxKind.StringLiteral */:
524
525
  case 8 /* SyntaxKind.NumericLiteral */:
525
- case 168 /* SyntaxKind.ComputedPropertyName */:
526
+ case 169 /* SyntaxKind.ComputedPropertyName */:
526
527
  case 9 /* SyntaxKind.BigIntLiteral */:
527
528
  return true;
528
529
  }
@@ -576,7 +577,7 @@ export function convertBindingNameToTarget(visitor, name) {
576
577
  const context = visitor.context;
577
578
  const elements = name.elements.nodes;
578
579
  const converted = [];
579
- const object = name.kind === 207 /* SyntaxKind.ObjectBindingPattern */;
580
+ const object = name.kind === 208 /* SyntaxKind.ObjectBindingPattern */;
580
581
  for (const element of elements) {
581
582
  if (element instanceof BindingElement)
582
583
  converted.push(object
@@ -604,9 +605,9 @@ function convertToArrayElement(visitor, element) {
604
605
  const name = element.name;
605
606
  if (name === undefined)
606
607
  return converted(visitor, factory.created(new OmittedExpression()), element);
607
- if (element.dotDotDotToken !== undefined)
608
- return converted(visitor, factory.created(new SpreadElement(name)), element);
609
608
  const target = convertBindingNameToTarget(visitor, name);
609
+ if (element.dotDotDotToken !== undefined)
610
+ return converted(visitor, factory.created(new SpreadElement(target)), element);
610
611
  if (element.initializer === undefined)
611
612
  return target;
612
613
  return converted(visitor, factory.createAssignment(target, element.initializer), element);
@@ -91,7 +91,7 @@ export class SyntacticEmitResolver extends EmitResolver {
91
91
  isTopLevelValueImportEqualsWithEntityName(node) {
92
92
  if (!(node instanceof ImportEqualsDeclaration) ||
93
93
  node.isTypeOnly ||
94
- node.moduleReference.kind === 284 /* SyntaxKind.ExternalModuleReference */ ||
94
+ node.moduleReference.kind === 285 /* SyntaxKind.ExternalModuleReference */ ||
95
95
  nodeIsMissing(node.moduleReference) ||
96
96
  !(node.parent instanceof SourceFile))
97
97
  return false;