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/tsserver.js
CHANGED
|
@@ -109,7 +109,7 @@ var ts;
|
|
|
109
109
|
// The following is baselined as a literal template type without intervention
|
|
110
110
|
/** The version of the TypeScript compiler release */
|
|
111
111
|
// eslint-disable-next-line @typescript-eslint/no-inferrable-types
|
|
112
|
-
ts.version = ts.versionMajorMinor + ".0-dev.
|
|
112
|
+
ts.version = ts.versionMajorMinor + ".0-dev.20220801";
|
|
113
113
|
/* @internal */
|
|
114
114
|
var Comparison;
|
|
115
115
|
(function (Comparison) {
|
|
@@ -5722,10 +5722,8 @@ var ts;
|
|
|
5722
5722
|
TransformFlags[TransformFlags["ContainsPossibleTopLevelAwait"] = 67108864] = "ContainsPossibleTopLevelAwait";
|
|
5723
5723
|
TransformFlags[TransformFlags["ContainsLexicalSuper"] = 134217728] = "ContainsLexicalSuper";
|
|
5724
5724
|
TransformFlags[TransformFlags["ContainsUpdateExpressionForIdentifier"] = 268435456] = "ContainsUpdateExpressionForIdentifier";
|
|
5725
|
-
|
|
5726
|
-
|
|
5727
|
-
// It is a good reminder of how much room we have left
|
|
5728
|
-
TransformFlags[TransformFlags["HasComputedFlags"] = 536870912] = "HasComputedFlags";
|
|
5725
|
+
TransformFlags[TransformFlags["ContainsPrivateIdentifierInExpression"] = 536870912] = "ContainsPrivateIdentifierInExpression";
|
|
5726
|
+
TransformFlags[TransformFlags["HasComputedFlags"] = -2147483648] = "HasComputedFlags";
|
|
5729
5727
|
// Assertions
|
|
5730
5728
|
// - Bitmasks that are used to assert facts about the syntax of a node and its subtree.
|
|
5731
5729
|
TransformFlags[TransformFlags["AssertTypeScript"] = 1] = "AssertTypeScript";
|
|
@@ -5744,23 +5742,23 @@ var ts;
|
|
|
5744
5742
|
// Scope Exclusions
|
|
5745
5743
|
// - Bitmasks that exclude flags from propagating out of a specific context
|
|
5746
5744
|
// into the subtree flags of their container.
|
|
5747
|
-
TransformFlags[TransformFlags["OuterExpressionExcludes"] =
|
|
5748
|
-
TransformFlags[TransformFlags["PropertyAccessExcludes"] =
|
|
5749
|
-
TransformFlags[TransformFlags["NodeExcludes"] =
|
|
5750
|
-
TransformFlags[TransformFlags["ArrowFunctionExcludes"] =
|
|
5751
|
-
TransformFlags[TransformFlags["FunctionExcludes"] =
|
|
5752
|
-
TransformFlags[TransformFlags["ConstructorExcludes"] =
|
|
5753
|
-
TransformFlags[TransformFlags["MethodOrAccessorExcludes"] =
|
|
5754
|
-
TransformFlags[TransformFlags["PropertyExcludes"] =
|
|
5755
|
-
TransformFlags[TransformFlags["ClassExcludes"] =
|
|
5756
|
-
TransformFlags[TransformFlags["ModuleExcludes"] =
|
|
5745
|
+
TransformFlags[TransformFlags["OuterExpressionExcludes"] = -2147483648] = "OuterExpressionExcludes";
|
|
5746
|
+
TransformFlags[TransformFlags["PropertyAccessExcludes"] = -2147483648] = "PropertyAccessExcludes";
|
|
5747
|
+
TransformFlags[TransformFlags["NodeExcludes"] = -2147483648] = "NodeExcludes";
|
|
5748
|
+
TransformFlags[TransformFlags["ArrowFunctionExcludes"] = -2072174592] = "ArrowFunctionExcludes";
|
|
5749
|
+
TransformFlags[TransformFlags["FunctionExcludes"] = -1937940480] = "FunctionExcludes";
|
|
5750
|
+
TransformFlags[TransformFlags["ConstructorExcludes"] = -1937948672] = "ConstructorExcludes";
|
|
5751
|
+
TransformFlags[TransformFlags["MethodOrAccessorExcludes"] = -2005057536] = "MethodOrAccessorExcludes";
|
|
5752
|
+
TransformFlags[TransformFlags["PropertyExcludes"] = -2013249536] = "PropertyExcludes";
|
|
5753
|
+
TransformFlags[TransformFlags["ClassExcludes"] = -2147344384] = "ClassExcludes";
|
|
5754
|
+
TransformFlags[TransformFlags["ModuleExcludes"] = -1941676032] = "ModuleExcludes";
|
|
5757
5755
|
TransformFlags[TransformFlags["TypeExcludes"] = -2] = "TypeExcludes";
|
|
5758
|
-
TransformFlags[TransformFlags["ObjectLiteralExcludes"] =
|
|
5759
|
-
TransformFlags[TransformFlags["ArrayLiteralOrCallOrNewExcludes"] =
|
|
5760
|
-
TransformFlags[TransformFlags["VariableDeclarationListExcludes"] =
|
|
5761
|
-
TransformFlags[TransformFlags["ParameterExcludes"] =
|
|
5762
|
-
TransformFlags[TransformFlags["CatchClauseExcludes"] =
|
|
5763
|
-
TransformFlags[TransformFlags["BindingPatternExcludes"] =
|
|
5756
|
+
TransformFlags[TransformFlags["ObjectLiteralExcludes"] = -2147278848] = "ObjectLiteralExcludes";
|
|
5757
|
+
TransformFlags[TransformFlags["ArrayLiteralOrCallOrNewExcludes"] = -2147450880] = "ArrayLiteralOrCallOrNewExcludes";
|
|
5758
|
+
TransformFlags[TransformFlags["VariableDeclarationListExcludes"] = -2146893824] = "VariableDeclarationListExcludes";
|
|
5759
|
+
TransformFlags[TransformFlags["ParameterExcludes"] = -2147483648] = "ParameterExcludes";
|
|
5760
|
+
TransformFlags[TransformFlags["CatchClauseExcludes"] = -2147418112] = "CatchClauseExcludes";
|
|
5761
|
+
TransformFlags[TransformFlags["BindingPatternExcludes"] = -2147450880] = "BindingPatternExcludes";
|
|
5764
5762
|
TransformFlags[TransformFlags["ContainsLexicalThisOrSuper"] = 134234112] = "ContainsLexicalThisOrSuper";
|
|
5765
5763
|
// Propagating flags
|
|
5766
5764
|
// - Bitmasks for flags that should propagate from a child
|
|
@@ -24099,7 +24097,7 @@ var ts;
|
|
|
24099
24097
|
propagateChildFlags(node.expression) |
|
|
24100
24098
|
(ts.isIdentifier(node.name) ?
|
|
24101
24099
|
propagateIdentifierNameFlags(node.name) :
|
|
24102
|
-
propagateChildFlags(node.name));
|
|
24100
|
+
propagateChildFlags(node.name) | 536870912 /* ContainsPrivateIdentifierInExpression */);
|
|
24103
24101
|
if (ts.isSuperKeyword(expression)) {
|
|
24104
24102
|
// super method calls require a lexical 'this'
|
|
24105
24103
|
// super method calls require 'super' hoisting in ES2017 and ES2018 async functions and async generators
|
|
@@ -24132,7 +24130,7 @@ var ts;
|
|
|
24132
24130
|
propagateChildFlags(node.questionDotToken) |
|
|
24133
24131
|
(ts.isIdentifier(node.name) ?
|
|
24134
24132
|
propagateIdentifierNameFlags(node.name) :
|
|
24135
|
-
propagateChildFlags(node.name));
|
|
24133
|
+
propagateChildFlags(node.name) | 536870912 /* ContainsPrivateIdentifierInExpression */);
|
|
24136
24134
|
return node;
|
|
24137
24135
|
}
|
|
24138
24136
|
// @api
|
|
@@ -24536,6 +24534,9 @@ var ts;
|
|
|
24536
24534
|
else if (ts.isLogicalOrCoalescingAssignmentOperator(operatorKind)) {
|
|
24537
24535
|
node.transformFlags |= 16 /* ContainsES2021 */;
|
|
24538
24536
|
}
|
|
24537
|
+
if (operatorKind === 101 /* InKeyword */ && ts.isPrivateIdentifier(node.left)) {
|
|
24538
|
+
node.transformFlags |= 536870912 /* ContainsPrivateIdentifierInExpression */;
|
|
24539
|
+
}
|
|
24539
24540
|
return node;
|
|
24540
24541
|
}
|
|
24541
24542
|
function propagateAssignmentPatternFlags(node) {
|
|
@@ -27490,29 +27491,29 @@ var ts;
|
|
|
27490
27491
|
case 208 /* CallExpression */:
|
|
27491
27492
|
case 209 /* NewExpression */:
|
|
27492
27493
|
case 204 /* ArrayLiteralExpression */:
|
|
27493
|
-
return
|
|
27494
|
+
return -2147450880 /* ArrayLiteralOrCallOrNewExcludes */;
|
|
27494
27495
|
case 261 /* ModuleDeclaration */:
|
|
27495
|
-
return
|
|
27496
|
+
return -1941676032 /* ModuleExcludes */;
|
|
27496
27497
|
case 164 /* Parameter */:
|
|
27497
|
-
return
|
|
27498
|
+
return -2147483648 /* ParameterExcludes */;
|
|
27498
27499
|
case 214 /* ArrowFunction */:
|
|
27499
|
-
return
|
|
27500
|
+
return -2072174592 /* ArrowFunctionExcludes */;
|
|
27500
27501
|
case 213 /* FunctionExpression */:
|
|
27501
27502
|
case 256 /* FunctionDeclaration */:
|
|
27502
|
-
return
|
|
27503
|
+
return -1937940480 /* FunctionExcludes */;
|
|
27503
27504
|
case 255 /* VariableDeclarationList */:
|
|
27504
|
-
return
|
|
27505
|
+
return -2146893824 /* VariableDeclarationListExcludes */;
|
|
27505
27506
|
case 257 /* ClassDeclaration */:
|
|
27506
27507
|
case 226 /* ClassExpression */:
|
|
27507
|
-
return
|
|
27508
|
+
return -2147344384 /* ClassExcludes */;
|
|
27508
27509
|
case 171 /* Constructor */:
|
|
27509
|
-
return
|
|
27510
|
+
return -1937948672 /* ConstructorExcludes */;
|
|
27510
27511
|
case 167 /* PropertyDeclaration */:
|
|
27511
|
-
return
|
|
27512
|
+
return -2013249536 /* PropertyExcludes */;
|
|
27512
27513
|
case 169 /* MethodDeclaration */:
|
|
27513
27514
|
case 172 /* GetAccessor */:
|
|
27514
27515
|
case 173 /* SetAccessor */:
|
|
27515
|
-
return
|
|
27516
|
+
return -2005057536 /* MethodOrAccessorExcludes */;
|
|
27516
27517
|
case 130 /* AnyKeyword */:
|
|
27517
27518
|
case 147 /* NumberKeyword */:
|
|
27518
27519
|
case 158 /* BigIntKeyword */:
|
|
@@ -27532,23 +27533,23 @@ var ts;
|
|
|
27532
27533
|
case 259 /* TypeAliasDeclaration */:
|
|
27533
27534
|
return -2 /* TypeExcludes */;
|
|
27534
27535
|
case 205 /* ObjectLiteralExpression */:
|
|
27535
|
-
return
|
|
27536
|
+
return -2147278848 /* ObjectLiteralExcludes */;
|
|
27536
27537
|
case 292 /* CatchClause */:
|
|
27537
|
-
return
|
|
27538
|
+
return -2147418112 /* CatchClauseExcludes */;
|
|
27538
27539
|
case 201 /* ObjectBindingPattern */:
|
|
27539
27540
|
case 202 /* ArrayBindingPattern */:
|
|
27540
|
-
return
|
|
27541
|
+
return -2147450880 /* BindingPatternExcludes */;
|
|
27541
27542
|
case 211 /* TypeAssertionExpression */:
|
|
27542
27543
|
case 229 /* AsExpression */:
|
|
27543
27544
|
case 350 /* PartiallyEmittedExpression */:
|
|
27544
27545
|
case 212 /* ParenthesizedExpression */:
|
|
27545
27546
|
case 106 /* SuperKeyword */:
|
|
27546
|
-
return
|
|
27547
|
+
return -2147483648 /* OuterExpressionExcludes */;
|
|
27547
27548
|
case 206 /* PropertyAccessExpression */:
|
|
27548
27549
|
case 207 /* ElementAccessExpression */:
|
|
27549
|
-
return
|
|
27550
|
+
return -2147483648 /* PropertyAccessExcludes */;
|
|
27550
27551
|
default:
|
|
27551
|
-
return
|
|
27552
|
+
return -2147483648 /* NodeExcludes */;
|
|
27552
27553
|
}
|
|
27553
27554
|
}
|
|
27554
27555
|
ts.getTransformFlagsSubtreeExclusions = getTransformFlagsSubtreeExclusions;
|
|
@@ -80794,7 +80795,7 @@ var ts;
|
|
|
80794
80795
|
error(node.name, ts.Diagnostics.constructor_cannot_be_used_as_a_parameter_property_name);
|
|
80795
80796
|
}
|
|
80796
80797
|
}
|
|
80797
|
-
if (node.questionToken && ts.isBindingPattern(node.name) && func.body) {
|
|
80798
|
+
if ((node.questionToken || isJSDocOptionalParameter(node)) && ts.isBindingPattern(node.name) && func.body) {
|
|
80798
80799
|
error(node, ts.Diagnostics.A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature);
|
|
80799
80800
|
}
|
|
80800
80801
|
if (node.name && ts.isIdentifier(node.name) && (node.name.escapedText === "this" || node.name.escapedText === "new")) {
|
|
@@ -96599,39 +96600,72 @@ var ts;
|
|
|
96599
96600
|
function visitClassDeclaration(node) {
|
|
96600
96601
|
if (!(ts.classOrConstructorParameterIsDecorated(node) || ts.childIsDecorated(node)))
|
|
96601
96602
|
return ts.visitEachChild(node, visitor, context);
|
|
96602
|
-
var
|
|
96603
|
-
|
|
96604
|
-
|
|
96605
|
-
var statements = [classStatement];
|
|
96606
|
-
// Write any decorators of the node.
|
|
96607
|
-
addClassElementDecorationStatements(statements, node, /*isStatic*/ false);
|
|
96608
|
-
addClassElementDecorationStatements(statements, node, /*isStatic*/ true);
|
|
96609
|
-
addConstructorDecorationStatement(statements, node);
|
|
96603
|
+
var statements = ts.hasDecorators(node) ?
|
|
96604
|
+
transformClassDeclarationWithClassDecorators(node, node.name) :
|
|
96605
|
+
transformClassDeclarationWithoutClassDecorators(node, node.name);
|
|
96610
96606
|
if (statements.length > 1) {
|
|
96611
96607
|
// Add a DeclarationMarker as a marker for the end of the declaration
|
|
96612
96608
|
statements.push(factory.createEndOfDeclarationMarker(node));
|
|
96613
|
-
ts.setEmitFlags(
|
|
96609
|
+
ts.setEmitFlags(statements[0], ts.getEmitFlags(statements[0]) | 4194304 /* HasEndOfDeclarationMarker */);
|
|
96614
96610
|
}
|
|
96615
96611
|
return ts.singleOrMany(statements);
|
|
96616
96612
|
}
|
|
96613
|
+
function decoratorContainsPrivateIdentifierInExpression(decorator) {
|
|
96614
|
+
return !!(decorator.transformFlags & 536870912 /* ContainsPrivateIdentifierInExpression */);
|
|
96615
|
+
}
|
|
96616
|
+
function parameterDecoratorsContainPrivateIdentifierInExpression(parameterDecorators) {
|
|
96617
|
+
return ts.some(parameterDecorators, decoratorContainsPrivateIdentifierInExpression);
|
|
96618
|
+
}
|
|
96619
|
+
function hasClassElementWithDecoratorContainingPrivateIdentifierInExpression(node) {
|
|
96620
|
+
for (var _i = 0, _a = node.members; _i < _a.length; _i++) {
|
|
96621
|
+
var member = _a[_i];
|
|
96622
|
+
if (!ts.canHaveDecorators(member))
|
|
96623
|
+
continue;
|
|
96624
|
+
var allDecorators = ts.getAllDecoratorsOfClassElement(member, node);
|
|
96625
|
+
if (ts.some(allDecorators === null || allDecorators === void 0 ? void 0 : allDecorators.decorators, decoratorContainsPrivateIdentifierInExpression))
|
|
96626
|
+
return true;
|
|
96627
|
+
if (ts.some(allDecorators === null || allDecorators === void 0 ? void 0 : allDecorators.parameters, parameterDecoratorsContainPrivateIdentifierInExpression))
|
|
96628
|
+
return true;
|
|
96629
|
+
}
|
|
96630
|
+
return false;
|
|
96631
|
+
}
|
|
96632
|
+
function transformDecoratorsOfClassElements(node, members) {
|
|
96633
|
+
var decorationStatements = [];
|
|
96634
|
+
addClassElementDecorationStatements(decorationStatements, node, /*isStatic*/ false);
|
|
96635
|
+
addClassElementDecorationStatements(decorationStatements, node, /*isStatic*/ true);
|
|
96636
|
+
if (hasClassElementWithDecoratorContainingPrivateIdentifierInExpression(node)) {
|
|
96637
|
+
members = ts.setTextRange(factory.createNodeArray(__spreadArray(__spreadArray([], members, true), [
|
|
96638
|
+
factory.createClassStaticBlockDeclaration(factory.createBlock(decorationStatements, /*multiLine*/ true))
|
|
96639
|
+
], false)), members);
|
|
96640
|
+
decorationStatements = undefined;
|
|
96641
|
+
}
|
|
96642
|
+
return { decorationStatements: decorationStatements, members: members };
|
|
96643
|
+
}
|
|
96617
96644
|
/**
|
|
96618
96645
|
* Transforms a non-decorated class declaration.
|
|
96619
96646
|
*
|
|
96620
96647
|
* @param node A ClassDeclaration node.
|
|
96621
96648
|
* @param name The name of the class.
|
|
96622
96649
|
*/
|
|
96623
|
-
function
|
|
96650
|
+
function transformClassDeclarationWithoutClassDecorators(node, name) {
|
|
96624
96651
|
// ${modifiers} class ${name} ${heritageClauses} {
|
|
96625
96652
|
// ${members}
|
|
96626
96653
|
// }
|
|
96627
|
-
|
|
96628
|
-
|
|
96654
|
+
var _a;
|
|
96655
|
+
var modifiers = ts.visitNodes(node.modifiers, modifierVisitor, ts.isModifier);
|
|
96656
|
+
var heritageClauses = ts.visitNodes(node.heritageClauses, visitor, ts.isHeritageClause);
|
|
96657
|
+
var members = ts.visitNodes(node.members, visitor, ts.isClassElement);
|
|
96658
|
+
var decorationStatements = [];
|
|
96659
|
+
(_a = transformDecoratorsOfClassElements(node, members), members = _a.members, decorationStatements = _a.decorationStatements);
|
|
96660
|
+
var updated = factory.updateClassDeclaration(node, modifiers, name,
|
|
96661
|
+
/*typeParameters*/ undefined, heritageClauses, members);
|
|
96662
|
+
return ts.addRange([updated], decorationStatements);
|
|
96629
96663
|
}
|
|
96630
96664
|
/**
|
|
96631
96665
|
* Transforms a decorated class declaration and appends the resulting statements. If
|
|
96632
96666
|
* the class requires an alias to avoid issues with double-binding, the alias is returned.
|
|
96633
96667
|
*/
|
|
96634
|
-
function
|
|
96668
|
+
function transformClassDeclarationWithClassDecorators(node, name) {
|
|
96635
96669
|
// When we emit an ES6 class that has a class decorator, we must tailor the
|
|
96636
96670
|
// emit to certain specific cases.
|
|
96637
96671
|
//
|
|
@@ -96717,6 +96751,7 @@ var ts;
|
|
|
96717
96751
|
// | var C_1;
|
|
96718
96752
|
// ---------------------------------------------------------------------
|
|
96719
96753
|
//
|
|
96754
|
+
var _a;
|
|
96720
96755
|
var location = ts.moveRangePastModifiers(node);
|
|
96721
96756
|
var classAlias = getClassAliasIfNeeded(node);
|
|
96722
96757
|
// When we transform to ES5/3 this will be moved inside an IIFE and should reference the name
|
|
@@ -96729,7 +96764,11 @@ var ts;
|
|
|
96729
96764
|
// }
|
|
96730
96765
|
var heritageClauses = ts.visitNodes(node.heritageClauses, visitor, ts.isHeritageClause);
|
|
96731
96766
|
var members = ts.visitNodes(node.members, visitor, ts.isClassElement);
|
|
96732
|
-
var
|
|
96767
|
+
var decorationStatements = [];
|
|
96768
|
+
(_a = transformDecoratorsOfClassElements(node, members), members = _a.members, decorationStatements = _a.decorationStatements);
|
|
96769
|
+
var classExpression = factory.createClassExpression(
|
|
96770
|
+
/*modifiers*/ undefined, name,
|
|
96771
|
+
/*typeParameters*/ undefined, heritageClauses, members);
|
|
96733
96772
|
ts.setOriginalNode(classExpression, node);
|
|
96734
96773
|
ts.setTextRange(classExpression, location);
|
|
96735
96774
|
// let ${name} = ${classExpression} where name is either declaredName if the class doesn't contain self-reference
|
|
@@ -96743,7 +96782,10 @@ var ts;
|
|
|
96743
96782
|
ts.setOriginalNode(statement, node);
|
|
96744
96783
|
ts.setTextRange(statement, location);
|
|
96745
96784
|
ts.setCommentRange(statement, node);
|
|
96746
|
-
|
|
96785
|
+
var statements = [statement];
|
|
96786
|
+
ts.addRange(statements, decorationStatements);
|
|
96787
|
+
addConstructorDecorationStatement(statements, node);
|
|
96788
|
+
return statements;
|
|
96747
96789
|
}
|
|
96748
96790
|
function visitClassExpression(node) {
|
|
96749
96791
|
// Legacy decorators were not supported on class expressions
|
package/lib/tsserverlibrary.js
CHANGED
|
@@ -303,7 +303,7 @@ var ts;
|
|
|
303
303
|
// The following is baselined as a literal template type without intervention
|
|
304
304
|
/** The version of the TypeScript compiler release */
|
|
305
305
|
// eslint-disable-next-line @typescript-eslint/no-inferrable-types
|
|
306
|
-
ts.version = ts.versionMajorMinor + ".0-dev.
|
|
306
|
+
ts.version = ts.versionMajorMinor + ".0-dev.20220801";
|
|
307
307
|
/* @internal */
|
|
308
308
|
var Comparison;
|
|
309
309
|
(function (Comparison) {
|
|
@@ -5916,10 +5916,8 @@ var ts;
|
|
|
5916
5916
|
TransformFlags[TransformFlags["ContainsPossibleTopLevelAwait"] = 67108864] = "ContainsPossibleTopLevelAwait";
|
|
5917
5917
|
TransformFlags[TransformFlags["ContainsLexicalSuper"] = 134217728] = "ContainsLexicalSuper";
|
|
5918
5918
|
TransformFlags[TransformFlags["ContainsUpdateExpressionForIdentifier"] = 268435456] = "ContainsUpdateExpressionForIdentifier";
|
|
5919
|
-
|
|
5920
|
-
|
|
5921
|
-
// It is a good reminder of how much room we have left
|
|
5922
|
-
TransformFlags[TransformFlags["HasComputedFlags"] = 536870912] = "HasComputedFlags";
|
|
5919
|
+
TransformFlags[TransformFlags["ContainsPrivateIdentifierInExpression"] = 536870912] = "ContainsPrivateIdentifierInExpression";
|
|
5920
|
+
TransformFlags[TransformFlags["HasComputedFlags"] = -2147483648] = "HasComputedFlags";
|
|
5923
5921
|
// Assertions
|
|
5924
5922
|
// - Bitmasks that are used to assert facts about the syntax of a node and its subtree.
|
|
5925
5923
|
TransformFlags[TransformFlags["AssertTypeScript"] = 1] = "AssertTypeScript";
|
|
@@ -5938,23 +5936,23 @@ var ts;
|
|
|
5938
5936
|
// Scope Exclusions
|
|
5939
5937
|
// - Bitmasks that exclude flags from propagating out of a specific context
|
|
5940
5938
|
// into the subtree flags of their container.
|
|
5941
|
-
TransformFlags[TransformFlags["OuterExpressionExcludes"] =
|
|
5942
|
-
TransformFlags[TransformFlags["PropertyAccessExcludes"] =
|
|
5943
|
-
TransformFlags[TransformFlags["NodeExcludes"] =
|
|
5944
|
-
TransformFlags[TransformFlags["ArrowFunctionExcludes"] =
|
|
5945
|
-
TransformFlags[TransformFlags["FunctionExcludes"] =
|
|
5946
|
-
TransformFlags[TransformFlags["ConstructorExcludes"] =
|
|
5947
|
-
TransformFlags[TransformFlags["MethodOrAccessorExcludes"] =
|
|
5948
|
-
TransformFlags[TransformFlags["PropertyExcludes"] =
|
|
5949
|
-
TransformFlags[TransformFlags["ClassExcludes"] =
|
|
5950
|
-
TransformFlags[TransformFlags["ModuleExcludes"] =
|
|
5939
|
+
TransformFlags[TransformFlags["OuterExpressionExcludes"] = -2147483648] = "OuterExpressionExcludes";
|
|
5940
|
+
TransformFlags[TransformFlags["PropertyAccessExcludes"] = -2147483648] = "PropertyAccessExcludes";
|
|
5941
|
+
TransformFlags[TransformFlags["NodeExcludes"] = -2147483648] = "NodeExcludes";
|
|
5942
|
+
TransformFlags[TransformFlags["ArrowFunctionExcludes"] = -2072174592] = "ArrowFunctionExcludes";
|
|
5943
|
+
TransformFlags[TransformFlags["FunctionExcludes"] = -1937940480] = "FunctionExcludes";
|
|
5944
|
+
TransformFlags[TransformFlags["ConstructorExcludes"] = -1937948672] = "ConstructorExcludes";
|
|
5945
|
+
TransformFlags[TransformFlags["MethodOrAccessorExcludes"] = -2005057536] = "MethodOrAccessorExcludes";
|
|
5946
|
+
TransformFlags[TransformFlags["PropertyExcludes"] = -2013249536] = "PropertyExcludes";
|
|
5947
|
+
TransformFlags[TransformFlags["ClassExcludes"] = -2147344384] = "ClassExcludes";
|
|
5948
|
+
TransformFlags[TransformFlags["ModuleExcludes"] = -1941676032] = "ModuleExcludes";
|
|
5951
5949
|
TransformFlags[TransformFlags["TypeExcludes"] = -2] = "TypeExcludes";
|
|
5952
|
-
TransformFlags[TransformFlags["ObjectLiteralExcludes"] =
|
|
5953
|
-
TransformFlags[TransformFlags["ArrayLiteralOrCallOrNewExcludes"] =
|
|
5954
|
-
TransformFlags[TransformFlags["VariableDeclarationListExcludes"] =
|
|
5955
|
-
TransformFlags[TransformFlags["ParameterExcludes"] =
|
|
5956
|
-
TransformFlags[TransformFlags["CatchClauseExcludes"] =
|
|
5957
|
-
TransformFlags[TransformFlags["BindingPatternExcludes"] =
|
|
5950
|
+
TransformFlags[TransformFlags["ObjectLiteralExcludes"] = -2147278848] = "ObjectLiteralExcludes";
|
|
5951
|
+
TransformFlags[TransformFlags["ArrayLiteralOrCallOrNewExcludes"] = -2147450880] = "ArrayLiteralOrCallOrNewExcludes";
|
|
5952
|
+
TransformFlags[TransformFlags["VariableDeclarationListExcludes"] = -2146893824] = "VariableDeclarationListExcludes";
|
|
5953
|
+
TransformFlags[TransformFlags["ParameterExcludes"] = -2147483648] = "ParameterExcludes";
|
|
5954
|
+
TransformFlags[TransformFlags["CatchClauseExcludes"] = -2147418112] = "CatchClauseExcludes";
|
|
5955
|
+
TransformFlags[TransformFlags["BindingPatternExcludes"] = -2147450880] = "BindingPatternExcludes";
|
|
5958
5956
|
TransformFlags[TransformFlags["ContainsLexicalThisOrSuper"] = 134234112] = "ContainsLexicalThisOrSuper";
|
|
5959
5957
|
// Propagating flags
|
|
5960
5958
|
// - Bitmasks for flags that should propagate from a child
|
|
@@ -24293,7 +24291,7 @@ var ts;
|
|
|
24293
24291
|
propagateChildFlags(node.expression) |
|
|
24294
24292
|
(ts.isIdentifier(node.name) ?
|
|
24295
24293
|
propagateIdentifierNameFlags(node.name) :
|
|
24296
|
-
propagateChildFlags(node.name));
|
|
24294
|
+
propagateChildFlags(node.name) | 536870912 /* ContainsPrivateIdentifierInExpression */);
|
|
24297
24295
|
if (ts.isSuperKeyword(expression)) {
|
|
24298
24296
|
// super method calls require a lexical 'this'
|
|
24299
24297
|
// super method calls require 'super' hoisting in ES2017 and ES2018 async functions and async generators
|
|
@@ -24326,7 +24324,7 @@ var ts;
|
|
|
24326
24324
|
propagateChildFlags(node.questionDotToken) |
|
|
24327
24325
|
(ts.isIdentifier(node.name) ?
|
|
24328
24326
|
propagateIdentifierNameFlags(node.name) :
|
|
24329
|
-
propagateChildFlags(node.name));
|
|
24327
|
+
propagateChildFlags(node.name) | 536870912 /* ContainsPrivateIdentifierInExpression */);
|
|
24330
24328
|
return node;
|
|
24331
24329
|
}
|
|
24332
24330
|
// @api
|
|
@@ -24730,6 +24728,9 @@ var ts;
|
|
|
24730
24728
|
else if (ts.isLogicalOrCoalescingAssignmentOperator(operatorKind)) {
|
|
24731
24729
|
node.transformFlags |= 16 /* ContainsES2021 */;
|
|
24732
24730
|
}
|
|
24731
|
+
if (operatorKind === 101 /* InKeyword */ && ts.isPrivateIdentifier(node.left)) {
|
|
24732
|
+
node.transformFlags |= 536870912 /* ContainsPrivateIdentifierInExpression */;
|
|
24733
|
+
}
|
|
24733
24734
|
return node;
|
|
24734
24735
|
}
|
|
24735
24736
|
function propagateAssignmentPatternFlags(node) {
|
|
@@ -27684,29 +27685,29 @@ var ts;
|
|
|
27684
27685
|
case 208 /* CallExpression */:
|
|
27685
27686
|
case 209 /* NewExpression */:
|
|
27686
27687
|
case 204 /* ArrayLiteralExpression */:
|
|
27687
|
-
return
|
|
27688
|
+
return -2147450880 /* ArrayLiteralOrCallOrNewExcludes */;
|
|
27688
27689
|
case 261 /* ModuleDeclaration */:
|
|
27689
|
-
return
|
|
27690
|
+
return -1941676032 /* ModuleExcludes */;
|
|
27690
27691
|
case 164 /* Parameter */:
|
|
27691
|
-
return
|
|
27692
|
+
return -2147483648 /* ParameterExcludes */;
|
|
27692
27693
|
case 214 /* ArrowFunction */:
|
|
27693
|
-
return
|
|
27694
|
+
return -2072174592 /* ArrowFunctionExcludes */;
|
|
27694
27695
|
case 213 /* FunctionExpression */:
|
|
27695
27696
|
case 256 /* FunctionDeclaration */:
|
|
27696
|
-
return
|
|
27697
|
+
return -1937940480 /* FunctionExcludes */;
|
|
27697
27698
|
case 255 /* VariableDeclarationList */:
|
|
27698
|
-
return
|
|
27699
|
+
return -2146893824 /* VariableDeclarationListExcludes */;
|
|
27699
27700
|
case 257 /* ClassDeclaration */:
|
|
27700
27701
|
case 226 /* ClassExpression */:
|
|
27701
|
-
return
|
|
27702
|
+
return -2147344384 /* ClassExcludes */;
|
|
27702
27703
|
case 171 /* Constructor */:
|
|
27703
|
-
return
|
|
27704
|
+
return -1937948672 /* ConstructorExcludes */;
|
|
27704
27705
|
case 167 /* PropertyDeclaration */:
|
|
27705
|
-
return
|
|
27706
|
+
return -2013249536 /* PropertyExcludes */;
|
|
27706
27707
|
case 169 /* MethodDeclaration */:
|
|
27707
27708
|
case 172 /* GetAccessor */:
|
|
27708
27709
|
case 173 /* SetAccessor */:
|
|
27709
|
-
return
|
|
27710
|
+
return -2005057536 /* MethodOrAccessorExcludes */;
|
|
27710
27711
|
case 130 /* AnyKeyword */:
|
|
27711
27712
|
case 147 /* NumberKeyword */:
|
|
27712
27713
|
case 158 /* BigIntKeyword */:
|
|
@@ -27726,23 +27727,23 @@ var ts;
|
|
|
27726
27727
|
case 259 /* TypeAliasDeclaration */:
|
|
27727
27728
|
return -2 /* TypeExcludes */;
|
|
27728
27729
|
case 205 /* ObjectLiteralExpression */:
|
|
27729
|
-
return
|
|
27730
|
+
return -2147278848 /* ObjectLiteralExcludes */;
|
|
27730
27731
|
case 292 /* CatchClause */:
|
|
27731
|
-
return
|
|
27732
|
+
return -2147418112 /* CatchClauseExcludes */;
|
|
27732
27733
|
case 201 /* ObjectBindingPattern */:
|
|
27733
27734
|
case 202 /* ArrayBindingPattern */:
|
|
27734
|
-
return
|
|
27735
|
+
return -2147450880 /* BindingPatternExcludes */;
|
|
27735
27736
|
case 211 /* TypeAssertionExpression */:
|
|
27736
27737
|
case 229 /* AsExpression */:
|
|
27737
27738
|
case 350 /* PartiallyEmittedExpression */:
|
|
27738
27739
|
case 212 /* ParenthesizedExpression */:
|
|
27739
27740
|
case 106 /* SuperKeyword */:
|
|
27740
|
-
return
|
|
27741
|
+
return -2147483648 /* OuterExpressionExcludes */;
|
|
27741
27742
|
case 206 /* PropertyAccessExpression */:
|
|
27742
27743
|
case 207 /* ElementAccessExpression */:
|
|
27743
|
-
return
|
|
27744
|
+
return -2147483648 /* PropertyAccessExcludes */;
|
|
27744
27745
|
default:
|
|
27745
|
-
return
|
|
27746
|
+
return -2147483648 /* NodeExcludes */;
|
|
27746
27747
|
}
|
|
27747
27748
|
}
|
|
27748
27749
|
ts.getTransformFlagsSubtreeExclusions = getTransformFlagsSubtreeExclusions;
|
|
@@ -80988,7 +80989,7 @@ var ts;
|
|
|
80988
80989
|
error(node.name, ts.Diagnostics.constructor_cannot_be_used_as_a_parameter_property_name);
|
|
80989
80990
|
}
|
|
80990
80991
|
}
|
|
80991
|
-
if (node.questionToken && ts.isBindingPattern(node.name) && func.body) {
|
|
80992
|
+
if ((node.questionToken || isJSDocOptionalParameter(node)) && ts.isBindingPattern(node.name) && func.body) {
|
|
80992
80993
|
error(node, ts.Diagnostics.A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature);
|
|
80993
80994
|
}
|
|
80994
80995
|
if (node.name && ts.isIdentifier(node.name) && (node.name.escapedText === "this" || node.name.escapedText === "new")) {
|
|
@@ -96793,39 +96794,72 @@ var ts;
|
|
|
96793
96794
|
function visitClassDeclaration(node) {
|
|
96794
96795
|
if (!(ts.classOrConstructorParameterIsDecorated(node) || ts.childIsDecorated(node)))
|
|
96795
96796
|
return ts.visitEachChild(node, visitor, context);
|
|
96796
|
-
var
|
|
96797
|
-
|
|
96798
|
-
|
|
96799
|
-
var statements = [classStatement];
|
|
96800
|
-
// Write any decorators of the node.
|
|
96801
|
-
addClassElementDecorationStatements(statements, node, /*isStatic*/ false);
|
|
96802
|
-
addClassElementDecorationStatements(statements, node, /*isStatic*/ true);
|
|
96803
|
-
addConstructorDecorationStatement(statements, node);
|
|
96797
|
+
var statements = ts.hasDecorators(node) ?
|
|
96798
|
+
transformClassDeclarationWithClassDecorators(node, node.name) :
|
|
96799
|
+
transformClassDeclarationWithoutClassDecorators(node, node.name);
|
|
96804
96800
|
if (statements.length > 1) {
|
|
96805
96801
|
// Add a DeclarationMarker as a marker for the end of the declaration
|
|
96806
96802
|
statements.push(factory.createEndOfDeclarationMarker(node));
|
|
96807
|
-
ts.setEmitFlags(
|
|
96803
|
+
ts.setEmitFlags(statements[0], ts.getEmitFlags(statements[0]) | 4194304 /* HasEndOfDeclarationMarker */);
|
|
96808
96804
|
}
|
|
96809
96805
|
return ts.singleOrMany(statements);
|
|
96810
96806
|
}
|
|
96807
|
+
function decoratorContainsPrivateIdentifierInExpression(decorator) {
|
|
96808
|
+
return !!(decorator.transformFlags & 536870912 /* ContainsPrivateIdentifierInExpression */);
|
|
96809
|
+
}
|
|
96810
|
+
function parameterDecoratorsContainPrivateIdentifierInExpression(parameterDecorators) {
|
|
96811
|
+
return ts.some(parameterDecorators, decoratorContainsPrivateIdentifierInExpression);
|
|
96812
|
+
}
|
|
96813
|
+
function hasClassElementWithDecoratorContainingPrivateIdentifierInExpression(node) {
|
|
96814
|
+
for (var _i = 0, _a = node.members; _i < _a.length; _i++) {
|
|
96815
|
+
var member = _a[_i];
|
|
96816
|
+
if (!ts.canHaveDecorators(member))
|
|
96817
|
+
continue;
|
|
96818
|
+
var allDecorators = ts.getAllDecoratorsOfClassElement(member, node);
|
|
96819
|
+
if (ts.some(allDecorators === null || allDecorators === void 0 ? void 0 : allDecorators.decorators, decoratorContainsPrivateIdentifierInExpression))
|
|
96820
|
+
return true;
|
|
96821
|
+
if (ts.some(allDecorators === null || allDecorators === void 0 ? void 0 : allDecorators.parameters, parameterDecoratorsContainPrivateIdentifierInExpression))
|
|
96822
|
+
return true;
|
|
96823
|
+
}
|
|
96824
|
+
return false;
|
|
96825
|
+
}
|
|
96826
|
+
function transformDecoratorsOfClassElements(node, members) {
|
|
96827
|
+
var decorationStatements = [];
|
|
96828
|
+
addClassElementDecorationStatements(decorationStatements, node, /*isStatic*/ false);
|
|
96829
|
+
addClassElementDecorationStatements(decorationStatements, node, /*isStatic*/ true);
|
|
96830
|
+
if (hasClassElementWithDecoratorContainingPrivateIdentifierInExpression(node)) {
|
|
96831
|
+
members = ts.setTextRange(factory.createNodeArray(__spreadArray(__spreadArray([], members, true), [
|
|
96832
|
+
factory.createClassStaticBlockDeclaration(factory.createBlock(decorationStatements, /*multiLine*/ true))
|
|
96833
|
+
], false)), members);
|
|
96834
|
+
decorationStatements = undefined;
|
|
96835
|
+
}
|
|
96836
|
+
return { decorationStatements: decorationStatements, members: members };
|
|
96837
|
+
}
|
|
96811
96838
|
/**
|
|
96812
96839
|
* Transforms a non-decorated class declaration.
|
|
96813
96840
|
*
|
|
96814
96841
|
* @param node A ClassDeclaration node.
|
|
96815
96842
|
* @param name The name of the class.
|
|
96816
96843
|
*/
|
|
96817
|
-
function
|
|
96844
|
+
function transformClassDeclarationWithoutClassDecorators(node, name) {
|
|
96818
96845
|
// ${modifiers} class ${name} ${heritageClauses} {
|
|
96819
96846
|
// ${members}
|
|
96820
96847
|
// }
|
|
96821
|
-
|
|
96822
|
-
|
|
96848
|
+
var _a;
|
|
96849
|
+
var modifiers = ts.visitNodes(node.modifiers, modifierVisitor, ts.isModifier);
|
|
96850
|
+
var heritageClauses = ts.visitNodes(node.heritageClauses, visitor, ts.isHeritageClause);
|
|
96851
|
+
var members = ts.visitNodes(node.members, visitor, ts.isClassElement);
|
|
96852
|
+
var decorationStatements = [];
|
|
96853
|
+
(_a = transformDecoratorsOfClassElements(node, members), members = _a.members, decorationStatements = _a.decorationStatements);
|
|
96854
|
+
var updated = factory.updateClassDeclaration(node, modifiers, name,
|
|
96855
|
+
/*typeParameters*/ undefined, heritageClauses, members);
|
|
96856
|
+
return ts.addRange([updated], decorationStatements);
|
|
96823
96857
|
}
|
|
96824
96858
|
/**
|
|
96825
96859
|
* Transforms a decorated class declaration and appends the resulting statements. If
|
|
96826
96860
|
* the class requires an alias to avoid issues with double-binding, the alias is returned.
|
|
96827
96861
|
*/
|
|
96828
|
-
function
|
|
96862
|
+
function transformClassDeclarationWithClassDecorators(node, name) {
|
|
96829
96863
|
// When we emit an ES6 class that has a class decorator, we must tailor the
|
|
96830
96864
|
// emit to certain specific cases.
|
|
96831
96865
|
//
|
|
@@ -96911,6 +96945,7 @@ var ts;
|
|
|
96911
96945
|
// | var C_1;
|
|
96912
96946
|
// ---------------------------------------------------------------------
|
|
96913
96947
|
//
|
|
96948
|
+
var _a;
|
|
96914
96949
|
var location = ts.moveRangePastModifiers(node);
|
|
96915
96950
|
var classAlias = getClassAliasIfNeeded(node);
|
|
96916
96951
|
// When we transform to ES5/3 this will be moved inside an IIFE and should reference the name
|
|
@@ -96923,7 +96958,11 @@ var ts;
|
|
|
96923
96958
|
// }
|
|
96924
96959
|
var heritageClauses = ts.visitNodes(node.heritageClauses, visitor, ts.isHeritageClause);
|
|
96925
96960
|
var members = ts.visitNodes(node.members, visitor, ts.isClassElement);
|
|
96926
|
-
var
|
|
96961
|
+
var decorationStatements = [];
|
|
96962
|
+
(_a = transformDecoratorsOfClassElements(node, members), members = _a.members, decorationStatements = _a.decorationStatements);
|
|
96963
|
+
var classExpression = factory.createClassExpression(
|
|
96964
|
+
/*modifiers*/ undefined, name,
|
|
96965
|
+
/*typeParameters*/ undefined, heritageClauses, members);
|
|
96927
96966
|
ts.setOriginalNode(classExpression, node);
|
|
96928
96967
|
ts.setTextRange(classExpression, location);
|
|
96929
96968
|
// let ${name} = ${classExpression} where name is either declaredName if the class doesn't contain self-reference
|
|
@@ -96937,7 +96976,10 @@ var ts;
|
|
|
96937
96976
|
ts.setOriginalNode(statement, node);
|
|
96938
96977
|
ts.setTextRange(statement, location);
|
|
96939
96978
|
ts.setCommentRange(statement, node);
|
|
96940
|
-
|
|
96979
|
+
var statements = [statement];
|
|
96980
|
+
ts.addRange(statements, decorationStatements);
|
|
96981
|
+
addConstructorDecorationStatement(statements, node);
|
|
96982
|
+
return statements;
|
|
96941
96983
|
}
|
|
96942
96984
|
function visitClassExpression(node) {
|
|
96943
96985
|
// Legacy decorators were not supported on class expressions
|