typescript 4.8.0-dev.20220729 → 4.8.0-dev.20220801
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/lib/cs/diagnosticMessages.generated.json +2 -0
- package/lib/de/diagnosticMessages.generated.json +2 -0
- package/lib/es/diagnosticMessages.generated.json +2 -0
- package/lib/fr/diagnosticMessages.generated.json +2 -0
- package/lib/it/diagnosticMessages.generated.json +2 -0
- package/lib/ja/diagnosticMessages.generated.json +2 -0
- package/lib/ko/diagnosticMessages.generated.json +2 -0
- package/lib/pl/diagnosticMessages.generated.json +2 -0
- package/lib/pt-br/diagnosticMessages.generated.json +2 -0
- package/lib/ru/diagnosticMessages.generated.json +2 -0
- package/lib/tr/diagnosticMessages.generated.json +2 -0
- package/lib/tsc.js +75 -32
- package/lib/tsserver.js +97 -55
- package/lib/tsserverlibrary.js +97 -55
- package/lib/typescript.js +97 -55
- package/lib/typescriptServices.js +97 -55
- package/lib/typingsInstaller.js +97 -55
- package/lib/zh-cn/diagnosticMessages.generated.json +2 -0
- package/lib/zh-tw/diagnosticMessages.generated.json +2 -0
- package/package.json +1 -1
package/lib/typescript.js
CHANGED
|
@@ -294,7 +294,7 @@ var ts;
|
|
|
294
294
|
// The following is baselined as a literal template type without intervention
|
|
295
295
|
/** The version of the TypeScript compiler release */
|
|
296
296
|
// eslint-disable-next-line @typescript-eslint/no-inferrable-types
|
|
297
|
-
ts.version = ts.versionMajorMinor + ".0-dev.
|
|
297
|
+
ts.version = ts.versionMajorMinor + ".0-dev.20220801";
|
|
298
298
|
/* @internal */
|
|
299
299
|
var Comparison;
|
|
300
300
|
(function (Comparison) {
|
|
@@ -5907,10 +5907,8 @@ var ts;
|
|
|
5907
5907
|
TransformFlags[TransformFlags["ContainsPossibleTopLevelAwait"] = 67108864] = "ContainsPossibleTopLevelAwait";
|
|
5908
5908
|
TransformFlags[TransformFlags["ContainsLexicalSuper"] = 134217728] = "ContainsLexicalSuper";
|
|
5909
5909
|
TransformFlags[TransformFlags["ContainsUpdateExpressionForIdentifier"] = 268435456] = "ContainsUpdateExpressionForIdentifier";
|
|
5910
|
-
|
|
5911
|
-
|
|
5912
|
-
// It is a good reminder of how much room we have left
|
|
5913
|
-
TransformFlags[TransformFlags["HasComputedFlags"] = 536870912] = "HasComputedFlags";
|
|
5910
|
+
TransformFlags[TransformFlags["ContainsPrivateIdentifierInExpression"] = 536870912] = "ContainsPrivateIdentifierInExpression";
|
|
5911
|
+
TransformFlags[TransformFlags["HasComputedFlags"] = -2147483648] = "HasComputedFlags";
|
|
5914
5912
|
// Assertions
|
|
5915
5913
|
// - Bitmasks that are used to assert facts about the syntax of a node and its subtree.
|
|
5916
5914
|
TransformFlags[TransformFlags["AssertTypeScript"] = 1] = "AssertTypeScript";
|
|
@@ -5929,23 +5927,23 @@ var ts;
|
|
|
5929
5927
|
// Scope Exclusions
|
|
5930
5928
|
// - Bitmasks that exclude flags from propagating out of a specific context
|
|
5931
5929
|
// into the subtree flags of their container.
|
|
5932
|
-
TransformFlags[TransformFlags["OuterExpressionExcludes"] =
|
|
5933
|
-
TransformFlags[TransformFlags["PropertyAccessExcludes"] =
|
|
5934
|
-
TransformFlags[TransformFlags["NodeExcludes"] =
|
|
5935
|
-
TransformFlags[TransformFlags["ArrowFunctionExcludes"] =
|
|
5936
|
-
TransformFlags[TransformFlags["FunctionExcludes"] =
|
|
5937
|
-
TransformFlags[TransformFlags["ConstructorExcludes"] =
|
|
5938
|
-
TransformFlags[TransformFlags["MethodOrAccessorExcludes"] =
|
|
5939
|
-
TransformFlags[TransformFlags["PropertyExcludes"] =
|
|
5940
|
-
TransformFlags[TransformFlags["ClassExcludes"] =
|
|
5941
|
-
TransformFlags[TransformFlags["ModuleExcludes"] =
|
|
5930
|
+
TransformFlags[TransformFlags["OuterExpressionExcludes"] = -2147483648] = "OuterExpressionExcludes";
|
|
5931
|
+
TransformFlags[TransformFlags["PropertyAccessExcludes"] = -2147483648] = "PropertyAccessExcludes";
|
|
5932
|
+
TransformFlags[TransformFlags["NodeExcludes"] = -2147483648] = "NodeExcludes";
|
|
5933
|
+
TransformFlags[TransformFlags["ArrowFunctionExcludes"] = -2072174592] = "ArrowFunctionExcludes";
|
|
5934
|
+
TransformFlags[TransformFlags["FunctionExcludes"] = -1937940480] = "FunctionExcludes";
|
|
5935
|
+
TransformFlags[TransformFlags["ConstructorExcludes"] = -1937948672] = "ConstructorExcludes";
|
|
5936
|
+
TransformFlags[TransformFlags["MethodOrAccessorExcludes"] = -2005057536] = "MethodOrAccessorExcludes";
|
|
5937
|
+
TransformFlags[TransformFlags["PropertyExcludes"] = -2013249536] = "PropertyExcludes";
|
|
5938
|
+
TransformFlags[TransformFlags["ClassExcludes"] = -2147344384] = "ClassExcludes";
|
|
5939
|
+
TransformFlags[TransformFlags["ModuleExcludes"] = -1941676032] = "ModuleExcludes";
|
|
5942
5940
|
TransformFlags[TransformFlags["TypeExcludes"] = -2] = "TypeExcludes";
|
|
5943
|
-
TransformFlags[TransformFlags["ObjectLiteralExcludes"] =
|
|
5944
|
-
TransformFlags[TransformFlags["ArrayLiteralOrCallOrNewExcludes"] =
|
|
5945
|
-
TransformFlags[TransformFlags["VariableDeclarationListExcludes"] =
|
|
5946
|
-
TransformFlags[TransformFlags["ParameterExcludes"] =
|
|
5947
|
-
TransformFlags[TransformFlags["CatchClauseExcludes"] =
|
|
5948
|
-
TransformFlags[TransformFlags["BindingPatternExcludes"] =
|
|
5941
|
+
TransformFlags[TransformFlags["ObjectLiteralExcludes"] = -2147278848] = "ObjectLiteralExcludes";
|
|
5942
|
+
TransformFlags[TransformFlags["ArrayLiteralOrCallOrNewExcludes"] = -2147450880] = "ArrayLiteralOrCallOrNewExcludes";
|
|
5943
|
+
TransformFlags[TransformFlags["VariableDeclarationListExcludes"] = -2146893824] = "VariableDeclarationListExcludes";
|
|
5944
|
+
TransformFlags[TransformFlags["ParameterExcludes"] = -2147483648] = "ParameterExcludes";
|
|
5945
|
+
TransformFlags[TransformFlags["CatchClauseExcludes"] = -2147418112] = "CatchClauseExcludes";
|
|
5946
|
+
TransformFlags[TransformFlags["BindingPatternExcludes"] = -2147450880] = "BindingPatternExcludes";
|
|
5949
5947
|
TransformFlags[TransformFlags["ContainsLexicalThisOrSuper"] = 134234112] = "ContainsLexicalThisOrSuper";
|
|
5950
5948
|
// Propagating flags
|
|
5951
5949
|
// - Bitmasks for flags that should propagate from a child
|
|
@@ -24284,7 +24282,7 @@ var ts;
|
|
|
24284
24282
|
propagateChildFlags(node.expression) |
|
|
24285
24283
|
(ts.isIdentifier(node.name) ?
|
|
24286
24284
|
propagateIdentifierNameFlags(node.name) :
|
|
24287
|
-
propagateChildFlags(node.name));
|
|
24285
|
+
propagateChildFlags(node.name) | 536870912 /* ContainsPrivateIdentifierInExpression */);
|
|
24288
24286
|
if (ts.isSuperKeyword(expression)) {
|
|
24289
24287
|
// super method calls require a lexical 'this'
|
|
24290
24288
|
// super method calls require 'super' hoisting in ES2017 and ES2018 async functions and async generators
|
|
@@ -24317,7 +24315,7 @@ var ts;
|
|
|
24317
24315
|
propagateChildFlags(node.questionDotToken) |
|
|
24318
24316
|
(ts.isIdentifier(node.name) ?
|
|
24319
24317
|
propagateIdentifierNameFlags(node.name) :
|
|
24320
|
-
propagateChildFlags(node.name));
|
|
24318
|
+
propagateChildFlags(node.name) | 536870912 /* ContainsPrivateIdentifierInExpression */);
|
|
24321
24319
|
return node;
|
|
24322
24320
|
}
|
|
24323
24321
|
// @api
|
|
@@ -24721,6 +24719,9 @@ var ts;
|
|
|
24721
24719
|
else if (ts.isLogicalOrCoalescingAssignmentOperator(operatorKind)) {
|
|
24722
24720
|
node.transformFlags |= 16 /* ContainsES2021 */;
|
|
24723
24721
|
}
|
|
24722
|
+
if (operatorKind === 101 /* InKeyword */ && ts.isPrivateIdentifier(node.left)) {
|
|
24723
|
+
node.transformFlags |= 536870912 /* ContainsPrivateIdentifierInExpression */;
|
|
24724
|
+
}
|
|
24724
24725
|
return node;
|
|
24725
24726
|
}
|
|
24726
24727
|
function propagateAssignmentPatternFlags(node) {
|
|
@@ -27675,29 +27676,29 @@ var ts;
|
|
|
27675
27676
|
case 208 /* CallExpression */:
|
|
27676
27677
|
case 209 /* NewExpression */:
|
|
27677
27678
|
case 204 /* ArrayLiteralExpression */:
|
|
27678
|
-
return
|
|
27679
|
+
return -2147450880 /* ArrayLiteralOrCallOrNewExcludes */;
|
|
27679
27680
|
case 261 /* ModuleDeclaration */:
|
|
27680
|
-
return
|
|
27681
|
+
return -1941676032 /* ModuleExcludes */;
|
|
27681
27682
|
case 164 /* Parameter */:
|
|
27682
|
-
return
|
|
27683
|
+
return -2147483648 /* ParameterExcludes */;
|
|
27683
27684
|
case 214 /* ArrowFunction */:
|
|
27684
|
-
return
|
|
27685
|
+
return -2072174592 /* ArrowFunctionExcludes */;
|
|
27685
27686
|
case 213 /* FunctionExpression */:
|
|
27686
27687
|
case 256 /* FunctionDeclaration */:
|
|
27687
|
-
return
|
|
27688
|
+
return -1937940480 /* FunctionExcludes */;
|
|
27688
27689
|
case 255 /* VariableDeclarationList */:
|
|
27689
|
-
return
|
|
27690
|
+
return -2146893824 /* VariableDeclarationListExcludes */;
|
|
27690
27691
|
case 257 /* ClassDeclaration */:
|
|
27691
27692
|
case 226 /* ClassExpression */:
|
|
27692
|
-
return
|
|
27693
|
+
return -2147344384 /* ClassExcludes */;
|
|
27693
27694
|
case 171 /* Constructor */:
|
|
27694
|
-
return
|
|
27695
|
+
return -1937948672 /* ConstructorExcludes */;
|
|
27695
27696
|
case 167 /* PropertyDeclaration */:
|
|
27696
|
-
return
|
|
27697
|
+
return -2013249536 /* PropertyExcludes */;
|
|
27697
27698
|
case 169 /* MethodDeclaration */:
|
|
27698
27699
|
case 172 /* GetAccessor */:
|
|
27699
27700
|
case 173 /* SetAccessor */:
|
|
27700
|
-
return
|
|
27701
|
+
return -2005057536 /* MethodOrAccessorExcludes */;
|
|
27701
27702
|
case 130 /* AnyKeyword */:
|
|
27702
27703
|
case 147 /* NumberKeyword */:
|
|
27703
27704
|
case 158 /* BigIntKeyword */:
|
|
@@ -27717,23 +27718,23 @@ var ts;
|
|
|
27717
27718
|
case 259 /* TypeAliasDeclaration */:
|
|
27718
27719
|
return -2 /* TypeExcludes */;
|
|
27719
27720
|
case 205 /* ObjectLiteralExpression */:
|
|
27720
|
-
return
|
|
27721
|
+
return -2147278848 /* ObjectLiteralExcludes */;
|
|
27721
27722
|
case 292 /* CatchClause */:
|
|
27722
|
-
return
|
|
27723
|
+
return -2147418112 /* CatchClauseExcludes */;
|
|
27723
27724
|
case 201 /* ObjectBindingPattern */:
|
|
27724
27725
|
case 202 /* ArrayBindingPattern */:
|
|
27725
|
-
return
|
|
27726
|
+
return -2147450880 /* BindingPatternExcludes */;
|
|
27726
27727
|
case 211 /* TypeAssertionExpression */:
|
|
27727
27728
|
case 229 /* AsExpression */:
|
|
27728
27729
|
case 350 /* PartiallyEmittedExpression */:
|
|
27729
27730
|
case 212 /* ParenthesizedExpression */:
|
|
27730
27731
|
case 106 /* SuperKeyword */:
|
|
27731
|
-
return
|
|
27732
|
+
return -2147483648 /* OuterExpressionExcludes */;
|
|
27732
27733
|
case 206 /* PropertyAccessExpression */:
|
|
27733
27734
|
case 207 /* ElementAccessExpression */:
|
|
27734
|
-
return
|
|
27735
|
+
return -2147483648 /* PropertyAccessExcludes */;
|
|
27735
27736
|
default:
|
|
27736
|
-
return
|
|
27737
|
+
return -2147483648 /* NodeExcludes */;
|
|
27737
27738
|
}
|
|
27738
27739
|
}
|
|
27739
27740
|
ts.getTransformFlagsSubtreeExclusions = getTransformFlagsSubtreeExclusions;
|
|
@@ -80979,7 +80980,7 @@ var ts;
|
|
|
80979
80980
|
error(node.name, ts.Diagnostics.constructor_cannot_be_used_as_a_parameter_property_name);
|
|
80980
80981
|
}
|
|
80981
80982
|
}
|
|
80982
|
-
if (node.questionToken && ts.isBindingPattern(node.name) && func.body) {
|
|
80983
|
+
if ((node.questionToken || isJSDocOptionalParameter(node)) && ts.isBindingPattern(node.name) && func.body) {
|
|
80983
80984
|
error(node, ts.Diagnostics.A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature);
|
|
80984
80985
|
}
|
|
80985
80986
|
if (node.name && ts.isIdentifier(node.name) && (node.name.escapedText === "this" || node.name.escapedText === "new")) {
|
|
@@ -96784,39 +96785,72 @@ var ts;
|
|
|
96784
96785
|
function visitClassDeclaration(node) {
|
|
96785
96786
|
if (!(ts.classOrConstructorParameterIsDecorated(node) || ts.childIsDecorated(node)))
|
|
96786
96787
|
return ts.visitEachChild(node, visitor, context);
|
|
96787
|
-
var
|
|
96788
|
-
|
|
96789
|
-
|
|
96790
|
-
var statements = [classStatement];
|
|
96791
|
-
// Write any decorators of the node.
|
|
96792
|
-
addClassElementDecorationStatements(statements, node, /*isStatic*/ false);
|
|
96793
|
-
addClassElementDecorationStatements(statements, node, /*isStatic*/ true);
|
|
96794
|
-
addConstructorDecorationStatement(statements, node);
|
|
96788
|
+
var statements = ts.hasDecorators(node) ?
|
|
96789
|
+
transformClassDeclarationWithClassDecorators(node, node.name) :
|
|
96790
|
+
transformClassDeclarationWithoutClassDecorators(node, node.name);
|
|
96795
96791
|
if (statements.length > 1) {
|
|
96796
96792
|
// Add a DeclarationMarker as a marker for the end of the declaration
|
|
96797
96793
|
statements.push(factory.createEndOfDeclarationMarker(node));
|
|
96798
|
-
ts.setEmitFlags(
|
|
96794
|
+
ts.setEmitFlags(statements[0], ts.getEmitFlags(statements[0]) | 4194304 /* HasEndOfDeclarationMarker */);
|
|
96799
96795
|
}
|
|
96800
96796
|
return ts.singleOrMany(statements);
|
|
96801
96797
|
}
|
|
96798
|
+
function decoratorContainsPrivateIdentifierInExpression(decorator) {
|
|
96799
|
+
return !!(decorator.transformFlags & 536870912 /* ContainsPrivateIdentifierInExpression */);
|
|
96800
|
+
}
|
|
96801
|
+
function parameterDecoratorsContainPrivateIdentifierInExpression(parameterDecorators) {
|
|
96802
|
+
return ts.some(parameterDecorators, decoratorContainsPrivateIdentifierInExpression);
|
|
96803
|
+
}
|
|
96804
|
+
function hasClassElementWithDecoratorContainingPrivateIdentifierInExpression(node) {
|
|
96805
|
+
for (var _i = 0, _a = node.members; _i < _a.length; _i++) {
|
|
96806
|
+
var member = _a[_i];
|
|
96807
|
+
if (!ts.canHaveDecorators(member))
|
|
96808
|
+
continue;
|
|
96809
|
+
var allDecorators = ts.getAllDecoratorsOfClassElement(member, node);
|
|
96810
|
+
if (ts.some(allDecorators === null || allDecorators === void 0 ? void 0 : allDecorators.decorators, decoratorContainsPrivateIdentifierInExpression))
|
|
96811
|
+
return true;
|
|
96812
|
+
if (ts.some(allDecorators === null || allDecorators === void 0 ? void 0 : allDecorators.parameters, parameterDecoratorsContainPrivateIdentifierInExpression))
|
|
96813
|
+
return true;
|
|
96814
|
+
}
|
|
96815
|
+
return false;
|
|
96816
|
+
}
|
|
96817
|
+
function transformDecoratorsOfClassElements(node, members) {
|
|
96818
|
+
var decorationStatements = [];
|
|
96819
|
+
addClassElementDecorationStatements(decorationStatements, node, /*isStatic*/ false);
|
|
96820
|
+
addClassElementDecorationStatements(decorationStatements, node, /*isStatic*/ true);
|
|
96821
|
+
if (hasClassElementWithDecoratorContainingPrivateIdentifierInExpression(node)) {
|
|
96822
|
+
members = ts.setTextRange(factory.createNodeArray(__spreadArray(__spreadArray([], members, true), [
|
|
96823
|
+
factory.createClassStaticBlockDeclaration(factory.createBlock(decorationStatements, /*multiLine*/ true))
|
|
96824
|
+
], false)), members);
|
|
96825
|
+
decorationStatements = undefined;
|
|
96826
|
+
}
|
|
96827
|
+
return { decorationStatements: decorationStatements, members: members };
|
|
96828
|
+
}
|
|
96802
96829
|
/**
|
|
96803
96830
|
* Transforms a non-decorated class declaration.
|
|
96804
96831
|
*
|
|
96805
96832
|
* @param node A ClassDeclaration node.
|
|
96806
96833
|
* @param name The name of the class.
|
|
96807
96834
|
*/
|
|
96808
|
-
function
|
|
96835
|
+
function transformClassDeclarationWithoutClassDecorators(node, name) {
|
|
96809
96836
|
// ${modifiers} class ${name} ${heritageClauses} {
|
|
96810
96837
|
// ${members}
|
|
96811
96838
|
// }
|
|
96812
|
-
|
|
96813
|
-
|
|
96839
|
+
var _a;
|
|
96840
|
+
var modifiers = ts.visitNodes(node.modifiers, modifierVisitor, ts.isModifier);
|
|
96841
|
+
var heritageClauses = ts.visitNodes(node.heritageClauses, visitor, ts.isHeritageClause);
|
|
96842
|
+
var members = ts.visitNodes(node.members, visitor, ts.isClassElement);
|
|
96843
|
+
var decorationStatements = [];
|
|
96844
|
+
(_a = transformDecoratorsOfClassElements(node, members), members = _a.members, decorationStatements = _a.decorationStatements);
|
|
96845
|
+
var updated = factory.updateClassDeclaration(node, modifiers, name,
|
|
96846
|
+
/*typeParameters*/ undefined, heritageClauses, members);
|
|
96847
|
+
return ts.addRange([updated], decorationStatements);
|
|
96814
96848
|
}
|
|
96815
96849
|
/**
|
|
96816
96850
|
* Transforms a decorated class declaration and appends the resulting statements. If
|
|
96817
96851
|
* the class requires an alias to avoid issues with double-binding, the alias is returned.
|
|
96818
96852
|
*/
|
|
96819
|
-
function
|
|
96853
|
+
function transformClassDeclarationWithClassDecorators(node, name) {
|
|
96820
96854
|
// When we emit an ES6 class that has a class decorator, we must tailor the
|
|
96821
96855
|
// emit to certain specific cases.
|
|
96822
96856
|
//
|
|
@@ -96902,6 +96936,7 @@ var ts;
|
|
|
96902
96936
|
// | var C_1;
|
|
96903
96937
|
// ---------------------------------------------------------------------
|
|
96904
96938
|
//
|
|
96939
|
+
var _a;
|
|
96905
96940
|
var location = ts.moveRangePastModifiers(node);
|
|
96906
96941
|
var classAlias = getClassAliasIfNeeded(node);
|
|
96907
96942
|
// When we transform to ES5/3 this will be moved inside an IIFE and should reference the name
|
|
@@ -96914,7 +96949,11 @@ var ts;
|
|
|
96914
96949
|
// }
|
|
96915
96950
|
var heritageClauses = ts.visitNodes(node.heritageClauses, visitor, ts.isHeritageClause);
|
|
96916
96951
|
var members = ts.visitNodes(node.members, visitor, ts.isClassElement);
|
|
96917
|
-
var
|
|
96952
|
+
var decorationStatements = [];
|
|
96953
|
+
(_a = transformDecoratorsOfClassElements(node, members), members = _a.members, decorationStatements = _a.decorationStatements);
|
|
96954
|
+
var classExpression = factory.createClassExpression(
|
|
96955
|
+
/*modifiers*/ undefined, name,
|
|
96956
|
+
/*typeParameters*/ undefined, heritageClauses, members);
|
|
96918
96957
|
ts.setOriginalNode(classExpression, node);
|
|
96919
96958
|
ts.setTextRange(classExpression, location);
|
|
96920
96959
|
// let ${name} = ${classExpression} where name is either declaredName if the class doesn't contain self-reference
|
|
@@ -96928,7 +96967,10 @@ var ts;
|
|
|
96928
96967
|
ts.setOriginalNode(statement, node);
|
|
96929
96968
|
ts.setTextRange(statement, location);
|
|
96930
96969
|
ts.setCommentRange(statement, node);
|
|
96931
|
-
|
|
96970
|
+
var statements = [statement];
|
|
96971
|
+
ts.addRange(statements, decorationStatements);
|
|
96972
|
+
addConstructorDecorationStatement(statements, node);
|
|
96973
|
+
return statements;
|
|
96932
96974
|
}
|
|
96933
96975
|
function visitClassExpression(node) {
|
|
96934
96976
|
// Legacy decorators were not supported on class expressions
|
|
@@ -294,7 +294,7 @@ var ts;
|
|
|
294
294
|
// The following is baselined as a literal template type without intervention
|
|
295
295
|
/** The version of the TypeScript compiler release */
|
|
296
296
|
// eslint-disable-next-line @typescript-eslint/no-inferrable-types
|
|
297
|
-
ts.version = ts.versionMajorMinor + ".0-dev.
|
|
297
|
+
ts.version = ts.versionMajorMinor + ".0-dev.20220801";
|
|
298
298
|
/* @internal */
|
|
299
299
|
var Comparison;
|
|
300
300
|
(function (Comparison) {
|
|
@@ -5907,10 +5907,8 @@ var ts;
|
|
|
5907
5907
|
TransformFlags[TransformFlags["ContainsPossibleTopLevelAwait"] = 67108864] = "ContainsPossibleTopLevelAwait";
|
|
5908
5908
|
TransformFlags[TransformFlags["ContainsLexicalSuper"] = 134217728] = "ContainsLexicalSuper";
|
|
5909
5909
|
TransformFlags[TransformFlags["ContainsUpdateExpressionForIdentifier"] = 268435456] = "ContainsUpdateExpressionForIdentifier";
|
|
5910
|
-
|
|
5911
|
-
|
|
5912
|
-
// It is a good reminder of how much room we have left
|
|
5913
|
-
TransformFlags[TransformFlags["HasComputedFlags"] = 536870912] = "HasComputedFlags";
|
|
5910
|
+
TransformFlags[TransformFlags["ContainsPrivateIdentifierInExpression"] = 536870912] = "ContainsPrivateIdentifierInExpression";
|
|
5911
|
+
TransformFlags[TransformFlags["HasComputedFlags"] = -2147483648] = "HasComputedFlags";
|
|
5914
5912
|
// Assertions
|
|
5915
5913
|
// - Bitmasks that are used to assert facts about the syntax of a node and its subtree.
|
|
5916
5914
|
TransformFlags[TransformFlags["AssertTypeScript"] = 1] = "AssertTypeScript";
|
|
@@ -5929,23 +5927,23 @@ var ts;
|
|
|
5929
5927
|
// Scope Exclusions
|
|
5930
5928
|
// - Bitmasks that exclude flags from propagating out of a specific context
|
|
5931
5929
|
// into the subtree flags of their container.
|
|
5932
|
-
TransformFlags[TransformFlags["OuterExpressionExcludes"] =
|
|
5933
|
-
TransformFlags[TransformFlags["PropertyAccessExcludes"] =
|
|
5934
|
-
TransformFlags[TransformFlags["NodeExcludes"] =
|
|
5935
|
-
TransformFlags[TransformFlags["ArrowFunctionExcludes"] =
|
|
5936
|
-
TransformFlags[TransformFlags["FunctionExcludes"] =
|
|
5937
|
-
TransformFlags[TransformFlags["ConstructorExcludes"] =
|
|
5938
|
-
TransformFlags[TransformFlags["MethodOrAccessorExcludes"] =
|
|
5939
|
-
TransformFlags[TransformFlags["PropertyExcludes"] =
|
|
5940
|
-
TransformFlags[TransformFlags["ClassExcludes"] =
|
|
5941
|
-
TransformFlags[TransformFlags["ModuleExcludes"] =
|
|
5930
|
+
TransformFlags[TransformFlags["OuterExpressionExcludes"] = -2147483648] = "OuterExpressionExcludes";
|
|
5931
|
+
TransformFlags[TransformFlags["PropertyAccessExcludes"] = -2147483648] = "PropertyAccessExcludes";
|
|
5932
|
+
TransformFlags[TransformFlags["NodeExcludes"] = -2147483648] = "NodeExcludes";
|
|
5933
|
+
TransformFlags[TransformFlags["ArrowFunctionExcludes"] = -2072174592] = "ArrowFunctionExcludes";
|
|
5934
|
+
TransformFlags[TransformFlags["FunctionExcludes"] = -1937940480] = "FunctionExcludes";
|
|
5935
|
+
TransformFlags[TransformFlags["ConstructorExcludes"] = -1937948672] = "ConstructorExcludes";
|
|
5936
|
+
TransformFlags[TransformFlags["MethodOrAccessorExcludes"] = -2005057536] = "MethodOrAccessorExcludes";
|
|
5937
|
+
TransformFlags[TransformFlags["PropertyExcludes"] = -2013249536] = "PropertyExcludes";
|
|
5938
|
+
TransformFlags[TransformFlags["ClassExcludes"] = -2147344384] = "ClassExcludes";
|
|
5939
|
+
TransformFlags[TransformFlags["ModuleExcludes"] = -1941676032] = "ModuleExcludes";
|
|
5942
5940
|
TransformFlags[TransformFlags["TypeExcludes"] = -2] = "TypeExcludes";
|
|
5943
|
-
TransformFlags[TransformFlags["ObjectLiteralExcludes"] =
|
|
5944
|
-
TransformFlags[TransformFlags["ArrayLiteralOrCallOrNewExcludes"] =
|
|
5945
|
-
TransformFlags[TransformFlags["VariableDeclarationListExcludes"] =
|
|
5946
|
-
TransformFlags[TransformFlags["ParameterExcludes"] =
|
|
5947
|
-
TransformFlags[TransformFlags["CatchClauseExcludes"] =
|
|
5948
|
-
TransformFlags[TransformFlags["BindingPatternExcludes"] =
|
|
5941
|
+
TransformFlags[TransformFlags["ObjectLiteralExcludes"] = -2147278848] = "ObjectLiteralExcludes";
|
|
5942
|
+
TransformFlags[TransformFlags["ArrayLiteralOrCallOrNewExcludes"] = -2147450880] = "ArrayLiteralOrCallOrNewExcludes";
|
|
5943
|
+
TransformFlags[TransformFlags["VariableDeclarationListExcludes"] = -2146893824] = "VariableDeclarationListExcludes";
|
|
5944
|
+
TransformFlags[TransformFlags["ParameterExcludes"] = -2147483648] = "ParameterExcludes";
|
|
5945
|
+
TransformFlags[TransformFlags["CatchClauseExcludes"] = -2147418112] = "CatchClauseExcludes";
|
|
5946
|
+
TransformFlags[TransformFlags["BindingPatternExcludes"] = -2147450880] = "BindingPatternExcludes";
|
|
5949
5947
|
TransformFlags[TransformFlags["ContainsLexicalThisOrSuper"] = 134234112] = "ContainsLexicalThisOrSuper";
|
|
5950
5948
|
// Propagating flags
|
|
5951
5949
|
// - Bitmasks for flags that should propagate from a child
|
|
@@ -24284,7 +24282,7 @@ var ts;
|
|
|
24284
24282
|
propagateChildFlags(node.expression) |
|
|
24285
24283
|
(ts.isIdentifier(node.name) ?
|
|
24286
24284
|
propagateIdentifierNameFlags(node.name) :
|
|
24287
|
-
propagateChildFlags(node.name));
|
|
24285
|
+
propagateChildFlags(node.name) | 536870912 /* ContainsPrivateIdentifierInExpression */);
|
|
24288
24286
|
if (ts.isSuperKeyword(expression)) {
|
|
24289
24287
|
// super method calls require a lexical 'this'
|
|
24290
24288
|
// super method calls require 'super' hoisting in ES2017 and ES2018 async functions and async generators
|
|
@@ -24317,7 +24315,7 @@ var ts;
|
|
|
24317
24315
|
propagateChildFlags(node.questionDotToken) |
|
|
24318
24316
|
(ts.isIdentifier(node.name) ?
|
|
24319
24317
|
propagateIdentifierNameFlags(node.name) :
|
|
24320
|
-
propagateChildFlags(node.name));
|
|
24318
|
+
propagateChildFlags(node.name) | 536870912 /* ContainsPrivateIdentifierInExpression */);
|
|
24321
24319
|
return node;
|
|
24322
24320
|
}
|
|
24323
24321
|
// @api
|
|
@@ -24721,6 +24719,9 @@ var ts;
|
|
|
24721
24719
|
else if (ts.isLogicalOrCoalescingAssignmentOperator(operatorKind)) {
|
|
24722
24720
|
node.transformFlags |= 16 /* ContainsES2021 */;
|
|
24723
24721
|
}
|
|
24722
|
+
if (operatorKind === 101 /* InKeyword */ && ts.isPrivateIdentifier(node.left)) {
|
|
24723
|
+
node.transformFlags |= 536870912 /* ContainsPrivateIdentifierInExpression */;
|
|
24724
|
+
}
|
|
24724
24725
|
return node;
|
|
24725
24726
|
}
|
|
24726
24727
|
function propagateAssignmentPatternFlags(node) {
|
|
@@ -27675,29 +27676,29 @@ var ts;
|
|
|
27675
27676
|
case 208 /* CallExpression */:
|
|
27676
27677
|
case 209 /* NewExpression */:
|
|
27677
27678
|
case 204 /* ArrayLiteralExpression */:
|
|
27678
|
-
return
|
|
27679
|
+
return -2147450880 /* ArrayLiteralOrCallOrNewExcludes */;
|
|
27679
27680
|
case 261 /* ModuleDeclaration */:
|
|
27680
|
-
return
|
|
27681
|
+
return -1941676032 /* ModuleExcludes */;
|
|
27681
27682
|
case 164 /* Parameter */:
|
|
27682
|
-
return
|
|
27683
|
+
return -2147483648 /* ParameterExcludes */;
|
|
27683
27684
|
case 214 /* ArrowFunction */:
|
|
27684
|
-
return
|
|
27685
|
+
return -2072174592 /* ArrowFunctionExcludes */;
|
|
27685
27686
|
case 213 /* FunctionExpression */:
|
|
27686
27687
|
case 256 /* FunctionDeclaration */:
|
|
27687
|
-
return
|
|
27688
|
+
return -1937940480 /* FunctionExcludes */;
|
|
27688
27689
|
case 255 /* VariableDeclarationList */:
|
|
27689
|
-
return
|
|
27690
|
+
return -2146893824 /* VariableDeclarationListExcludes */;
|
|
27690
27691
|
case 257 /* ClassDeclaration */:
|
|
27691
27692
|
case 226 /* ClassExpression */:
|
|
27692
|
-
return
|
|
27693
|
+
return -2147344384 /* ClassExcludes */;
|
|
27693
27694
|
case 171 /* Constructor */:
|
|
27694
|
-
return
|
|
27695
|
+
return -1937948672 /* ConstructorExcludes */;
|
|
27695
27696
|
case 167 /* PropertyDeclaration */:
|
|
27696
|
-
return
|
|
27697
|
+
return -2013249536 /* PropertyExcludes */;
|
|
27697
27698
|
case 169 /* MethodDeclaration */:
|
|
27698
27699
|
case 172 /* GetAccessor */:
|
|
27699
27700
|
case 173 /* SetAccessor */:
|
|
27700
|
-
return
|
|
27701
|
+
return -2005057536 /* MethodOrAccessorExcludes */;
|
|
27701
27702
|
case 130 /* AnyKeyword */:
|
|
27702
27703
|
case 147 /* NumberKeyword */:
|
|
27703
27704
|
case 158 /* BigIntKeyword */:
|
|
@@ -27717,23 +27718,23 @@ var ts;
|
|
|
27717
27718
|
case 259 /* TypeAliasDeclaration */:
|
|
27718
27719
|
return -2 /* TypeExcludes */;
|
|
27719
27720
|
case 205 /* ObjectLiteralExpression */:
|
|
27720
|
-
return
|
|
27721
|
+
return -2147278848 /* ObjectLiteralExcludes */;
|
|
27721
27722
|
case 292 /* CatchClause */:
|
|
27722
|
-
return
|
|
27723
|
+
return -2147418112 /* CatchClauseExcludes */;
|
|
27723
27724
|
case 201 /* ObjectBindingPattern */:
|
|
27724
27725
|
case 202 /* ArrayBindingPattern */:
|
|
27725
|
-
return
|
|
27726
|
+
return -2147450880 /* BindingPatternExcludes */;
|
|
27726
27727
|
case 211 /* TypeAssertionExpression */:
|
|
27727
27728
|
case 229 /* AsExpression */:
|
|
27728
27729
|
case 350 /* PartiallyEmittedExpression */:
|
|
27729
27730
|
case 212 /* ParenthesizedExpression */:
|
|
27730
27731
|
case 106 /* SuperKeyword */:
|
|
27731
|
-
return
|
|
27732
|
+
return -2147483648 /* OuterExpressionExcludes */;
|
|
27732
27733
|
case 206 /* PropertyAccessExpression */:
|
|
27733
27734
|
case 207 /* ElementAccessExpression */:
|
|
27734
|
-
return
|
|
27735
|
+
return -2147483648 /* PropertyAccessExcludes */;
|
|
27735
27736
|
default:
|
|
27736
|
-
return
|
|
27737
|
+
return -2147483648 /* NodeExcludes */;
|
|
27737
27738
|
}
|
|
27738
27739
|
}
|
|
27739
27740
|
ts.getTransformFlagsSubtreeExclusions = getTransformFlagsSubtreeExclusions;
|
|
@@ -80979,7 +80980,7 @@ var ts;
|
|
|
80979
80980
|
error(node.name, ts.Diagnostics.constructor_cannot_be_used_as_a_parameter_property_name);
|
|
80980
80981
|
}
|
|
80981
80982
|
}
|
|
80982
|
-
if (node.questionToken && ts.isBindingPattern(node.name) && func.body) {
|
|
80983
|
+
if ((node.questionToken || isJSDocOptionalParameter(node)) && ts.isBindingPattern(node.name) && func.body) {
|
|
80983
80984
|
error(node, ts.Diagnostics.A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature);
|
|
80984
80985
|
}
|
|
80985
80986
|
if (node.name && ts.isIdentifier(node.name) && (node.name.escapedText === "this" || node.name.escapedText === "new")) {
|
|
@@ -96784,39 +96785,72 @@ var ts;
|
|
|
96784
96785
|
function visitClassDeclaration(node) {
|
|
96785
96786
|
if (!(ts.classOrConstructorParameterIsDecorated(node) || ts.childIsDecorated(node)))
|
|
96786
96787
|
return ts.visitEachChild(node, visitor, context);
|
|
96787
|
-
var
|
|
96788
|
-
|
|
96789
|
-
|
|
96790
|
-
var statements = [classStatement];
|
|
96791
|
-
// Write any decorators of the node.
|
|
96792
|
-
addClassElementDecorationStatements(statements, node, /*isStatic*/ false);
|
|
96793
|
-
addClassElementDecorationStatements(statements, node, /*isStatic*/ true);
|
|
96794
|
-
addConstructorDecorationStatement(statements, node);
|
|
96788
|
+
var statements = ts.hasDecorators(node) ?
|
|
96789
|
+
transformClassDeclarationWithClassDecorators(node, node.name) :
|
|
96790
|
+
transformClassDeclarationWithoutClassDecorators(node, node.name);
|
|
96795
96791
|
if (statements.length > 1) {
|
|
96796
96792
|
// Add a DeclarationMarker as a marker for the end of the declaration
|
|
96797
96793
|
statements.push(factory.createEndOfDeclarationMarker(node));
|
|
96798
|
-
ts.setEmitFlags(
|
|
96794
|
+
ts.setEmitFlags(statements[0], ts.getEmitFlags(statements[0]) | 4194304 /* HasEndOfDeclarationMarker */);
|
|
96799
96795
|
}
|
|
96800
96796
|
return ts.singleOrMany(statements);
|
|
96801
96797
|
}
|
|
96798
|
+
function decoratorContainsPrivateIdentifierInExpression(decorator) {
|
|
96799
|
+
return !!(decorator.transformFlags & 536870912 /* ContainsPrivateIdentifierInExpression */);
|
|
96800
|
+
}
|
|
96801
|
+
function parameterDecoratorsContainPrivateIdentifierInExpression(parameterDecorators) {
|
|
96802
|
+
return ts.some(parameterDecorators, decoratorContainsPrivateIdentifierInExpression);
|
|
96803
|
+
}
|
|
96804
|
+
function hasClassElementWithDecoratorContainingPrivateIdentifierInExpression(node) {
|
|
96805
|
+
for (var _i = 0, _a = node.members; _i < _a.length; _i++) {
|
|
96806
|
+
var member = _a[_i];
|
|
96807
|
+
if (!ts.canHaveDecorators(member))
|
|
96808
|
+
continue;
|
|
96809
|
+
var allDecorators = ts.getAllDecoratorsOfClassElement(member, node);
|
|
96810
|
+
if (ts.some(allDecorators === null || allDecorators === void 0 ? void 0 : allDecorators.decorators, decoratorContainsPrivateIdentifierInExpression))
|
|
96811
|
+
return true;
|
|
96812
|
+
if (ts.some(allDecorators === null || allDecorators === void 0 ? void 0 : allDecorators.parameters, parameterDecoratorsContainPrivateIdentifierInExpression))
|
|
96813
|
+
return true;
|
|
96814
|
+
}
|
|
96815
|
+
return false;
|
|
96816
|
+
}
|
|
96817
|
+
function transformDecoratorsOfClassElements(node, members) {
|
|
96818
|
+
var decorationStatements = [];
|
|
96819
|
+
addClassElementDecorationStatements(decorationStatements, node, /*isStatic*/ false);
|
|
96820
|
+
addClassElementDecorationStatements(decorationStatements, node, /*isStatic*/ true);
|
|
96821
|
+
if (hasClassElementWithDecoratorContainingPrivateIdentifierInExpression(node)) {
|
|
96822
|
+
members = ts.setTextRange(factory.createNodeArray(__spreadArray(__spreadArray([], members, true), [
|
|
96823
|
+
factory.createClassStaticBlockDeclaration(factory.createBlock(decorationStatements, /*multiLine*/ true))
|
|
96824
|
+
], false)), members);
|
|
96825
|
+
decorationStatements = undefined;
|
|
96826
|
+
}
|
|
96827
|
+
return { decorationStatements: decorationStatements, members: members };
|
|
96828
|
+
}
|
|
96802
96829
|
/**
|
|
96803
96830
|
* Transforms a non-decorated class declaration.
|
|
96804
96831
|
*
|
|
96805
96832
|
* @param node A ClassDeclaration node.
|
|
96806
96833
|
* @param name The name of the class.
|
|
96807
96834
|
*/
|
|
96808
|
-
function
|
|
96835
|
+
function transformClassDeclarationWithoutClassDecorators(node, name) {
|
|
96809
96836
|
// ${modifiers} class ${name} ${heritageClauses} {
|
|
96810
96837
|
// ${members}
|
|
96811
96838
|
// }
|
|
96812
|
-
|
|
96813
|
-
|
|
96839
|
+
var _a;
|
|
96840
|
+
var modifiers = ts.visitNodes(node.modifiers, modifierVisitor, ts.isModifier);
|
|
96841
|
+
var heritageClauses = ts.visitNodes(node.heritageClauses, visitor, ts.isHeritageClause);
|
|
96842
|
+
var members = ts.visitNodes(node.members, visitor, ts.isClassElement);
|
|
96843
|
+
var decorationStatements = [];
|
|
96844
|
+
(_a = transformDecoratorsOfClassElements(node, members), members = _a.members, decorationStatements = _a.decorationStatements);
|
|
96845
|
+
var updated = factory.updateClassDeclaration(node, modifiers, name,
|
|
96846
|
+
/*typeParameters*/ undefined, heritageClauses, members);
|
|
96847
|
+
return ts.addRange([updated], decorationStatements);
|
|
96814
96848
|
}
|
|
96815
96849
|
/**
|
|
96816
96850
|
* Transforms a decorated class declaration and appends the resulting statements. If
|
|
96817
96851
|
* the class requires an alias to avoid issues with double-binding, the alias is returned.
|
|
96818
96852
|
*/
|
|
96819
|
-
function
|
|
96853
|
+
function transformClassDeclarationWithClassDecorators(node, name) {
|
|
96820
96854
|
// When we emit an ES6 class that has a class decorator, we must tailor the
|
|
96821
96855
|
// emit to certain specific cases.
|
|
96822
96856
|
//
|
|
@@ -96902,6 +96936,7 @@ var ts;
|
|
|
96902
96936
|
// | var C_1;
|
|
96903
96937
|
// ---------------------------------------------------------------------
|
|
96904
96938
|
//
|
|
96939
|
+
var _a;
|
|
96905
96940
|
var location = ts.moveRangePastModifiers(node);
|
|
96906
96941
|
var classAlias = getClassAliasIfNeeded(node);
|
|
96907
96942
|
// When we transform to ES5/3 this will be moved inside an IIFE and should reference the name
|
|
@@ -96914,7 +96949,11 @@ var ts;
|
|
|
96914
96949
|
// }
|
|
96915
96950
|
var heritageClauses = ts.visitNodes(node.heritageClauses, visitor, ts.isHeritageClause);
|
|
96916
96951
|
var members = ts.visitNodes(node.members, visitor, ts.isClassElement);
|
|
96917
|
-
var
|
|
96952
|
+
var decorationStatements = [];
|
|
96953
|
+
(_a = transformDecoratorsOfClassElements(node, members), members = _a.members, decorationStatements = _a.decorationStatements);
|
|
96954
|
+
var classExpression = factory.createClassExpression(
|
|
96955
|
+
/*modifiers*/ undefined, name,
|
|
96956
|
+
/*typeParameters*/ undefined, heritageClauses, members);
|
|
96918
96957
|
ts.setOriginalNode(classExpression, node);
|
|
96919
96958
|
ts.setTextRange(classExpression, location);
|
|
96920
96959
|
// let ${name} = ${classExpression} where name is either declaredName if the class doesn't contain self-reference
|
|
@@ -96928,7 +96967,10 @@ var ts;
|
|
|
96928
96967
|
ts.setOriginalNode(statement, node);
|
|
96929
96968
|
ts.setTextRange(statement, location);
|
|
96930
96969
|
ts.setCommentRange(statement, node);
|
|
96931
|
-
|
|
96970
|
+
var statements = [statement];
|
|
96971
|
+
ts.addRange(statements, decorationStatements);
|
|
96972
|
+
addConstructorDecorationStatement(statements, node);
|
|
96973
|
+
return statements;
|
|
96932
96974
|
}
|
|
96933
96975
|
function visitClassExpression(node) {
|
|
96934
96976
|
// Legacy decorators were not supported on class expressions
|