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.
- package/README.md +2 -2
- package/bin/tsc-ts.js +70 -1
- package/dist/api/compiler/ast-utilities.d.ts +19 -1
- package/dist/api/compiler/ast-utilities.js +180 -95
- package/dist/api/compiler/ast.d.ts +22 -15
- package/dist/api/compiler/ast.js +1026 -995
- package/dist/api/compiler/astnav.js +15 -15
- package/dist/api/compiler/binder-utilities.js +186 -186
- package/dist/api/compiler/binder.js +290 -263
- package/dist/api/compiler/character-codes.js +2 -2
- package/dist/api/compiler/checker-calls.js +178 -124
- package/dist/api/compiler/checker-classes.d.ts +14 -3
- package/dist/api/compiler/checker-classes.js +134 -90
- package/dist/api/compiler/checker-contextual.js +64 -61
- package/dist/api/compiler/checker-declaration-order.js +79 -79
- package/dist/api/compiler/checker-declarations.d.ts +1 -0
- package/dist/api/compiler/checker-declarations.js +160 -136
- package/dist/api/compiler/checker-declared-types.js +67 -65
- package/dist/api/compiler/checker-decorators.js +77 -77
- package/dist/api/compiler/checker-deprecation.d.ts +8 -3
- package/dist/api/compiler/checker-deprecation.js +76 -55
- package/dist/api/compiler/checker-destructuring.js +47 -45
- package/dist/api/compiler/checker-elaboration.js +24 -24
- package/dist/api/compiler/checker-emit-helpers.js +4 -4
- package/dist/api/compiler/checker-emit-resolver.d.ts +4 -2
- package/dist/api/compiler/checker-emit-resolver.js +25 -13
- package/dist/api/compiler/checker-evaluator.js +9 -9
- package/dist/api/compiler/checker-expressions.js +244 -211
- package/dist/api/compiler/checker-functions.js +113 -107
- package/dist/api/compiler/checker-generated-code.d.ts +0 -11
- package/dist/api/compiler/checker-generated-code.js +28 -52
- package/dist/api/compiler/checker-grammar.d.ts +1 -0
- package/dist/api/compiler/checker-grammar.js +472 -440
- package/dist/api/compiler/checker-heritage.js +91 -93
- package/dist/api/compiler/checker-inference.d.ts +77 -5
- package/dist/api/compiler/checker-inference.js +487 -107
- package/dist/api/compiler/checker-iteration.d.ts +0 -10
- package/dist/api/compiler/checker-iteration.js +35 -52
- package/dist/api/compiler/checker-javascript.js +14 -14
- package/dist/api/compiler/checker-jsdoc.d.ts +8 -10
- package/dist/api/compiler/checker-jsdoc.js +67 -58
- package/dist/api/compiler/checker-jsx.js +105 -88
- package/dist/api/compiler/checker-members.d.ts +9 -2
- package/dist/api/compiler/checker-members.js +212 -75
- package/dist/api/compiler/checker-modules.d.ts +15 -6
- package/dist/api/compiler/checker-modules.js +469 -309
- package/dist/api/compiler/checker-narrowing.js +273 -189
- package/dist/api/compiler/checker-object-literals.js +25 -22
- package/dist/api/compiler/checker-operators.js +126 -118
- package/dist/api/compiler/checker-overloads.js +27 -27
- package/dist/api/compiler/checker-property-access.js +59 -55
- package/dist/api/compiler/checker-services.d.ts +1 -0
- package/dist/api/compiler/checker-services.js +222 -210
- package/dist/api/compiler/checker-signatures.js +65 -49
- package/dist/api/compiler/checker-source-file.d.ts +5 -0
- package/dist/api/compiler/checker-source-file.js +154 -130
- package/dist/api/compiler/checker-statements.js +33 -32
- package/dist/api/compiler/checker-super.js +50 -50
- package/dist/api/compiler/checker-symbol-types.js +109 -93
- package/dist/api/compiler/checker-symbols.d.ts +13 -1
- package/dist/api/compiler/checker-symbols.js +264 -149
- package/dist/api/compiler/checker-type-factory.d.ts +5 -0
- package/dist/api/compiler/checker-type-factory.js +145 -36
- package/dist/api/compiler/checker-type-nodes.d.ts +1 -0
- package/dist/api/compiler/checker-type-nodes.js +179 -141
- package/dist/api/compiler/checker-type-operators.d.ts +2 -0
- package/dist/api/compiler/checker-type-operators.js +110 -63
- package/dist/api/compiler/checker-types.d.ts +80 -3
- package/dist/api/compiler/checker-types.js +121 -2
- package/dist/api/compiler/checker-unused.js +114 -118
- package/dist/api/compiler/checker-utilities.js +11 -11
- package/dist/api/compiler/checker.d.ts +104 -31
- package/dist/api/compiler/checker.js +181 -33
- package/dist/api/compiler/command-line.d.ts +1 -3
- package/dist/api/compiler/command-line.js +47 -44
- package/dist/api/compiler/compile-program.d.ts +42 -3
- package/dist/api/compiler/compile-program.js +139 -27
- package/dist/api/compiler/diagnostic-messages.d.ts +1849 -1774
- package/dist/api/compiler/diagnostic-messages.js +128 -122
- package/dist/api/compiler/diagnostics.d.ts +22 -0
- package/dist/api/compiler/diagnostics.js +93 -11
- package/dist/api/compiler/emitter.d.ts +7 -1
- package/dist/api/compiler/emitter.js +53 -11
- package/dist/api/compiler/file-include.d.ts +2 -1
- package/dist/api/compiler/file-include.js +11 -7
- package/dist/api/compiler/file-loader.d.ts +21 -1
- package/dist/api/compiler/file-loader.js +201 -48
- package/dist/api/compiler/instantiation.d.ts +7 -0
- package/dist/api/compiler/instantiation.js +101 -49
- package/dist/api/compiler/jsdoc.js +23 -23
- package/dist/api/compiler/link-tables.d.ts +48 -18
- package/dist/api/compiler/link-tables.js +80 -37
- package/dist/api/compiler/locales/cs-CZ.d.ts +1 -1
- package/dist/api/compiler/locales/cs-CZ.js +1 -1
- package/dist/api/compiler/locales/de-DE.d.ts +1 -1
- package/dist/api/compiler/locales/de-DE.js +1 -1
- package/dist/api/compiler/locales/es-ES.d.ts +1 -1
- package/dist/api/compiler/locales/es-ES.js +1 -1
- package/dist/api/compiler/locales/fr-FR.d.ts +1 -1
- package/dist/api/compiler/locales/fr-FR.js +1 -1
- package/dist/api/compiler/locales/it-IT.d.ts +1 -1
- package/dist/api/compiler/locales/it-IT.js +1 -1
- package/dist/api/compiler/locales/ja-JP.d.ts +1 -1
- package/dist/api/compiler/locales/ja-JP.js +1 -1
- package/dist/api/compiler/locales/ko-KR.d.ts +1 -1
- package/dist/api/compiler/locales/ko-KR.js +1 -1
- package/dist/api/compiler/locales/pl-PL.d.ts +1 -1
- package/dist/api/compiler/locales/pl-PL.js +1 -1
- package/dist/api/compiler/locales/pt-BR.d.ts +1 -1
- package/dist/api/compiler/locales/pt-BR.js +1 -1
- package/dist/api/compiler/locales/ru-RU.d.ts +1 -1
- package/dist/api/compiler/locales/ru-RU.js +1 -1
- package/dist/api/compiler/locales/tr-TR.d.ts +1 -1
- package/dist/api/compiler/locales/tr-TR.js +1 -1
- package/dist/api/compiler/locales/zh-CN.d.ts +1 -1
- package/dist/api/compiler/locales/zh-CN.js +1 -1
- package/dist/api/compiler/locales/zh-TW.d.ts +1 -1
- package/dist/api/compiler/locales/zh-TW.js +1 -1
- package/dist/api/compiler/module-resolution-types.js +6 -6
- package/dist/api/compiler/module-resolution.d.ts +10 -1
- package/dist/api/compiler/module-resolution.js +115 -84
- package/dist/api/compiler/module-specifiers.d.ts +15 -0
- package/dist/api/compiler/module-specifiers.js +24 -18
- package/dist/api/compiler/name-resolver.js +74 -65
- package/dist/api/compiler/node-builder-names.d.ts +11 -3
- package/dist/api/compiler/node-builder-names.js +210 -90
- package/dist/api/compiler/node-builder-pseudo.js +29 -31
- package/dist/api/compiler/node-builder-reuse.js +23 -22
- package/dist/api/compiler/node-builder.d.ts +18 -1
- package/dist/api/compiler/node-builder.js +191 -102
- package/dist/api/compiler/option-declarations.d.ts +2 -6
- package/dist/api/compiler/option-declarations.js +315 -375
- package/dist/api/compiler/options.d.ts +15 -33
- package/dist/api/compiler/options.js +21 -54
- package/dist/api/compiler/output-paths.d.ts +4 -1
- package/dist/api/compiler/output-paths.js +6 -11
- package/dist/api/compiler/package-json.d.ts +3 -3
- package/dist/api/compiler/package-json.js +11 -10
- package/dist/api/compiler/parallel-parse.d.ts +3 -2
- package/dist/api/compiler/parallel-parse.js +17 -5
- package/dist/api/compiler/parser.d.ts +40 -19
- package/dist/api/compiler/parser.js +308 -216
- package/dist/api/compiler/path.d.ts +9 -0
- package/dist/api/compiler/path.js +20 -3
- package/dist/api/compiler/printer/emit-context.d.ts +5 -1
- package/dist/api/compiler/printer/emit-context.js +20 -1
- package/dist/api/compiler/printer/factory-base.d.ts +2 -2
- package/dist/api/compiler/printer/factory-base.js +7 -3
- package/dist/api/compiler/printer/factory.js +3 -1
- package/dist/api/compiler/printer/helpers.js +10 -1
- package/dist/api/compiler/printer/name-generator.d.ts +1 -1
- package/dist/api/compiler/printer/name-generator.js +35 -16
- package/dist/api/compiler/printer/printer.d.ts +49 -2
- package/dist/api/compiler/printer/printer.js +539 -293
- package/dist/api/compiler/printer/utilities.js +149 -147
- package/dist/api/compiler/program-checker.d.ts +12 -2
- package/dist/api/compiler/program-checker.js +88 -34
- package/dist/api/compiler/program-utilities.d.ts +3 -1
- package/dist/api/compiler/program-utilities.js +28 -15
- package/dist/api/compiler/program.d.ts +4 -6
- package/dist/api/compiler/program.js +74 -87
- package/dist/api/compiler/pseudo-bigint.d.ts +2 -0
- package/dist/api/compiler/pseudo-bigint.js +18 -0
- package/dist/api/compiler/regexp-checker.d.ts +1 -1
- package/dist/api/compiler/regexp-checker.js +93 -76
- package/dist/api/compiler/relations.d.ts +27 -4
- package/dist/api/compiler/relations.js +347 -180
- package/dist/api/compiler/reparser.js +60 -56
- package/dist/api/compiler/scanner.d.ts +19 -2
- package/dist/api/compiler/scanner.js +123 -108
- package/dist/api/compiler/shared-results.d.ts +463 -0
- package/dist/api/compiler/shared-results.js +2128 -0
- package/dist/api/compiler/sourcemap.js +2 -2
- package/dist/api/compiler/symbol-accessibility.js +87 -74
- package/dist/api/compiler/symbol.d.ts +23 -14
- package/dist/api/compiler/symbol.js +23 -11
- package/dist/api/compiler/syntax-kind.d.ts +198 -197
- package/dist/api/compiler/transformers/alias-references.js +247 -139
- package/dist/api/compiler/transformers/async-utilities.js +25 -25
- package/dist/api/compiler/transformers/async.d.ts +0 -1
- package/dist/api/compiler/transformers/async.js +64 -77
- package/dist/api/compiler/transformers/class-fields.d.ts +1 -0
- package/dist/api/compiler/transformers/class-fields.js +81 -78
- package/dist/api/compiler/transformers/commonjs-module.js +18 -15
- package/dist/api/compiler/transformers/const-enum-inliner.js +1 -1
- package/dist/api/compiler/transformers/declarations-diagnostics.js +247 -244
- package/dist/api/compiler/transformers/declarations-pseudo.js +100 -100
- package/dist/api/compiler/transformers/declarations-resolver.d.ts +0 -3
- package/dist/api/compiler/transformers/declarations-syntactic.d.ts +1 -2
- package/dist/api/compiler/transformers/declarations-syntactic.js +134 -156
- package/dist/api/compiler/transformers/declarations-tracker.js +18 -18
- package/dist/api/compiler/transformers/declarations.d.ts +4 -1
- package/dist/api/compiler/transformers/declarations.js +305 -238
- package/dist/api/compiler/transformers/decorator-metadata.d.ts +1 -1
- package/dist/api/compiler/transformers/decorator-metadata.js +53 -45
- package/dist/api/compiler/transformers/decorator-utilities.js +24 -24
- package/dist/api/compiler/transformers/destructuring.js +19 -18
- package/dist/api/compiler/transformers/emit-resolver.js +1 -1
- package/dist/api/compiler/transformers/es-decorators.js +55 -55
- package/dist/api/compiler/transformers/external-module-info.js +3 -3
- package/dist/api/compiler/transformers/for-await.js +25 -25
- package/dist/api/compiler/transformers/import-elision.js +14 -14
- package/dist/api/compiler/transformers/jsx.js +12 -12
- package/dist/api/compiler/transformers/legacy-decorators.js +17 -17
- package/dist/api/compiler/transformers/module.js +8 -8
- package/dist/api/compiler/transformers/named-evaluation.js +4 -4
- package/dist/api/compiler/transformers/object-rest-spread.js +20 -20
- package/dist/api/compiler/transformers/optional-chain.js +10 -10
- package/dist/api/compiler/transformers/reference-resolver.d.ts +12 -1
- package/dist/api/compiler/transformers/reference-resolver.js +131 -69
- package/dist/api/compiler/transformers/runtime-syntax.js +35 -31
- package/dist/api/compiler/transformers/subtree-facts.js +47 -47
- package/dist/api/compiler/transformers/syntax-facts.js +56 -58
- package/dist/api/compiler/transformers/type-eraser.js +73 -66
- package/dist/api/compiler/transformers/type-serialization.js +24 -24
- package/dist/api/compiler/transformers/using.js +12 -12
- package/dist/api/compiler/transformers/utilities.js +77 -77
- package/dist/api/compiler/transformers/visitor-base.js +172 -172
- package/dist/api/compiler/transformers/visitor-hooks.js +6 -2
- package/dist/api/compiler/tsconfig.d.ts +10 -2
- package/dist/api/compiler/tsconfig.js +136 -48
- package/dist/api/compiler/type-printer.js +40 -3
- package/dist/api/compiler/types.d.ts +2 -1
- package/dist/api/library/ast.generated.d.ts +42 -39
- package/dist/api/library/ast.generated.js +1 -1
- package/dist/api/library/compiler-options.generated.d.ts +111 -100
- package/dist/api/library/compiler-options.generated.js +1 -1
- package/dist/api/library/disk.js +12 -1
- package/dist/api/library/enums.generated.d.ts +206 -206
- package/dist/api/library/enums.generated.js +206 -206
- package/dist/api/library/nodes.js +26 -26
- package/package.json +9 -9
- package/src/compiler/ast-utilities.ts +99 -7
- package/src/compiler/ast.ts +58 -26
- package/src/compiler/binder.ts +39 -4
- package/src/compiler/character-codes.ts +2 -2
- package/src/compiler/checker-calls.ts +79 -9
- package/src/compiler/checker-classes.ts +78 -24
- package/src/compiler/checker-contextual.ts +6 -1
- package/src/compiler/checker-declarations.ts +31 -4
- package/src/compiler/checker-declared-types.ts +8 -5
- package/src/compiler/checker-decorators.ts +1 -1
- package/src/compiler/checker-deprecation.ts +29 -8
- package/src/compiler/checker-destructuring.ts +10 -3
- package/src/compiler/checker-emit-helpers.ts +1 -0
- package/src/compiler/checker-emit-resolver.ts +16 -6
- package/src/compiler/checker-expressions.ts +79 -46
- package/src/compiler/checker-functions.ts +21 -6
- package/src/compiler/checker-generated-code.ts +2 -22
- package/src/compiler/checker-grammar.ts +136 -62
- package/src/compiler/checker-heritage.ts +22 -21
- package/src/compiler/checker-inference.ts +514 -82
- package/src/compiler/checker-iteration.ts +18 -31
- package/src/compiler/checker-javascript.ts +1 -1
- package/src/compiler/checker-jsdoc.ts +50 -27
- package/src/compiler/checker-jsx.ts +26 -4
- package/src/compiler/checker-members.ts +200 -56
- package/src/compiler/checker-modules.ts +332 -65
- package/src/compiler/checker-narrowing.ts +98 -19
- package/src/compiler/checker-object-literals.ts +3 -0
- package/src/compiler/checker-operators.ts +11 -4
- package/src/compiler/checker-property-access.ts +7 -2
- package/src/compiler/checker-services.ts +39 -12
- package/src/compiler/checker-signatures.ts +15 -1
- package/src/compiler/checker-source-file.ts +39 -13
- package/src/compiler/checker-statements.ts +3 -2
- package/src/compiler/checker-symbol-types.ts +29 -6
- package/src/compiler/checker-symbols.ts +158 -15
- package/src/compiler/checker-type-factory.ts +124 -23
- package/src/compiler/checker-type-nodes.ts +46 -3
- package/src/compiler/checker-type-operators.ts +83 -26
- package/src/compiler/checker-types.ts +147 -4
- package/src/compiler/checker-unused.ts +9 -14
- package/src/compiler/checker.ts +203 -39
- package/src/compiler/command-line.ts +28 -28
- package/src/compiler/compile-program.ts +167 -27
- package/src/compiler/decoder.ts +13 -4
- package/src/compiler/diagnostic-messages.ts +1973 -1892
- package/src/compiler/diagnostics.ts +84 -3
- package/src/compiler/emitter.ts +57 -8
- package/src/compiler/encoder.ts +23 -8
- package/src/compiler/file-include.ts +9 -3
- package/src/compiler/file-loader.ts +197 -38
- package/src/compiler/help.ts +10 -14
- package/src/compiler/incremental.ts +165 -30
- package/src/compiler/init.ts +2 -7
- package/src/compiler/instantiation.ts +77 -22
- package/src/compiler/jsdoc.ts +3 -1
- package/src/compiler/link-tables.ts +82 -37
- package/src/compiler/locales/cs-CZ.ts +1 -1
- package/src/compiler/locales/de-DE.ts +1 -1
- package/src/compiler/locales/es-ES.ts +1 -1
- package/src/compiler/locales/fr-FR.ts +1 -1
- package/src/compiler/locales/it-IT.ts +1 -1
- package/src/compiler/locales/ja-JP.ts +1 -1
- package/src/compiler/locales/ko-KR.ts +1 -1
- package/src/compiler/locales/pl-PL.ts +1 -1
- package/src/compiler/locales/pt-BR.ts +1 -1
- package/src/compiler/locales/ru-RU.ts +1 -1
- package/src/compiler/locales/tr-TR.ts +1 -1
- package/src/compiler/locales/zh-CN.ts +1 -1
- package/src/compiler/locales/zh-TW.ts +1 -1
- package/src/compiler/module-resolution.ts +44 -8
- package/src/compiler/module-specifiers.ts +62 -20
- package/src/compiler/name-resolver.ts +9 -1
- package/src/compiler/node-builder-names.ts +236 -54
- package/src/compiler/node-builder-pseudo.ts +4 -7
- package/src/compiler/node-builder-reuse.ts +5 -4
- package/src/compiler/node-builder.ts +130 -31
- package/src/compiler/option-declarations.ts +33 -103
- package/src/compiler/options.ts +23 -62
- package/src/compiler/output-paths.ts +5 -18
- package/src/compiler/package-entrypoints.ts +345 -0
- package/src/compiler/package-json.ts +4 -4
- package/src/compiler/parallel-check.ts +326 -52
- package/src/compiler/parallel-emit.ts +320 -0
- package/src/compiler/parallel-parse.ts +16 -5
- package/src/compiler/parse-thread.ts +3 -0
- package/src/compiler/parser.ts +156 -39
- package/src/compiler/path.ts +22 -2
- package/src/compiler/printer/emit-context.ts +21 -0
- package/src/compiler/printer/factory-base.ts +10 -3
- package/src/compiler/printer/factory.ts +4 -1
- package/src/compiler/printer/helpers.ts +10 -1
- package/src/compiler/printer/name-generator.ts +24 -2
- package/src/compiler/printer/printer.ts +266 -30
- package/src/compiler/printer/utilities.ts +8 -2
- package/src/compiler/program-checker.ts +57 -5
- package/src/compiler/program-utilities.ts +23 -10
- package/src/compiler/program.ts +18 -26
- package/src/compiler/pseudo-bigint.ts +17 -0
- package/src/compiler/regexp-checker.ts +63 -30
- package/src/compiler/relations.ts +240 -77
- package/src/compiler/reparser.ts +7 -2
- package/src/compiler/scanner.ts +109 -79
- package/src/compiler/shared-results.ts +2414 -0
- package/src/compiler/show-config.ts +18 -1
- package/src/compiler/sourcemap.ts +2 -2
- package/src/compiler/symbol-accessibility.ts +26 -3
- package/src/compiler/symbol.ts +46 -24
- package/src/compiler/syntax-kind.ts +188 -187
- package/src/compiler/thread-entry.ts +64 -4
- package/src/compiler/transformers/alias-references.ts +123 -4
- package/src/compiler/transformers/async.ts +2 -17
- package/src/compiler/transformers/class-fields.ts +13 -12
- package/src/compiler/transformers/commonjs-module.ts +11 -7
- package/src/compiler/transformers/declarations-diagnostics.ts +5 -3
- package/src/compiler/transformers/declarations-pseudo.ts +2 -4
- package/src/compiler/transformers/declarations-resolver.ts +0 -3
- package/src/compiler/transformers/declarations-syntactic.ts +1 -21
- package/src/compiler/transformers/declarations.ts +134 -48
- package/src/compiler/transformers/decorator-metadata.ts +9 -1
- package/src/compiler/transformers/destructuring.ts +4 -3
- package/src/compiler/transformers/external-module-info.ts +1 -1
- package/src/compiler/transformers/jsx.ts +2 -1
- package/src/compiler/transformers/reference-resolver.ts +83 -19
- package/src/compiler/transformers/runtime-syntax.ts +6 -1
- package/src/compiler/transformers/syntax-facts.ts +2 -7
- package/src/compiler/transformers/type-eraser.ts +10 -1
- package/src/compiler/transformers/type-serialization.ts +3 -2
- package/src/compiler/transformers/visitor-base.ts +2 -1
- package/src/compiler/transformers/visitor-hooks.ts +9 -4
- package/src/compiler/tsc-build.ts +66 -9
- package/src/compiler/tsc-cli.ts +7 -0
- package/src/compiler/tsc-compile.ts +284 -4
- package/src/compiler/tsc-watch.ts +74 -45
- package/src/compiler/tsconfig.ts +176 -19
- package/src/compiler/type-printer.ts +36 -2
- package/src/compiler/types.ts +2 -1
- package/src/library/ast.generated.ts +57 -41
- package/src/library/compiler-options.generated.ts +117 -103
- package/src/library/disk.ts +10 -1
- 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
|
|
31
|
-
case
|
|
30
|
+
case 265 /* SyntaxKind.ClassDeclaration */:
|
|
31
|
+
case 233 /* SyntaxKind.ClassExpression */:
|
|
32
32
|
return this.visitClass(node);
|
|
33
|
-
case
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
74
|
-
case
|
|
75
|
-
case
|
|
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
|
|
170
|
-
case
|
|
171
|
-
case
|
|
172
|
-
case
|
|
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 ===
|
|
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
|
|
186
|
-
case
|
|
193
|
+
case 265 /* SyntaxKind.ClassDeclaration */:
|
|
194
|
+
case 233 /* SyntaxKind.ClassExpression */:
|
|
187
195
|
return getFirstConstructorWithBody(node) !== undefined;
|
|
188
|
-
case
|
|
189
|
-
case
|
|
190
|
-
case
|
|
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
|
|
232
|
-
case
|
|
239
|
+
case 174 /* SyntaxKind.PropertyDeclaration */:
|
|
240
|
+
case 171 /* SyntaxKind.Parameter */:
|
|
233
241
|
return this.serializeTypeNode(getType(node));
|
|
234
|
-
case
|
|
235
|
-
case
|
|
242
|
+
case 179 /* SyntaxKind.GetAccessor */:
|
|
243
|
+
case 180 /* SyntaxKind.SetAccessor */:
|
|
236
244
|
return this.serializeTypeNode(getAccessorTypeNode(node, container));
|
|
237
|
-
case
|
|
238
|
-
case
|
|
239
|
-
case
|
|
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
|
|
286
|
-
case
|
|
293
|
+
case 186 /* SyntaxKind.FunctionType */:
|
|
294
|
+
case 187 /* SyntaxKind.ConstructorType */:
|
|
287
295
|
return factory.createIdentifier('Function');
|
|
288
|
-
case
|
|
289
|
-
case
|
|
296
|
+
case 190 /* SyntaxKind.ArrayType */:
|
|
297
|
+
case 191 /* SyntaxKind.TupleType */:
|
|
290
298
|
return factory.createIdentifier('Array');
|
|
291
|
-
case
|
|
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
|
|
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
|
|
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
|
|
320
|
+
case 185 /* SyntaxKind.TypeReference */:
|
|
313
321
|
if (node instanceof TypeReferenceNode)
|
|
314
322
|
return this.serializeTypeReferenceNode(node);
|
|
315
323
|
break;
|
|
316
|
-
case
|
|
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
|
|
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
|
|
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
|
|
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
|
|
346
|
+
case 312 /* SyntaxKind.JSDocNullableType */:
|
|
339
347
|
if (node instanceof JSDocNullableType)
|
|
340
348
|
return this.serializeTypeNode(node.type);
|
|
341
349
|
break;
|
|
342
|
-
case
|
|
350
|
+
case 313 /* SyntaxKind.JSDocNonNullableType */:
|
|
343
351
|
if (node instanceof JSDocNonNullableType)
|
|
344
352
|
return this.serializeTypeNode(node.type);
|
|
345
353
|
break;
|
|
346
|
-
case
|
|
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
|
|
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 ===
|
|
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 ===
|
|
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 ===
|
|
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
|
|
41
|
+
case 265 /* SyntaxKind.ClassDeclaration */:
|
|
42
42
|
return true;
|
|
43
|
-
case
|
|
43
|
+
case 233 /* SyntaxKind.ClassExpression */:
|
|
44
44
|
return !legacy;
|
|
45
|
-
case
|
|
45
|
+
case 174 /* SyntaxKind.PropertyDeclaration */:
|
|
46
46
|
return (parent !== undefined &&
|
|
47
47
|
(legacy
|
|
48
|
-
? parent.kind ===
|
|
48
|
+
? parent.kind === 265 /* SyntaxKind.ClassDeclaration */
|
|
49
49
|
: isClassLike(parent) && !hasSyntacticModifier(node, 64 /* ModifierFlags.Abstract */ | 128 /* ModifierFlags.Ambient */)));
|
|
50
|
-
case
|
|
51
|
-
case
|
|
52
|
-
case
|
|
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 ===
|
|
56
|
-
case
|
|
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 !==
|
|
61
|
-
parent.kind !==
|
|
62
|
-
parent.kind !==
|
|
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 ===
|
|
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
|
|
83
|
-
case
|
|
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
|
|
91
|
-
case
|
|
92
|
-
case
|
|
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 ===
|
|
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 ===
|
|
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 ===
|
|
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 ===
|
|
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.
|
|
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 ?
|
|
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 ===
|
|
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 ===
|
|
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
|
|
396
|
-
case
|
|
397
|
-
case
|
|
398
|
-
case
|
|
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 <=
|
|
413
|
+
return node.kind >= 82 /* SyntaxKind.FirstKeyword */ && node.kind <= 167 /* SyntaxKind.LastKeyword */;
|
|
413
414
|
}
|
|
414
415
|
function isDeclarationBindingElement(node) {
|
|
415
|
-
return (node.kind ===
|
|
416
|
-
node.kind ===
|
|
417
|
-
node.kind ===
|
|
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 ===
|
|
458
|
+
if (element.kind === 176 /* SyntaxKind.MethodDeclaration */ || element.kind === 179 /* SyntaxKind.GetAccessor */)
|
|
458
459
|
return undefined;
|
|
459
|
-
if (element.kind ===
|
|
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
|
|
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 ===
|
|
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 ===
|
|
94
|
+
node.moduleReference.kind === 285 /* SyntaxKind.ExternalModuleReference */ ||
|
|
95
95
|
nodeIsMissing(node.moduleReference) ||
|
|
96
96
|
!(node.parent instanceof SourceFile))
|
|
97
97
|
return false;
|