@zzzen/pyright-internal 1.2.0-dev.20230514 → 1.2.0-dev.20230521
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/dist/analyzer/analyzerFileInfo.d.ts +1 -0
- package/dist/analyzer/analyzerFileInfo.js +4 -3
- package/dist/analyzer/analyzerFileInfo.js.map +1 -1
- package/dist/analyzer/backgroundAnalysisProgram.d.ts +17 -15
- package/dist/analyzer/backgroundAnalysisProgram.js +43 -53
- package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
- package/dist/analyzer/binder.d.ts +0 -2
- package/dist/analyzer/binder.js +2 -20
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.d.ts +1 -1
- package/dist/analyzer/checker.js +61 -28
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/constructorTransform.js +5 -1
- package/dist/analyzer/constructorTransform.js.map +1 -1
- package/dist/analyzer/constructors.js +14 -12
- package/dist/analyzer/constructors.js.map +1 -1
- package/dist/analyzer/dataClasses.js +3 -0
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/declarationUtils.js +1 -0
- package/dist/analyzer/declarationUtils.js.map +1 -1
- package/dist/analyzer/importResolver.d.ts +4 -4
- package/dist/analyzer/importResolver.js +46 -40
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/importResult.d.ts +2 -2
- package/dist/analyzer/importStatementUtils.js +2 -2
- package/dist/analyzer/importStatementUtils.js.map +1 -1
- package/dist/analyzer/packageTypeVerifier.js +1 -1
- package/dist/analyzer/packageTypeVerifier.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.js +2 -34
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/parseTreeWalker.js +2 -2
- package/dist/analyzer/parseTreeWalker.js.map +1 -1
- package/dist/analyzer/patternMatching.js +1 -0
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +12 -18
- package/dist/analyzer/program.js +25 -12
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/protocols.js +3 -1
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/service.d.ts +4 -4
- package/dist/analyzer/service.js +21 -24
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +1 -6
- package/dist/analyzer/sourceFile.js +7 -26
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceMapper.js +1 -1
- package/dist/analyzer/sourceMapper.js.map +1 -1
- package/dist/analyzer/typeDocStringUtils.js +1 -1
- package/dist/analyzer/typeDocStringUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.d.ts +2 -2
- package/dist/analyzer/typeEvaluator.js +134 -55
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +3 -2
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.js +1 -0
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typePrinter.js +8 -1
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeUtils.js +1 -1
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typeVarContext.js +2 -2
- package/dist/analyzer/typeVarContext.js.map +1 -1
- package/dist/analyzer/typedDicts.js +138 -41
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +7 -1
- package/dist/analyzer/types.js +19 -6
- package/dist/analyzer/types.js.map +1 -1
- package/dist/backgroundAnalysisBase.d.ts +25 -19
- package/dist/backgroundAnalysisBase.js +145 -115
- package/dist/backgroundAnalysisBase.js.map +1 -1
- package/dist/backgroundThreadBase.d.ts +1 -1
- package/dist/backgroundThreadBase.js +1 -1
- package/dist/backgroundThreadBase.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js +3 -3
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/common/configOptions.js +1 -1
- package/dist/common/configOptions.js.map +1 -1
- package/dist/common/extensibility.d.ts +2 -4
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/textRange.js +1 -1
- package/dist/common/textRange.js.map +1 -1
- package/dist/common/workspaceEditUtils.d.ts +1 -1
- package/dist/common/workspaceEditUtils.js +5 -7
- package/dist/common/workspaceEditUtils.js.map +1 -1
- package/dist/languageServerBase.js +2 -2
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/autoImporter.d.ts +3 -3
- package/dist/languageService/autoImporter.js +3 -3
- package/dist/languageService/autoImporter.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.js +3 -2
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/completionProvider.d.ts +2 -2
- package/dist/languageService/completionProvider.js +37 -30
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.js +9 -9
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/referencesProvider.js +1 -1
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/signatureHelpProvider.js +1 -1
- package/dist/languageService/signatureHelpProvider.js.map +1 -1
- package/dist/languageService/symbolIndexer.d.ts +0 -8
- package/dist/languageService/symbolIndexer.js.map +1 -1
- package/dist/localization/localize.d.ts +22 -3
- package/dist/localization/localize.js +12 -3
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +14 -5
- package/dist/parser/parseNodes.d.ts +8 -8
- package/dist/parser/parseNodes.js +20 -10
- package/dist/parser/parseNodes.js.map +1 -1
- package/dist/parser/parser.d.ts +3 -3
- package/dist/parser/parser.js +133 -159
- package/dist/parser/parser.js.map +1 -1
- package/dist/parser/stringTokenUtils.d.ts +3 -13
- package/dist/parser/stringTokenUtils.js +8 -181
- package/dist/parser/stringTokenUtils.js.map +1 -1
- package/dist/parser/tokenizer.d.ts +3 -0
- package/dist/parser/tokenizer.js +211 -24
- package/dist/parser/tokenizer.js.map +1 -1
- package/dist/parser/tokenizerTypes.d.ts +31 -1
- package/dist/parser/tokenizerTypes.js +51 -1
- package/dist/parser/tokenizerTypes.js.map +1 -1
- package/dist/readonlyAugmentedFileSystem.js +1 -1
- package/dist/readonlyAugmentedFileSystem.js.map +1 -1
- package/dist/tests/harness/fourslash/testLanguageService.js +1 -1
- package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.js +2 -1
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/importResolver.test.js +3 -3
- package/dist/tests/importResolver.test.js.map +1 -1
- package/dist/tests/textRange.test.d.ts +1 -0
- package/dist/tests/textRange.test.js +45 -0
- package/dist/tests/textRange.test.js.map +1 -0
- package/dist/tests/tokenizer.test.js +272 -58
- package/dist/tests/tokenizer.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +4 -0
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +10 -0
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +7 -2
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +8 -0
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/dist/workspaceFactory.js +3 -5
- package/dist/workspaceFactory.js.map +1 -1
- package/package.json +1 -1
@@ -1,15 +1,6 @@
|
|
1
|
-
import { StringToken } from './tokenizerTypes';
|
2
|
-
export interface FormatStringSegment {
|
3
|
-
offset: number;
|
4
|
-
length: number;
|
5
|
-
value: string;
|
6
|
-
isExpression: boolean;
|
7
|
-
}
|
1
|
+
import { FStringMiddleToken, StringToken } from './tokenizerTypes';
|
8
2
|
export declare const enum UnescapeErrorType {
|
9
|
-
InvalidEscapeSequence = 0
|
10
|
-
EscapeWithinFormatExpression = 1,
|
11
|
-
SingleCloseBraceWithinFormatLiteral = 2,
|
12
|
-
UnterminatedFormatExpression = 3
|
3
|
+
InvalidEscapeSequence = 0
|
13
4
|
}
|
14
5
|
export interface UnescapeError {
|
15
6
|
offset: number;
|
@@ -20,6 +11,5 @@ export interface UnescapedString {
|
|
20
11
|
value: string;
|
21
12
|
unescapeErrors: UnescapeError[];
|
22
13
|
nonAsciiInBytes: boolean;
|
23
|
-
formatStringSegments: FormatStringSegment[];
|
24
14
|
}
|
25
|
-
export declare function getUnescapedString(stringToken: StringToken): UnescapedString;
|
15
|
+
export declare function getUnescapedString(stringToken: StringToken | FStringMiddleToken): UnescapedString;
|
@@ -13,30 +13,21 @@ exports.getUnescapedString = exports.UnescapeErrorType = void 0;
|
|
13
13
|
var UnescapeErrorType;
|
14
14
|
(function (UnescapeErrorType) {
|
15
15
|
UnescapeErrorType[UnescapeErrorType["InvalidEscapeSequence"] = 0] = "InvalidEscapeSequence";
|
16
|
-
UnescapeErrorType[UnescapeErrorType["EscapeWithinFormatExpression"] = 1] = "EscapeWithinFormatExpression";
|
17
|
-
UnescapeErrorType[UnescapeErrorType["SingleCloseBraceWithinFormatLiteral"] = 2] = "SingleCloseBraceWithinFormatLiteral";
|
18
|
-
UnescapeErrorType[UnescapeErrorType["UnterminatedFormatExpression"] = 3] = "UnterminatedFormatExpression";
|
19
16
|
})(UnescapeErrorType = exports.UnescapeErrorType || (exports.UnescapeErrorType = {}));
|
20
17
|
function completeUnescapedString(incomplete) {
|
21
18
|
return {
|
22
19
|
...incomplete,
|
23
20
|
value: incomplete.valueParts.join(''),
|
24
|
-
formatStringSegments: incomplete.formatStringSegments.map((segment) => ({
|
25
|
-
...segment,
|
26
|
-
value: segment.valueParts.join(''),
|
27
|
-
})),
|
28
21
|
};
|
29
22
|
}
|
30
23
|
function getUnescapedString(stringToken) {
|
31
24
|
const escapedString = stringToken.escapedValue;
|
32
25
|
const isRaw = (stringToken.flags & 8 /* Raw */) !== 0;
|
33
|
-
|
34
|
-
if (isRaw && !isFormat) {
|
26
|
+
if (isRaw) {
|
35
27
|
return {
|
36
28
|
value: escapedString,
|
37
29
|
unescapeErrors: [],
|
38
30
|
nonAsciiInBytes: false,
|
39
|
-
formatStringSegments: [],
|
40
31
|
};
|
41
32
|
}
|
42
33
|
const charCodes = [];
|
@@ -45,30 +36,18 @@ function getUnescapedString(stringToken) {
|
|
45
36
|
}
|
46
37
|
const isBytes = (stringToken.flags & 32 /* Bytes */) !== 0;
|
47
38
|
// Handle the common case in an expedited manner.
|
48
|
-
if (!
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
formatStringSegments: [],
|
55
|
-
};
|
56
|
-
}
|
39
|
+
if (!charCodes.some((curChar) => curChar === 13 /* CarriageReturn */ || curChar === 10 /* LineFeed */ || curChar === 92 /* Backslash */)) {
|
40
|
+
return {
|
41
|
+
value: escapedString,
|
42
|
+
unescapeErrors: [],
|
43
|
+
nonAsciiInBytes: isBytes && charCodes.some((curChar) => curChar >= 128),
|
44
|
+
};
|
57
45
|
}
|
58
|
-
let formatExpressionNestCount = 0;
|
59
|
-
let formatSegment = {
|
60
|
-
offset: 0,
|
61
|
-
length: 0,
|
62
|
-
valueParts: [],
|
63
|
-
isExpression: false,
|
64
|
-
hasFormatSpecifier: false,
|
65
|
-
};
|
66
46
|
let strOffset = 0;
|
67
47
|
const output = {
|
68
48
|
valueParts: [],
|
69
49
|
unescapeErrors: [],
|
70
50
|
nonAsciiInBytes: false,
|
71
|
-
formatStringSegments: [],
|
72
51
|
};
|
73
52
|
const addInvalidEscapeOffset = () => {
|
74
53
|
// Invalid escapes are not reported for raw strings.
|
@@ -112,37 +91,13 @@ function getUnescapedString(stringToken) {
|
|
112
91
|
const appendOutputChar = (charCode) => {
|
113
92
|
const char = String.fromCharCode(charCode);
|
114
93
|
output.valueParts.push(char);
|
115
|
-
formatSegment.valueParts.push(char);
|
116
94
|
};
|
117
95
|
while (true) {
|
118
96
|
let curChar = getEscapedCharacter();
|
119
97
|
if (curChar === 3 /* EndOfText */) {
|
120
|
-
if (isFormat) {
|
121
|
-
if (formatSegment.isExpression) {
|
122
|
-
// The last format segment was an unterminated expression.
|
123
|
-
output.unescapeErrors.push({
|
124
|
-
offset: formatSegment.offset,
|
125
|
-
length: strOffset - formatSegment.offset,
|
126
|
-
errorType: 3 /* UnterminatedFormatExpression */,
|
127
|
-
});
|
128
|
-
}
|
129
|
-
// Push the last segment.
|
130
|
-
if (strOffset !== formatSegment.offset) {
|
131
|
-
formatSegment.length = strOffset - formatSegment.offset;
|
132
|
-
output.formatStringSegments.push(formatSegment);
|
133
|
-
}
|
134
|
-
}
|
135
98
|
return completeUnescapedString(output);
|
136
99
|
}
|
137
100
|
if (curChar === 92 /* Backslash */) {
|
138
|
-
if (isFormat && formatSegment.isExpression && !formatSegment.hasFormatSpecifier) {
|
139
|
-
// Backslashes aren't allowed within format string expressions.
|
140
|
-
output.unescapeErrors.push({
|
141
|
-
offset: strOffset,
|
142
|
-
length: 1,
|
143
|
-
errorType: 1 /* EscapeWithinFormatExpression */,
|
144
|
-
});
|
145
|
-
}
|
146
101
|
// Move past the escape (backslash) character.
|
147
102
|
strOffset++;
|
148
103
|
if (isRaw) {
|
@@ -165,7 +120,7 @@ function getUnescapedString(stringToken) {
|
|
165
120
|
strOffset++;
|
166
121
|
}
|
167
122
|
else {
|
168
|
-
if (isRaw
|
123
|
+
if (isRaw) {
|
169
124
|
localValue = '\\' + String.fromCharCode(curChar);
|
170
125
|
strOffset++;
|
171
126
|
}
|
@@ -277,7 +232,6 @@ function getUnescapedString(stringToken) {
|
|
277
232
|
}
|
278
233
|
}
|
279
234
|
output.valueParts.push(localValue);
|
280
|
-
formatSegment.valueParts.push(localValue);
|
281
235
|
}
|
282
236
|
else if (curChar === 10 /* LineFeed */ || curChar === 13 /* CarriageReturn */) {
|
283
237
|
// Skip over the escaped new line (either one or two characters).
|
@@ -289,134 +243,7 @@ function getUnescapedString(stringToken) {
|
|
289
243
|
appendOutputChar(curChar);
|
290
244
|
strOffset++;
|
291
245
|
}
|
292
|
-
else if (isFormat && curChar === 123 /* OpenBrace */) {
|
293
|
-
if (!formatSegment.isExpression && getEscapedCharacter(1) === 123 /* OpenBrace */) {
|
294
|
-
appendOutputChar(curChar);
|
295
|
-
strOffset += 2;
|
296
|
-
}
|
297
|
-
else {
|
298
|
-
if (formatExpressionNestCount === 0) {
|
299
|
-
// A single open brace within a format literal indicates that
|
300
|
-
// an expression is starting.
|
301
|
-
formatSegment.length = strOffset - formatSegment.offset;
|
302
|
-
if (formatSegment.length > 0) {
|
303
|
-
output.formatStringSegments.push(formatSegment);
|
304
|
-
}
|
305
|
-
strOffset++;
|
306
|
-
// Start a new segment.
|
307
|
-
formatSegment = {
|
308
|
-
offset: strOffset,
|
309
|
-
length: 0,
|
310
|
-
valueParts: [],
|
311
|
-
isExpression: true,
|
312
|
-
hasFormatSpecifier: false,
|
313
|
-
};
|
314
|
-
}
|
315
|
-
else {
|
316
|
-
appendOutputChar(curChar);
|
317
|
-
strOffset++;
|
318
|
-
}
|
319
|
-
formatExpressionNestCount++;
|
320
|
-
}
|
321
|
-
}
|
322
|
-
else if (isFormat && curChar === 125 /* CloseBrace */) {
|
323
|
-
if (!formatSegment.isExpression && getEscapedCharacter(1) === 125 /* CloseBrace */) {
|
324
|
-
appendOutputChar(curChar);
|
325
|
-
strOffset += 2;
|
326
|
-
}
|
327
|
-
else if (formatExpressionNestCount === 0) {
|
328
|
-
output.unescapeErrors.push({
|
329
|
-
offset: strOffset,
|
330
|
-
length: 1,
|
331
|
-
errorType: 2 /* SingleCloseBraceWithinFormatLiteral */,
|
332
|
-
});
|
333
|
-
strOffset++;
|
334
|
-
}
|
335
|
-
else {
|
336
|
-
formatExpressionNestCount--;
|
337
|
-
if (formatExpressionNestCount === 0) {
|
338
|
-
// A close brace within a format expression indicates that
|
339
|
-
// the expression is complete.
|
340
|
-
formatSegment.length = strOffset - formatSegment.offset;
|
341
|
-
output.formatStringSegments.push(formatSegment);
|
342
|
-
strOffset++;
|
343
|
-
// Start a new segment.
|
344
|
-
formatSegment = {
|
345
|
-
offset: strOffset,
|
346
|
-
length: 0,
|
347
|
-
valueParts: [],
|
348
|
-
isExpression: false,
|
349
|
-
hasFormatSpecifier: false,
|
350
|
-
};
|
351
|
-
}
|
352
|
-
else {
|
353
|
-
appendOutputChar(curChar);
|
354
|
-
strOffset++;
|
355
|
-
}
|
356
|
-
}
|
357
|
-
}
|
358
|
-
else if (formatSegment.isExpression && (curChar === 39 /* SingleQuote */ || curChar === 34 /* DoubleQuote */)) {
|
359
|
-
// We're within an expression, and we've encountered a string literal.
|
360
|
-
// Skip over it.
|
361
|
-
const quoteChar = curChar;
|
362
|
-
appendOutputChar(curChar);
|
363
|
-
const isTriplicate = getEscapedCharacter(1) === quoteChar && getEscapedCharacter(2) === quoteChar;
|
364
|
-
if (isTriplicate) {
|
365
|
-
strOffset += 2;
|
366
|
-
appendOutputChar(curChar);
|
367
|
-
appendOutputChar(curChar);
|
368
|
-
output.valueParts.push(String.fromCharCode(curChar));
|
369
|
-
output.valueParts.push(String.fromCharCode(curChar));
|
370
|
-
}
|
371
|
-
while (true) {
|
372
|
-
strOffset++;
|
373
|
-
let strChar = getEscapedCharacter();
|
374
|
-
if (strChar === 3 /* EndOfText */) {
|
375
|
-
break;
|
376
|
-
}
|
377
|
-
if (strChar === 92 /* Backslash */) {
|
378
|
-
if (isFormat) {
|
379
|
-
if (formatSegment.isExpression) {
|
380
|
-
// The last format segment was an unterminated expression.
|
381
|
-
output.unescapeErrors.push({
|
382
|
-
offset: formatSegment.offset,
|
383
|
-
length: strOffset - formatSegment.offset,
|
384
|
-
errorType: 3 /* UnterminatedFormatExpression */,
|
385
|
-
});
|
386
|
-
}
|
387
|
-
}
|
388
|
-
appendOutputChar(strChar);
|
389
|
-
strOffset++;
|
390
|
-
strChar = getEscapedCharacter();
|
391
|
-
appendOutputChar(strChar);
|
392
|
-
continue;
|
393
|
-
}
|
394
|
-
if (strChar === 10 /* LineFeed */ || strChar === 13 /* CarriageReturn */) {
|
395
|
-
if (!isTriplicate) {
|
396
|
-
break;
|
397
|
-
}
|
398
|
-
}
|
399
|
-
if (strChar === quoteChar) {
|
400
|
-
if (!isTriplicate) {
|
401
|
-
strOffset++;
|
402
|
-
appendOutputChar(strChar);
|
403
|
-
break;
|
404
|
-
}
|
405
|
-
if (getEscapedCharacter(1) === quoteChar && getEscapedCharacter(2) === quoteChar) {
|
406
|
-
strOffset += 3;
|
407
|
-
appendOutputChar(strChar);
|
408
|
-
appendOutputChar(strChar);
|
409
|
-
appendOutputChar(strChar);
|
410
|
-
break;
|
411
|
-
}
|
412
|
-
}
|
413
|
-
appendOutputChar(strChar);
|
414
|
-
}
|
415
|
-
}
|
416
246
|
else {
|
417
|
-
if (formatSegment.isExpression && curChar === 58 /* Colon */) {
|
418
|
-
formatSegment.hasFormatSpecifier = true;
|
419
|
-
}
|
420
247
|
// There's nothing to unescape, so output the escaped character directly.
|
421
248
|
if (isBytes && curChar >= 128) {
|
422
249
|
output.nonAsciiInBytes = true;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"stringTokenUtils.js","sourceRoot":"","sources":["../../../src/parser/stringTokenUtils.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"stringTokenUtils.js","sourceRoot":"","sources":["../../../src/parser/stringTokenUtils.ts"],"names":[],"mappings":"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"}
|
@@ -32,6 +32,8 @@ export declare class Tokenizer {
|
|
32
32
|
private _typeIgnoreLines;
|
33
33
|
private _pyrightIgnoreLines;
|
34
34
|
private _comments;
|
35
|
+
private _fStringStack;
|
36
|
+
private _activeFString;
|
35
37
|
private _crCount;
|
36
38
|
private _crLfCount;
|
37
39
|
private _lfCount;
|
@@ -65,6 +67,7 @@ export declare class Tokenizer {
|
|
65
67
|
private _getStringPrefixLength;
|
66
68
|
private _getQuoteTypeFlags;
|
67
69
|
private _handleString;
|
70
|
+
private _handleFStringMiddle;
|
68
71
|
private _skipToEndOfStringLiteral;
|
69
72
|
private _skipFloatingPointCandidate;
|
70
73
|
private _skipFractionalNumber;
|