typescript 4.9.0-dev.20220818 → 4.9.0-dev.20220821

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.
@@ -108,7 +108,7 @@ var ts;
108
108
  // The following is baselined as a literal template type without intervention
109
109
  /** The version of the TypeScript compiler release */
110
110
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
111
- ts.version = ts.versionMajorMinor + ".0-dev.20220818";
111
+ ts.version = ts.versionMajorMinor + ".0-dev.20220821";
112
112
  /* @internal */
113
113
  var Comparison;
114
114
  (function (Comparison) {
@@ -2497,6 +2497,7 @@ var ts;
2497
2497
  var currentAssertionLevel = 0 /* None */;
2498
2498
  Debug.currentLogLevel = LogLevel.Warning;
2499
2499
  Debug.isDebugging = false;
2500
+ Debug.enableDeprecationWarnings = true;
2500
2501
  function getTypeScriptVersion() {
2501
2502
  return typeScriptVersion !== null && typeScriptVersion !== void 0 ? typeScriptVersion : (typeScriptVersion = new ts.Version(ts.version));
2502
2503
  }
@@ -3120,7 +3121,7 @@ var ts;
3120
3121
  function createWarningDeprecation(name, errorAfter, since, message) {
3121
3122
  var hasWrittenDeprecation = false;
3122
3123
  return function () {
3123
- if (!hasWrittenDeprecation) {
3124
+ if (Debug.enableDeprecationWarnings && !hasWrittenDeprecation) {
3124
3125
  log.warn(formatDeprecationMessage(name, /*error*/ false, errorAfter, since, message));
3125
3126
  hasWrittenDeprecation = true;
3126
3127
  }
@@ -21399,7 +21400,7 @@ var ts;
21399
21400
  case 165 /* Decorator */: {
21400
21401
  var parent_2 = node.parent;
21401
21402
  return ts.canHaveDecorators(parent_2) ? parent_2.modifiers :
21402
- ts.canHaveIllegalDecorators(parent_2) ? parent_2.decorators :
21403
+ ts.canHaveIllegalDecorators(parent_2) ? parent_2.illegalDecorators :
21403
21404
  undefined;
21404
21405
  }
21405
21406
  case 291 /* HeritageClause */:
@@ -23476,7 +23477,7 @@ var ts;
23476
23477
  node.body = body;
23477
23478
  node.transformFlags = propagateChildFlags(body) | 16777216 /* ContainsClassFields */;
23478
23479
  // The following properties are used only to report grammar errors
23479
- node.decorators = undefined;
23480
+ node.illegalDecorators = undefined;
23480
23481
  node.modifiers = undefined;
23481
23482
  return node;
23482
23483
  }
@@ -23488,7 +23489,7 @@ var ts;
23488
23489
  }
23489
23490
  function finishUpdateClassStaticBlockDeclaration(updated, original) {
23490
23491
  if (updated !== original) {
23491
- updated.decorators = original.decorators;
23492
+ updated.illegalDecorators = original.illegalDecorators;
23492
23493
  updated.modifiers = original.modifiers;
23493
23494
  }
23494
23495
  return update(updated, original);
@@ -23501,7 +23502,7 @@ var ts;
23501
23502
  /*type*/ undefined, body);
23502
23503
  node.transformFlags |= 1024 /* ContainsES2015 */;
23503
23504
  // The following properties are used only to report grammar errors
23504
- node.decorators = undefined;
23505
+ node.illegalDecorators = undefined;
23505
23506
  node.typeParameters = undefined;
23506
23507
  node.type = undefined;
23507
23508
  return node;
@@ -23516,7 +23517,7 @@ var ts;
23516
23517
  }
23517
23518
  function finishUpdateConstructorDeclaration(updated, original) {
23518
23519
  if (updated !== original) {
23519
- updated.decorators = original.decorators;
23520
+ updated.illegalDecorators = original.illegalDecorators;
23520
23521
  updated.typeParameters = original.typeParameters;
23521
23522
  updated.type = original.type;
23522
23523
  }
@@ -25264,7 +25265,7 @@ var ts;
25264
25265
  }
25265
25266
  }
25266
25267
  // The following properties are used only to report grammar errors
25267
- node.decorators = undefined;
25268
+ node.illegalDecorators = undefined;
25268
25269
  return node;
25269
25270
  }
25270
25271
  // @api
@@ -25282,7 +25283,7 @@ var ts;
25282
25283
  function finishUpdateFunctionDeclaration(updated, original) {
25283
25284
  if (updated !== original) {
25284
25285
  // copy children used only for error reporting
25285
- updated.decorators = original.decorators;
25286
+ updated.illegalDecorators = original.illegalDecorators;
25286
25287
  }
25287
25288
  return finishUpdateBaseSignatureDeclaration(updated, original);
25288
25289
  }
@@ -25316,7 +25317,7 @@ var ts;
25316
25317
  node.members = createNodeArray(members);
25317
25318
  node.transformFlags = 1 /* ContainsTypeScript */;
25318
25319
  // The following properties are used only to report grammar errors
25319
- node.decorators = undefined;
25320
+ node.illegalDecorators = undefined;
25320
25321
  return node;
25321
25322
  }
25322
25323
  // @api
@@ -25331,7 +25332,7 @@ var ts;
25331
25332
  }
25332
25333
  function finishUpdateInterfaceDeclaration(updated, original) {
25333
25334
  if (updated !== original) {
25334
- updated.decorators = original.decorators;
25335
+ updated.illegalDecorators = original.illegalDecorators;
25335
25336
  }
25336
25337
  return update(updated, original);
25337
25338
  }
@@ -25341,7 +25342,7 @@ var ts;
25341
25342
  node.type = type;
25342
25343
  node.transformFlags = 1 /* ContainsTypeScript */;
25343
25344
  // The following properties are used only to report grammar errors
25344
- node.decorators = undefined;
25345
+ node.illegalDecorators = undefined;
25345
25346
  return node;
25346
25347
  }
25347
25348
  // @api
@@ -25355,7 +25356,7 @@ var ts;
25355
25356
  }
25356
25357
  function finishUpdateTypeAliasDeclaration(updated, original) {
25357
25358
  if (updated !== original) {
25358
- updated.decorators = original.decorators;
25359
+ updated.illegalDecorators = original.illegalDecorators;
25359
25360
  }
25360
25361
  return update(updated, original);
25361
25362
  }
@@ -25368,7 +25369,7 @@ var ts;
25368
25369
  1 /* ContainsTypeScript */;
25369
25370
  node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; // Enum declarations cannot contain `await`
25370
25371
  // The following properties are used only to report grammar errors
25371
- node.decorators = undefined;
25372
+ node.illegalDecorators = undefined;
25372
25373
  return node;
25373
25374
  }
25374
25375
  // @api
@@ -25381,7 +25382,7 @@ var ts;
25381
25382
  }
25382
25383
  function finishUpdateEnumDeclaration(updated, original) {
25383
25384
  if (updated !== original) {
25384
- updated.decorators = original.decorators;
25385
+ updated.illegalDecorators = original.illegalDecorators;
25385
25386
  }
25386
25387
  return update(updated, original);
25387
25388
  }
@@ -25405,7 +25406,7 @@ var ts;
25405
25406
  }
25406
25407
  node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; // Module declarations cannot contain `await`.
25407
25408
  // The following properties are used only to report grammar errors
25408
- node.decorators = undefined;
25409
+ node.illegalDecorators = undefined;
25409
25410
  return node;
25410
25411
  }
25411
25412
  // @api
@@ -25418,7 +25419,7 @@ var ts;
25418
25419
  }
25419
25420
  function finishUpdateModuleDeclaration(updated, original) {
25420
25421
  if (updated !== original) {
25421
- updated.decorators = original.decorators;
25422
+ updated.illegalDecorators = original.illegalDecorators;
25422
25423
  }
25423
25424
  return update(updated, original);
25424
25425
  }
@@ -25454,7 +25455,7 @@ var ts;
25454
25455
  /*modifiers*/ undefined, name);
25455
25456
  node.transformFlags = 1 /* ContainsTypeScript */;
25456
25457
  // The following properties are used only to report grammar errors
25457
- node.decorators = undefined;
25458
+ node.illegalDecorators = undefined;
25458
25459
  node.modifiers = undefined;
25459
25460
  return node;
25460
25461
  }
@@ -25466,7 +25467,7 @@ var ts;
25466
25467
  }
25467
25468
  function finishUpdateNamespaceExportDeclaration(updated, original) {
25468
25469
  if (updated !== original) {
25469
- updated.decorators = original.decorators;
25470
+ updated.illegalDecorators = original.illegalDecorators;
25470
25471
  updated.modifiers = original.modifiers;
25471
25472
  }
25472
25473
  return update(updated, original);
@@ -25481,7 +25482,7 @@ var ts;
25481
25482
  node.transformFlags |= 1 /* ContainsTypeScript */;
25482
25483
  node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; // Import= declaration is always parsed in an Await context
25483
25484
  // The following properties are used only to report grammar errors
25484
- node.decorators = undefined;
25485
+ node.illegalDecorators = undefined;
25485
25486
  return node;
25486
25487
  }
25487
25488
  // @api
@@ -25495,7 +25496,7 @@ var ts;
25495
25496
  }
25496
25497
  function finishUpdateImportEqualsDeclaration(updated, original) {
25497
25498
  if (updated !== original) {
25498
- updated.decorators = original.decorators;
25499
+ updated.illegalDecorators = original.illegalDecorators;
25499
25500
  }
25500
25501
  return update(updated, original);
25501
25502
  }
@@ -25511,7 +25512,7 @@ var ts;
25511
25512
  propagateChildFlags(node.moduleSpecifier);
25512
25513
  node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; // always parsed in an Await context
25513
25514
  // The following properties are used only to report grammar errors
25514
- node.decorators = undefined;
25515
+ node.illegalDecorators = undefined;
25515
25516
  return node;
25516
25517
  }
25517
25518
  // @api
@@ -25525,7 +25526,7 @@ var ts;
25525
25526
  }
25526
25527
  function finishUpdateImportDeclaration(updated, original) {
25527
25528
  if (updated !== original) {
25528
- updated.decorators = original.decorators;
25529
+ updated.illegalDecorators = original.illegalDecorators;
25529
25530
  }
25530
25531
  return update(updated, original);
25531
25532
  }
@@ -25671,7 +25672,7 @@ var ts;
25671
25672
  node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.expression);
25672
25673
  node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; // always parsed in an Await context
25673
25674
  // The following properties are used only to report grammar errors
25674
- node.decorators = undefined;
25675
+ node.illegalDecorators = undefined;
25675
25676
  return node;
25676
25677
  }
25677
25678
  // @api
@@ -25683,7 +25684,7 @@ var ts;
25683
25684
  }
25684
25685
  function finishUpdateExportAssignment(updated, original) {
25685
25686
  if (updated !== original) {
25686
- updated.decorators = original.decorators;
25687
+ updated.illegalDecorators = original.illegalDecorators;
25687
25688
  }
25688
25689
  return update(updated, original);
25689
25690
  }
@@ -25701,7 +25702,7 @@ var ts;
25701
25702
  propagateChildFlags(node.moduleSpecifier);
25702
25703
  node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; // always parsed in an Await context
25703
25704
  // The following properties are used only to report grammar errors
25704
- node.decorators = undefined;
25705
+ node.illegalDecorators = undefined;
25705
25706
  return node;
25706
25707
  }
25707
25708
  // @api
@@ -25716,7 +25717,7 @@ var ts;
25716
25717
  }
25717
25718
  function finishUpdateExportDeclaration(updated, original) {
25718
25719
  if (updated !== original) {
25719
- updated.decorators = original.decorators;
25720
+ updated.illegalDecorators = original.illegalDecorators;
25720
25721
  }
25721
25722
  return update(updated, original);
25722
25723
  }
@@ -26480,7 +26481,7 @@ var ts;
26480
26481
  propagateChildFlags(node.name) |
26481
26482
  propagateChildFlags(node.initializer);
26482
26483
  // The following properties are used only to report grammar errors
26483
- node.decorators = undefined;
26484
+ node.illegalDecorators = undefined;
26484
26485
  node.modifiers = undefined;
26485
26486
  node.questionToken = undefined;
26486
26487
  node.exclamationToken = undefined;
@@ -26496,7 +26497,7 @@ var ts;
26496
26497
  function finishUpdatePropertyAssignment(updated, original) {
26497
26498
  // copy children used only for error reporting
26498
26499
  if (updated !== original) {
26499
- updated.decorators = original.decorators;
26500
+ updated.illegalDecorators = original.illegalDecorators;
26500
26501
  updated.modifiers = original.modifiers;
26501
26502
  updated.questionToken = original.questionToken;
26502
26503
  updated.exclamationToken = original.exclamationToken;
@@ -26513,7 +26514,7 @@ var ts;
26513
26514
  1024 /* ContainsES2015 */;
26514
26515
  // The following properties are used only to report grammar errors
26515
26516
  node.equalsToken = undefined;
26516
- node.decorators = undefined;
26517
+ node.illegalDecorators = undefined;
26517
26518
  node.modifiers = undefined;
26518
26519
  node.questionToken = undefined;
26519
26520
  node.exclamationToken = undefined;
@@ -26530,7 +26531,7 @@ var ts;
26530
26531
  if (updated !== original) {
26531
26532
  // copy children used only for error reporting
26532
26533
  updated.equalsToken = original.equalsToken;
26533
- updated.decorators = original.decorators;
26534
+ updated.illegalDecorators = original.illegalDecorators;
26534
26535
  updated.modifiers = original.modifiers;
26535
26536
  updated.questionToken = original.questionToken;
26536
26537
  updated.exclamationToken = original.exclamationToken;
@@ -31009,7 +31010,7 @@ var ts;
31009
31010
  visitNode(cbNode, node.default) ||
31010
31011
  visitNode(cbNode, node.expression);
31011
31012
  case 297 /* ShorthandPropertyAssignment */:
31012
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31013
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31013
31014
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31014
31015
  visitNode(cbNode, node.name) ||
31015
31016
  visitNode(cbNode, node.questionToken) ||
@@ -31039,7 +31040,7 @@ var ts;
31039
31040
  visitNode(cbNode, node.type) ||
31040
31041
  visitNode(cbNode, node.initializer);
31041
31042
  case 296 /* PropertyAssignment */:
31042
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31043
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31043
31044
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31044
31045
  visitNode(cbNode, node.name) ||
31045
31046
  visitNode(cbNode, node.questionToken) ||
@@ -31056,7 +31057,7 @@ var ts;
31056
31057
  visitNode(cbNode, node.name) ||
31057
31058
  visitNode(cbNode, node.initializer);
31058
31059
  case 176 /* IndexSignature */:
31059
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31060
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31060
31061
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31061
31062
  visitNodes(cbNode, cbNodes, node.typeParameters) ||
31062
31063
  visitNodes(cbNode, cbNodes, node.parameters) ||
@@ -31094,7 +31095,7 @@ var ts;
31094
31095
  visitNodes(cbNode, cbNodes, node.parameters) ||
31095
31096
  visitNode(cbNode, node.type);
31096
31097
  case 171 /* Constructor */:
31097
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31098
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31098
31099
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31099
31100
  visitNode(cbNode, node.name) ||
31100
31101
  visitNodes(cbNode, cbNodes, node.typeParameters) ||
@@ -31116,7 +31117,7 @@ var ts;
31116
31117
  visitNode(cbNode, node.type) ||
31117
31118
  visitNode(cbNode, node.body);
31118
31119
  case 256 /* FunctionDeclaration */:
31119
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31120
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31120
31121
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31121
31122
  visitNode(cbNode, node.asteriskToken) ||
31122
31123
  visitNode(cbNode, node.name) ||
@@ -31140,7 +31141,7 @@ var ts;
31140
31141
  visitNode(cbNode, node.equalsGreaterThanToken) ||
31141
31142
  visitNode(cbNode, node.body);
31142
31143
  case 170 /* ClassStaticBlockDeclaration */:
31143
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31144
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31144
31145
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31145
31146
  visitNode(cbNode, node.body);
31146
31147
  case 178 /* TypeReference */:
@@ -31268,7 +31269,7 @@ var ts;
31268
31269
  return visitNodes(cbNode, cbNodes, node.statements) ||
31269
31270
  visitNode(cbNode, node.endOfFileToken);
31270
31271
  case 237 /* VariableStatement */:
31271
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31272
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31272
31273
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31273
31274
  visitNode(cbNode, node.declarationList);
31274
31275
  case 255 /* VariableDeclarationList */:
@@ -31339,20 +31340,20 @@ var ts;
31339
31340
  visitNodes(cbNode, cbNodes, node.heritageClauses) ||
31340
31341
  visitNodes(cbNode, cbNodes, node.members);
31341
31342
  case 258 /* InterfaceDeclaration */:
31342
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31343
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31343
31344
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31344
31345
  visitNode(cbNode, node.name) ||
31345
31346
  visitNodes(cbNode, cbNodes, node.typeParameters) ||
31346
31347
  visitNodes(cbNode, cbNodes, node.heritageClauses) ||
31347
31348
  visitNodes(cbNode, cbNodes, node.members);
31348
31349
  case 259 /* TypeAliasDeclaration */:
31349
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31350
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31350
31351
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31351
31352
  visitNode(cbNode, node.name) ||
31352
31353
  visitNodes(cbNode, cbNodes, node.typeParameters) ||
31353
31354
  visitNode(cbNode, node.type);
31354
31355
  case 260 /* EnumDeclaration */:
31355
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31356
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31356
31357
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31357
31358
  visitNode(cbNode, node.name) ||
31358
31359
  visitNodes(cbNode, cbNodes, node.members);
@@ -31360,17 +31361,17 @@ var ts;
31360
31361
  return visitNode(cbNode, node.name) ||
31361
31362
  visitNode(cbNode, node.initializer);
31362
31363
  case 261 /* ModuleDeclaration */:
31363
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31364
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31364
31365
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31365
31366
  visitNode(cbNode, node.name) ||
31366
31367
  visitNode(cbNode, node.body);
31367
31368
  case 265 /* ImportEqualsDeclaration */:
31368
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31369
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31369
31370
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31370
31371
  visitNode(cbNode, node.name) ||
31371
31372
  visitNode(cbNode, node.moduleReference);
31372
31373
  case 266 /* ImportDeclaration */:
31373
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31374
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31374
31375
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31375
31376
  visitNode(cbNode, node.importClause) ||
31376
31377
  visitNode(cbNode, node.moduleSpecifier) ||
@@ -31384,7 +31385,7 @@ var ts;
31384
31385
  return visitNode(cbNode, node.name) ||
31385
31386
  visitNode(cbNode, node.value);
31386
31387
  case 264 /* NamespaceExportDeclaration */:
31387
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31388
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31388
31389
  visitNode(cbNode, node.name);
31389
31390
  case 268 /* NamespaceImport */:
31390
31391
  return visitNode(cbNode, node.name);
@@ -31394,7 +31395,7 @@ var ts;
31394
31395
  case 273 /* NamedExports */:
31395
31396
  return visitNodes(cbNode, cbNodes, node.elements);
31396
31397
  case 272 /* ExportDeclaration */:
31397
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31398
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31398
31399
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31399
31400
  visitNode(cbNode, node.exportClause) ||
31400
31401
  visitNode(cbNode, node.moduleSpecifier) ||
@@ -31404,7 +31405,7 @@ var ts;
31404
31405
  return visitNode(cbNode, node.propertyName) ||
31405
31406
  visitNode(cbNode, node.name);
31406
31407
  case 271 /* ExportAssignment */:
31407
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31408
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31408
31409
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31409
31410
  visitNode(cbNode, node.expression);
31410
31411
  case 223 /* TemplateExpression */:
@@ -31429,7 +31430,7 @@ var ts;
31429
31430
  case 277 /* ExternalModuleReference */:
31430
31431
  return visitNode(cbNode, node.expression);
31431
31432
  case 276 /* MissingDeclaration */:
31432
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31433
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31433
31434
  visitNodes(cbNode, cbNodes, node.modifiers);
31434
31435
  case 351 /* CommaListExpression */:
31435
31436
  return visitNodes(cbNode, cbNodes, node.elements);
@@ -33980,7 +33981,7 @@ var ts;
33980
33981
  var type = parseTypeAnnotation();
33981
33982
  parseTypeMemberSemicolon();
33982
33983
  var node = factory.createIndexSignature(modifiers, parameters, type);
33983
- node.decorators = decorators;
33984
+ node.illegalDecorators = decorators;
33984
33985
  return withJSDoc(finishNode(node, pos), hasJSDoc);
33985
33986
  }
33986
33987
  function parsePropertyOrMethodSignature(pos, hasJSDoc, modifiers) {
@@ -36140,7 +36141,7 @@ var ts;
36140
36141
  node = factory.createPropertyAssignment(name, initializer);
36141
36142
  }
36142
36143
  // Decorators, Modifiers, questionToken, and exclamationToken are not supported by property assignments and are reported in the grammar checker
36143
- node.decorators = decorators;
36144
+ node.illegalDecorators = decorators;
36144
36145
  node.modifiers = modifiers;
36145
36146
  node.questionToken = questionToken;
36146
36147
  node.exclamationToken = exclamationToken;
@@ -36788,7 +36789,7 @@ var ts;
36788
36789
  // would follow. For recovery and error reporting purposes, return an incomplete declaration.
36789
36790
  var missing = createMissingNode(276 /* MissingDeclaration */, /*reportAtCurrentPosition*/ true, ts.Diagnostics.Declaration_expected);
36790
36791
  ts.setTextRangePos(missing, pos);
36791
- missing.decorators = decorators;
36792
+ missing.illegalDecorators = decorators;
36792
36793
  missing.modifiers = modifiers;
36793
36794
  return missing;
36794
36795
  }
@@ -36931,7 +36932,7 @@ var ts;
36931
36932
  parseSemicolon();
36932
36933
  var node = factory.createVariableStatement(modifiers, declarationList);
36933
36934
  // Decorators are not allowed on a variable statement, so we keep track of them to report them in the grammar checker.
36934
- node.decorators = decorators;
36935
+ node.illegalDecorators = decorators;
36935
36936
  return withJSDoc(finishNode(node, pos), hasJSDoc);
36936
36937
  }
36937
36938
  function parseFunctionDeclaration(pos, hasJSDoc, decorators, modifiers) {
@@ -36951,7 +36952,7 @@ var ts;
36951
36952
  var body = parseFunctionBlockOrSemicolon(isGenerator | isAsync, ts.Diagnostics.or_expected);
36952
36953
  setAwaitContext(savedAwaitContext);
36953
36954
  var node = factory.createFunctionDeclaration(modifiers, asteriskToken, name, typeParameters, parameters, type, body);
36954
- node.decorators = decorators;
36955
+ node.illegalDecorators = decorators;
36955
36956
  return withJSDoc(finishNode(node, pos), hasJSDoc);
36956
36957
  }
36957
36958
  function parseConstructorName() {
@@ -36974,7 +36975,7 @@ var ts;
36974
36975
  var body = parseFunctionBlockOrSemicolon(0 /* None */, ts.Diagnostics.or_expected);
36975
36976
  var node = factory.createConstructorDeclaration(modifiers, parameters, body);
36976
36977
  // Attach invalid nodes if they exist so that we can report them in the grammar checker.
36977
- node.decorators = decorators;
36978
+ node.illegalDecorators = decorators;
36978
36979
  node.typeParameters = typeParameters;
36979
36980
  node.type = type;
36980
36981
  return withJSDoc(finishNode(node, pos), hasJSDoc);
@@ -37090,7 +37091,7 @@ var ts;
37090
37091
  parseExpectedToken(124 /* StaticKeyword */);
37091
37092
  var body = parseClassStaticBlockBody();
37092
37093
  var node = withJSDoc(finishNode(factory.createClassStaticBlockDeclaration(body), pos), hasJSDoc);
37093
- node.decorators = decorators;
37094
+ node.illegalDecorators = decorators;
37094
37095
  node.modifiers = modifiers;
37095
37096
  return node;
37096
37097
  }
@@ -37331,7 +37332,7 @@ var ts;
37331
37332
  var heritageClauses = parseHeritageClauses();
37332
37333
  var members = parseObjectTypeMembers();
37333
37334
  var node = factory.createInterfaceDeclaration(modifiers, name, typeParameters, heritageClauses, members);
37334
- node.decorators = decorators;
37335
+ node.illegalDecorators = decorators;
37335
37336
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37336
37337
  }
37337
37338
  function parseTypeAliasDeclaration(pos, hasJSDoc, decorators, modifiers) {
@@ -37342,7 +37343,7 @@ var ts;
37342
37343
  var type = token() === 138 /* IntrinsicKeyword */ && tryParse(parseKeywordAndNoDot) || parseType();
37343
37344
  parseSemicolon();
37344
37345
  var node = factory.createTypeAliasDeclaration(modifiers, name, typeParameters, type);
37345
- node.decorators = decorators;
37346
+ node.illegalDecorators = decorators;
37346
37347
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37347
37348
  }
37348
37349
  // In an ambient declaration, the grammar only allows integer literals as initializers.
@@ -37368,7 +37369,7 @@ var ts;
37368
37369
  members = createMissingList();
37369
37370
  }
37370
37371
  var node = factory.createEnumDeclaration(modifiers, name, members);
37371
- node.decorators = decorators;
37372
+ node.illegalDecorators = decorators;
37372
37373
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37373
37374
  }
37374
37375
  function parseModuleBlock() {
@@ -37392,7 +37393,7 @@ var ts;
37392
37393
  ? parseModuleOrNamespaceDeclaration(getNodePos(), /*hasJSDoc*/ false, /*decorators*/ undefined, /*modifiers*/ undefined, 4 /* NestedNamespace */ | namespaceFlag)
37393
37394
  : parseModuleBlock();
37394
37395
  var node = factory.createModuleDeclaration(modifiers, name, body, flags);
37395
- node.decorators = decorators;
37396
+ node.illegalDecorators = decorators;
37396
37397
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37397
37398
  }
37398
37399
  function parseAmbientExternalModuleDeclaration(pos, hasJSDoc, decorators, modifiers) {
@@ -37415,7 +37416,7 @@ var ts;
37415
37416
  parseSemicolon();
37416
37417
  }
37417
37418
  var node = factory.createModuleDeclaration(modifiers, name, body, flags);
37418
- node.decorators = decorators;
37419
+ node.illegalDecorators = decorators;
37419
37420
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37420
37421
  }
37421
37422
  function parseModuleDeclaration(pos, hasJSDoc, decorators, modifiers) {
@@ -37455,7 +37456,7 @@ var ts;
37455
37456
  parseSemicolon();
37456
37457
  var node = factory.createNamespaceExportDeclaration(name);
37457
37458
  // NamespaceExportDeclaration nodes cannot have decorators or modifiers, so we attach them here so we can report them in the grammar checker
37458
- node.decorators = decorators;
37459
+ node.illegalDecorators = decorators;
37459
37460
  node.modifiers = modifiers;
37460
37461
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37461
37462
  }
@@ -37495,7 +37496,7 @@ var ts;
37495
37496
  }
37496
37497
  parseSemicolon();
37497
37498
  var node = factory.createImportDeclaration(modifiers, importClause, moduleSpecifier, assertClause);
37498
- node.decorators = decorators;
37499
+ node.illegalDecorators = decorators;
37499
37500
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37500
37501
  }
37501
37502
  function parseAssertEntry() {
@@ -37540,7 +37541,7 @@ var ts;
37540
37541
  var moduleReference = parseModuleReference();
37541
37542
  parseSemicolon();
37542
37543
  var node = factory.createImportEqualsDeclaration(modifiers, isTypeOnly, identifier, moduleReference);
37543
- node.decorators = decorators;
37544
+ node.illegalDecorators = decorators;
37544
37545
  var finished = withJSDoc(finishNode(node, pos), hasJSDoc);
37545
37546
  return finished;
37546
37547
  }
@@ -37730,7 +37731,7 @@ var ts;
37730
37731
  parseSemicolon();
37731
37732
  setAwaitContext(savedAwaitContext);
37732
37733
  var node = factory.createExportDeclaration(modifiers, isTypeOnly, exportClause, moduleSpecifier, assertClause);
37733
- node.decorators = decorators;
37734
+ node.illegalDecorators = decorators;
37734
37735
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37735
37736
  }
37736
37737
  function parseExportAssignment(pos, hasJSDoc, decorators, modifiers) {
@@ -37747,7 +37748,7 @@ var ts;
37747
37748
  parseSemicolon();
37748
37749
  setAwaitContext(savedAwaitContext);
37749
37750
  var node = factory.createExportAssignment(modifiers, isExportEquals, expression);
37750
- node.decorators = decorators;
37751
+ node.illegalDecorators = decorators;
37751
37752
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37752
37753
  }
37753
37754
  var ParsingContext;
@@ -43111,10 +43112,12 @@ var ts;
43111
43112
  if (resolved) {
43112
43113
  var fileName = resolved.fileName, packageId = resolved.packageId;
43113
43114
  var resolvedFileName = options.preserveSymlinks ? fileName : realPath(fileName, host, traceEnabled);
43115
+ var pathsAreEqual = arePathsEqual(fileName, resolvedFileName, host);
43114
43116
  resolvedTypeReferenceDirective = {
43115
43117
  primary: primary,
43116
- resolvedFileName: resolvedFileName,
43117
- originalPath: arePathsEqual(fileName, resolvedFileName, host) ? undefined : fileName,
43118
+ // If the fileName and realpath are differing only in casing prefer fileName so that we can issue correct errors for casing under forceConsistentCasingInFileNames
43119
+ resolvedFileName: pathsAreEqual ? fileName : resolvedFileName,
43120
+ originalPath: pathsAreEqual ? undefined : fileName,
43118
43121
  packageId: packageId,
43119
43122
  isExternalLibraryImport: pathContainsNodeModules(fileName),
43120
43123
  };
@@ -43899,8 +43902,10 @@ var ts;
43899
43902
  var resolvedValue = resolved_1.value;
43900
43903
  if (!compilerOptions.preserveSymlinks && resolvedValue && !resolvedValue.originalPath) {
43901
43904
  var path = realPath(resolvedValue.path, host, traceEnabled);
43902
- var originalPath = arePathsEqual(path, resolvedValue.path, host) ? undefined : resolvedValue.path;
43903
- resolvedValue = __assign(__assign({}, resolvedValue), { path: path, originalPath: originalPath });
43905
+ var pathsAreEqual = arePathsEqual(path, resolvedValue.path, host);
43906
+ var originalPath = pathsAreEqual ? undefined : resolvedValue.path;
43907
+ // If the path and realpath are differing only in casing prefer path so that we can issue correct errors for casing under forceConsistentCasingInFileNames
43908
+ resolvedValue = __assign(__assign({}, resolvedValue), { path: pathsAreEqual ? resolvedValue.path : path, originalPath: originalPath });
43904
43909
  }
43905
43910
  // For node_modules lookups, get the real path so that multiple accesses to an `npm link`-ed module do not create duplicate files.
43906
43911
  return { value: resolvedValue && { resolved: resolvedValue, isExternalLibraryImport: true } };
@@ -51041,41 +51046,61 @@ var ts;
51041
51046
  return typeof file.externalModuleIndicator !== "object" && !resolveExportByName(moduleSymbol, ts.escapeLeadingUnderscores("__esModule"), /*sourceNode*/ undefined, dontResolveAlias);
51042
51047
  }
51043
51048
  function getTargetOfImportClause(node, dontResolveAlias) {
51044
- var _a;
51045
51049
  var moduleSymbol = resolveExternalModuleName(node, node.parent.moduleSpecifier);
51046
51050
  if (moduleSymbol) {
51047
- var exportDefaultSymbol = void 0;
51048
- if (ts.isShorthandAmbientModuleSymbol(moduleSymbol)) {
51049
- exportDefaultSymbol = moduleSymbol;
51050
- }
51051
- else {
51052
- exportDefaultSymbol = resolveExportByName(moduleSymbol, "default" /* Default */, node, dontResolveAlias);
51053
- }
51054
- var file = (_a = moduleSymbol.declarations) === null || _a === void 0 ? void 0 : _a.find(ts.isSourceFile);
51055
- var hasDefaultOnly = isOnlyImportedAsDefault(node.parent.moduleSpecifier);
51056
- var hasSyntheticDefault = canHaveSyntheticDefault(file, moduleSymbol, dontResolveAlias, node.parent.moduleSpecifier);
51057
- if (!exportDefaultSymbol && !hasSyntheticDefault && !hasDefaultOnly) {
51058
- if (hasExportAssignmentSymbol(moduleSymbol)) {
51059
- var compilerOptionName = moduleKind >= ts.ModuleKind.ES2015 ? "allowSyntheticDefaultImports" : "esModuleInterop";
51060
- var exportEqualsSymbol = moduleSymbol.exports.get("export=" /* ExportEquals */);
51061
- var exportAssignment = exportEqualsSymbol.valueDeclaration;
51062
- var err = error(node.name, ts.Diagnostics.Module_0_can_only_be_default_imported_using_the_1_flag, symbolToString(moduleSymbol), compilerOptionName);
51063
- if (exportAssignment) {
51064
- ts.addRelatedInfo(err, ts.createDiagnosticForNode(exportAssignment, ts.Diagnostics.This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag, compilerOptionName));
51065
- }
51066
- }
51067
- else {
51068
- reportNonDefaultExport(moduleSymbol, node);
51051
+ return getTargetofModuleDefault(moduleSymbol, node, dontResolveAlias);
51052
+ }
51053
+ }
51054
+ function getTargetofModuleDefault(moduleSymbol, node, dontResolveAlias) {
51055
+ var _a;
51056
+ var exportDefaultSymbol;
51057
+ if (ts.isShorthandAmbientModuleSymbol(moduleSymbol)) {
51058
+ exportDefaultSymbol = moduleSymbol;
51059
+ }
51060
+ else {
51061
+ exportDefaultSymbol = resolveExportByName(moduleSymbol, "default" /* Default */, node, dontResolveAlias);
51062
+ }
51063
+ var file = (_a = moduleSymbol.declarations) === null || _a === void 0 ? void 0 : _a.find(ts.isSourceFile);
51064
+ var specifier = getModuleSpecifierForImportOrExport(node);
51065
+ if (!specifier) {
51066
+ return exportDefaultSymbol;
51067
+ }
51068
+ var hasDefaultOnly = isOnlyImportedAsDefault(specifier);
51069
+ var hasSyntheticDefault = canHaveSyntheticDefault(file, moduleSymbol, dontResolveAlias, specifier);
51070
+ if (!exportDefaultSymbol && !hasSyntheticDefault && !hasDefaultOnly) {
51071
+ if (hasExportAssignmentSymbol(moduleSymbol)) {
51072
+ var compilerOptionName = moduleKind >= ts.ModuleKind.ES2015 ? "allowSyntheticDefaultImports" : "esModuleInterop";
51073
+ var exportEqualsSymbol = moduleSymbol.exports.get("export=" /* ExportEquals */);
51074
+ var exportAssignment = exportEqualsSymbol.valueDeclaration;
51075
+ var err = error(node.name, ts.Diagnostics.Module_0_can_only_be_default_imported_using_the_1_flag, symbolToString(moduleSymbol), compilerOptionName);
51076
+ if (exportAssignment) {
51077
+ ts.addRelatedInfo(err, ts.createDiagnosticForNode(exportAssignment, ts.Diagnostics.This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag, compilerOptionName));
51069
51078
  }
51070
51079
  }
51071
- else if (hasSyntheticDefault || hasDefaultOnly) {
51072
- // per emit behavior, a synthetic default overrides a "real" .default member if `__esModule` is not present
51073
- var resolved = resolveExternalModuleSymbol(moduleSymbol, dontResolveAlias) || resolveSymbol(moduleSymbol, dontResolveAlias);
51074
- markSymbolOfAliasDeclarationIfTypeOnly(node, moduleSymbol, resolved, /*overwriteTypeOnly*/ false);
51075
- return resolved;
51080
+ else if (ts.isImportClause(node)) {
51081
+ reportNonDefaultExport(moduleSymbol, node);
51076
51082
  }
51077
- markSymbolOfAliasDeclarationIfTypeOnly(node, exportDefaultSymbol, /*finalTarget*/ undefined, /*overwriteTypeOnly*/ false);
51078
- return exportDefaultSymbol;
51083
+ else {
51084
+ errorNoModuleMemberSymbol(moduleSymbol, moduleSymbol, node, ts.isImportOrExportSpecifier(node) && node.propertyName || node.name);
51085
+ }
51086
+ }
51087
+ else if (hasSyntheticDefault || hasDefaultOnly) {
51088
+ // per emit behavior, a synthetic default overrides a "real" .default member if `__esModule` is not present
51089
+ var resolved = resolveExternalModuleSymbol(moduleSymbol, dontResolveAlias) || resolveSymbol(moduleSymbol, dontResolveAlias);
51090
+ markSymbolOfAliasDeclarationIfTypeOnly(node, moduleSymbol, resolved, /*overwriteTypeOnly*/ false);
51091
+ return resolved;
51092
+ }
51093
+ markSymbolOfAliasDeclarationIfTypeOnly(node, exportDefaultSymbol, /*finalTarget*/ undefined, /*overwriteTypeOnly*/ false);
51094
+ return exportDefaultSymbol;
51095
+ }
51096
+ function getModuleSpecifierForImportOrExport(node) {
51097
+ switch (node.kind) {
51098
+ case 267 /* ImportClause */: return node.parent.moduleSpecifier;
51099
+ case 265 /* ImportEqualsDeclaration */: return ts.isExternalModuleReference(node.moduleReference) ? node.moduleReference.expression : undefined;
51100
+ case 268 /* NamespaceImport */: return node.parent.parent.moduleSpecifier;
51101
+ case 270 /* ImportSpecifier */: return node.parent.parent.parent.moduleSpecifier;
51102
+ case 275 /* ExportSpecifier */: return node.parent.parent.moduleSpecifier;
51103
+ default: return ts.Debug.assertNever(node);
51079
51104
  }
51080
51105
  }
51081
51106
  function reportNonDefaultExport(moduleSymbol, node) {
@@ -51165,7 +51190,7 @@ var ts;
51165
51190
  }
51166
51191
  }
51167
51192
  function getExternalModuleMember(node, specifier, dontResolveAlias) {
51168
- var _a, _b;
51193
+ var _a;
51169
51194
  if (dontResolveAlias === void 0) { dontResolveAlias = false; }
51170
51195
  var moduleSpecifier = ts.getExternalModuleRequireArgument(node) || node.moduleSpecifier;
51171
51196
  var moduleSymbol = resolveExternalModuleName(node, moduleSpecifier); // TODO: GH#18217
@@ -51201,29 +51226,33 @@ var ts;
51201
51226
  combineValueAndTypeSymbols(symbolFromVariable, symbolFromModule) :
51202
51227
  symbolFromModule || symbolFromVariable;
51203
51228
  if (!symbol) {
51204
- var moduleName = getFullyQualifiedName(moduleSymbol, node);
51205
- var declarationName = ts.declarationNameToString(name);
51206
- var suggestion = getSuggestedSymbolForNonexistentModule(name, targetSymbol);
51207
- if (suggestion !== undefined) {
51208
- var suggestionName = symbolToString(suggestion);
51209
- var diagnostic = error(name, ts.Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2, moduleName, declarationName, suggestionName);
51210
- if (suggestion.valueDeclaration) {
51211
- ts.addRelatedInfo(diagnostic, ts.createDiagnosticForNode(suggestion.valueDeclaration, ts.Diagnostics._0_is_declared_here, suggestionName));
51212
- }
51213
- }
51214
- else {
51215
- if ((_b = moduleSymbol.exports) === null || _b === void 0 ? void 0 : _b.has("default" /* Default */)) {
51216
- error(name, ts.Diagnostics.Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead, moduleName, declarationName);
51217
- }
51218
- else {
51219
- reportNonExportedMember(node, name, declarationName, moduleSymbol, moduleName);
51220
- }
51221
- }
51229
+ errorNoModuleMemberSymbol(moduleSymbol, targetSymbol, node, name);
51222
51230
  }
51223
51231
  return symbol;
51224
51232
  }
51225
51233
  }
51226
51234
  }
51235
+ function errorNoModuleMemberSymbol(moduleSymbol, targetSymbol, node, name) {
51236
+ var _a;
51237
+ var moduleName = getFullyQualifiedName(moduleSymbol, node);
51238
+ var declarationName = ts.declarationNameToString(name);
51239
+ var suggestion = getSuggestedSymbolForNonexistentModule(name, targetSymbol);
51240
+ if (suggestion !== undefined) {
51241
+ var suggestionName = symbolToString(suggestion);
51242
+ var diagnostic = error(name, ts.Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2, moduleName, declarationName, suggestionName);
51243
+ if (suggestion.valueDeclaration) {
51244
+ ts.addRelatedInfo(diagnostic, ts.createDiagnosticForNode(suggestion.valueDeclaration, ts.Diagnostics._0_is_declared_here, suggestionName));
51245
+ }
51246
+ }
51247
+ else {
51248
+ if ((_a = moduleSymbol.exports) === null || _a === void 0 ? void 0 : _a.has("default" /* Default */)) {
51249
+ error(name, ts.Diagnostics.Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead, moduleName, declarationName);
51250
+ }
51251
+ else {
51252
+ reportNonExportedMember(node, name, declarationName, moduleSymbol, moduleName);
51253
+ }
51254
+ }
51255
+ }
51227
51256
  function reportNonExportedMember(node, name, declarationName, moduleSymbol, moduleName) {
51228
51257
  var _a, _b;
51229
51258
  var localSymbol = (_b = (_a = moduleSymbol.valueDeclaration) === null || _a === void 0 ? void 0 : _a.locals) === null || _b === void 0 ? void 0 : _b.get(name.escapedText);
@@ -51269,6 +51298,13 @@ var ts;
51269
51298
  }
51270
51299
  }
51271
51300
  function getTargetOfImportSpecifier(node, dontResolveAlias) {
51301
+ if (ts.isImportSpecifier(node) && ts.idText(node.propertyName || node.name) === "default" /* Default */) {
51302
+ var specifier = getModuleSpecifierForImportOrExport(node);
51303
+ var moduleSymbol = specifier && resolveExternalModuleName(node, specifier);
51304
+ if (moduleSymbol) {
51305
+ return getTargetofModuleDefault(moduleSymbol, node, dontResolveAlias);
51306
+ }
51307
+ }
51272
51308
  var root = ts.isBindingElement(node) ? ts.getRootDeclaration(node) : node.parent.parent.parent;
51273
51309
  var commonJSPropertyAccess = getCommonJSPropertyAccess(root);
51274
51310
  var resolved = getExternalModuleMember(root, commonJSPropertyAccess || node, dontResolveAlias);
@@ -51290,6 +51326,13 @@ var ts;
51290
51326
  return resolved;
51291
51327
  }
51292
51328
  function getTargetOfExportSpecifier(node, meaning, dontResolveAlias) {
51329
+ if (ts.idText(node.propertyName || node.name) === "default" /* Default */) {
51330
+ var specifier = getModuleSpecifierForImportOrExport(node);
51331
+ var moduleSymbol = specifier && resolveExternalModuleName(node, specifier);
51332
+ if (moduleSymbol) {
51333
+ return getTargetofModuleDefault(moduleSymbol, node, !!dontResolveAlias);
51334
+ }
51335
+ }
51293
51336
  var resolved = node.parent.parent.moduleSpecifier ?
51294
51337
  getExternalModuleMember(node.parent.parent, node, dontResolveAlias) :
51295
51338
  resolveEntityName(node.propertyName || node.name, meaning, /*ignoreErrors*/ false, dontResolveAlias);
@@ -55738,7 +55781,7 @@ var ts;
55738
55781
  // This is an else/if as accessors and properties can't merge in TS, but might in JS
55739
55782
  // If this happens, we assume the accessor takes priority, as it imposes more constraints
55740
55783
  else if (p.flags & (4 /* Property */ | 3 /* Variable */ | 98304 /* Accessor */)) {
55741
- return ts.setTextRange(createProperty(ts.factory.createModifiersFromModifierFlags((isReadonlySymbol(p) ? 64 /* Readonly */ : 0) | flag), name, p.flags & 16777216 /* Optional */ ? ts.factory.createToken(57 /* QuestionToken */) : undefined, isPrivate ? undefined : serializeTypeForDeclaration(context, getTypeOfSymbol(p), p, enclosingDeclaration, includePrivateSymbol, bundled),
55784
+ return ts.setTextRange(createProperty(ts.factory.createModifiersFromModifierFlags((isReadonlySymbol(p) ? 64 /* Readonly */ : 0) | flag), name, p.flags & 16777216 /* Optional */ ? ts.factory.createToken(57 /* QuestionToken */) : undefined, isPrivate ? undefined : serializeTypeForDeclaration(context, getWriteTypeOfSymbol(p), p, enclosingDeclaration, includePrivateSymbol, bundled),
55742
55785
  // TODO: https://github.com/microsoft/TypeScript/pull/32372#discussion_r328386357
55743
55786
  // interface members can't have initializers, however class members _can_
55744
55787
  /*initializer*/ undefined), ((_d = p.declarations) === null || _d === void 0 ? void 0 : _d.find(ts.or(ts.isPropertyDeclaration, ts.isVariableDeclaration))) || firstPropertyLikeDecl);
@@ -88762,7 +88805,7 @@ var ts;
88762
88805
  return checkGrammarDecorators(node) || checkGrammarModifiers(node);
88763
88806
  }
88764
88807
  function checkGrammarDecorators(node) {
88765
- if (ts.canHaveIllegalDecorators(node) && ts.some(node.decorators)) {
88808
+ if (ts.canHaveIllegalDecorators(node) && ts.some(node.illegalDecorators)) {
88766
88809
  return grammarErrorOnFirstToken(node, ts.Diagnostics.Decorators_are_not_valid_here);
88767
88810
  }
88768
88811
  if (!ts.canHaveDecorators(node) || !ts.hasDecorators(node)) {
@@ -90415,6 +90458,7 @@ var ts;
90415
90458
  })(ts || (ts = {}));
90416
90459
  var ts;
90417
90460
  (function (ts) {
90461
+ var _a;
90418
90462
  function visitNode(node, visitor, test, lift) {
90419
90463
  if (node === undefined || visitor === undefined) {
90420
90464
  return node;
@@ -90629,12 +90673,10 @@ var ts;
90629
90673
  return updated;
90630
90674
  }
90631
90675
  ts.visitFunctionBody = visitFunctionBody;
90632
- /**
90633
- * Visits an iteration body, adding any block-scoped variables required by the transformation.
90634
- */
90635
- function visitIterationBody(body, visitor, context) {
90676
+ function visitIterationBody(body, visitor, context, nodeVisitor) {
90677
+ if (nodeVisitor === void 0) { nodeVisitor = visitNode; }
90636
90678
  context.startBlockScope();
90637
- var updated = visitNode(body, visitor, ts.isStatement, context.factory.liftToBlock);
90679
+ var updated = nodeVisitor(body, visitor, ts.isStatement, context.factory.liftToBlock);
90638
90680
  var declarations = context.endBlockScope();
90639
90681
  if (ts.some(declarations)) {
90640
90682
  if (ts.isBlock(updated)) {
@@ -90653,456 +90695,443 @@ var ts;
90653
90695
  if (node === undefined) {
90654
90696
  return undefined;
90655
90697
  }
90656
- var kind = node.kind;
90657
- // No need to visit nodes with no children.
90658
- if ((kind > 0 /* FirstToken */ && kind <= 160 /* LastToken */) || kind === 192 /* ThisType */) {
90659
- return node;
90660
- }
90661
- var factory = context.factory;
90662
- switch (kind) {
90663
- // Names
90664
- case 79 /* Identifier */:
90665
- ts.Debug.type(node);
90666
- return factory.updateIdentifier(node, nodesVisitor(node.typeArguments, visitor, ts.isTypeNodeOrTypeParameterDeclaration));
90667
- case 161 /* QualifiedName */:
90668
- ts.Debug.type(node);
90669
- return factory.updateQualifiedName(node, nodeVisitor(node.left, visitor, ts.isEntityName), nodeVisitor(node.right, visitor, ts.isIdentifier));
90670
- case 162 /* ComputedPropertyName */:
90671
- ts.Debug.type(node);
90672
- return factory.updateComputedPropertyName(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90673
- // Signature elements
90674
- case 163 /* TypeParameter */:
90675
- ts.Debug.type(node);
90676
- return factory.updateTypeParameterDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.constraint, visitor, ts.isTypeNode), nodeVisitor(node.default, visitor, ts.isTypeNode));
90677
- case 164 /* Parameter */:
90678
- ts.Debug.type(node);
90679
- return factory.updateParameterDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.dotDotDotToken, tokenVisitor, ts.isDotDotDotToken), nodeVisitor(node.name, visitor, ts.isBindingName), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionToken), nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.initializer, visitor, ts.isExpression));
90680
- case 165 /* Decorator */:
90681
- ts.Debug.type(node);
90682
- return factory.updateDecorator(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90683
- // Type elements
90684
- case 166 /* PropertySignature */:
90685
- ts.Debug.type(node);
90686
- return factory.updatePropertySignature(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.questionToken, tokenVisitor, ts.isToken), nodeVisitor(node.type, visitor, ts.isTypeNode));
90687
- case 167 /* PropertyDeclaration */:
90688
- ts.Debug.type(node);
90689
- return factory.updatePropertyDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.name, visitor, ts.isPropertyName),
90690
- // QuestionToken and ExclamationToken is uniqued in Property Declaration and the signature of 'updateProperty' is that too
90691
- nodeVisitor(node.questionToken || node.exclamationToken, tokenVisitor, ts.isQuestionOrExclamationToken), nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.initializer, visitor, ts.isExpression));
90692
- case 168 /* MethodSignature */:
90693
- ts.Debug.type(node);
90694
- return factory.updateMethodSignature(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionToken), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90695
- case 169 /* MethodDeclaration */:
90696
- ts.Debug.type(node);
90697
- return factory.updateMethodDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.asteriskToken, tokenVisitor, ts.isAsteriskToken), nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionToken), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), visitParameterList(node.parameters, visitor, context, nodesVisitor), nodeVisitor(node.type, visitor, ts.isTypeNode), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90698
- case 171 /* Constructor */:
90699
- ts.Debug.type(node);
90700
- return factory.updateConstructorDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), visitParameterList(node.parameters, visitor, context, nodesVisitor), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90701
- case 172 /* GetAccessor */:
90702
- ts.Debug.type(node);
90703
- return factory.updateGetAccessorDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.name, visitor, ts.isPropertyName), visitParameterList(node.parameters, visitor, context, nodesVisitor), nodeVisitor(node.type, visitor, ts.isTypeNode), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90704
- case 173 /* SetAccessor */:
90705
- ts.Debug.type(node);
90706
- return factory.updateSetAccessorDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.name, visitor, ts.isPropertyName), visitParameterList(node.parameters, visitor, context, nodesVisitor), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90707
- case 170 /* ClassStaticBlockDeclaration */:
90708
- ts.Debug.type(node);
90709
- context.startLexicalEnvironment();
90710
- context.suspendLexicalEnvironment();
90711
- return factory.updateClassStaticBlockDeclaration(node, visitFunctionBody(node.body, visitor, context, nodeVisitor));
90712
- case 174 /* CallSignature */:
90713
- ts.Debug.type(node);
90714
- return factory.updateCallSignature(node, nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90715
- case 175 /* ConstructSignature */:
90716
- ts.Debug.type(node);
90717
- return factory.updateConstructSignature(node, nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90718
- case 176 /* IndexSignature */:
90719
- ts.Debug.type(node);
90720
- return factory.updateIndexSignature(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90721
- // Types
90722
- case 177 /* TypePredicate */:
90723
- ts.Debug.type(node);
90724
- return factory.updateTypePredicateNode(node, nodeVisitor(node.assertsModifier, visitor, ts.isAssertsKeyword), nodeVisitor(node.parameterName, visitor, ts.isIdentifierOrThisTypeNode), nodeVisitor(node.type, visitor, ts.isTypeNode));
90725
- case 178 /* TypeReference */:
90726
- ts.Debug.type(node);
90727
- return factory.updateTypeReferenceNode(node, nodeVisitor(node.typeName, visitor, ts.isEntityName), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode));
90728
- case 179 /* FunctionType */:
90729
- ts.Debug.type(node);
90730
- return factory.updateFunctionTypeNode(node, nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90731
- case 180 /* ConstructorType */:
90732
- ts.Debug.type(node);
90733
- return factory.updateConstructorTypeNode(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90734
- case 181 /* TypeQuery */:
90735
- ts.Debug.type(node);
90736
- return factory.updateTypeQueryNode(node, nodeVisitor(node.exprName, visitor, ts.isEntityName), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode));
90737
- case 182 /* TypeLiteral */:
90738
- ts.Debug.type(node);
90739
- return factory.updateTypeLiteralNode(node, nodesVisitor(node.members, visitor, ts.isTypeElement));
90740
- case 183 /* ArrayType */:
90741
- ts.Debug.type(node);
90742
- return factory.updateArrayTypeNode(node, nodeVisitor(node.elementType, visitor, ts.isTypeNode));
90743
- case 184 /* TupleType */:
90744
- ts.Debug.type(node);
90745
- return factory.updateTupleTypeNode(node, nodesVisitor(node.elements, visitor, ts.isTypeNode));
90746
- case 185 /* OptionalType */:
90747
- ts.Debug.type(node);
90748
- return factory.updateOptionalTypeNode(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90749
- case 186 /* RestType */:
90750
- ts.Debug.type(node);
90751
- return factory.updateRestTypeNode(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90752
- case 187 /* UnionType */:
90753
- ts.Debug.type(node);
90754
- return factory.updateUnionTypeNode(node, nodesVisitor(node.types, visitor, ts.isTypeNode));
90755
- case 188 /* IntersectionType */:
90756
- ts.Debug.type(node);
90757
- return factory.updateIntersectionTypeNode(node, nodesVisitor(node.types, visitor, ts.isTypeNode));
90758
- case 189 /* ConditionalType */:
90759
- ts.Debug.type(node);
90760
- return factory.updateConditionalTypeNode(node, nodeVisitor(node.checkType, visitor, ts.isTypeNode), nodeVisitor(node.extendsType, visitor, ts.isTypeNode), nodeVisitor(node.trueType, visitor, ts.isTypeNode), nodeVisitor(node.falseType, visitor, ts.isTypeNode));
90761
- case 190 /* InferType */:
90762
- ts.Debug.type(node);
90763
- return factory.updateInferTypeNode(node, nodeVisitor(node.typeParameter, visitor, ts.isTypeParameterDeclaration));
90764
- case 200 /* ImportType */:
90765
- ts.Debug.type(node);
90766
- return factory.updateImportTypeNode(node, nodeVisitor(node.argument, visitor, ts.isTypeNode), nodeVisitor(node.assertions, visitor, ts.isNode), nodeVisitor(node.qualifier, visitor, ts.isEntityName), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), node.isTypeOf);
90767
- case 295 /* ImportTypeAssertionContainer */:
90768
- ts.Debug.type(node);
90769
- return factory.updateImportTypeAssertionContainer(node, nodeVisitor(node.assertClause, visitor, ts.isNode), node.multiLine);
90770
- case 197 /* NamedTupleMember */:
90771
- ts.Debug.type(node);
90772
- return factory.updateNamedTupleMember(node, nodeVisitor(node.dotDotDotToken, tokenVisitor, ts.isDotDotDotToken), nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionToken), nodeVisitor(node.type, visitor, ts.isTypeNode));
90773
- case 191 /* ParenthesizedType */:
90774
- ts.Debug.type(node);
90775
- return factory.updateParenthesizedType(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90776
- case 193 /* TypeOperator */:
90777
- ts.Debug.type(node);
90778
- return factory.updateTypeOperatorNode(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90779
- case 194 /* IndexedAccessType */:
90780
- ts.Debug.type(node);
90781
- return factory.updateIndexedAccessTypeNode(node, nodeVisitor(node.objectType, visitor, ts.isTypeNode), nodeVisitor(node.indexType, visitor, ts.isTypeNode));
90782
- case 195 /* MappedType */:
90783
- ts.Debug.type(node);
90784
- return factory.updateMappedTypeNode(node, nodeVisitor(node.readonlyToken, tokenVisitor, ts.isReadonlyKeywordOrPlusOrMinusToken), nodeVisitor(node.typeParameter, visitor, ts.isTypeParameterDeclaration), nodeVisitor(node.nameType, visitor, ts.isTypeNode), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionOrPlusOrMinusToken), nodeVisitor(node.type, visitor, ts.isTypeNode), nodesVisitor(node.members, visitor, ts.isTypeElement));
90785
- case 196 /* LiteralType */:
90786
- ts.Debug.type(node);
90787
- return factory.updateLiteralTypeNode(node, nodeVisitor(node.literal, visitor, ts.isExpression));
90788
- case 198 /* TemplateLiteralType */:
90789
- ts.Debug.type(node);
90790
- return factory.updateTemplateLiteralType(node, nodeVisitor(node.head, visitor, ts.isTemplateHead), nodesVisitor(node.templateSpans, visitor, ts.isTemplateLiteralTypeSpan));
90791
- case 199 /* TemplateLiteralTypeSpan */:
90792
- ts.Debug.type(node);
90793
- return factory.updateTemplateLiteralTypeSpan(node, nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.literal, visitor, ts.isTemplateMiddleOrTemplateTail));
90794
- // Binding patterns
90795
- case 201 /* ObjectBindingPattern */:
90796
- ts.Debug.type(node);
90797
- return factory.updateObjectBindingPattern(node, nodesVisitor(node.elements, visitor, ts.isBindingElement));
90798
- case 202 /* ArrayBindingPattern */:
90799
- ts.Debug.type(node);
90800
- return factory.updateArrayBindingPattern(node, nodesVisitor(node.elements, visitor, ts.isArrayBindingElement));
90801
- case 203 /* BindingElement */:
90802
- ts.Debug.type(node);
90803
- return factory.updateBindingElement(node, nodeVisitor(node.dotDotDotToken, tokenVisitor, ts.isDotDotDotToken), nodeVisitor(node.propertyName, visitor, ts.isPropertyName), nodeVisitor(node.name, visitor, ts.isBindingName), nodeVisitor(node.initializer, visitor, ts.isExpression));
90804
- // Expression
90805
- case 204 /* ArrayLiteralExpression */:
90806
- ts.Debug.type(node);
90807
- return factory.updateArrayLiteralExpression(node, nodesVisitor(node.elements, visitor, ts.isExpression));
90808
- case 205 /* ObjectLiteralExpression */:
90809
- ts.Debug.type(node);
90810
- return factory.updateObjectLiteralExpression(node, nodesVisitor(node.properties, visitor, ts.isObjectLiteralElementLike));
90811
- case 206 /* PropertyAccessExpression */:
90812
- if (node.flags & 32 /* OptionalChain */) {
90813
- ts.Debug.type(node);
90814
- return factory.updatePropertyAccessChain(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.questionDotToken, tokenVisitor, ts.isQuestionDotToken), nodeVisitor(node.name, visitor, ts.isMemberName));
90815
- }
90816
- ts.Debug.type(node);
90817
- return factory.updatePropertyAccessExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.name, visitor, ts.isMemberName));
90818
- case 207 /* ElementAccessExpression */:
90819
- if (node.flags & 32 /* OptionalChain */) {
90820
- ts.Debug.type(node);
90821
- return factory.updateElementAccessChain(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.questionDotToken, tokenVisitor, ts.isQuestionDotToken), nodeVisitor(node.argumentExpression, visitor, ts.isExpression));
90822
- }
90823
- ts.Debug.type(node);
90824
- return factory.updateElementAccessExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.argumentExpression, visitor, ts.isExpression));
90825
- case 208 /* CallExpression */:
90826
- if (node.flags & 32 /* OptionalChain */) {
90827
- ts.Debug.type(node);
90828
- return factory.updateCallChain(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.questionDotToken, tokenVisitor, ts.isQuestionDotToken), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodesVisitor(node.arguments, visitor, ts.isExpression));
90829
- }
90830
- ts.Debug.type(node);
90831
- return factory.updateCallExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodesVisitor(node.arguments, visitor, ts.isExpression));
90832
- case 209 /* NewExpression */:
90833
- ts.Debug.type(node);
90834
- return factory.updateNewExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodesVisitor(node.arguments, visitor, ts.isExpression));
90835
- case 210 /* TaggedTemplateExpression */:
90836
- ts.Debug.type(node);
90837
- return factory.updateTaggedTemplateExpression(node, nodeVisitor(node.tag, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodeVisitor(node.template, visitor, ts.isTemplateLiteral));
90838
- case 211 /* TypeAssertionExpression */:
90839
- ts.Debug.type(node);
90840
- return factory.updateTypeAssertion(node, nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.expression, visitor, ts.isExpression));
90841
- case 212 /* ParenthesizedExpression */:
90842
- ts.Debug.type(node);
90843
- return factory.updateParenthesizedExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90844
- case 213 /* FunctionExpression */:
90845
- ts.Debug.type(node);
90846
- return factory.updateFunctionExpression(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.asteriskToken, tokenVisitor, ts.isAsteriskToken), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), visitParameterList(node.parameters, visitor, context, nodesVisitor), nodeVisitor(node.type, visitor, ts.isTypeNode), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90847
- case 214 /* ArrowFunction */:
90848
- ts.Debug.type(node);
90849
- return factory.updateArrowFunction(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), visitParameterList(node.parameters, visitor, context, nodesVisitor), nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.equalsGreaterThanToken, tokenVisitor, ts.isEqualsGreaterThanToken), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90850
- case 215 /* DeleteExpression */:
90851
- ts.Debug.type(node);
90852
- return factory.updateDeleteExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90853
- case 216 /* TypeOfExpression */:
90854
- ts.Debug.type(node);
90855
- return factory.updateTypeOfExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90856
- case 217 /* VoidExpression */:
90857
- ts.Debug.type(node);
90858
- return factory.updateVoidExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90859
- case 218 /* AwaitExpression */:
90860
- ts.Debug.type(node);
90861
- return factory.updateAwaitExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90862
- case 219 /* PrefixUnaryExpression */:
90863
- ts.Debug.type(node);
90864
- return factory.updatePrefixUnaryExpression(node, nodeVisitor(node.operand, visitor, ts.isExpression));
90865
- case 220 /* PostfixUnaryExpression */:
90866
- ts.Debug.type(node);
90867
- return factory.updatePostfixUnaryExpression(node, nodeVisitor(node.operand, visitor, ts.isExpression));
90868
- case 221 /* BinaryExpression */:
90869
- ts.Debug.type(node);
90870
- return factory.updateBinaryExpression(node, nodeVisitor(node.left, visitor, ts.isExpression), nodeVisitor(node.operatorToken, tokenVisitor, ts.isBinaryOperatorToken), nodeVisitor(node.right, visitor, ts.isExpression));
90871
- case 222 /* ConditionalExpression */:
90872
- ts.Debug.type(node);
90873
- return factory.updateConditionalExpression(node, nodeVisitor(node.condition, visitor, ts.isExpression), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionToken), nodeVisitor(node.whenTrue, visitor, ts.isExpression), nodeVisitor(node.colonToken, tokenVisitor, ts.isColonToken), nodeVisitor(node.whenFalse, visitor, ts.isExpression));
90874
- case 223 /* TemplateExpression */:
90875
- ts.Debug.type(node);
90876
- return factory.updateTemplateExpression(node, nodeVisitor(node.head, visitor, ts.isTemplateHead), nodesVisitor(node.templateSpans, visitor, ts.isTemplateSpan));
90877
- case 224 /* YieldExpression */:
90878
- ts.Debug.type(node);
90879
- return factory.updateYieldExpression(node, nodeVisitor(node.asteriskToken, tokenVisitor, ts.isAsteriskToken), nodeVisitor(node.expression, visitor, ts.isExpression));
90880
- case 225 /* SpreadElement */:
90881
- ts.Debug.type(node);
90882
- return factory.updateSpreadElement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90883
- case 226 /* ClassExpression */:
90884
- ts.Debug.type(node);
90885
- return factory.updateClassExpression(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.heritageClauses, visitor, ts.isHeritageClause), nodesVisitor(node.members, visitor, ts.isClassElement));
90886
- case 228 /* ExpressionWithTypeArguments */:
90887
- ts.Debug.type(node);
90888
- return factory.updateExpressionWithTypeArguments(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode));
90889
- case 229 /* AsExpression */:
90890
- ts.Debug.type(node);
90891
- return factory.updateAsExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.type, visitor, ts.isTypeNode));
90892
- case 230 /* NonNullExpression */:
90893
- if (node.flags & 32 /* OptionalChain */) {
90894
- ts.Debug.type(node);
90895
- return factory.updateNonNullChain(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90896
- }
90897
- ts.Debug.type(node);
90898
- return factory.updateNonNullExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90899
- case 231 /* MetaProperty */:
90900
- ts.Debug.type(node);
90901
- return factory.updateMetaProperty(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
90902
- // Misc
90903
- case 233 /* TemplateSpan */:
90904
- ts.Debug.type(node);
90905
- return factory.updateTemplateSpan(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.literal, visitor, ts.isTemplateMiddleOrTemplateTail));
90906
- // Element
90907
- case 235 /* Block */:
90908
- ts.Debug.type(node);
90909
- return factory.updateBlock(node, nodesVisitor(node.statements, visitor, ts.isStatement));
90910
- case 237 /* VariableStatement */:
90911
- ts.Debug.type(node);
90912
- return factory.updateVariableStatement(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.declarationList, visitor, ts.isVariableDeclarationList));
90913
- case 238 /* ExpressionStatement */:
90914
- ts.Debug.type(node);
90915
- return factory.updateExpressionStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90916
- case 239 /* IfStatement */:
90917
- ts.Debug.type(node);
90918
- return factory.updateIfStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.thenStatement, visitor, ts.isStatement, factory.liftToBlock), nodeVisitor(node.elseStatement, visitor, ts.isStatement, factory.liftToBlock));
90919
- case 240 /* DoStatement */:
90920
- ts.Debug.type(node);
90921
- return factory.updateDoStatement(node, visitIterationBody(node.statement, visitor, context), nodeVisitor(node.expression, visitor, ts.isExpression));
90922
- case 241 /* WhileStatement */:
90923
- ts.Debug.type(node);
90924
- return factory.updateWhileStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), visitIterationBody(node.statement, visitor, context));
90925
- case 242 /* ForStatement */:
90926
- ts.Debug.type(node);
90927
- return factory.updateForStatement(node, nodeVisitor(node.initializer, visitor, ts.isForInitializer), nodeVisitor(node.condition, visitor, ts.isExpression), nodeVisitor(node.incrementor, visitor, ts.isExpression), visitIterationBody(node.statement, visitor, context));
90928
- case 243 /* ForInStatement */:
90929
- ts.Debug.type(node);
90930
- return factory.updateForInStatement(node, nodeVisitor(node.initializer, visitor, ts.isForInitializer), nodeVisitor(node.expression, visitor, ts.isExpression), visitIterationBody(node.statement, visitor, context));
90931
- case 244 /* ForOfStatement */:
90932
- ts.Debug.type(node);
90933
- return factory.updateForOfStatement(node, nodeVisitor(node.awaitModifier, tokenVisitor, ts.isAwaitKeyword), nodeVisitor(node.initializer, visitor, ts.isForInitializer), nodeVisitor(node.expression, visitor, ts.isExpression), visitIterationBody(node.statement, visitor, context));
90934
- case 245 /* ContinueStatement */:
90935
- ts.Debug.type(node);
90936
- return factory.updateContinueStatement(node, nodeVisitor(node.label, visitor, ts.isIdentifier));
90937
- case 246 /* BreakStatement */:
90938
- ts.Debug.type(node);
90939
- return factory.updateBreakStatement(node, nodeVisitor(node.label, visitor, ts.isIdentifier));
90940
- case 247 /* ReturnStatement */:
90941
- ts.Debug.type(node);
90942
- return factory.updateReturnStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90943
- case 248 /* WithStatement */:
90944
- ts.Debug.type(node);
90945
- return factory.updateWithStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.statement, visitor, ts.isStatement, factory.liftToBlock));
90946
- case 249 /* SwitchStatement */:
90947
- ts.Debug.type(node);
90948
- return factory.updateSwitchStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.caseBlock, visitor, ts.isCaseBlock));
90949
- case 250 /* LabeledStatement */:
90950
- ts.Debug.type(node);
90951
- return factory.updateLabeledStatement(node, nodeVisitor(node.label, visitor, ts.isIdentifier), nodeVisitor(node.statement, visitor, ts.isStatement, factory.liftToBlock));
90952
- case 251 /* ThrowStatement */:
90953
- ts.Debug.type(node);
90954
- return factory.updateThrowStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90955
- case 252 /* TryStatement */:
90956
- ts.Debug.type(node);
90957
- return factory.updateTryStatement(node, nodeVisitor(node.tryBlock, visitor, ts.isBlock), nodeVisitor(node.catchClause, visitor, ts.isCatchClause), nodeVisitor(node.finallyBlock, visitor, ts.isBlock));
90958
- case 254 /* VariableDeclaration */:
90959
- ts.Debug.type(node);
90960
- return factory.updateVariableDeclaration(node, nodeVisitor(node.name, visitor, ts.isBindingName), nodeVisitor(node.exclamationToken, tokenVisitor, ts.isExclamationToken), nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.initializer, visitor, ts.isExpression));
90961
- case 255 /* VariableDeclarationList */:
90962
- ts.Debug.type(node);
90963
- return factory.updateVariableDeclarationList(node, nodesVisitor(node.declarations, visitor, ts.isVariableDeclaration));
90964
- case 256 /* FunctionDeclaration */:
90965
- ts.Debug.type(node);
90966
- return factory.updateFunctionDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.asteriskToken, tokenVisitor, ts.isAsteriskToken), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), visitParameterList(node.parameters, visitor, context, nodesVisitor), nodeVisitor(node.type, visitor, ts.isTypeNode), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90967
- case 257 /* ClassDeclaration */:
90968
- ts.Debug.type(node);
90969
- return factory.updateClassDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.heritageClauses, visitor, ts.isHeritageClause), nodesVisitor(node.members, visitor, ts.isClassElement));
90970
- case 258 /* InterfaceDeclaration */:
90971
- ts.Debug.type(node);
90972
- return factory.updateInterfaceDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.heritageClauses, visitor, ts.isHeritageClause), nodesVisitor(node.members, visitor, ts.isTypeElement));
90973
- case 259 /* TypeAliasDeclaration */:
90974
- ts.Debug.type(node);
90975
- return factory.updateTypeAliasDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90976
- case 260 /* EnumDeclaration */:
90977
- ts.Debug.type(node);
90978
- return factory.updateEnumDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.members, visitor, ts.isEnumMember));
90979
- case 261 /* ModuleDeclaration */:
90980
- ts.Debug.type(node);
90981
- return factory.updateModuleDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isModuleName), nodeVisitor(node.body, visitor, ts.isModuleBody));
90982
- case 262 /* ModuleBlock */:
90983
- ts.Debug.type(node);
90984
- return factory.updateModuleBlock(node, nodesVisitor(node.statements, visitor, ts.isStatement));
90985
- case 263 /* CaseBlock */:
90986
- ts.Debug.type(node);
90987
- return factory.updateCaseBlock(node, nodesVisitor(node.clauses, visitor, ts.isCaseOrDefaultClause));
90988
- case 264 /* NamespaceExportDeclaration */:
90989
- ts.Debug.type(node);
90990
- return factory.updateNamespaceExportDeclaration(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
90991
- case 265 /* ImportEqualsDeclaration */:
90992
- ts.Debug.type(node);
90993
- return factory.updateImportEqualsDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), node.isTypeOnly, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.moduleReference, visitor, ts.isModuleReference));
90994
- case 266 /* ImportDeclaration */:
90995
- ts.Debug.type(node);
90996
- return factory.updateImportDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.importClause, visitor, ts.isImportClause), nodeVisitor(node.moduleSpecifier, visitor, ts.isExpression), nodeVisitor(node.assertClause, visitor, ts.isAssertClause));
90997
- case 293 /* AssertClause */:
90998
- ts.Debug.type(node);
90999
- return factory.updateAssertClause(node, nodesVisitor(node.elements, visitor, ts.isAssertEntry), node.multiLine);
91000
- case 294 /* AssertEntry */:
91001
- ts.Debug.type(node);
91002
- return factory.updateAssertEntry(node, nodeVisitor(node.name, visitor, ts.isAssertionKey), nodeVisitor(node.value, visitor, ts.isExpressionNode));
91003
- case 267 /* ImportClause */:
91004
- ts.Debug.type(node);
91005
- return factory.updateImportClause(node, node.isTypeOnly, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.namedBindings, visitor, ts.isNamedImportBindings));
91006
- case 268 /* NamespaceImport */:
91007
- ts.Debug.type(node);
91008
- return factory.updateNamespaceImport(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
91009
- case 274 /* NamespaceExport */:
91010
- ts.Debug.type(node);
91011
- return factory.updateNamespaceExport(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
91012
- case 269 /* NamedImports */:
91013
- ts.Debug.type(node);
91014
- return factory.updateNamedImports(node, nodesVisitor(node.elements, visitor, ts.isImportSpecifier));
91015
- case 270 /* ImportSpecifier */:
91016
- ts.Debug.type(node);
91017
- return factory.updateImportSpecifier(node, node.isTypeOnly, nodeVisitor(node.propertyName, visitor, ts.isIdentifier), nodeVisitor(node.name, visitor, ts.isIdentifier));
91018
- case 271 /* ExportAssignment */:
91019
- ts.Debug.type(node);
91020
- return factory.updateExportAssignment(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.expression, visitor, ts.isExpression));
91021
- case 272 /* ExportDeclaration */:
91022
- ts.Debug.type(node);
91023
- return factory.updateExportDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), node.isTypeOnly, nodeVisitor(node.exportClause, visitor, ts.isNamedExportBindings), nodeVisitor(node.moduleSpecifier, visitor, ts.isExpression), nodeVisitor(node.assertClause, visitor, ts.isAssertClause));
91024
- case 273 /* NamedExports */:
91025
- ts.Debug.type(node);
91026
- return factory.updateNamedExports(node, nodesVisitor(node.elements, visitor, ts.isExportSpecifier));
91027
- case 275 /* ExportSpecifier */:
91028
- ts.Debug.type(node);
91029
- return factory.updateExportSpecifier(node, node.isTypeOnly, nodeVisitor(node.propertyName, visitor, ts.isIdentifier), nodeVisitor(node.name, visitor, ts.isIdentifier));
91030
- // Module references
91031
- case 277 /* ExternalModuleReference */:
91032
- ts.Debug.type(node);
91033
- return factory.updateExternalModuleReference(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91034
- // JSX
91035
- case 278 /* JsxElement */:
91036
- ts.Debug.type(node);
91037
- return factory.updateJsxElement(node, nodeVisitor(node.openingElement, visitor, ts.isJsxOpeningElement), nodesVisitor(node.children, visitor, ts.isJsxChild), nodeVisitor(node.closingElement, visitor, ts.isJsxClosingElement));
91038
- case 279 /* JsxSelfClosingElement */:
91039
- ts.Debug.type(node);
91040
- return factory.updateJsxSelfClosingElement(node, nodeVisitor(node.tagName, visitor, ts.isJsxTagNameExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodeVisitor(node.attributes, visitor, ts.isJsxAttributes));
91041
- case 280 /* JsxOpeningElement */:
91042
- ts.Debug.type(node);
91043
- return factory.updateJsxOpeningElement(node, nodeVisitor(node.tagName, visitor, ts.isJsxTagNameExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodeVisitor(node.attributes, visitor, ts.isJsxAttributes));
91044
- case 281 /* JsxClosingElement */:
91045
- ts.Debug.type(node);
91046
- return factory.updateJsxClosingElement(node, nodeVisitor(node.tagName, visitor, ts.isJsxTagNameExpression));
91047
- case 282 /* JsxFragment */:
91048
- ts.Debug.type(node);
91049
- return factory.updateJsxFragment(node, nodeVisitor(node.openingFragment, visitor, ts.isJsxOpeningFragment), nodesVisitor(node.children, visitor, ts.isJsxChild), nodeVisitor(node.closingFragment, visitor, ts.isJsxClosingFragment));
91050
- case 285 /* JsxAttribute */:
91051
- ts.Debug.type(node);
91052
- return factory.updateJsxAttribute(node, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.initializer, visitor, ts.isStringLiteralOrJsxExpression));
91053
- case 286 /* JsxAttributes */:
91054
- ts.Debug.type(node);
91055
- return factory.updateJsxAttributes(node, nodesVisitor(node.properties, visitor, ts.isJsxAttributeLike));
91056
- case 287 /* JsxSpreadAttribute */:
91057
- ts.Debug.type(node);
91058
- return factory.updateJsxSpreadAttribute(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91059
- case 288 /* JsxExpression */:
91060
- ts.Debug.type(node);
91061
- return factory.updateJsxExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91062
- // Clauses
91063
- case 289 /* CaseClause */:
91064
- ts.Debug.type(node);
91065
- return factory.updateCaseClause(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.statements, visitor, ts.isStatement));
91066
- case 290 /* DefaultClause */:
91067
- ts.Debug.type(node);
91068
- return factory.updateDefaultClause(node, nodesVisitor(node.statements, visitor, ts.isStatement));
91069
- case 291 /* HeritageClause */:
91070
- ts.Debug.type(node);
91071
- return factory.updateHeritageClause(node, nodesVisitor(node.types, visitor, ts.isExpressionWithTypeArguments));
91072
- case 292 /* CatchClause */:
91073
- ts.Debug.type(node);
91074
- return factory.updateCatchClause(node, nodeVisitor(node.variableDeclaration, visitor, ts.isVariableDeclaration), nodeVisitor(node.block, visitor, ts.isBlock));
91075
- // Property assignments
91076
- case 296 /* PropertyAssignment */:
91077
- ts.Debug.type(node);
91078
- return factory.updatePropertyAssignment(node, nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.initializer, visitor, ts.isExpression));
91079
- case 297 /* ShorthandPropertyAssignment */:
91080
- ts.Debug.type(node);
91081
- return factory.updateShorthandPropertyAssignment(node, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.objectAssignmentInitializer, visitor, ts.isExpression));
91082
- case 298 /* SpreadAssignment */:
91083
- ts.Debug.type(node);
91084
- return factory.updateSpreadAssignment(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91085
- // Enum
91086
- case 299 /* EnumMember */:
91087
- ts.Debug.type(node);
91088
- return factory.updateEnumMember(node, nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.initializer, visitor, ts.isExpression));
91089
- // Top-level nodes
91090
- case 305 /* SourceFile */:
91091
- ts.Debug.type(node);
91092
- return factory.updateSourceFile(node, visitLexicalEnvironment(node.statements, visitor, context));
91093
- // Transformation nodes
91094
- case 350 /* PartiallyEmittedExpression */:
91095
- ts.Debug.type(node);
91096
- return factory.updatePartiallyEmittedExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91097
- case 351 /* CommaListExpression */:
91098
- ts.Debug.type(node);
91099
- return factory.updateCommaListExpression(node, nodesVisitor(node.elements, visitor, ts.isExpression));
91100
- default:
91101
- // No need to visit nodes with no children.
91102
- return node;
91103
- }
90698
+ var fn = visitEachChildTable[node.kind];
90699
+ return fn === undefined ? node : fn(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor);
91104
90700
  }
91105
90701
  ts.visitEachChild = visitEachChild;
90702
+ // NOTE: Before you can add a new method to `visitEachChildTable`, you must first ensure the `Node` subtype you
90703
+ // wish to add is defined in the `HasChildren` union in types.ts.
90704
+ var visitEachChildTable = (_a = {},
90705
+ _a[79 /* Identifier */] = function visitEachChildOfIdentifier(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90706
+ return context.factory.updateIdentifier(node, nodesVisitor(node.typeArguments, visitor, ts.isTypeNodeOrTypeParameterDeclaration));
90707
+ },
90708
+ _a[161 /* QualifiedName */] = function visitEachChildOfQualifiedName(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90709
+ return context.factory.updateQualifiedName(node, nodeVisitor(node.left, visitor, ts.isEntityName), nodeVisitor(node.right, visitor, ts.isIdentifier));
90710
+ },
90711
+ _a[162 /* ComputedPropertyName */] = function visitEachChildOfComputedPropertyName(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90712
+ return context.factory.updateComputedPropertyName(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90713
+ },
90714
+ // Signature elements
90715
+ _a[163 /* TypeParameter */] = function visitEachChildOfTypeParameterDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90716
+ return context.factory.updateTypeParameterDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.constraint, visitor, ts.isTypeNode), nodeVisitor(node.default, visitor, ts.isTypeNode));
90717
+ },
90718
+ _a[164 /* Parameter */] = function visitEachChildOfParameterDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90719
+ return context.factory.updateParameterDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.dotDotDotToken, tokenVisitor, ts.isDotDotDotToken), nodeVisitor(node.name, visitor, ts.isBindingName), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionToken), nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.initializer, visitor, ts.isExpression));
90720
+ },
90721
+ _a[165 /* Decorator */] = function visitEachChildOfDecorator(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90722
+ return context.factory.updateDecorator(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90723
+ },
90724
+ // Type elements
90725
+ _a[166 /* PropertySignature */] = function visitEachChildOfPropertySignature(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90726
+ return context.factory.updatePropertySignature(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.questionToken, tokenVisitor, ts.isToken), nodeVisitor(node.type, visitor, ts.isTypeNode));
90727
+ },
90728
+ _a[167 /* PropertyDeclaration */] = function visitEachChildOfPropertyDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90729
+ var _a;
90730
+ return context.factory.updatePropertyDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.name, visitor, ts.isPropertyName),
90731
+ // QuestionToken and ExclamationToken are mutually exclusive in PropertyDeclaration
90732
+ nodeVisitor((_a = node.questionToken) !== null && _a !== void 0 ? _a : node.exclamationToken, tokenVisitor, ts.isQuestionOrExclamationToken), nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.initializer, visitor, ts.isExpression));
90733
+ },
90734
+ _a[168 /* MethodSignature */] = function visitEachChildOfMethodSignature(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90735
+ return context.factory.updateMethodSignature(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionToken), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90736
+ },
90737
+ _a[169 /* MethodDeclaration */] = function visitEachChildOfMethodDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90738
+ return context.factory.updateMethodDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.asteriskToken, tokenVisitor, ts.isAsteriskToken), nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionToken), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), visitParameterList(node.parameters, visitor, context, nodesVisitor), nodeVisitor(node.type, visitor, ts.isTypeNode), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90739
+ },
90740
+ _a[171 /* Constructor */] = function visitEachChildOfConstructorDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90741
+ return context.factory.updateConstructorDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), visitParameterList(node.parameters, visitor, context, nodesVisitor), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90742
+ },
90743
+ _a[172 /* GetAccessor */] = function visitEachChildOfGetAccessorDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90744
+ return context.factory.updateGetAccessorDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.name, visitor, ts.isPropertyName), visitParameterList(node.parameters, visitor, context, nodesVisitor), nodeVisitor(node.type, visitor, ts.isTypeNode), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90745
+ },
90746
+ _a[173 /* SetAccessor */] = function visitEachChildOfSetAccessorDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90747
+ return context.factory.updateSetAccessorDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.name, visitor, ts.isPropertyName), visitParameterList(node.parameters, visitor, context, nodesVisitor), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90748
+ },
90749
+ _a[170 /* ClassStaticBlockDeclaration */] = function visitEachChildOfClassStaticBlockDeclaration(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90750
+ context.startLexicalEnvironment();
90751
+ context.suspendLexicalEnvironment();
90752
+ return context.factory.updateClassStaticBlockDeclaration(node, visitFunctionBody(node.body, visitor, context, nodeVisitor));
90753
+ },
90754
+ _a[174 /* CallSignature */] = function visitEachChildOfCallSignatureDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90755
+ return context.factory.updateCallSignature(node, nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90756
+ },
90757
+ _a[175 /* ConstructSignature */] = function visitEachChildOfConstructSignatureDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90758
+ return context.factory.updateConstructSignature(node, nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90759
+ },
90760
+ _a[176 /* IndexSignature */] = function visitEachChildOfIndexSignatureDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90761
+ return context.factory.updateIndexSignature(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90762
+ },
90763
+ // Types
90764
+ _a[177 /* TypePredicate */] = function visitEachChildOfTypePredicateNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90765
+ return context.factory.updateTypePredicateNode(node, nodeVisitor(node.assertsModifier, visitor, ts.isAssertsKeyword), nodeVisitor(node.parameterName, visitor, ts.isIdentifierOrThisTypeNode), nodeVisitor(node.type, visitor, ts.isTypeNode));
90766
+ },
90767
+ _a[178 /* TypeReference */] = function visitEachChildOfTypeReferenceNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90768
+ return context.factory.updateTypeReferenceNode(node, nodeVisitor(node.typeName, visitor, ts.isEntityName), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode));
90769
+ },
90770
+ _a[179 /* FunctionType */] = function visitEachChildOfFunctionTypeNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90771
+ return context.factory.updateFunctionTypeNode(node, nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90772
+ },
90773
+ _a[180 /* ConstructorType */] = function visitEachChildOfConstructorTypeNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90774
+ return context.factory.updateConstructorTypeNode(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90775
+ },
90776
+ _a[181 /* TypeQuery */] = function visitEachChildOfTypeQueryNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90777
+ return context.factory.updateTypeQueryNode(node, nodeVisitor(node.exprName, visitor, ts.isEntityName), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode));
90778
+ },
90779
+ _a[182 /* TypeLiteral */] = function visitEachChildOfTypeLiteralNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90780
+ return context.factory.updateTypeLiteralNode(node, nodesVisitor(node.members, visitor, ts.isTypeElement));
90781
+ },
90782
+ _a[183 /* ArrayType */] = function visitEachChildOfArrayTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90783
+ return context.factory.updateArrayTypeNode(node, nodeVisitor(node.elementType, visitor, ts.isTypeNode));
90784
+ },
90785
+ _a[184 /* TupleType */] = function visitEachChildOfTupleTypeNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90786
+ return context.factory.updateTupleTypeNode(node, nodesVisitor(node.elements, visitor, ts.isTypeNode));
90787
+ },
90788
+ _a[185 /* OptionalType */] = function visitEachChildOfOptionalTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90789
+ return context.factory.updateOptionalTypeNode(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90790
+ },
90791
+ _a[186 /* RestType */] = function visitEachChildOfRestTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90792
+ return context.factory.updateRestTypeNode(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90793
+ },
90794
+ _a[187 /* UnionType */] = function visitEachChildOfUnionTypeNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90795
+ return context.factory.updateUnionTypeNode(node, nodesVisitor(node.types, visitor, ts.isTypeNode));
90796
+ },
90797
+ _a[188 /* IntersectionType */] = function visitEachChildOfIntersectionTypeNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90798
+ return context.factory.updateIntersectionTypeNode(node, nodesVisitor(node.types, visitor, ts.isTypeNode));
90799
+ },
90800
+ _a[189 /* ConditionalType */] = function visitEachChildOfConditionalTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90801
+ return context.factory.updateConditionalTypeNode(node, nodeVisitor(node.checkType, visitor, ts.isTypeNode), nodeVisitor(node.extendsType, visitor, ts.isTypeNode), nodeVisitor(node.trueType, visitor, ts.isTypeNode), nodeVisitor(node.falseType, visitor, ts.isTypeNode));
90802
+ },
90803
+ _a[190 /* InferType */] = function visitEachChildOfInferTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90804
+ return context.factory.updateInferTypeNode(node, nodeVisitor(node.typeParameter, visitor, ts.isTypeParameterDeclaration));
90805
+ },
90806
+ _a[200 /* ImportType */] = function visitEachChildOfImportTypeNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90807
+ return context.factory.updateImportTypeNode(node, nodeVisitor(node.argument, visitor, ts.isTypeNode), nodeVisitor(node.assertions, visitor, ts.isImportTypeAssertionContainer), nodeVisitor(node.qualifier, visitor, ts.isEntityName), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), node.isTypeOf);
90808
+ },
90809
+ _a[295 /* ImportTypeAssertionContainer */] = function visitEachChildOfImportTypeAssertionContainer(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90810
+ return context.factory.updateImportTypeAssertionContainer(node, nodeVisitor(node.assertClause, visitor, ts.isAssertClause), node.multiLine);
90811
+ },
90812
+ _a[197 /* NamedTupleMember */] = function visitEachChildOfNamedTupleMember(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90813
+ return context.factory.updateNamedTupleMember(node, nodeVisitor(node.dotDotDotToken, tokenVisitor, ts.isDotDotDotToken), nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionToken), nodeVisitor(node.type, visitor, ts.isTypeNode));
90814
+ },
90815
+ _a[191 /* ParenthesizedType */] = function visitEachChildOfParenthesizedType(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90816
+ return context.factory.updateParenthesizedType(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90817
+ },
90818
+ _a[193 /* TypeOperator */] = function visitEachChildOfTypeOperatorNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90819
+ return context.factory.updateTypeOperatorNode(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90820
+ },
90821
+ _a[194 /* IndexedAccessType */] = function visitEachChildOfIndexedAccessType(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90822
+ return context.factory.updateIndexedAccessTypeNode(node, nodeVisitor(node.objectType, visitor, ts.isTypeNode), nodeVisitor(node.indexType, visitor, ts.isTypeNode));
90823
+ },
90824
+ _a[195 /* MappedType */] = function visitEachChildOfMappedType(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90825
+ return context.factory.updateMappedTypeNode(node, nodeVisitor(node.readonlyToken, tokenVisitor, ts.isReadonlyKeywordOrPlusOrMinusToken), nodeVisitor(node.typeParameter, visitor, ts.isTypeParameterDeclaration), nodeVisitor(node.nameType, visitor, ts.isTypeNode), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionOrPlusOrMinusToken), nodeVisitor(node.type, visitor, ts.isTypeNode), nodesVisitor(node.members, visitor, ts.isTypeElement));
90826
+ },
90827
+ _a[196 /* LiteralType */] = function visitEachChildOfLiteralTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90828
+ return context.factory.updateLiteralTypeNode(node, nodeVisitor(node.literal, visitor, ts.isExpression));
90829
+ },
90830
+ _a[198 /* TemplateLiteralType */] = function visitEachChildOfTemplateLiteralType(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90831
+ return context.factory.updateTemplateLiteralType(node, nodeVisitor(node.head, visitor, ts.isTemplateHead), nodesVisitor(node.templateSpans, visitor, ts.isTemplateLiteralTypeSpan));
90832
+ },
90833
+ _a[199 /* TemplateLiteralTypeSpan */] = function visitEachChildOfTemplateLiteralTypeSpan(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90834
+ return context.factory.updateTemplateLiteralTypeSpan(node, nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.literal, visitor, ts.isTemplateMiddleOrTemplateTail));
90835
+ },
90836
+ // Binding patterns
90837
+ _a[201 /* ObjectBindingPattern */] = function visitEachChildOfObjectBindingPattern(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90838
+ return context.factory.updateObjectBindingPattern(node, nodesVisitor(node.elements, visitor, ts.isBindingElement));
90839
+ },
90840
+ _a[202 /* ArrayBindingPattern */] = function visitEachChildOfArrayBindingPattern(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90841
+ return context.factory.updateArrayBindingPattern(node, nodesVisitor(node.elements, visitor, ts.isArrayBindingElement));
90842
+ },
90843
+ _a[203 /* BindingElement */] = function visitEachChildOfBindingElement(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90844
+ return context.factory.updateBindingElement(node, nodeVisitor(node.dotDotDotToken, tokenVisitor, ts.isDotDotDotToken), nodeVisitor(node.propertyName, visitor, ts.isPropertyName), nodeVisitor(node.name, visitor, ts.isBindingName), nodeVisitor(node.initializer, visitor, ts.isExpression));
90845
+ },
90846
+ // Expression
90847
+ _a[204 /* ArrayLiteralExpression */] = function visitEachChildOfArrayLiteralExpression(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90848
+ return context.factory.updateArrayLiteralExpression(node, nodesVisitor(node.elements, visitor, ts.isExpression));
90849
+ },
90850
+ _a[205 /* ObjectLiteralExpression */] = function visitEachChildOfObjectLiteralExpression(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90851
+ return context.factory.updateObjectLiteralExpression(node, nodesVisitor(node.properties, visitor, ts.isObjectLiteralElementLike));
90852
+ },
90853
+ _a[206 /* PropertyAccessExpression */] = function visitEachChildOfPropertyAccessExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90854
+ return ts.isPropertyAccessChain(node) ?
90855
+ context.factory.updatePropertyAccessChain(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.questionDotToken, tokenVisitor, ts.isQuestionDotToken), nodeVisitor(node.name, visitor, ts.isMemberName)) :
90856
+ context.factory.updatePropertyAccessExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.name, visitor, ts.isMemberName));
90857
+ },
90858
+ _a[207 /* ElementAccessExpression */] = function visitEachChildOfElementAccessExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90859
+ return ts.isElementAccessChain(node) ?
90860
+ context.factory.updateElementAccessChain(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.questionDotToken, tokenVisitor, ts.isQuestionDotToken), nodeVisitor(node.argumentExpression, visitor, ts.isExpression)) :
90861
+ context.factory.updateElementAccessExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.argumentExpression, visitor, ts.isExpression));
90862
+ },
90863
+ _a[208 /* CallExpression */] = function visitEachChildOfCallExpression(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90864
+ return ts.isCallChain(node) ?
90865
+ context.factory.updateCallChain(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.questionDotToken, tokenVisitor, ts.isQuestionDotToken), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodesVisitor(node.arguments, visitor, ts.isExpression)) :
90866
+ context.factory.updateCallExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodesVisitor(node.arguments, visitor, ts.isExpression));
90867
+ },
90868
+ _a[209 /* NewExpression */] = function visitEachChildOfNewExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90869
+ return context.factory.updateNewExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodesVisitor(node.arguments, visitor, ts.isExpression));
90870
+ },
90871
+ _a[210 /* TaggedTemplateExpression */] = function visitEachChildOfTaggedTemplateExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90872
+ return context.factory.updateTaggedTemplateExpression(node, nodeVisitor(node.tag, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodeVisitor(node.template, visitor, ts.isTemplateLiteral));
90873
+ },
90874
+ _a[211 /* TypeAssertionExpression */] = function visitEachChildOfTypeAssertionExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90875
+ return context.factory.updateTypeAssertion(node, nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.expression, visitor, ts.isExpression));
90876
+ },
90877
+ _a[212 /* ParenthesizedExpression */] = function visitEachChildOfParenthesizedExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90878
+ return context.factory.updateParenthesizedExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90879
+ },
90880
+ _a[213 /* FunctionExpression */] = function visitEachChildOfFunctionExpression(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90881
+ return context.factory.updateFunctionExpression(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.asteriskToken, tokenVisitor, ts.isAsteriskToken), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), visitParameterList(node.parameters, visitor, context, nodesVisitor), nodeVisitor(node.type, visitor, ts.isTypeNode), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90882
+ },
90883
+ _a[214 /* ArrowFunction */] = function visitEachChildOfArrowFunction(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90884
+ return context.factory.updateArrowFunction(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), visitParameterList(node.parameters, visitor, context, nodesVisitor), nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.equalsGreaterThanToken, tokenVisitor, ts.isEqualsGreaterThanToken), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90885
+ },
90886
+ _a[215 /* DeleteExpression */] = function visitEachChildOfDeleteExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90887
+ return context.factory.updateDeleteExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90888
+ },
90889
+ _a[216 /* TypeOfExpression */] = function visitEachChildOfTypeOfExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90890
+ return context.factory.updateTypeOfExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90891
+ },
90892
+ _a[217 /* VoidExpression */] = function visitEachChildOfVoidExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90893
+ return context.factory.updateVoidExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90894
+ },
90895
+ _a[218 /* AwaitExpression */] = function visitEachChildOfAwaitExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90896
+ return context.factory.updateAwaitExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90897
+ },
90898
+ _a[219 /* PrefixUnaryExpression */] = function visitEachChildOfPrefixUnaryExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90899
+ return context.factory.updatePrefixUnaryExpression(node, nodeVisitor(node.operand, visitor, ts.isExpression));
90900
+ },
90901
+ _a[220 /* PostfixUnaryExpression */] = function visitEachChildOfPostfixUnaryExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90902
+ return context.factory.updatePostfixUnaryExpression(node, nodeVisitor(node.operand, visitor, ts.isExpression));
90903
+ },
90904
+ _a[221 /* BinaryExpression */] = function visitEachChildOfBinaryExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90905
+ return context.factory.updateBinaryExpression(node, nodeVisitor(node.left, visitor, ts.isExpression), nodeVisitor(node.operatorToken, tokenVisitor, ts.isBinaryOperatorToken), nodeVisitor(node.right, visitor, ts.isExpression));
90906
+ },
90907
+ _a[222 /* ConditionalExpression */] = function visitEachChildOfConditionalExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90908
+ return context.factory.updateConditionalExpression(node, nodeVisitor(node.condition, visitor, ts.isExpression), nodeVisitor(node.questionToken, tokenVisitor, ts.isQuestionToken), nodeVisitor(node.whenTrue, visitor, ts.isExpression), nodeVisitor(node.colonToken, tokenVisitor, ts.isColonToken), nodeVisitor(node.whenFalse, visitor, ts.isExpression));
90909
+ },
90910
+ _a[223 /* TemplateExpression */] = function visitEachChildOfTemplateExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90911
+ return context.factory.updateTemplateExpression(node, nodeVisitor(node.head, visitor, ts.isTemplateHead), nodesVisitor(node.templateSpans, visitor, ts.isTemplateSpan));
90912
+ },
90913
+ _a[224 /* YieldExpression */] = function visitEachChildOfYieldExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90914
+ return context.factory.updateYieldExpression(node, nodeVisitor(node.asteriskToken, tokenVisitor, ts.isAsteriskToken), nodeVisitor(node.expression, visitor, ts.isExpression));
90915
+ },
90916
+ _a[225 /* SpreadElement */] = function visitEachChildOfSpreadElement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90917
+ return context.factory.updateSpreadElement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90918
+ },
90919
+ _a[226 /* ClassExpression */] = function visitEachChildOfClassExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90920
+ return context.factory.updateClassExpression(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.heritageClauses, visitor, ts.isHeritageClause), nodesVisitor(node.members, visitor, ts.isClassElement));
90921
+ },
90922
+ _a[228 /* ExpressionWithTypeArguments */] = function visitEachChildOfExpressionWithTypeArguments(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90923
+ return context.factory.updateExpressionWithTypeArguments(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode));
90924
+ },
90925
+ _a[229 /* AsExpression */] = function visitEachChildOfAsExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90926
+ return context.factory.updateAsExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.type, visitor, ts.isTypeNode));
90927
+ },
90928
+ _a[230 /* NonNullExpression */] = function visitEachChildOfNonNullExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90929
+ return ts.isOptionalChain(node) ?
90930
+ context.factory.updateNonNullChain(node, nodeVisitor(node.expression, visitor, ts.isExpression)) :
90931
+ context.factory.updateNonNullExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90932
+ },
90933
+ _a[231 /* MetaProperty */] = function visitEachChildOfMetaProperty(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90934
+ return context.factory.updateMetaProperty(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
90935
+ },
90936
+ // Misc
90937
+ _a[233 /* TemplateSpan */] = function visitEachChildOfTemplateSpan(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90938
+ return context.factory.updateTemplateSpan(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.literal, visitor, ts.isTemplateMiddleOrTemplateTail));
90939
+ },
90940
+ // Element
90941
+ _a[235 /* Block */] = function visitEachChildOfBlock(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90942
+ return context.factory.updateBlock(node, nodesVisitor(node.statements, visitor, ts.isStatement));
90943
+ },
90944
+ _a[237 /* VariableStatement */] = function visitEachChildOfVariableStatement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90945
+ return context.factory.updateVariableStatement(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.declarationList, visitor, ts.isVariableDeclarationList));
90946
+ },
90947
+ _a[238 /* ExpressionStatement */] = function visitEachChildOfExpressionStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90948
+ return context.factory.updateExpressionStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90949
+ },
90950
+ _a[239 /* IfStatement */] = function visitEachChildOfIfStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90951
+ return context.factory.updateIfStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.thenStatement, visitor, ts.isStatement, context.factory.liftToBlock), nodeVisitor(node.elseStatement, visitor, ts.isStatement, context.factory.liftToBlock));
90952
+ },
90953
+ _a[240 /* DoStatement */] = function visitEachChildOfDoStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90954
+ return context.factory.updateDoStatement(node, visitIterationBody(node.statement, visitor, context, nodeVisitor), nodeVisitor(node.expression, visitor, ts.isExpression));
90955
+ },
90956
+ _a[241 /* WhileStatement */] = function visitEachChildOfWhileStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90957
+ return context.factory.updateWhileStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), visitIterationBody(node.statement, visitor, context, nodeVisitor));
90958
+ },
90959
+ _a[242 /* ForStatement */] = function visitEachChildOfForStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90960
+ return context.factory.updateForStatement(node, nodeVisitor(node.initializer, visitor, ts.isForInitializer), nodeVisitor(node.condition, visitor, ts.isExpression), nodeVisitor(node.incrementor, visitor, ts.isExpression), visitIterationBody(node.statement, visitor, context, nodeVisitor));
90961
+ },
90962
+ _a[243 /* ForInStatement */] = function visitEachChildOfForInStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90963
+ return context.factory.updateForInStatement(node, nodeVisitor(node.initializer, visitor, ts.isForInitializer), nodeVisitor(node.expression, visitor, ts.isExpression), visitIterationBody(node.statement, visitor, context, nodeVisitor));
90964
+ },
90965
+ _a[244 /* ForOfStatement */] = function visitEachChildOfForOfStatement(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90966
+ return context.factory.updateForOfStatement(node, nodeVisitor(node.awaitModifier, tokenVisitor, ts.isAwaitKeyword), nodeVisitor(node.initializer, visitor, ts.isForInitializer), nodeVisitor(node.expression, visitor, ts.isExpression), visitIterationBody(node.statement, visitor, context, nodeVisitor));
90967
+ },
90968
+ _a[245 /* ContinueStatement */] = function visitEachChildOfContinueStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90969
+ return context.factory.updateContinueStatement(node, nodeVisitor(node.label, visitor, ts.isIdentifier));
90970
+ },
90971
+ _a[246 /* BreakStatement */] = function visitEachChildOfBreakStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90972
+ return context.factory.updateBreakStatement(node, nodeVisitor(node.label, visitor, ts.isIdentifier));
90973
+ },
90974
+ _a[247 /* ReturnStatement */] = function visitEachChildOfReturnStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90975
+ return context.factory.updateReturnStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90976
+ },
90977
+ _a[248 /* WithStatement */] = function visitEachChildOfWithStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90978
+ return context.factory.updateWithStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.statement, visitor, ts.isStatement, context.factory.liftToBlock));
90979
+ },
90980
+ _a[249 /* SwitchStatement */] = function visitEachChildOfSwitchStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90981
+ return context.factory.updateSwitchStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.caseBlock, visitor, ts.isCaseBlock));
90982
+ },
90983
+ _a[250 /* LabeledStatement */] = function visitEachChildOfLabeledStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90984
+ return context.factory.updateLabeledStatement(node, nodeVisitor(node.label, visitor, ts.isIdentifier), nodeVisitor(node.statement, visitor, ts.isStatement, context.factory.liftToBlock));
90985
+ },
90986
+ _a[251 /* ThrowStatement */] = function visitEachChildOfThrowStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90987
+ return context.factory.updateThrowStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90988
+ },
90989
+ _a[252 /* TryStatement */] = function visitEachChildOfTryStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90990
+ return context.factory.updateTryStatement(node, nodeVisitor(node.tryBlock, visitor, ts.isBlock), nodeVisitor(node.catchClause, visitor, ts.isCatchClause), nodeVisitor(node.finallyBlock, visitor, ts.isBlock));
90991
+ },
90992
+ _a[254 /* VariableDeclaration */] = function visitEachChildOfVariableDeclaration(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90993
+ return context.factory.updateVariableDeclaration(node, nodeVisitor(node.name, visitor, ts.isBindingName), nodeVisitor(node.exclamationToken, tokenVisitor, ts.isExclamationToken), nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.initializer, visitor, ts.isExpression));
90994
+ },
90995
+ _a[255 /* VariableDeclarationList */] = function visitEachChildOfVariableDeclarationList(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90996
+ return context.factory.updateVariableDeclarationList(node, nodesVisitor(node.declarations, visitor, ts.isVariableDeclaration));
90997
+ },
90998
+ _a[256 /* FunctionDeclaration */] = function visitEachChildOfFunctionDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90999
+ return context.factory.updateFunctionDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.asteriskToken, tokenVisitor, ts.isAsteriskToken), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), visitParameterList(node.parameters, visitor, context, nodesVisitor), nodeVisitor(node.type, visitor, ts.isTypeNode), visitFunctionBody(node.body, visitor, context, nodeVisitor));
91000
+ },
91001
+ _a[257 /* ClassDeclaration */] = function visitEachChildOfClassDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91002
+ return context.factory.updateClassDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.heritageClauses, visitor, ts.isHeritageClause), nodesVisitor(node.members, visitor, ts.isClassElement));
91003
+ },
91004
+ _a[258 /* InterfaceDeclaration */] = function visitEachChildOfInterfaceDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91005
+ return context.factory.updateInterfaceDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.heritageClauses, visitor, ts.isHeritageClause), nodesVisitor(node.members, visitor, ts.isTypeElement));
91006
+ },
91007
+ _a[259 /* TypeAliasDeclaration */] = function visitEachChildOfTypeAliasDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91008
+ return context.factory.updateTypeAliasDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
91009
+ },
91010
+ _a[260 /* EnumDeclaration */] = function visitEachChildOfEnumDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91011
+ return context.factory.updateEnumDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.members, visitor, ts.isEnumMember));
91012
+ },
91013
+ _a[261 /* ModuleDeclaration */] = function visitEachChildOfModuleDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91014
+ return context.factory.updateModuleDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isModuleName), nodeVisitor(node.body, visitor, ts.isModuleBody));
91015
+ },
91016
+ _a[262 /* ModuleBlock */] = function visitEachChildOfModuleBlock(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91017
+ return context.factory.updateModuleBlock(node, nodesVisitor(node.statements, visitor, ts.isStatement));
91018
+ },
91019
+ _a[263 /* CaseBlock */] = function visitEachChildOfCaseBlock(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91020
+ return context.factory.updateCaseBlock(node, nodesVisitor(node.clauses, visitor, ts.isCaseOrDefaultClause));
91021
+ },
91022
+ _a[264 /* NamespaceExportDeclaration */] = function visitEachChildOfNamespaceExportDeclaration(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91023
+ return context.factory.updateNamespaceExportDeclaration(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
91024
+ },
91025
+ _a[265 /* ImportEqualsDeclaration */] = function visitEachChildOfImportEqualsDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91026
+ return context.factory.updateImportEqualsDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), node.isTypeOnly, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.moduleReference, visitor, ts.isModuleReference));
91027
+ },
91028
+ _a[266 /* ImportDeclaration */] = function visitEachChildOfImportDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91029
+ return context.factory.updateImportDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.importClause, visitor, ts.isImportClause), nodeVisitor(node.moduleSpecifier, visitor, ts.isExpression), nodeVisitor(node.assertClause, visitor, ts.isAssertClause));
91030
+ },
91031
+ _a[293 /* AssertClause */] = function visitEachChildOfAssertClause(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91032
+ return context.factory.updateAssertClause(node, nodesVisitor(node.elements, visitor, ts.isAssertEntry), node.multiLine);
91033
+ },
91034
+ _a[294 /* AssertEntry */] = function visitEachChildOfAssertEntry(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91035
+ return context.factory.updateAssertEntry(node, nodeVisitor(node.name, visitor, ts.isAssertionKey), nodeVisitor(node.value, visitor, ts.isExpression));
91036
+ },
91037
+ _a[267 /* ImportClause */] = function visitEachChildOfImportClause(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91038
+ return context.factory.updateImportClause(node, node.isTypeOnly, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.namedBindings, visitor, ts.isNamedImportBindings));
91039
+ },
91040
+ _a[268 /* NamespaceImport */] = function visitEachChildOfNamespaceImport(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91041
+ return context.factory.updateNamespaceImport(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
91042
+ },
91043
+ _a[274 /* NamespaceExport */] = function visitEachChildOfNamespaceExport(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91044
+ return context.factory.updateNamespaceExport(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
91045
+ },
91046
+ _a[269 /* NamedImports */] = function visitEachChildOfNamedImports(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91047
+ return context.factory.updateNamedImports(node, nodesVisitor(node.elements, visitor, ts.isImportSpecifier));
91048
+ },
91049
+ _a[270 /* ImportSpecifier */] = function visitEachChildOfImportSpecifier(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91050
+ return context.factory.updateImportSpecifier(node, node.isTypeOnly, nodeVisitor(node.propertyName, visitor, ts.isIdentifier), nodeVisitor(node.name, visitor, ts.isIdentifier));
91051
+ },
91052
+ _a[271 /* ExportAssignment */] = function visitEachChildOfExportAssignment(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91053
+ return context.factory.updateExportAssignment(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.expression, visitor, ts.isExpression));
91054
+ },
91055
+ _a[272 /* ExportDeclaration */] = function visitEachChildOfExportDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91056
+ return context.factory.updateExportDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), node.isTypeOnly, nodeVisitor(node.exportClause, visitor, ts.isNamedExportBindings), nodeVisitor(node.moduleSpecifier, visitor, ts.isExpression), nodeVisitor(node.assertClause, visitor, ts.isAssertClause));
91057
+ },
91058
+ _a[273 /* NamedExports */] = function visitEachChildOfNamedExports(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91059
+ return context.factory.updateNamedExports(node, nodesVisitor(node.elements, visitor, ts.isExportSpecifier));
91060
+ },
91061
+ _a[275 /* ExportSpecifier */] = function visitEachChildOfExportSpecifier(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91062
+ return context.factory.updateExportSpecifier(node, node.isTypeOnly, nodeVisitor(node.propertyName, visitor, ts.isIdentifier), nodeVisitor(node.name, visitor, ts.isIdentifier));
91063
+ },
91064
+ // Module references
91065
+ _a[277 /* ExternalModuleReference */] = function visitEachChildOfExternalModuleReference(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91066
+ return context.factory.updateExternalModuleReference(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91067
+ },
91068
+ // JSX
91069
+ _a[278 /* JsxElement */] = function visitEachChildOfJsxElement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91070
+ return context.factory.updateJsxElement(node, nodeVisitor(node.openingElement, visitor, ts.isJsxOpeningElement), nodesVisitor(node.children, visitor, ts.isJsxChild), nodeVisitor(node.closingElement, visitor, ts.isJsxClosingElement));
91071
+ },
91072
+ _a[279 /* JsxSelfClosingElement */] = function visitEachChildOfJsxSelfClosingElement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91073
+ return context.factory.updateJsxSelfClosingElement(node, nodeVisitor(node.tagName, visitor, ts.isJsxTagNameExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodeVisitor(node.attributes, visitor, ts.isJsxAttributes));
91074
+ },
91075
+ _a[280 /* JsxOpeningElement */] = function visitEachChildOfJsxOpeningElement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91076
+ return context.factory.updateJsxOpeningElement(node, nodeVisitor(node.tagName, visitor, ts.isJsxTagNameExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodeVisitor(node.attributes, visitor, ts.isJsxAttributes));
91077
+ },
91078
+ _a[281 /* JsxClosingElement */] = function visitEachChildOfJsxClosingElement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91079
+ return context.factory.updateJsxClosingElement(node, nodeVisitor(node.tagName, visitor, ts.isJsxTagNameExpression));
91080
+ },
91081
+ _a[282 /* JsxFragment */] = function visitEachChildOfJsxFragment(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91082
+ return context.factory.updateJsxFragment(node, nodeVisitor(node.openingFragment, visitor, ts.isJsxOpeningFragment), nodesVisitor(node.children, visitor, ts.isJsxChild), nodeVisitor(node.closingFragment, visitor, ts.isJsxClosingFragment));
91083
+ },
91084
+ _a[285 /* JsxAttribute */] = function visitEachChildOfJsxAttribute(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91085
+ return context.factory.updateJsxAttribute(node, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.initializer, visitor, ts.isStringLiteralOrJsxExpression));
91086
+ },
91087
+ _a[286 /* JsxAttributes */] = function visitEachChildOfJsxAttributes(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91088
+ return context.factory.updateJsxAttributes(node, nodesVisitor(node.properties, visitor, ts.isJsxAttributeLike));
91089
+ },
91090
+ _a[287 /* JsxSpreadAttribute */] = function visitEachChildOfJsxSpreadAttribute(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91091
+ return context.factory.updateJsxSpreadAttribute(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91092
+ },
91093
+ _a[288 /* JsxExpression */] = function visitEachChildOfJsxExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91094
+ return context.factory.updateJsxExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91095
+ },
91096
+ // Clauses
91097
+ _a[289 /* CaseClause */] = function visitEachChildOfCaseClause(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91098
+ return context.factory.updateCaseClause(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.statements, visitor, ts.isStatement));
91099
+ },
91100
+ _a[290 /* DefaultClause */] = function visitEachChildOfDefaultClause(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91101
+ return context.factory.updateDefaultClause(node, nodesVisitor(node.statements, visitor, ts.isStatement));
91102
+ },
91103
+ _a[291 /* HeritageClause */] = function visitEachChildOfHeritageClause(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91104
+ return context.factory.updateHeritageClause(node, nodesVisitor(node.types, visitor, ts.isExpressionWithTypeArguments));
91105
+ },
91106
+ _a[292 /* CatchClause */] = function visitEachChildOfCatchClause(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91107
+ return context.factory.updateCatchClause(node, nodeVisitor(node.variableDeclaration, visitor, ts.isVariableDeclaration), nodeVisitor(node.block, visitor, ts.isBlock));
91108
+ },
91109
+ // Property assignments
91110
+ _a[296 /* PropertyAssignment */] = function visitEachChildOfPropertyAssignment(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91111
+ return context.factory.updatePropertyAssignment(node, nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.initializer, visitor, ts.isExpression));
91112
+ },
91113
+ _a[297 /* ShorthandPropertyAssignment */] = function visitEachChildOfShorthandPropertyAssignment(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91114
+ return context.factory.updateShorthandPropertyAssignment(node, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.objectAssignmentInitializer, visitor, ts.isExpression));
91115
+ },
91116
+ _a[298 /* SpreadAssignment */] = function visitEachChildOfSpreadAssignment(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91117
+ return context.factory.updateSpreadAssignment(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91118
+ },
91119
+ // Enum
91120
+ _a[299 /* EnumMember */] = function visitEachChildOfEnumMember(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91121
+ return context.factory.updateEnumMember(node, nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.initializer, visitor, ts.isExpression));
91122
+ },
91123
+ // Top-level nodes
91124
+ _a[305 /* SourceFile */] = function visitEachChildOfSourceFile(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91125
+ return context.factory.updateSourceFile(node, visitLexicalEnvironment(node.statements, visitor, context, /*start*/ undefined, /*ensureUseStrict*/ undefined, nodesVisitor));
91126
+ },
91127
+ // Transformation nodes
91128
+ _a[350 /* PartiallyEmittedExpression */] = function visitEachChildOfPartiallyEmittedExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91129
+ return context.factory.updatePartiallyEmittedExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91130
+ },
91131
+ _a[351 /* CommaListExpression */] = function visitEachChildOfCommaListExpression(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91132
+ return context.factory.updateCommaListExpression(node, nodesVisitor(node.elements, visitor, ts.isExpression));
91133
+ },
91134
+ _a);
91106
91135
  /**
91107
91136
  * Extracts the single node from a NodeArray.
91108
91137
  *
@@ -182454,9 +182483,9 @@ var ts;
182454
182483
  // - error: 5.0
182455
182484
  var ts;
182456
182485
  (function (ts) {
182457
- var MUST_MERGE = { since: "4.8", warnAfter: "4.9.0-0", message: "Decorators have been combined with modifiers. Callers should switch to an overload without a 'decorators' parameter." };
182458
- var DISALLOW_DECORATORS = { since: "4.8", warnAfter: "4.9.0-0", message: "Decorators are no longer supported for this function. Callers should switch to an overload without a 'decorators' parameter." };
182459
- var DISALLOW_DECORATORS_AND_MODIFIERS = { since: "4.8", warnAfter: "4.9.0-0", message: "Decorators and modifiers are no longer supported for this function. Callers should switch to an overload without the 'decorators' or 'modifiers' parameters." };
182486
+ var MUST_MERGE = { since: "4.8", warnAfter: "4.9.0-0", message: "Decorators have been combined with modifiers. Callers should switch to an overload that does not accept a 'decorators' parameter." };
182487
+ var DISALLOW_DECORATORS = { since: "4.8", warnAfter: "4.9.0-0", message: "Decorators are no longer supported for this function. Callers should switch to an overload that does not accept a 'decorators' parameter." };
182488
+ var DISALLOW_DECORATORS_AND_MODIFIERS = { since: "4.8", warnAfter: "4.9.0-0", message: "Decorators and modifiers are no longer supported for this function. Callers should switch to an overload that does not accept the 'decorators' and 'modifiers' parameters." };
182460
182489
  function patchNodeFactory(factory) {
182461
182490
  var createParameterDeclaration = factory.createParameterDeclaration, updateParameterDeclaration = factory.updateParameterDeclaration, createPropertyDeclaration = factory.createPropertyDeclaration, updatePropertyDeclaration = factory.updatePropertyDeclaration, createMethodDeclaration = factory.createMethodDeclaration, updateMethodDeclaration = factory.updateMethodDeclaration, createConstructorDeclaration = factory.createConstructorDeclaration, updateConstructorDeclaration = factory.updateConstructorDeclaration, createGetAccessorDeclaration = factory.createGetAccessorDeclaration, updateGetAccessorDeclaration = factory.updateGetAccessorDeclaration, createSetAccessorDeclaration = factory.createSetAccessorDeclaration, updateSetAccessorDeclaration = factory.updateSetAccessorDeclaration, createIndexSignature = factory.createIndexSignature, updateIndexSignature = factory.updateIndexSignature, createClassStaticBlockDeclaration = factory.createClassStaticBlockDeclaration, updateClassStaticBlockDeclaration = factory.updateClassStaticBlockDeclaration, createClassExpression = factory.createClassExpression, updateClassExpression = factory.updateClassExpression, createFunctionDeclaration = factory.createFunctionDeclaration, updateFunctionDeclaration = factory.updateFunctionDeclaration, createClassDeclaration = factory.createClassDeclaration, updateClassDeclaration = factory.updateClassDeclaration, createInterfaceDeclaration = factory.createInterfaceDeclaration, updateInterfaceDeclaration = factory.updateInterfaceDeclaration, createTypeAliasDeclaration = factory.createTypeAliasDeclaration, updateTypeAliasDeclaration = factory.updateTypeAliasDeclaration, createEnumDeclaration = factory.createEnumDeclaration, updateEnumDeclaration = factory.updateEnumDeclaration, createModuleDeclaration = factory.createModuleDeclaration, updateModuleDeclaration = factory.updateModuleDeclaration, createImportEqualsDeclaration = factory.createImportEqualsDeclaration, updateImportEqualsDeclaration = factory.updateImportEqualsDeclaration, createImportDeclaration = factory.createImportDeclaration, updateImportDeclaration = factory.updateImportDeclaration, createExportAssignment = factory.createExportAssignment, updateExportAssignment = factory.updateExportAssignment, createExportDeclaration = factory.createExportDeclaration, updateExportDeclaration = factory.updateExportDeclaration;
182462
182491
  factory.createParameterDeclaration = ts.buildOverload("createParameterDeclaration")
@@ -182683,7 +182712,7 @@ var ts;
182683
182712
  return (decorators === undefined || !ts.some(decorators, ts.isModifier)) &&
182684
182713
  (modifiers === undefined || !ts.some(modifiers, ts.isParameter)) &&
182685
182714
  (parameters === undefined || ts.isArray(parameters)) &&
182686
- (body === undefined || !ts.isBlock(body));
182715
+ (body === undefined || ts.isBlock(body));
182687
182716
  },
182688
182717
  })
182689
182718
  .deprecate({
@@ -182712,7 +182741,7 @@ var ts;
182712
182741
  return (decorators === undefined || !ts.some(decorators, ts.isModifier)) &&
182713
182742
  (modifiers === undefined || !ts.some(modifiers, ts.isParameter)) &&
182714
182743
  (parameters === undefined || ts.isArray(parameters)) &&
182715
- (body === undefined || !ts.isBlock(body));
182744
+ (body === undefined || ts.isBlock(body));
182716
182745
  },
182717
182746
  })
182718
182747
  .deprecate({