tsc-ts 0.0.10 → 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 +1 -1
- 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 +20 -15
- package/dist/api/compiler/ast.js +1023 -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 +173 -123
- 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 +469 -438
- 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 -113
- 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 +210 -74
- 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 +137 -34
- 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 +93 -31
- package/dist/api/compiler/checker.js +143 -35
- 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 +19 -4
- package/dist/api/compiler/compile-program.js +45 -26
- package/dist/api/compiler/diagnostic-messages.d.ts +1849 -1774
- package/dist/api/compiler/diagnostic-messages.js +128 -122
- package/dist/api/compiler/diagnostics.js +7 -7
- 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 +10 -0
- package/dist/api/compiler/file-loader.js +138 -41
- 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/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 +3 -1
- package/dist/api/compiler/printer/emit-context.js +16 -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 +1 -0
- package/dist/api/compiler/printer/printer.js +303 -281
- package/dist/api/compiler/printer/utilities.js +149 -147
- package/dist/api/compiler/program-checker.d.ts +8 -2
- package/dist/api/compiler/program-checker.js +84 -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 +2 -0
- package/dist/api/compiler/program.js +69 -57
- 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 +337 -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 +22 -13
- package/dist/api/compiler/symbol.js +15 -1
- 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 +55 -26
- package/src/compiler/binder.ts +39 -4
- package/src/compiler/character-codes.ts +2 -2
- package/src/compiler/checker-calls.ts +76 -8
- 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 +133 -60
- package/src/compiler/checker-heritage.ts +22 -21
- package/src/compiler/checker-inference.ts +514 -87
- 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 +197 -55
- 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 +120 -21
- 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 +168 -41
- package/src/compiler/command-line.ts +28 -28
- package/src/compiler/compile-program.ts +51 -25
- package/src/compiler/decoder.ts +13 -4
- package/src/compiler/diagnostic-messages.ts +1973 -1892
- 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 +139 -32
- package/src/compiler/help.ts +10 -14
- package/src/compiler/incremental.ts +86 -18
- 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 +197 -8
- package/src/compiler/parallel-emit.ts +1 -1
- package/src/compiler/parser.ts +156 -39
- package/src/compiler/path.ts +22 -2
- package/src/compiler/printer/emit-context.ts +16 -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 +35 -14
- package/src/compiler/printer/utilities.ts +8 -2
- package/src/compiler/program-checker.ts +53 -5
- package/src/compiler/program-utilities.ts +23 -10
- package/src/compiler/program.ts +13 -1
- package/src/compiler/pseudo-bigint.ts +17 -0
- package/src/compiler/regexp-checker.ts +63 -30
- package/src/compiler/relations.ts +233 -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 +31 -14
- package/src/compiler/syntax-kind.ts +188 -187
- package/src/compiler/thread-entry.ts +19 -2
- 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 +3 -0
- package/src/compiler/tsc-cli.ts +2 -0
- package/src/compiler/tsc-compile.ts +7 -2
- 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
|
@@ -6,21 +6,21 @@ import { VisitorBase } from './visitor-base.js';
|
|
|
6
6
|
export function getFunctionFlags(node) {
|
|
7
7
|
let flags = 0 /* FunctionFlags.Normal */;
|
|
8
8
|
switch (node.kind) {
|
|
9
|
-
case
|
|
10
|
-
case
|
|
11
|
-
case
|
|
9
|
+
case 264 /* SyntaxKind.FunctionDeclaration */:
|
|
10
|
+
case 220 /* SyntaxKind.FunctionExpression */:
|
|
11
|
+
case 176 /* SyntaxKind.MethodDeclaration */:
|
|
12
12
|
if (getAsteriskToken(node) !== undefined)
|
|
13
13
|
flags |= 1 /* FunctionFlags.Generator */;
|
|
14
14
|
if (hasAsyncModifier(node))
|
|
15
15
|
flags |= 2 /* FunctionFlags.Async */;
|
|
16
16
|
break;
|
|
17
|
-
case
|
|
17
|
+
case 221 /* SyntaxKind.ArrowFunction */:
|
|
18
18
|
if (hasAsyncModifier(node))
|
|
19
19
|
flags |= 2 /* FunctionFlags.Async */;
|
|
20
20
|
break;
|
|
21
|
-
case
|
|
22
|
-
case
|
|
23
|
-
case
|
|
21
|
+
case 178 /* SyntaxKind.Constructor */:
|
|
22
|
+
case 179 /* SyntaxKind.GetAccessor */:
|
|
23
|
+
case 180 /* SyntaxKind.SetAccessor */:
|
|
24
24
|
break;
|
|
25
25
|
default:
|
|
26
26
|
return 4 /* FunctionFlags.Invalid */;
|
|
@@ -35,13 +35,13 @@ function hasAsyncModifier(node) {
|
|
|
35
35
|
}
|
|
36
36
|
export function isFunctionLikeDeclaration(node) {
|
|
37
37
|
switch (node.kind) {
|
|
38
|
-
case
|
|
39
|
-
case
|
|
40
|
-
case
|
|
41
|
-
case
|
|
42
|
-
case
|
|
43
|
-
case
|
|
44
|
-
case
|
|
38
|
+
case 264 /* SyntaxKind.FunctionDeclaration */:
|
|
39
|
+
case 176 /* SyntaxKind.MethodDeclaration */:
|
|
40
|
+
case 178 /* SyntaxKind.Constructor */:
|
|
41
|
+
case 179 /* SyntaxKind.GetAccessor */:
|
|
42
|
+
case 180 /* SyntaxKind.SetAccessor */:
|
|
43
|
+
case 220 /* SyntaxKind.FunctionExpression */:
|
|
44
|
+
case 221 /* SyntaxKind.ArrowFunction */:
|
|
45
45
|
return true;
|
|
46
46
|
}
|
|
47
47
|
return false;
|
|
@@ -143,26 +143,26 @@ export class SuperAccess extends VisitorBase {
|
|
|
143
143
|
/** Replaces super accesses in an async body, which ends up in a generator where `super` is invalid. */
|
|
144
144
|
visit(node) {
|
|
145
145
|
switch (node.kind) {
|
|
146
|
-
case
|
|
146
|
+
case 215 /* SyntaxKind.CallExpression */:
|
|
147
147
|
if (node instanceof CallExpression && isSuperProperty(node.expression))
|
|
148
148
|
return this.substituteCallExpression(node);
|
|
149
149
|
break;
|
|
150
|
-
case
|
|
150
|
+
case 213 /* SyntaxKind.PropertyAccessExpression */:
|
|
151
151
|
if (node instanceof PropertyAccessExpression && node.expression.kind === 107 /* SyntaxKind.SuperKeyword */)
|
|
152
152
|
return this.factory.createPropertyAccessExpression(this.superBinding, node.name);
|
|
153
153
|
break;
|
|
154
|
-
case
|
|
154
|
+
case 214 /* SyntaxKind.ElementAccessExpression */:
|
|
155
155
|
if (node instanceof ElementAccessExpression && node.expression.kind === 107 /* SyntaxKind.SuperKeyword */)
|
|
156
156
|
return this.createSuperElementAccess(node.argumentExpression);
|
|
157
157
|
break;
|
|
158
|
-
case
|
|
159
|
-
case
|
|
160
|
-
case
|
|
161
|
-
case
|
|
162
|
-
case
|
|
163
|
-
case
|
|
164
|
-
case
|
|
165
|
-
case
|
|
158
|
+
case 220 /* SyntaxKind.FunctionExpression */:
|
|
159
|
+
case 264 /* SyntaxKind.FunctionDeclaration */:
|
|
160
|
+
case 176 /* SyntaxKind.MethodDeclaration */:
|
|
161
|
+
case 179 /* SyntaxKind.GetAccessor */:
|
|
162
|
+
case 180 /* SyntaxKind.SetAccessor */:
|
|
163
|
+
case 178 /* SyntaxKind.Constructor */:
|
|
164
|
+
case 265 /* SyntaxKind.ClassDeclaration */:
|
|
165
|
+
case 233 /* SyntaxKind.ClassExpression */:
|
|
166
166
|
return node;
|
|
167
167
|
}
|
|
168
168
|
return this.visitEachChild(node);
|
|
@@ -48,6 +48,5 @@ export declare class AsyncFunctions extends Transformer {
|
|
|
48
48
|
private transformAsyncFunctionParameterList;
|
|
49
49
|
private transformAsyncFunctionBody;
|
|
50
50
|
private transformAsyncFunctionBodyWorker;
|
|
51
|
-
private convertToFunctionBlock;
|
|
52
51
|
private getOriginalIfFunctionLike;
|
|
53
52
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// ES2017 async functions: the body becomes a generator run by `__awaiter`, with `await` as
|
|
2
2
|
// `yield`, and `this`, `arguments` and `super` accesses captured outside of the generator.
|
|
3
|
-
import { ArrowFunction, BindingPattern, Block, CatchClause, ConstructorDeclaration, ForInOrOfStatement, ForStatement, FunctionDeclaration, FunctionExpression, GetAccessorDeclaration, Identifier, MethodDeclaration, ParameterDeclaration, SetAccessorDeclaration, SourceFile, VariableDeclaration, VariableDeclarationList, VariableStatement, YieldExpression, getBody, getName, getParameters, ArrayLiteralExpression, SpreadElement,
|
|
3
|
+
import { ArrowFunction, BindingPattern, Block, CatchClause, ConstructorDeclaration, ForInOrOfStatement, ForStatement, FunctionDeclaration, FunctionExpression, GetAccessorDeclaration, Identifier, MethodDeclaration, ParameterDeclaration, SetAccessorDeclaration, SourceFile, VariableDeclaration, VariableDeclarationList, VariableStatement, YieldExpression, getBody, getName, getParameters, ArrayLiteralExpression, SpreadElement, AwaitExpression, QualifiedName, Token, getLabel, getPropertyName, } from '../ast.js';
|
|
4
4
|
import { createAwaiterHelper, advancedAsyncSuperHelper, asyncSuperHelper } from '../printer/async-helpers.js';
|
|
5
5
|
import { SuperAccess, getFunctionFlags, isFunctionLikeDeclaration, isSimpleParameterList, } from './async-utilities.js';
|
|
6
6
|
import { convertBindingNameToTarget } from './destructuring.js';
|
|
@@ -56,24 +56,24 @@ export class AsyncFunctions extends Transformer {
|
|
|
56
56
|
switch (node.kind) {
|
|
57
57
|
case 133 /* SyntaxKind.AsyncKeyword */:
|
|
58
58
|
return undefined;
|
|
59
|
-
case
|
|
59
|
+
case 308 /* SyntaxKind.SourceFile */:
|
|
60
60
|
if (node instanceof SourceFile)
|
|
61
61
|
return this.visitSourceFile(node);
|
|
62
62
|
break;
|
|
63
|
-
case
|
|
63
|
+
case 225 /* SyntaxKind.AwaitExpression */:
|
|
64
64
|
if (node instanceof AwaitExpression)
|
|
65
65
|
return this.visitAwaitExpression(node);
|
|
66
66
|
break;
|
|
67
|
-
case
|
|
68
|
-
case
|
|
69
|
-
case
|
|
70
|
-
case
|
|
71
|
-
case
|
|
72
|
-
case
|
|
73
|
-
case
|
|
74
|
-
case
|
|
75
|
-
case
|
|
76
|
-
const flags = node.kind ===
|
|
67
|
+
case 221 /* SyntaxKind.ArrowFunction */:
|
|
68
|
+
case 176 /* SyntaxKind.MethodDeclaration */:
|
|
69
|
+
case 264 /* SyntaxKind.FunctionDeclaration */:
|
|
70
|
+
case 220 /* SyntaxKind.FunctionExpression */:
|
|
71
|
+
case 179 /* SyntaxKind.GetAccessor */:
|
|
72
|
+
case 180 /* SyntaxKind.SetAccessor */:
|
|
73
|
+
case 178 /* SyntaxKind.Constructor */:
|
|
74
|
+
case 265 /* SyntaxKind.ClassDeclaration */:
|
|
75
|
+
case 233 /* SyntaxKind.ClassExpression */: {
|
|
76
|
+
const flags = node.kind === 221 /* SyntaxKind.ArrowFunction */
|
|
77
77
|
? 1 /* ContextFlags.NonTopLevel */
|
|
78
78
|
: 1 /* ContextFlags.NonTopLevel */ | 2 /* ContextFlags.HasLexicalThis */;
|
|
79
79
|
const added = flags & ~this.contextFlags;
|
|
@@ -108,12 +108,12 @@ export class AsyncFunctions extends Transformer {
|
|
|
108
108
|
return node;
|
|
109
109
|
this.superAccess.track(node);
|
|
110
110
|
switch (node.kind) {
|
|
111
|
-
case
|
|
112
|
-
case
|
|
113
|
-
case
|
|
114
|
-
case
|
|
115
|
-
case
|
|
116
|
-
case
|
|
111
|
+
case 220 /* SyntaxKind.FunctionExpression */:
|
|
112
|
+
case 264 /* SyntaxKind.FunctionDeclaration */:
|
|
113
|
+
case 176 /* SyntaxKind.MethodDeclaration */:
|
|
114
|
+
case 179 /* SyntaxKind.GetAccessor */:
|
|
115
|
+
case 180 /* SyntaxKind.SetAccessor */:
|
|
116
|
+
case 178 /* SyntaxKind.Constructor */:
|
|
117
117
|
return node;
|
|
118
118
|
case 79 /* SyntaxKind.Identifier */:
|
|
119
119
|
if (this.argumentsBinding !== undefined &&
|
|
@@ -140,34 +140,34 @@ export class AsyncFunctions extends Transformer {
|
|
|
140
140
|
// Async bodies
|
|
141
141
|
visitAsyncBodyNode(node) {
|
|
142
142
|
switch (node.kind) {
|
|
143
|
-
case
|
|
143
|
+
case 245 /* SyntaxKind.VariableStatement */:
|
|
144
144
|
if (node instanceof VariableStatement)
|
|
145
145
|
return this.visitVariableStatementInAsyncBody(node);
|
|
146
146
|
break;
|
|
147
|
-
case
|
|
147
|
+
case 250 /* SyntaxKind.ForStatement */:
|
|
148
148
|
if (node instanceof ForStatement)
|
|
149
149
|
return this.visitForStatementInAsyncBody(node);
|
|
150
150
|
break;
|
|
151
|
-
case
|
|
152
|
-
case
|
|
151
|
+
case 251 /* SyntaxKind.ForInStatement */:
|
|
152
|
+
case 252 /* SyntaxKind.ForOfStatement */:
|
|
153
153
|
if (node instanceof ForInOrOfStatement)
|
|
154
154
|
return this.visitForInOrOfStatementInAsyncBody(node);
|
|
155
155
|
break;
|
|
156
|
-
case
|
|
156
|
+
case 301 /* SyntaxKind.CatchClause */:
|
|
157
157
|
if (node instanceof CatchClause)
|
|
158
158
|
return this.visitCatchClauseInAsyncBody(node);
|
|
159
159
|
break;
|
|
160
|
-
case
|
|
161
|
-
case
|
|
162
|
-
case
|
|
163
|
-
case
|
|
164
|
-
case
|
|
165
|
-
case
|
|
166
|
-
case
|
|
167
|
-
case
|
|
168
|
-
case
|
|
169
|
-
case
|
|
170
|
-
case
|
|
160
|
+
case 243 /* SyntaxKind.Block */:
|
|
161
|
+
case 257 /* SyntaxKind.SwitchStatement */:
|
|
162
|
+
case 271 /* SyntaxKind.CaseBlock */:
|
|
163
|
+
case 298 /* SyntaxKind.CaseClause */:
|
|
164
|
+
case 299 /* SyntaxKind.DefaultClause */:
|
|
165
|
+
case 260 /* SyntaxKind.TryStatement */:
|
|
166
|
+
case 248 /* SyntaxKind.DoStatement */:
|
|
167
|
+
case 249 /* SyntaxKind.WhileStatement */:
|
|
168
|
+
case 247 /* SyntaxKind.IfStatement */:
|
|
169
|
+
case 256 /* SyntaxKind.WithStatement */:
|
|
170
|
+
case 258 /* SyntaxKind.LabeledStatement */:
|
|
171
171
|
return this.asyncBodyVisitor.visitEachChild(node);
|
|
172
172
|
}
|
|
173
173
|
return this.visit(node);
|
|
@@ -209,7 +209,7 @@ export class AsyncFunctions extends Transformer {
|
|
|
209
209
|
this.isVariableDeclarationListWithCollidingName(initializer)
|
|
210
210
|
? this.visitVariableDeclarationListWithCollidingNames(initializer, true)
|
|
211
211
|
: this.visitNode(initializer);
|
|
212
|
-
return this.factory.updateForInOrOfStatement(node, node.kind ===
|
|
212
|
+
return this.factory.updateForInOrOfStatement(node, node.kind === 252 /* SyntaxKind.ForOfStatement */ ? asToken(this.visitNode(node.awaitModifier)) : undefined, visitedInitializer, this.visitNode(node.expression), this.asyncBodyVisitor.visitEmbeddedStatement(node.statement));
|
|
213
213
|
}
|
|
214
214
|
visitForStatementInAsyncBody(node) {
|
|
215
215
|
const initializer = node.initializer;
|
|
@@ -365,7 +365,7 @@ export class AsyncFunctions extends Transformer {
|
|
|
365
365
|
if (name instanceof BindingPattern) {
|
|
366
366
|
const elements = name.elements.nodes;
|
|
367
367
|
for (let i = 0; i < elements.length; i++)
|
|
368
|
-
if (elements[i].kind !==
|
|
368
|
+
if (elements[i].kind !== 234 /* SyntaxKind.OmittedExpression */ && this.collidesWithParameterName(elements[i]))
|
|
369
369
|
return true;
|
|
370
370
|
}
|
|
371
371
|
return false;
|
|
@@ -394,7 +394,7 @@ export class AsyncFunctions extends Transformer {
|
|
|
394
394
|
else if (name instanceof BindingPattern) {
|
|
395
395
|
const elements = name.elements.nodes;
|
|
396
396
|
for (let i = 0; i < elements.length; i++)
|
|
397
|
-
if (elements[i].kind !==
|
|
397
|
+
if (elements[i].kind !== 234 /* SyntaxKind.OmittedExpression */)
|
|
398
398
|
this.hoistVariable(elements[i]);
|
|
399
399
|
}
|
|
400
400
|
return true;
|
|
@@ -452,7 +452,7 @@ export class AsyncFunctions extends Transformer {
|
|
|
452
452
|
for (let i = 0; i < list.nodes.length; i++) {
|
|
453
453
|
const parameter = list.nodes[i];
|
|
454
454
|
if (parameter.initializer !== undefined || parameter.dotDotDotToken !== undefined) {
|
|
455
|
-
if (node.kind ===
|
|
455
|
+
if (node.kind === 221 /* SyntaxKind.ArrowFunction */)
|
|
456
456
|
parameters.push(factory.created(new ParameterDeclaration(undefined, factory.createToken(25 /* SyntaxKind.DotDotDotToken */), factory.createUniqueName('args', 8 /* GeneratedIdentifierFlags.ReservedInNestedScopes */), undefined, undefined, undefined)));
|
|
457
457
|
break;
|
|
458
458
|
}
|
|
@@ -464,7 +464,7 @@ export class AsyncFunctions extends Transformer {
|
|
|
464
464
|
return result;
|
|
465
465
|
}
|
|
466
466
|
transformAsyncFunctionBody(node, outerParameters) {
|
|
467
|
-
const isArrow = node.kind ===
|
|
467
|
+
const isArrow = node.kind === 221 /* SyntaxKind.ArrowFunction */;
|
|
468
468
|
const factory = this.factory;
|
|
469
469
|
const context = this.context;
|
|
470
470
|
const superAccess = this.superAccess;
|
|
@@ -533,7 +533,9 @@ export class AsyncFunctions extends Transformer {
|
|
|
533
533
|
else {
|
|
534
534
|
result = createAwaiterHelper(factory, hasLexicalThis, argumentsExpression, innerParameters, asyncBody);
|
|
535
535
|
if (captureLexicalArguments && this.argumentsUsed) {
|
|
536
|
-
const block =
|
|
536
|
+
const block = context.convertToFunctionBlock(result, true);
|
|
537
|
+
if (!(result instanceof Block))
|
|
538
|
+
context.setOriginal(block.statements.nodes[0], result);
|
|
537
539
|
result = factory.updateBlock(block, context.mergeEnvironmentList(block.statements, [this.createCaptureArgumentsStatement()]), block.multiLine);
|
|
538
540
|
}
|
|
539
541
|
}
|
|
@@ -569,21 +571,6 @@ export class AsyncFunctions extends Transformer {
|
|
|
569
571
|
block.end = body.end;
|
|
570
572
|
return block;
|
|
571
573
|
}
|
|
572
|
-
convertToFunctionBlock(node) {
|
|
573
|
-
if (node instanceof Block)
|
|
574
|
-
return node;
|
|
575
|
-
const factory = this.factory;
|
|
576
|
-
const statement = factory.created(new ReturnStatement(node));
|
|
577
|
-
statement.pos = node.pos;
|
|
578
|
-
statement.end = node.end;
|
|
579
|
-
this.context.setOriginal(statement, node);
|
|
580
|
-
const block = factory.createBlock([statement], true);
|
|
581
|
-
block.statements.pos = node.pos;
|
|
582
|
-
block.statements.end = node.end;
|
|
583
|
-
block.pos = node.pos;
|
|
584
|
-
block.end = node.end;
|
|
585
|
-
return block;
|
|
586
|
-
}
|
|
587
574
|
getOriginalIfFunctionLike(node) {
|
|
588
575
|
const original = this.context.mostOriginal(node);
|
|
589
576
|
return isFunctionLikeDeclaration(original) ? original : node;
|
|
@@ -598,7 +585,7 @@ function recordDeclarationName(node, names) {
|
|
|
598
585
|
else if (name instanceof BindingPattern) {
|
|
599
586
|
const elements = name.elements.nodes;
|
|
600
587
|
for (let i = 0; i < elements.length; i++)
|
|
601
|
-
if (elements[i].kind !==
|
|
588
|
+
if (elements[i].kind !== 234 /* SyntaxKind.OmittedExpression */)
|
|
602
589
|
recordDeclarationName(elements[i], names);
|
|
603
590
|
}
|
|
604
591
|
return true;
|
|
@@ -609,30 +596,30 @@ function isIdentifierNameOrLabel(node) {
|
|
|
609
596
|
if (parent === undefined)
|
|
610
597
|
return false;
|
|
611
598
|
switch (parent.kind) {
|
|
612
|
-
case
|
|
613
|
-
case
|
|
614
|
-
case
|
|
615
|
-
case
|
|
616
|
-
case
|
|
617
|
-
case
|
|
618
|
-
case
|
|
619
|
-
case
|
|
620
|
-
case
|
|
599
|
+
case 174 /* SyntaxKind.PropertyDeclaration */:
|
|
600
|
+
case 173 /* SyntaxKind.PropertySignature */:
|
|
601
|
+
case 176 /* SyntaxKind.MethodDeclaration */:
|
|
602
|
+
case 175 /* SyntaxKind.MethodSignature */:
|
|
603
|
+
case 179 /* SyntaxKind.GetAccessor */:
|
|
604
|
+
case 180 /* SyntaxKind.SetAccessor */:
|
|
605
|
+
case 307 /* SyntaxKind.EnumMember */:
|
|
606
|
+
case 304 /* SyntaxKind.PropertyAssignment */:
|
|
607
|
+
case 213 /* SyntaxKind.PropertyAccessExpression */:
|
|
621
608
|
return getName(parent) === node;
|
|
622
|
-
case
|
|
609
|
+
case 168 /* SyntaxKind.QualifiedName */:
|
|
623
610
|
return parent instanceof QualifiedName && parent.right === node;
|
|
624
|
-
case
|
|
625
|
-
case
|
|
611
|
+
case 210 /* SyntaxKind.BindingElement */:
|
|
612
|
+
case 278 /* SyntaxKind.ImportSpecifier */:
|
|
626
613
|
return getPropertyName(parent) === node;
|
|
627
|
-
case
|
|
628
|
-
case
|
|
629
|
-
case
|
|
630
|
-
case
|
|
631
|
-
case
|
|
614
|
+
case 283 /* SyntaxKind.ExportSpecifier */:
|
|
615
|
+
case 293 /* SyntaxKind.JsxAttribute */:
|
|
616
|
+
case 287 /* SyntaxKind.JsxSelfClosingElement */:
|
|
617
|
+
case 288 /* SyntaxKind.JsxOpeningElement */:
|
|
618
|
+
case 289 /* SyntaxKind.JsxClosingElement */:
|
|
632
619
|
return true;
|
|
633
|
-
case
|
|
634
|
-
case
|
|
635
|
-
case
|
|
620
|
+
case 258 /* SyntaxKind.LabeledStatement */:
|
|
621
|
+
case 254 /* SyntaxKind.BreakStatement */:
|
|
622
|
+
case 253 /* SyntaxKind.ContinueStatement */:
|
|
636
623
|
return getLabel(parent) === node;
|
|
637
624
|
}
|
|
638
625
|
return false;
|
|
@@ -122,6 +122,7 @@ export declare class ClassFieldsTransformer extends Transformer {
|
|
|
122
122
|
/** `super.x` in a static initializer, with the class and its base available. */
|
|
123
123
|
private staticSuperData;
|
|
124
124
|
private visitPropertyAccessExpression;
|
|
125
|
+
/** Visits only the expression of a property access, with `visitor`, so that its name is never substituted. */
|
|
125
126
|
private visitPropertyAccessExpressionForSubstitution;
|
|
126
127
|
private visitElementAccessExpression;
|
|
127
128
|
private visitPreOrPostfixUnaryExpression;
|