typescript 4.8.0-dev.20220729 → 4.8.0-dev.20220730

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.
@@ -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.20220729";
297
+ ts.version = ts.versionMajorMinor + ".0-dev.20220730";
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
- // Please leave this as 1 << 29.
5911
- // It is the maximum bit we can set before we outgrow the size of a v8 small integer (SMI) on an x86 system.
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"] = 536870912] = "OuterExpressionExcludes";
5933
- TransformFlags[TransformFlags["PropertyAccessExcludes"] = 536870912] = "PropertyAccessExcludes";
5934
- TransformFlags[TransformFlags["NodeExcludes"] = 536870912] = "NodeExcludes";
5935
- TransformFlags[TransformFlags["ArrowFunctionExcludes"] = 612179968] = "ArrowFunctionExcludes";
5936
- TransformFlags[TransformFlags["FunctionExcludes"] = 746414080] = "FunctionExcludes";
5937
- TransformFlags[TransformFlags["ConstructorExcludes"] = 746405888] = "ConstructorExcludes";
5938
- TransformFlags[TransformFlags["MethodOrAccessorExcludes"] = 679297024] = "MethodOrAccessorExcludes";
5939
- TransformFlags[TransformFlags["PropertyExcludes"] = 671105024] = "PropertyExcludes";
5940
- TransformFlags[TransformFlags["ClassExcludes"] = 537010176] = "ClassExcludes";
5941
- TransformFlags[TransformFlags["ModuleExcludes"] = 742678528] = "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"] = 537075712] = "ObjectLiteralExcludes";
5944
- TransformFlags[TransformFlags["ArrayLiteralOrCallOrNewExcludes"] = 536903680] = "ArrayLiteralOrCallOrNewExcludes";
5945
- TransformFlags[TransformFlags["VariableDeclarationListExcludes"] = 537460736] = "VariableDeclarationListExcludes";
5946
- TransformFlags[TransformFlags["ParameterExcludes"] = 536870912] = "ParameterExcludes";
5947
- TransformFlags[TransformFlags["CatchClauseExcludes"] = 536936448] = "CatchClauseExcludes";
5948
- TransformFlags[TransformFlags["BindingPatternExcludes"] = 536903680] = "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 536903680 /* ArrayLiteralOrCallOrNewExcludes */;
27679
+ return -2147450880 /* ArrayLiteralOrCallOrNewExcludes */;
27679
27680
  case 261 /* ModuleDeclaration */:
27680
- return 742678528 /* ModuleExcludes */;
27681
+ return -1941676032 /* ModuleExcludes */;
27681
27682
  case 164 /* Parameter */:
27682
- return 536870912 /* ParameterExcludes */;
27683
+ return -2147483648 /* ParameterExcludes */;
27683
27684
  case 214 /* ArrowFunction */:
27684
- return 612179968 /* ArrowFunctionExcludes */;
27685
+ return -2072174592 /* ArrowFunctionExcludes */;
27685
27686
  case 213 /* FunctionExpression */:
27686
27687
  case 256 /* FunctionDeclaration */:
27687
- return 746414080 /* FunctionExcludes */;
27688
+ return -1937940480 /* FunctionExcludes */;
27688
27689
  case 255 /* VariableDeclarationList */:
27689
- return 537460736 /* VariableDeclarationListExcludes */;
27690
+ return -2146893824 /* VariableDeclarationListExcludes */;
27690
27691
  case 257 /* ClassDeclaration */:
27691
27692
  case 226 /* ClassExpression */:
27692
- return 537010176 /* ClassExcludes */;
27693
+ return -2147344384 /* ClassExcludes */;
27693
27694
  case 171 /* Constructor */:
27694
- return 746405888 /* ConstructorExcludes */;
27695
+ return -1937948672 /* ConstructorExcludes */;
27695
27696
  case 167 /* PropertyDeclaration */:
27696
- return 671105024 /* PropertyExcludes */;
27697
+ return -2013249536 /* PropertyExcludes */;
27697
27698
  case 169 /* MethodDeclaration */:
27698
27699
  case 172 /* GetAccessor */:
27699
27700
  case 173 /* SetAccessor */:
27700
- return 679297024 /* MethodOrAccessorExcludes */;
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 537075712 /* ObjectLiteralExcludes */;
27721
+ return -2147278848 /* ObjectLiteralExcludes */;
27721
27722
  case 292 /* CatchClause */:
27722
- return 536936448 /* CatchClauseExcludes */;
27723
+ return -2147418112 /* CatchClauseExcludes */;
27723
27724
  case 201 /* ObjectBindingPattern */:
27724
27725
  case 202 /* ArrayBindingPattern */:
27725
- return 536903680 /* BindingPatternExcludes */;
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 536870912 /* OuterExpressionExcludes */;
27732
+ return -2147483648 /* OuterExpressionExcludes */;
27732
27733
  case 206 /* PropertyAccessExpression */:
27733
27734
  case 207 /* ElementAccessExpression */:
27734
- return 536870912 /* PropertyAccessExcludes */;
27735
+ return -2147483648 /* PropertyAccessExcludes */;
27735
27736
  default:
27736
- return 536870912 /* NodeExcludes */;
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 classStatement = ts.hasDecorators(node) ?
96788
- createClassDeclarationHeadWithDecorators(node, node.name) :
96789
- createClassDeclarationHeadWithoutDecorators(node, node.name);
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(classStatement, ts.getEmitFlags(classStatement) | 4194304 /* HasEndOfDeclarationMarker */);
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 createClassDeclarationHeadWithoutDecorators(node, name) {
96835
+ function transformClassDeclarationWithoutClassDecorators(node, name) {
96809
96836
  // ${modifiers} class ${name} ${heritageClauses} {
96810
96837
  // ${members}
96811
96838
  // }
96812
- return factory.updateClassDeclaration(node, ts.visitNodes(node.modifiers, modifierVisitor, ts.isModifier), name,
96813
- /*typeParameters*/ undefined, ts.visitNodes(node.heritageClauses, visitor, ts.isHeritageClause), ts.visitNodes(node.members, visitor, ts.isClassElement));
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 createClassDeclarationHeadWithDecorators(node, name) {
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 classExpression = factory.createClassExpression(/*modifiers*/ undefined, name, /*typeParameters*/ undefined, heritageClauses, members);
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
- return statement;
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
@@ -89,7 +89,7 @@ var ts;
89
89
  // The following is baselined as a literal template type without intervention
90
90
  /** The version of the TypeScript compiler release */
91
91
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
92
- ts.version = ts.versionMajorMinor + ".0-dev.20220729";
92
+ ts.version = ts.versionMajorMinor + ".0-dev.20220730";
93
93
  /* @internal */
94
94
  var Comparison;
95
95
  (function (Comparison) {
@@ -5702,10 +5702,8 @@ var ts;
5702
5702
  TransformFlags[TransformFlags["ContainsPossibleTopLevelAwait"] = 67108864] = "ContainsPossibleTopLevelAwait";
5703
5703
  TransformFlags[TransformFlags["ContainsLexicalSuper"] = 134217728] = "ContainsLexicalSuper";
5704
5704
  TransformFlags[TransformFlags["ContainsUpdateExpressionForIdentifier"] = 268435456] = "ContainsUpdateExpressionForIdentifier";
5705
- // Please leave this as 1 << 29.
5706
- // It is the maximum bit we can set before we outgrow the size of a v8 small integer (SMI) on an x86 system.
5707
- // It is a good reminder of how much room we have left
5708
- TransformFlags[TransformFlags["HasComputedFlags"] = 536870912] = "HasComputedFlags";
5705
+ TransformFlags[TransformFlags["ContainsPrivateIdentifierInExpression"] = 536870912] = "ContainsPrivateIdentifierInExpression";
5706
+ TransformFlags[TransformFlags["HasComputedFlags"] = -2147483648] = "HasComputedFlags";
5709
5707
  // Assertions
5710
5708
  // - Bitmasks that are used to assert facts about the syntax of a node and its subtree.
5711
5709
  TransformFlags[TransformFlags["AssertTypeScript"] = 1] = "AssertTypeScript";
@@ -5724,23 +5722,23 @@ var ts;
5724
5722
  // Scope Exclusions
5725
5723
  // - Bitmasks that exclude flags from propagating out of a specific context
5726
5724
  // into the subtree flags of their container.
5727
- TransformFlags[TransformFlags["OuterExpressionExcludes"] = 536870912] = "OuterExpressionExcludes";
5728
- TransformFlags[TransformFlags["PropertyAccessExcludes"] = 536870912] = "PropertyAccessExcludes";
5729
- TransformFlags[TransformFlags["NodeExcludes"] = 536870912] = "NodeExcludes";
5730
- TransformFlags[TransformFlags["ArrowFunctionExcludes"] = 612179968] = "ArrowFunctionExcludes";
5731
- TransformFlags[TransformFlags["FunctionExcludes"] = 746414080] = "FunctionExcludes";
5732
- TransformFlags[TransformFlags["ConstructorExcludes"] = 746405888] = "ConstructorExcludes";
5733
- TransformFlags[TransformFlags["MethodOrAccessorExcludes"] = 679297024] = "MethodOrAccessorExcludes";
5734
- TransformFlags[TransformFlags["PropertyExcludes"] = 671105024] = "PropertyExcludes";
5735
- TransformFlags[TransformFlags["ClassExcludes"] = 537010176] = "ClassExcludes";
5736
- TransformFlags[TransformFlags["ModuleExcludes"] = 742678528] = "ModuleExcludes";
5725
+ TransformFlags[TransformFlags["OuterExpressionExcludes"] = -2147483648] = "OuterExpressionExcludes";
5726
+ TransformFlags[TransformFlags["PropertyAccessExcludes"] = -2147483648] = "PropertyAccessExcludes";
5727
+ TransformFlags[TransformFlags["NodeExcludes"] = -2147483648] = "NodeExcludes";
5728
+ TransformFlags[TransformFlags["ArrowFunctionExcludes"] = -2072174592] = "ArrowFunctionExcludes";
5729
+ TransformFlags[TransformFlags["FunctionExcludes"] = -1937940480] = "FunctionExcludes";
5730
+ TransformFlags[TransformFlags["ConstructorExcludes"] = -1937948672] = "ConstructorExcludes";
5731
+ TransformFlags[TransformFlags["MethodOrAccessorExcludes"] = -2005057536] = "MethodOrAccessorExcludes";
5732
+ TransformFlags[TransformFlags["PropertyExcludes"] = -2013249536] = "PropertyExcludes";
5733
+ TransformFlags[TransformFlags["ClassExcludes"] = -2147344384] = "ClassExcludes";
5734
+ TransformFlags[TransformFlags["ModuleExcludes"] = -1941676032] = "ModuleExcludes";
5737
5735
  TransformFlags[TransformFlags["TypeExcludes"] = -2] = "TypeExcludes";
5738
- TransformFlags[TransformFlags["ObjectLiteralExcludes"] = 537075712] = "ObjectLiteralExcludes";
5739
- TransformFlags[TransformFlags["ArrayLiteralOrCallOrNewExcludes"] = 536903680] = "ArrayLiteralOrCallOrNewExcludes";
5740
- TransformFlags[TransformFlags["VariableDeclarationListExcludes"] = 537460736] = "VariableDeclarationListExcludes";
5741
- TransformFlags[TransformFlags["ParameterExcludes"] = 536870912] = "ParameterExcludes";
5742
- TransformFlags[TransformFlags["CatchClauseExcludes"] = 536936448] = "CatchClauseExcludes";
5743
- TransformFlags[TransformFlags["BindingPatternExcludes"] = 536903680] = "BindingPatternExcludes";
5736
+ TransformFlags[TransformFlags["ObjectLiteralExcludes"] = -2147278848] = "ObjectLiteralExcludes";
5737
+ TransformFlags[TransformFlags["ArrayLiteralOrCallOrNewExcludes"] = -2147450880] = "ArrayLiteralOrCallOrNewExcludes";
5738
+ TransformFlags[TransformFlags["VariableDeclarationListExcludes"] = -2146893824] = "VariableDeclarationListExcludes";
5739
+ TransformFlags[TransformFlags["ParameterExcludes"] = -2147483648] = "ParameterExcludes";
5740
+ TransformFlags[TransformFlags["CatchClauseExcludes"] = -2147418112] = "CatchClauseExcludes";
5741
+ TransformFlags[TransformFlags["BindingPatternExcludes"] = -2147450880] = "BindingPatternExcludes";
5744
5742
  TransformFlags[TransformFlags["ContainsLexicalThisOrSuper"] = 134234112] = "ContainsLexicalThisOrSuper";
5745
5743
  // Propagating flags
5746
5744
  // - Bitmasks for flags that should propagate from a child
@@ -24079,7 +24077,7 @@ var ts;
24079
24077
  propagateChildFlags(node.expression) |
24080
24078
  (ts.isIdentifier(node.name) ?
24081
24079
  propagateIdentifierNameFlags(node.name) :
24082
- propagateChildFlags(node.name));
24080
+ propagateChildFlags(node.name) | 536870912 /* ContainsPrivateIdentifierInExpression */);
24083
24081
  if (ts.isSuperKeyword(expression)) {
24084
24082
  // super method calls require a lexical 'this'
24085
24083
  // super method calls require 'super' hoisting in ES2017 and ES2018 async functions and async generators
@@ -24112,7 +24110,7 @@ var ts;
24112
24110
  propagateChildFlags(node.questionDotToken) |
24113
24111
  (ts.isIdentifier(node.name) ?
24114
24112
  propagateIdentifierNameFlags(node.name) :
24115
- propagateChildFlags(node.name));
24113
+ propagateChildFlags(node.name) | 536870912 /* ContainsPrivateIdentifierInExpression */);
24116
24114
  return node;
24117
24115
  }
24118
24116
  // @api
@@ -24516,6 +24514,9 @@ var ts;
24516
24514
  else if (ts.isLogicalOrCoalescingAssignmentOperator(operatorKind)) {
24517
24515
  node.transformFlags |= 16 /* ContainsES2021 */;
24518
24516
  }
24517
+ if (operatorKind === 101 /* InKeyword */ && ts.isPrivateIdentifier(node.left)) {
24518
+ node.transformFlags |= 536870912 /* ContainsPrivateIdentifierInExpression */;
24519
+ }
24519
24520
  return node;
24520
24521
  }
24521
24522
  function propagateAssignmentPatternFlags(node) {
@@ -27470,29 +27471,29 @@ var ts;
27470
27471
  case 208 /* CallExpression */:
27471
27472
  case 209 /* NewExpression */:
27472
27473
  case 204 /* ArrayLiteralExpression */:
27473
- return 536903680 /* ArrayLiteralOrCallOrNewExcludes */;
27474
+ return -2147450880 /* ArrayLiteralOrCallOrNewExcludes */;
27474
27475
  case 261 /* ModuleDeclaration */:
27475
- return 742678528 /* ModuleExcludes */;
27476
+ return -1941676032 /* ModuleExcludes */;
27476
27477
  case 164 /* Parameter */:
27477
- return 536870912 /* ParameterExcludes */;
27478
+ return -2147483648 /* ParameterExcludes */;
27478
27479
  case 214 /* ArrowFunction */:
27479
- return 612179968 /* ArrowFunctionExcludes */;
27480
+ return -2072174592 /* ArrowFunctionExcludes */;
27480
27481
  case 213 /* FunctionExpression */:
27481
27482
  case 256 /* FunctionDeclaration */:
27482
- return 746414080 /* FunctionExcludes */;
27483
+ return -1937940480 /* FunctionExcludes */;
27483
27484
  case 255 /* VariableDeclarationList */:
27484
- return 537460736 /* VariableDeclarationListExcludes */;
27485
+ return -2146893824 /* VariableDeclarationListExcludes */;
27485
27486
  case 257 /* ClassDeclaration */:
27486
27487
  case 226 /* ClassExpression */:
27487
- return 537010176 /* ClassExcludes */;
27488
+ return -2147344384 /* ClassExcludes */;
27488
27489
  case 171 /* Constructor */:
27489
- return 746405888 /* ConstructorExcludes */;
27490
+ return -1937948672 /* ConstructorExcludes */;
27490
27491
  case 167 /* PropertyDeclaration */:
27491
- return 671105024 /* PropertyExcludes */;
27492
+ return -2013249536 /* PropertyExcludes */;
27492
27493
  case 169 /* MethodDeclaration */:
27493
27494
  case 172 /* GetAccessor */:
27494
27495
  case 173 /* SetAccessor */:
27495
- return 679297024 /* MethodOrAccessorExcludes */;
27496
+ return -2005057536 /* MethodOrAccessorExcludes */;
27496
27497
  case 130 /* AnyKeyword */:
27497
27498
  case 147 /* NumberKeyword */:
27498
27499
  case 158 /* BigIntKeyword */:
@@ -27512,23 +27513,23 @@ var ts;
27512
27513
  case 259 /* TypeAliasDeclaration */:
27513
27514
  return -2 /* TypeExcludes */;
27514
27515
  case 205 /* ObjectLiteralExpression */:
27515
- return 537075712 /* ObjectLiteralExcludes */;
27516
+ return -2147278848 /* ObjectLiteralExcludes */;
27516
27517
  case 292 /* CatchClause */:
27517
- return 536936448 /* CatchClauseExcludes */;
27518
+ return -2147418112 /* CatchClauseExcludes */;
27518
27519
  case 201 /* ObjectBindingPattern */:
27519
27520
  case 202 /* ArrayBindingPattern */:
27520
- return 536903680 /* BindingPatternExcludes */;
27521
+ return -2147450880 /* BindingPatternExcludes */;
27521
27522
  case 211 /* TypeAssertionExpression */:
27522
27523
  case 229 /* AsExpression */:
27523
27524
  case 350 /* PartiallyEmittedExpression */:
27524
27525
  case 212 /* ParenthesizedExpression */:
27525
27526
  case 106 /* SuperKeyword */:
27526
- return 536870912 /* OuterExpressionExcludes */;
27527
+ return -2147483648 /* OuterExpressionExcludes */;
27527
27528
  case 206 /* PropertyAccessExpression */:
27528
27529
  case 207 /* ElementAccessExpression */:
27529
- return 536870912 /* PropertyAccessExcludes */;
27530
+ return -2147483648 /* PropertyAccessExcludes */;
27530
27531
  default:
27531
- return 536870912 /* NodeExcludes */;
27532
+ return -2147483648 /* NodeExcludes */;
27532
27533
  }
27533
27534
  }
27534
27535
  ts.getTransformFlagsSubtreeExclusions = getTransformFlagsSubtreeExclusions;
@@ -80774,7 +80775,7 @@ var ts;
80774
80775
  error(node.name, ts.Diagnostics.constructor_cannot_be_used_as_a_parameter_property_name);
80775
80776
  }
80776
80777
  }
80777
- if (node.questionToken && ts.isBindingPattern(node.name) && func.body) {
80778
+ if ((node.questionToken || isJSDocOptionalParameter(node)) && ts.isBindingPattern(node.name) && func.body) {
80778
80779
  error(node, ts.Diagnostics.A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature);
80779
80780
  }
80780
80781
  if (node.name && ts.isIdentifier(node.name) && (node.name.escapedText === "this" || node.name.escapedText === "new")) {
@@ -96579,39 +96580,72 @@ var ts;
96579
96580
  function visitClassDeclaration(node) {
96580
96581
  if (!(ts.classOrConstructorParameterIsDecorated(node) || ts.childIsDecorated(node)))
96581
96582
  return ts.visitEachChild(node, visitor, context);
96582
- var classStatement = ts.hasDecorators(node) ?
96583
- createClassDeclarationHeadWithDecorators(node, node.name) :
96584
- createClassDeclarationHeadWithoutDecorators(node, node.name);
96585
- var statements = [classStatement];
96586
- // Write any decorators of the node.
96587
- addClassElementDecorationStatements(statements, node, /*isStatic*/ false);
96588
- addClassElementDecorationStatements(statements, node, /*isStatic*/ true);
96589
- addConstructorDecorationStatement(statements, node);
96583
+ var statements = ts.hasDecorators(node) ?
96584
+ transformClassDeclarationWithClassDecorators(node, node.name) :
96585
+ transformClassDeclarationWithoutClassDecorators(node, node.name);
96590
96586
  if (statements.length > 1) {
96591
96587
  // Add a DeclarationMarker as a marker for the end of the declaration
96592
96588
  statements.push(factory.createEndOfDeclarationMarker(node));
96593
- ts.setEmitFlags(classStatement, ts.getEmitFlags(classStatement) | 4194304 /* HasEndOfDeclarationMarker */);
96589
+ ts.setEmitFlags(statements[0], ts.getEmitFlags(statements[0]) | 4194304 /* HasEndOfDeclarationMarker */);
96594
96590
  }
96595
96591
  return ts.singleOrMany(statements);
96596
96592
  }
96593
+ function decoratorContainsPrivateIdentifierInExpression(decorator) {
96594
+ return !!(decorator.transformFlags & 536870912 /* ContainsPrivateIdentifierInExpression */);
96595
+ }
96596
+ function parameterDecoratorsContainPrivateIdentifierInExpression(parameterDecorators) {
96597
+ return ts.some(parameterDecorators, decoratorContainsPrivateIdentifierInExpression);
96598
+ }
96599
+ function hasClassElementWithDecoratorContainingPrivateIdentifierInExpression(node) {
96600
+ for (var _i = 0, _a = node.members; _i < _a.length; _i++) {
96601
+ var member = _a[_i];
96602
+ if (!ts.canHaveDecorators(member))
96603
+ continue;
96604
+ var allDecorators = ts.getAllDecoratorsOfClassElement(member, node);
96605
+ if (ts.some(allDecorators === null || allDecorators === void 0 ? void 0 : allDecorators.decorators, decoratorContainsPrivateIdentifierInExpression))
96606
+ return true;
96607
+ if (ts.some(allDecorators === null || allDecorators === void 0 ? void 0 : allDecorators.parameters, parameterDecoratorsContainPrivateIdentifierInExpression))
96608
+ return true;
96609
+ }
96610
+ return false;
96611
+ }
96612
+ function transformDecoratorsOfClassElements(node, members) {
96613
+ var decorationStatements = [];
96614
+ addClassElementDecorationStatements(decorationStatements, node, /*isStatic*/ false);
96615
+ addClassElementDecorationStatements(decorationStatements, node, /*isStatic*/ true);
96616
+ if (hasClassElementWithDecoratorContainingPrivateIdentifierInExpression(node)) {
96617
+ members = ts.setTextRange(factory.createNodeArray(__spreadArray(__spreadArray([], members, true), [
96618
+ factory.createClassStaticBlockDeclaration(factory.createBlock(decorationStatements, /*multiLine*/ true))
96619
+ ], false)), members);
96620
+ decorationStatements = undefined;
96621
+ }
96622
+ return { decorationStatements: decorationStatements, members: members };
96623
+ }
96597
96624
  /**
96598
96625
  * Transforms a non-decorated class declaration.
96599
96626
  *
96600
96627
  * @param node A ClassDeclaration node.
96601
96628
  * @param name The name of the class.
96602
96629
  */
96603
- function createClassDeclarationHeadWithoutDecorators(node, name) {
96630
+ function transformClassDeclarationWithoutClassDecorators(node, name) {
96604
96631
  // ${modifiers} class ${name} ${heritageClauses} {
96605
96632
  // ${members}
96606
96633
  // }
96607
- return factory.updateClassDeclaration(node, ts.visitNodes(node.modifiers, modifierVisitor, ts.isModifier), name,
96608
- /*typeParameters*/ undefined, ts.visitNodes(node.heritageClauses, visitor, ts.isHeritageClause), ts.visitNodes(node.members, visitor, ts.isClassElement));
96634
+ var _a;
96635
+ var modifiers = ts.visitNodes(node.modifiers, modifierVisitor, ts.isModifier);
96636
+ var heritageClauses = ts.visitNodes(node.heritageClauses, visitor, ts.isHeritageClause);
96637
+ var members = ts.visitNodes(node.members, visitor, ts.isClassElement);
96638
+ var decorationStatements = [];
96639
+ (_a = transformDecoratorsOfClassElements(node, members), members = _a.members, decorationStatements = _a.decorationStatements);
96640
+ var updated = factory.updateClassDeclaration(node, modifiers, name,
96641
+ /*typeParameters*/ undefined, heritageClauses, members);
96642
+ return ts.addRange([updated], decorationStatements);
96609
96643
  }
96610
96644
  /**
96611
96645
  * Transforms a decorated class declaration and appends the resulting statements. If
96612
96646
  * the class requires an alias to avoid issues with double-binding, the alias is returned.
96613
96647
  */
96614
- function createClassDeclarationHeadWithDecorators(node, name) {
96648
+ function transformClassDeclarationWithClassDecorators(node, name) {
96615
96649
  // When we emit an ES6 class that has a class decorator, we must tailor the
96616
96650
  // emit to certain specific cases.
96617
96651
  //
@@ -96697,6 +96731,7 @@ var ts;
96697
96731
  // | var C_1;
96698
96732
  // ---------------------------------------------------------------------
96699
96733
  //
96734
+ var _a;
96700
96735
  var location = ts.moveRangePastModifiers(node);
96701
96736
  var classAlias = getClassAliasIfNeeded(node);
96702
96737
  // When we transform to ES5/3 this will be moved inside an IIFE and should reference the name
@@ -96709,7 +96744,11 @@ var ts;
96709
96744
  // }
96710
96745
  var heritageClauses = ts.visitNodes(node.heritageClauses, visitor, ts.isHeritageClause);
96711
96746
  var members = ts.visitNodes(node.members, visitor, ts.isClassElement);
96712
- var classExpression = factory.createClassExpression(/*modifiers*/ undefined, name, /*typeParameters*/ undefined, heritageClauses, members);
96747
+ var decorationStatements = [];
96748
+ (_a = transformDecoratorsOfClassElements(node, members), members = _a.members, decorationStatements = _a.decorationStatements);
96749
+ var classExpression = factory.createClassExpression(
96750
+ /*modifiers*/ undefined, name,
96751
+ /*typeParameters*/ undefined, heritageClauses, members);
96713
96752
  ts.setOriginalNode(classExpression, node);
96714
96753
  ts.setTextRange(classExpression, location);
96715
96754
  // let ${name} = ${classExpression} where name is either declaredName if the class doesn't contain self-reference
@@ -96723,7 +96762,10 @@ var ts;
96723
96762
  ts.setOriginalNode(statement, node);
96724
96763
  ts.setTextRange(statement, location);
96725
96764
  ts.setCommentRange(statement, node);
96726
- return statement;
96765
+ var statements = [statement];
96766
+ ts.addRange(statements, decorationStatements);
96767
+ addConstructorDecorationStatement(statements, node);
96768
+ return statements;
96727
96769
  }
96728
96770
  function visitClassExpression(node) {
96729
96771
  // Legacy decorators were not supported on class expressions
@@ -775,6 +775,7 @@
775
775
  "Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here_1359": "应为标识符。\"{0}\" 是保留字,不能在此处使用。",
776
776
  "Identifier_expected_1003": "应为标识符。",
777
777
  "Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules_1216": "应为标识符。转换 ECMAScript 模块时,\"__esModule\" 保留为导出标记。",
778
+ "Identifier_or_string_literal_expected_1478": "应为标识符或字符串字面量。",
778
779
  "If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_S_7040": "如果“{0}”包实际上公开此模块,请考虑发送拉取请求以修正“https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/{1}”",
779
780
  "If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058": "如果“{0}”包实际公开了此模块,请尝试添加包含 `declare module‘{1}';` 的新声明(.d.ts)文件",
780
781
  "Ignore_this_error_message_90019": "忽略此错误信息",
@@ -775,6 +775,7 @@
775
775
  "Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here_1359": "必須為識別碼。'{0}' 為保留字,此處不可使用。",
776
776
  "Identifier_expected_1003": "必須是識別碼。",
777
777
  "Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules_1216": "必須有識別碼。'__esModule' 已保留為轉換 ECMAScript 模組時匯出的標記。",
778
+ "Identifier_or_string_literal_expected_1478": "需要識別碼或字串常值。",
778
779
  "If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_S_7040": "如果「{0}」套件實際上公開了此模組,請考慮傳送提取要求以修改 「https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/{1}」",
779
780
  "If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058": "如果 '{0}' 套件的確公開了此模組,請嘗試新增包含 `declare module '{1}';` 的宣告 (.d.ts) 檔案。",
780
781
  "Ignore_this_error_message_90019": "略過此錯誤訊息",
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "typescript",
3
3
  "author": "Microsoft Corp.",
4
4
  "homepage": "https://www.typescriptlang.org/",
5
- "version": "4.8.0-dev.20220729",
5
+ "version": "4.8.0-dev.20220730",
6
6
  "license": "Apache-2.0",
7
7
  "description": "TypeScript is a language for application scale JavaScript development",
8
8
  "keywords": [