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
|
@@ -66,6 +66,7 @@ const textToKeyword = new Map([
|
|
|
66
66
|
['return', 106 /* SyntaxKind.ReturnKeyword */],
|
|
67
67
|
['satisfies', 152 /* SyntaxKind.SatisfiesKeyword */],
|
|
68
68
|
['set', 153 /* SyntaxKind.SetKeyword */],
|
|
69
|
+
['source', 167 /* SyntaxKind.SourceKeyword */],
|
|
69
70
|
['static', 125 /* SyntaxKind.StaticKeyword */],
|
|
70
71
|
['string', 154 /* SyntaxKind.StringKeyword */],
|
|
71
72
|
['super', 107 /* SyntaxKind.SuperKeyword */],
|
|
@@ -154,7 +155,7 @@ const textToToken = new Map([
|
|
|
154
155
|
['`', 61 /* SyntaxKind.BacktickToken */],
|
|
155
156
|
]);
|
|
156
157
|
const tokenToText = [];
|
|
157
|
-
for (let kind = 0; kind <=
|
|
158
|
+
for (let kind = 0; kind <= 167 /* SyntaxKind.LastToken */; kind++)
|
|
158
159
|
tokenToText.push('');
|
|
159
160
|
for (const [text, kind] of textToToken)
|
|
160
161
|
tokenToText[kind] = text;
|
|
@@ -1209,36 +1210,21 @@ export class Scanner {
|
|
|
1209
1210
|
case 64 /* CharacterCodes.at */:
|
|
1210
1211
|
this.pos = (this.pos + 1) | 0;
|
|
1211
1212
|
return (this.token = 59 /* SyntaxKind.AtToken */);
|
|
1212
|
-
case 92 /* CharacterCodes.backslash */:
|
|
1213
|
-
|
|
1214
|
-
if (codePoint >= 0 && isIdentifierStart(codePoint)) {
|
|
1215
|
-
const head = String.fromCodePoint(this.scanUnicodeEscape(true));
|
|
1216
|
-
this.setValue(head + this.scanIdentifierParts());
|
|
1213
|
+
case 92 /* CharacterCodes.backslash */:
|
|
1214
|
+
if (this.scanIdentifier(0, 0 /* IdentifierVariant.Standard */))
|
|
1217
1215
|
return (this.token = getIdentifierToken(this.tokenValue));
|
|
1218
|
-
}
|
|
1219
1216
|
return this.scanInvalidCharacter();
|
|
1220
|
-
}
|
|
1221
1217
|
case 35 /* CharacterCodes.hash */:
|
|
1222
1218
|
if ((chars[this.pos + 1] | 0) === 33 /* CharacterCodes.exclamation */) {
|
|
1223
1219
|
if (this.pos === 0) {
|
|
1224
1220
|
this.pos = scanShebangTrivia(this.text, 0) | 0;
|
|
1225
1221
|
continue;
|
|
1226
1222
|
}
|
|
1227
|
-
this.errorAt(
|
|
1228
|
-
this.pos = (this.pos +
|
|
1223
|
+
this.errorAt(1863 /* Diagnostics.X_can_only_be_used_at_the_start_of_a_file */, this.pos, 2, noArgs);
|
|
1224
|
+
this.pos = (this.pos + 2) | 0;
|
|
1229
1225
|
return (this.token = 0 /* SyntaxKind.Unknown */);
|
|
1230
1226
|
}
|
|
1231
|
-
if (
|
|
1232
|
-
this.pos = (this.pos + 1) | 0;
|
|
1233
|
-
const codePoint = this.peekUnicodeEscape();
|
|
1234
|
-
if (codePoint >= 0 && isIdentifierStart(codePoint)) {
|
|
1235
|
-
const head = '#' + String.fromCodePoint(this.scanUnicodeEscape(true));
|
|
1236
|
-
this.setValue(head + this.scanIdentifierParts());
|
|
1237
|
-
return (this.token = 80 /* SyntaxKind.PrivateIdentifier */);
|
|
1238
|
-
}
|
|
1239
|
-
this.pos = (this.pos - 1) | 0;
|
|
1240
|
-
}
|
|
1241
|
-
if (!this.scanIdentifier(1)) {
|
|
1227
|
+
if (!this.scanIdentifier(1, 0 /* IdentifierVariant.Standard */)) {
|
|
1242
1228
|
this.errorAt(94 /* Diagnostics.Invalid_character */, this.pos - 1, 1, noArgs);
|
|
1243
1229
|
this.setValue('#');
|
|
1244
1230
|
}
|
|
@@ -1246,11 +1232,11 @@ export class Scanner {
|
|
|
1246
1232
|
default: {
|
|
1247
1233
|
if (ch < 0)
|
|
1248
1234
|
return (this.token = 1 /* SyntaxKind.EndOfFile */);
|
|
1249
|
-
if (this.scanIdentifier(0))
|
|
1235
|
+
if (this.scanIdentifier(0, 0 /* IdentifierVariant.Standard */))
|
|
1250
1236
|
return (this.token = this.identifierKind());
|
|
1251
1237
|
const codePoint = this.codePoint();
|
|
1252
1238
|
if (codePoint === 65533 /* CharacterCodes.replacementCharacter */) {
|
|
1253
|
-
this.errorAt(
|
|
1239
|
+
this.errorAt(403 /* Diagnostics.File_appears_to_be_binary */, 0, 0, noArgs);
|
|
1254
1240
|
this.pos = this.end;
|
|
1255
1241
|
return (this.token = 7 /* SyntaxKind.NonTextFileMarkerTrivia */);
|
|
1256
1242
|
}
|
|
@@ -1441,14 +1427,38 @@ export class Scanner {
|
|
|
1441
1427
|
return;
|
|
1442
1428
|
this.commentDirectives.push(new CommentDirective(start, end, kind));
|
|
1443
1429
|
}
|
|
1444
|
-
/**
|
|
1445
|
-
|
|
1430
|
+
/**
|
|
1431
|
+
* @internal Scans an identifier after `prefixLength` units; sets the token value. `variant`
|
|
1432
|
+
* decides the identifier parts: JSX and JSDoc names also take `-`, and regular expression group
|
|
1433
|
+
* names take a surrogate pair written as two `\u` escapes.
|
|
1434
|
+
*/
|
|
1435
|
+
scanIdentifier(prefixLength, variant) {
|
|
1446
1436
|
const text = this.text;
|
|
1447
1437
|
const chars = this.chars;
|
|
1448
1438
|
const start = this.pos;
|
|
1449
1439
|
this.pos = (this.pos + prefixLength) | 0;
|
|
1440
|
+
const identifierStart = this.pos;
|
|
1450
1441
|
let ch = this.char();
|
|
1451
|
-
if (
|
|
1442
|
+
if (variant === 1 /* IdentifierVariant.JSX */) {
|
|
1443
|
+
if (isASCIILetter(ch) || ch === 95 /* CharacterCodes._ */ || ch === 36 /* CharacterCodes.$ */) {
|
|
1444
|
+
// ASCII names, as the general loop below scans them.
|
|
1445
|
+
let pos = (this.pos + 1) | 0;
|
|
1446
|
+
const end = this.end;
|
|
1447
|
+
while (pos < end) {
|
|
1448
|
+
const c = chars[pos] | 0;
|
|
1449
|
+
if (!isASCIIIdentifierPart(c) && c !== 45 /* CharacterCodes.minus */)
|
|
1450
|
+
break;
|
|
1451
|
+
pos = (pos + 1) | 0;
|
|
1452
|
+
}
|
|
1453
|
+
const next = pos < end ? chars[pos] | 0 : -1 /* CharacterCodes.EOF */;
|
|
1454
|
+
if (next <= 127 /* CharacterCodes.maxAsciiCharacter */ && next !== 92 /* CharacterCodes.backslash */) {
|
|
1455
|
+
this.pos = pos;
|
|
1456
|
+
this.setValueSlice(start, pos);
|
|
1457
|
+
return true;
|
|
1458
|
+
}
|
|
1459
|
+
}
|
|
1460
|
+
}
|
|
1461
|
+
else if (isASCIILetter(ch) || ch === 95 /* CharacterCodes._ */ || ch === 36 /* CharacterCodes.$ */) {
|
|
1452
1462
|
// Fast path for ASCII identifiers, which also hashes the units for interning.
|
|
1453
1463
|
let pos = (this.pos + 1) | 0;
|
|
1454
1464
|
const end = this.end;
|
|
@@ -1472,35 +1482,47 @@ export class Scanner {
|
|
|
1472
1482
|
this.hashEnd = pos;
|
|
1473
1483
|
return true;
|
|
1474
1484
|
}
|
|
1475
|
-
this.pos = (start + prefixLength) | 0;
|
|
1476
1485
|
}
|
|
1486
|
+
this.pos = identifierStart;
|
|
1487
|
+
const languageVariant = variant === 1 /* IdentifierVariant.JSX */ ? 1 /* LanguageVariant.JSX */ : 0 /* LanguageVariant.Standard */;
|
|
1477
1488
|
ch = this.codePoint();
|
|
1478
|
-
if (
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
+
if (isIdentifierStart(ch)) {
|
|
1490
|
+
do {
|
|
1491
|
+
this.pos = (this.pos + charSize(ch)) | 0;
|
|
1492
|
+
ch = this.codePoint();
|
|
1493
|
+
} while (isIdentifierPart(ch, languageVariant));
|
|
1494
|
+
if (ch === 92 /* CharacterCodes.backslash */)
|
|
1495
|
+
this.setValue(text.substring(start, this.pos) + this.scanIdentifierParts(variant));
|
|
1496
|
+
else
|
|
1497
|
+
this.setValueSlice(start, this.pos);
|
|
1498
|
+
return true;
|
|
1499
|
+
}
|
|
1500
|
+
if (ch === 92 /* CharacterCodes.backslash */) {
|
|
1501
|
+
const escaped = this.scanIdentifierEscape(true, variant);
|
|
1502
|
+
if (escaped >= 0) {
|
|
1503
|
+
const head = text.substring(start, identifierStart) + String.fromCodePoint(escaped);
|
|
1504
|
+
this.setValue(head + this.scanIdentifierParts(variant));
|
|
1505
|
+
return true;
|
|
1506
|
+
}
|
|
1507
|
+
}
|
|
1508
|
+
return false;
|
|
1489
1509
|
}
|
|
1490
1510
|
/** Scans identifier parts including `\u` escapes and returns their cooked text. */
|
|
1491
|
-
scanIdentifierParts() {
|
|
1511
|
+
scanIdentifierParts(variant) {
|
|
1512
|
+
const languageVariant = variant === 1 /* IdentifierVariant.JSX */ ? 1 /* LanguageVariant.JSX */ : 0 /* LanguageVariant.Standard */;
|
|
1492
1513
|
let result = '';
|
|
1493
1514
|
let start = this.pos;
|
|
1494
1515
|
for (;;) {
|
|
1495
1516
|
const ch = this.codePoint();
|
|
1496
|
-
if (isIdentifierPart(ch)) {
|
|
1517
|
+
if (isIdentifierPart(ch, languageVariant)) {
|
|
1497
1518
|
this.pos = (this.pos + charSize(ch)) | 0;
|
|
1498
1519
|
continue;
|
|
1499
1520
|
}
|
|
1500
1521
|
if (ch === 92 /* CharacterCodes.backslash */) {
|
|
1501
|
-
const
|
|
1502
|
-
|
|
1503
|
-
|
|
1522
|
+
const escapeStart = this.pos;
|
|
1523
|
+
const escaped = this.scanIdentifierEscape(false, variant);
|
|
1524
|
+
if (escaped >= 0) {
|
|
1525
|
+
result += this.text.substring(start, escapeStart) + String.fromCodePoint(escaped);
|
|
1504
1526
|
start = this.pos;
|
|
1505
1527
|
continue;
|
|
1506
1528
|
}
|
|
@@ -1509,6 +1531,37 @@ export class Scanner {
|
|
|
1509
1531
|
}
|
|
1510
1532
|
return start === this.pos ? result : result + this.text.substring(start, this.pos);
|
|
1511
1533
|
}
|
|
1534
|
+
/**
|
|
1535
|
+
* At `\`: scans a `\u` escape of an identifier start (`isStart`) or part and returns its code point,
|
|
1536
|
+
* or returns -1 and leaves the scanner unchanged.
|
|
1537
|
+
*/
|
|
1538
|
+
scanIdentifierEscape(isStart, variant) {
|
|
1539
|
+
const languageVariant = variant === 1 /* IdentifierVariant.JSX */ ? 1 /* LanguageVariant.JSX */ : 0 /* LanguageVariant.Standard */;
|
|
1540
|
+
const escaped = this.peekUnicodeEscape();
|
|
1541
|
+
if (escaped >= 0 && (isStart ? isIdentifierStart(escaped) : isIdentifierPart(escaped, languageVariant)))
|
|
1542
|
+
return this.scanUnicodeEscape(true);
|
|
1543
|
+
// Group names in regular expressions, in Unicode mode or not, take `\u` HexLeadSurrogate `\u`
|
|
1544
|
+
// HexTrailSurrogate as part of RegExpIdentifierName (tc39/ecma262#1869), but not the braced form.
|
|
1545
|
+
if (variant === 2 /* IdentifierVariant.RegExpGroupName */ &&
|
|
1546
|
+
this.peek(2) !== 123 /* CharacterCodes.openBrace */ &&
|
|
1547
|
+
escaped >= 0xd800 &&
|
|
1548
|
+
escaped <= 0xdbff) {
|
|
1549
|
+
const pos = this.pos;
|
|
1550
|
+
const flags = this.tokenFlags;
|
|
1551
|
+
this.scanUnicodeEscape(false);
|
|
1552
|
+
if (this.peek(2) !== 123 /* CharacterCodes.openBrace */) {
|
|
1553
|
+
const low = this.scanLowSurrogateEscape();
|
|
1554
|
+
if (low >= 0) {
|
|
1555
|
+
const codePoint = (escaped - 0xd800) * 0x400 + (low - 0xdc00) + 0x10000;
|
|
1556
|
+
if (isStart ? isIdentifierStart(codePoint) : isIdentifierPart(codePoint, languageVariant))
|
|
1557
|
+
return codePoint;
|
|
1558
|
+
}
|
|
1559
|
+
}
|
|
1560
|
+
this.pos = pos | 0;
|
|
1561
|
+
this.tokenFlags = flags;
|
|
1562
|
+
}
|
|
1563
|
+
return -1;
|
|
1564
|
+
}
|
|
1512
1565
|
scanInvalidCharacter() {
|
|
1513
1566
|
const size = charSize(this.codePoint());
|
|
1514
1567
|
this.errorAt(94 /* Diagnostics.Invalid_character */, this.pos, size, noArgs);
|
|
@@ -1674,9 +1727,9 @@ export class Scanner {
|
|
|
1674
1727
|
if ((flags & 4 /* EscapeSequenceScanningFlags.RegularExpression */) !== 0 &&
|
|
1675
1728
|
(flags & 32 /* EscapeSequenceScanningFlags.AtomEscape */) === 0 &&
|
|
1676
1729
|
ch !== 48 /* CharacterCodes._0 */)
|
|
1677
|
-
this.errorAt(
|
|
1730
|
+
this.errorAt(449 /* Diagnostics.Octal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_If_this_was_intended_as_an_escape_sequence_use_the_syntax_0_instead */, start, this.pos - start, args);
|
|
1678
1731
|
else
|
|
1679
|
-
this.errorAt(
|
|
1732
|
+
this.errorAt(400 /* Diagnostics.Octal_escape_sequences_are_not_allowed_Use_the_syntax_0 */, start, this.pos - start, args);
|
|
1680
1733
|
return code;
|
|
1681
1734
|
}
|
|
1682
1735
|
return -2 /* EscapeValue.Raw */;
|
|
@@ -1687,9 +1740,9 @@ export class Scanner {
|
|
|
1687
1740
|
if ((flags & 6 /* EscapeSequenceScanningFlags.ReportInvalidEscapeErrors */) !== 0) {
|
|
1688
1741
|
if ((flags & 4 /* EscapeSequenceScanningFlags.RegularExpression */) !== 0 &&
|
|
1689
1742
|
(flags & 32 /* EscapeSequenceScanningFlags.AtomEscape */) === 0)
|
|
1690
|
-
this.errorAt(
|
|
1743
|
+
this.errorAt(450 /* Diagnostics.Decimal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class */, start, this.pos - start, noArgs);
|
|
1691
1744
|
else
|
|
1692
|
-
this.errorAt(
|
|
1745
|
+
this.errorAt(401 /* Diagnostics.Escape_sequence_0_is_not_allowed */, start, this.pos - start, [
|
|
1693
1746
|
this.text.substring(start, this.pos),
|
|
1694
1747
|
]);
|
|
1695
1748
|
return ch;
|
|
@@ -1720,7 +1773,7 @@ export class Scanner {
|
|
|
1720
1773
|
if (extended && (flags & 17 /* EscapeSequenceScanningFlags.AllowExtendedUnicodeEscape */) === 0) {
|
|
1721
1774
|
this.tokenFlags |= 2048 /* TokenFlags.ContainsInvalidEscape */;
|
|
1722
1775
|
if (reportErrors)
|
|
1723
|
-
this.errorAt(
|
|
1776
|
+
this.errorAt(451 /* Diagnostics.Unicode_escape_sequences_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set */, start, this.pos - start, noArgs);
|
|
1724
1777
|
}
|
|
1725
1778
|
if (codePoint < 0)
|
|
1726
1779
|
return -2 /* EscapeValue.Raw */;
|
|
@@ -1780,7 +1833,7 @@ export class Scanner {
|
|
|
1780
1833
|
((flags & 4 /* EscapeSequenceScanningFlags.RegularExpression */) !== 0 &&
|
|
1781
1834
|
(flags & 8 /* EscapeSequenceScanningFlags.AnnexB */) === 0 &&
|
|
1782
1835
|
isIdentifierPart(ch)))
|
|
1783
|
-
this.errorAt(
|
|
1836
|
+
this.errorAt(448 /* Diagnostics.This_character_cannot_be_escaped_in_a_regular_expression */, start, this.pos - start, noArgs);
|
|
1784
1837
|
return ch;
|
|
1785
1838
|
}
|
|
1786
1839
|
}
|
|
@@ -1898,7 +1951,7 @@ export class Scanner {
|
|
|
1898
1951
|
this.pos = (this.pos + 1) | 0;
|
|
1899
1952
|
if (this.char() === 95 /* CharacterCodes._ */) {
|
|
1900
1953
|
this.tokenFlags |= 512 /* TokenFlags.ContainsSeparator */ | 16384 /* TokenFlags.ContainsInvalidSeparator */;
|
|
1901
|
-
this.errorAt(
|
|
1954
|
+
this.errorAt(1353 /* Diagnostics.Numeric_separators_are_not_allowed_here */, this.pos, 1, noArgs);
|
|
1902
1955
|
this.pos = start | 0;
|
|
1903
1956
|
this.scanNumberFragment();
|
|
1904
1957
|
}
|
|
@@ -1956,7 +2009,7 @@ export class Scanner {
|
|
|
1956
2009
|
}
|
|
1957
2010
|
const raw = this.withoutSeparators(start, end);
|
|
1958
2011
|
if ((this.tokenFlags & 8192 /* TokenFlags.ContainsLeadingZero */) !== 0) {
|
|
1959
|
-
this.errorAt(
|
|
2012
|
+
this.errorAt(402 /* Diagnostics.Decimals_with_leading_zeros_are_not_allowed */, start, this.pos - start, noArgs);
|
|
1960
2013
|
this.setValue(String(Number(raw)));
|
|
1961
2014
|
return 8 /* SyntaxKind.NumericLiteral */;
|
|
1962
2015
|
}
|
|
@@ -1971,7 +2024,7 @@ export class Scanner {
|
|
|
1971
2024
|
}
|
|
1972
2025
|
if (isIdentifierStart(this.codePoint())) {
|
|
1973
2026
|
const idStart = this.pos;
|
|
1974
|
-
const id = this.scanIdentifierParts();
|
|
2027
|
+
const id = this.scanIdentifierParts(0 /* IdentifierVariant.Standard */);
|
|
1975
2028
|
if (result !== 9 /* SyntaxKind.BigIntLiteral */ && id.length === 1 && this.chars[idStart] === 110 /* CharacterCodes.n */) {
|
|
1976
2029
|
if ((this.tokenFlags & 16 /* TokenFlags.Scientific */) !== 0) {
|
|
1977
2030
|
this.errorAt(286 /* Diagnostics.A_bigint_literal_cannot_use_exponential_notation */, start, this.pos - start, noArgs);
|
|
@@ -2008,9 +2061,9 @@ export class Scanner {
|
|
|
2008
2061
|
else {
|
|
2009
2062
|
this.tokenFlags |= 16384 /* TokenFlags.ContainsInvalidSeparator */;
|
|
2010
2063
|
if (isPreviousTokenSeparator)
|
|
2011
|
-
this.errorAt(
|
|
2064
|
+
this.errorAt(1354 /* Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted */, this.pos, 1, noArgs);
|
|
2012
2065
|
else
|
|
2013
|
-
this.errorAt(
|
|
2066
|
+
this.errorAt(1353 /* Diagnostics.Numeric_separators_are_not_allowed_here */, this.pos, 1, noArgs);
|
|
2014
2067
|
}
|
|
2015
2068
|
}
|
|
2016
2069
|
else {
|
|
@@ -2020,7 +2073,7 @@ export class Scanner {
|
|
|
2020
2073
|
}
|
|
2021
2074
|
if (isPreviousTokenSeparator) {
|
|
2022
2075
|
this.tokenFlags |= 16384 /* TokenFlags.ContainsInvalidSeparator */;
|
|
2023
|
-
this.errorAt(
|
|
2076
|
+
this.errorAt(1353 /* Diagnostics.Numeric_separators_are_not_allowed_here */, this.pos - 1, 1, noArgs);
|
|
2024
2077
|
}
|
|
2025
2078
|
return count;
|
|
2026
2079
|
}
|
|
@@ -2043,10 +2096,10 @@ export class Scanner {
|
|
|
2043
2096
|
isPreviousTokenSeparator = true;
|
|
2044
2097
|
}
|
|
2045
2098
|
else if (isPreviousTokenSeparator) {
|
|
2046
|
-
this.errorAt(
|
|
2099
|
+
this.errorAt(1354 /* Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted */, this.pos, 1, noArgs);
|
|
2047
2100
|
}
|
|
2048
2101
|
else {
|
|
2049
|
-
this.errorAt(
|
|
2102
|
+
this.errorAt(1353 /* Diagnostics.Numeric_separators_are_not_allowed_here */, this.pos, 1, noArgs);
|
|
2050
2103
|
}
|
|
2051
2104
|
}
|
|
2052
2105
|
else {
|
|
@@ -2055,7 +2108,7 @@ export class Scanner {
|
|
|
2055
2108
|
this.pos = (this.pos + 1) | 0;
|
|
2056
2109
|
}
|
|
2057
2110
|
if (isPreviousTokenSeparator)
|
|
2058
|
-
this.errorAt(
|
|
2111
|
+
this.errorAt(1353 /* Diagnostics.Numeric_separators_are_not_allowed_here */, this.pos - 1, 1, noArgs);
|
|
2059
2112
|
return count;
|
|
2060
2113
|
}
|
|
2061
2114
|
scanHexNumber() {
|
|
@@ -2257,11 +2310,11 @@ export class Scanner {
|
|
|
2257
2310
|
if (reportErrors) {
|
|
2258
2311
|
const flag = regularExpressionFlag(ch);
|
|
2259
2312
|
if (flag === 0 /* RegularExpressionFlags.None */)
|
|
2260
|
-
this.errorAt(
|
|
2313
|
+
this.errorAt(412 /* Diagnostics.Unknown_regular_expression_flag */, p, size, noArgs);
|
|
2261
2314
|
else if ((flags & flag) !== 0)
|
|
2262
|
-
this.errorAt(
|
|
2315
|
+
this.errorAt(413 /* Diagnostics.Duplicate_regular_expression_flag */, p, size, noArgs);
|
|
2263
2316
|
else if (((flags | flag) & 96 /* RegularExpressionFlags.AnyUnicodeMode */) === 96 /* RegularExpressionFlags.AnyUnicodeMode */)
|
|
2264
|
-
this.errorAt(
|
|
2317
|
+
this.errorAt(415 /* Diagnostics.The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously */, p, size, noArgs);
|
|
2265
2318
|
else {
|
|
2266
2319
|
flags |= flag;
|
|
2267
2320
|
this.checkRegularExpressionFlagAvailability(flag, p, size);
|
|
@@ -2297,7 +2350,7 @@ export class Scanner {
|
|
|
2297
2350
|
else
|
|
2298
2351
|
return;
|
|
2299
2352
|
if (this.languageVersion() < availableFrom)
|
|
2300
|
-
this.errorAt(
|
|
2353
|
+
this.errorAt(414 /* Diagnostics.This_regular_expression_flag_is_only_available_when_targeting_0_or_later */, pos, size, [
|
|
2301
2354
|
regularExpressionFlagName(availableFrom),
|
|
2302
2355
|
]);
|
|
2303
2356
|
}
|
|
@@ -2373,18 +2426,8 @@ export class Scanner {
|
|
|
2373
2426
|
scanJsxIdentifier() {
|
|
2374
2427
|
if (!tokenIsIdentifierOrKeyword(this.token))
|
|
2375
2428
|
return this.token;
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
if (this.char() === 45 /* CharacterCodes.minus */) {
|
|
2379
|
-
value += '-';
|
|
2380
|
-
this.pos = (this.pos + 1) | 0;
|
|
2381
|
-
continue;
|
|
2382
|
-
}
|
|
2383
|
-
const pos = this.pos;
|
|
2384
|
-
value += this.scanIdentifierParts();
|
|
2385
|
-
if (this.pos === pos)
|
|
2386
|
-
break;
|
|
2387
|
-
}
|
|
2429
|
+
// An identifier or keyword is scanned: append a following `-` and the rest of the name.
|
|
2430
|
+
const value = this.getTokenValue() + this.scanIdentifierParts(1 /* IdentifierVariant.JSX */);
|
|
2388
2431
|
this.setValue(value);
|
|
2389
2432
|
return (this.token = getIdentifierToken(value));
|
|
2390
2433
|
}
|
|
@@ -2455,7 +2498,6 @@ export class Scanner {
|
|
|
2455
2498
|
scanJSDocToken() {
|
|
2456
2499
|
this.fullStartPos = this.pos | 0;
|
|
2457
2500
|
this.tokenFlags = 0 /* TokenFlags.None */;
|
|
2458
|
-
const text = this.text;
|
|
2459
2501
|
const chars = this.chars;
|
|
2460
2502
|
if (this.pos >= this.end)
|
|
2461
2503
|
return (this.token = 1 /* SyntaxKind.EndOfFile */);
|
|
@@ -2506,40 +2548,13 @@ export class Scanner {
|
|
|
2506
2548
|
return (this.token = 61 /* SyntaxKind.BacktickToken */);
|
|
2507
2549
|
case 35 /* CharacterCodes.hash */:
|
|
2508
2550
|
return (this.token = 62 /* SyntaxKind.HashToken */);
|
|
2509
|
-
case 92 /* CharacterCodes.backslash */: {
|
|
2510
|
-
this.pos = (this.pos - 1) | 0;
|
|
2511
|
-
const codePoint = this.peekUnicodeEscape();
|
|
2512
|
-
if (codePoint >= 0 && isIdentifierStart(codePoint)) {
|
|
2513
|
-
const head = String.fromCodePoint(this.scanUnicodeEscape(true));
|
|
2514
|
-
this.setValue(head + this.scanIdentifierParts());
|
|
2515
|
-
return (this.token = getIdentifierToken(this.tokenValue));
|
|
2516
|
-
}
|
|
2517
|
-
this.pos = (this.pos + 1) | 0;
|
|
2518
|
-
return (this.token = 0 /* SyntaxKind.Unknown */);
|
|
2519
|
-
}
|
|
2520
|
-
}
|
|
2521
|
-
if (!isIdentifierStart(ch))
|
|
2522
|
-
return (this.token = 0 /* SyntaxKind.Unknown */);
|
|
2523
|
-
let last = ch;
|
|
2524
|
-
while (this.pos < this.end) {
|
|
2525
|
-
const unit = this.chars[this.pos] | 0;
|
|
2526
|
-
if (unit < 0x80) {
|
|
2527
|
-
last = unit;
|
|
2528
|
-
if (!isASCIIIdentifierPart(unit) && unit !== 45 /* CharacterCodes.minus */)
|
|
2529
|
-
break;
|
|
2530
|
-
this.pos = (this.pos + 1) | 0;
|
|
2531
|
-
continue;
|
|
2532
|
-
}
|
|
2533
|
-
last = this.codePointAt(this.pos, this.end);
|
|
2534
|
-
if (!isIdentifierPart(last) && last !== 45 /* CharacterCodes.minus */)
|
|
2535
|
-
break;
|
|
2536
|
-
this.pos = (this.pos + charSize(last)) | 0;
|
|
2537
2551
|
}
|
|
2538
|
-
|
|
2539
|
-
|
|
2540
|
-
|
|
2541
|
-
|
|
2542
|
-
|
|
2552
|
+
// JSDoc names take `-`, as JSX names do.
|
|
2553
|
+
this.pos = this.tokenStart;
|
|
2554
|
+
if (this.scanIdentifier(0, 1 /* IdentifierVariant.JSX */))
|
|
2555
|
+
return (this.token = this.identifierKind());
|
|
2556
|
+
this.pos = (this.tokenStart + charSize(ch)) | 0;
|
|
2557
|
+
return (this.token = 0 /* SyntaxKind.Unknown */);
|
|
2543
2558
|
}
|
|
2544
2559
|
}
|
|
2545
2560
|
const mergeConflictMarkerLength = 7;
|