typescript 4.9.0-dev.20220817 → 4.9.0-dev.20220820

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.
@@ -89,7 +89,7 @@ var ts;
89
89
  // The following is baselined as a literal template type without intervention
90
90
  /** The version of the TypeScript compiler release */
91
91
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
92
- ts.version = ts.versionMajorMinor + ".0-dev.20220817";
92
+ ts.version = ts.versionMajorMinor + ".0-dev.20220820";
93
93
  /* @internal */
94
94
  var Comparison;
95
95
  (function (Comparison) {
@@ -2478,6 +2478,7 @@ var ts;
2478
2478
  var currentAssertionLevel = 0 /* None */;
2479
2479
  Debug.currentLogLevel = LogLevel.Warning;
2480
2480
  Debug.isDebugging = false;
2481
+ Debug.enableDeprecationWarnings = true;
2481
2482
  function getTypeScriptVersion() {
2482
2483
  return typeScriptVersion !== null && typeScriptVersion !== void 0 ? typeScriptVersion : (typeScriptVersion = new ts.Version(ts.version));
2483
2484
  }
@@ -3101,7 +3102,7 @@ var ts;
3101
3102
  function createWarningDeprecation(name, errorAfter, since, message) {
3102
3103
  var hasWrittenDeprecation = false;
3103
3104
  return function () {
3104
- if (!hasWrittenDeprecation) {
3105
+ if (Debug.enableDeprecationWarnings && !hasWrittenDeprecation) {
3105
3106
  log.warn(formatDeprecationMessage(name, /*error*/ false, errorAfter, since, message));
3106
3107
  hasWrittenDeprecation = true;
3107
3108
  }
@@ -21380,7 +21381,7 @@ var ts;
21380
21381
  case 165 /* Decorator */: {
21381
21382
  var parent_2 = node.parent;
21382
21383
  return ts.canHaveDecorators(parent_2) ? parent_2.modifiers :
21383
- ts.canHaveIllegalDecorators(parent_2) ? parent_2.decorators :
21384
+ ts.canHaveIllegalDecorators(parent_2) ? parent_2.illegalDecorators :
21384
21385
  undefined;
21385
21386
  }
21386
21387
  case 291 /* HeritageClause */:
@@ -23457,7 +23458,7 @@ var ts;
23457
23458
  node.body = body;
23458
23459
  node.transformFlags = propagateChildFlags(body) | 16777216 /* ContainsClassFields */;
23459
23460
  // The following properties are used only to report grammar errors
23460
- node.decorators = undefined;
23461
+ node.illegalDecorators = undefined;
23461
23462
  node.modifiers = undefined;
23462
23463
  return node;
23463
23464
  }
@@ -23469,7 +23470,7 @@ var ts;
23469
23470
  }
23470
23471
  function finishUpdateClassStaticBlockDeclaration(updated, original) {
23471
23472
  if (updated !== original) {
23472
- updated.decorators = original.decorators;
23473
+ updated.illegalDecorators = original.illegalDecorators;
23473
23474
  updated.modifiers = original.modifiers;
23474
23475
  }
23475
23476
  return update(updated, original);
@@ -23482,7 +23483,7 @@ var ts;
23482
23483
  /*type*/ undefined, body);
23483
23484
  node.transformFlags |= 1024 /* ContainsES2015 */;
23484
23485
  // The following properties are used only to report grammar errors
23485
- node.decorators = undefined;
23486
+ node.illegalDecorators = undefined;
23486
23487
  node.typeParameters = undefined;
23487
23488
  node.type = undefined;
23488
23489
  return node;
@@ -23497,7 +23498,7 @@ var ts;
23497
23498
  }
23498
23499
  function finishUpdateConstructorDeclaration(updated, original) {
23499
23500
  if (updated !== original) {
23500
- updated.decorators = original.decorators;
23501
+ updated.illegalDecorators = original.illegalDecorators;
23501
23502
  updated.typeParameters = original.typeParameters;
23502
23503
  updated.type = original.type;
23503
23504
  }
@@ -25245,7 +25246,7 @@ var ts;
25245
25246
  }
25246
25247
  }
25247
25248
  // The following properties are used only to report grammar errors
25248
- node.decorators = undefined;
25249
+ node.illegalDecorators = undefined;
25249
25250
  return node;
25250
25251
  }
25251
25252
  // @api
@@ -25263,7 +25264,7 @@ var ts;
25263
25264
  function finishUpdateFunctionDeclaration(updated, original) {
25264
25265
  if (updated !== original) {
25265
25266
  // copy children used only for error reporting
25266
- updated.decorators = original.decorators;
25267
+ updated.illegalDecorators = original.illegalDecorators;
25267
25268
  }
25268
25269
  return finishUpdateBaseSignatureDeclaration(updated, original);
25269
25270
  }
@@ -25297,7 +25298,7 @@ var ts;
25297
25298
  node.members = createNodeArray(members);
25298
25299
  node.transformFlags = 1 /* ContainsTypeScript */;
25299
25300
  // The following properties are used only to report grammar errors
25300
- node.decorators = undefined;
25301
+ node.illegalDecorators = undefined;
25301
25302
  return node;
25302
25303
  }
25303
25304
  // @api
@@ -25312,7 +25313,7 @@ var ts;
25312
25313
  }
25313
25314
  function finishUpdateInterfaceDeclaration(updated, original) {
25314
25315
  if (updated !== original) {
25315
- updated.decorators = original.decorators;
25316
+ updated.illegalDecorators = original.illegalDecorators;
25316
25317
  }
25317
25318
  return update(updated, original);
25318
25319
  }
@@ -25322,7 +25323,7 @@ var ts;
25322
25323
  node.type = type;
25323
25324
  node.transformFlags = 1 /* ContainsTypeScript */;
25324
25325
  // The following properties are used only to report grammar errors
25325
- node.decorators = undefined;
25326
+ node.illegalDecorators = undefined;
25326
25327
  return node;
25327
25328
  }
25328
25329
  // @api
@@ -25336,7 +25337,7 @@ var ts;
25336
25337
  }
25337
25338
  function finishUpdateTypeAliasDeclaration(updated, original) {
25338
25339
  if (updated !== original) {
25339
- updated.decorators = original.decorators;
25340
+ updated.illegalDecorators = original.illegalDecorators;
25340
25341
  }
25341
25342
  return update(updated, original);
25342
25343
  }
@@ -25349,7 +25350,7 @@ var ts;
25349
25350
  1 /* ContainsTypeScript */;
25350
25351
  node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; // Enum declarations cannot contain `await`
25351
25352
  // The following properties are used only to report grammar errors
25352
- node.decorators = undefined;
25353
+ node.illegalDecorators = undefined;
25353
25354
  return node;
25354
25355
  }
25355
25356
  // @api
@@ -25362,7 +25363,7 @@ var ts;
25362
25363
  }
25363
25364
  function finishUpdateEnumDeclaration(updated, original) {
25364
25365
  if (updated !== original) {
25365
- updated.decorators = original.decorators;
25366
+ updated.illegalDecorators = original.illegalDecorators;
25366
25367
  }
25367
25368
  return update(updated, original);
25368
25369
  }
@@ -25386,7 +25387,7 @@ var ts;
25386
25387
  }
25387
25388
  node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; // Module declarations cannot contain `await`.
25388
25389
  // The following properties are used only to report grammar errors
25389
- node.decorators = undefined;
25390
+ node.illegalDecorators = undefined;
25390
25391
  return node;
25391
25392
  }
25392
25393
  // @api
@@ -25399,7 +25400,7 @@ var ts;
25399
25400
  }
25400
25401
  function finishUpdateModuleDeclaration(updated, original) {
25401
25402
  if (updated !== original) {
25402
- updated.decorators = original.decorators;
25403
+ updated.illegalDecorators = original.illegalDecorators;
25403
25404
  }
25404
25405
  return update(updated, original);
25405
25406
  }
@@ -25435,7 +25436,7 @@ var ts;
25435
25436
  /*modifiers*/ undefined, name);
25436
25437
  node.transformFlags = 1 /* ContainsTypeScript */;
25437
25438
  // The following properties are used only to report grammar errors
25438
- node.decorators = undefined;
25439
+ node.illegalDecorators = undefined;
25439
25440
  node.modifiers = undefined;
25440
25441
  return node;
25441
25442
  }
@@ -25447,7 +25448,7 @@ var ts;
25447
25448
  }
25448
25449
  function finishUpdateNamespaceExportDeclaration(updated, original) {
25449
25450
  if (updated !== original) {
25450
- updated.decorators = original.decorators;
25451
+ updated.illegalDecorators = original.illegalDecorators;
25451
25452
  updated.modifiers = original.modifiers;
25452
25453
  }
25453
25454
  return update(updated, original);
@@ -25462,7 +25463,7 @@ var ts;
25462
25463
  node.transformFlags |= 1 /* ContainsTypeScript */;
25463
25464
  node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; // Import= declaration is always parsed in an Await context
25464
25465
  // The following properties are used only to report grammar errors
25465
- node.decorators = undefined;
25466
+ node.illegalDecorators = undefined;
25466
25467
  return node;
25467
25468
  }
25468
25469
  // @api
@@ -25476,7 +25477,7 @@ var ts;
25476
25477
  }
25477
25478
  function finishUpdateImportEqualsDeclaration(updated, original) {
25478
25479
  if (updated !== original) {
25479
- updated.decorators = original.decorators;
25480
+ updated.illegalDecorators = original.illegalDecorators;
25480
25481
  }
25481
25482
  return update(updated, original);
25482
25483
  }
@@ -25492,7 +25493,7 @@ var ts;
25492
25493
  propagateChildFlags(node.moduleSpecifier);
25493
25494
  node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; // always parsed in an Await context
25494
25495
  // The following properties are used only to report grammar errors
25495
- node.decorators = undefined;
25496
+ node.illegalDecorators = undefined;
25496
25497
  return node;
25497
25498
  }
25498
25499
  // @api
@@ -25506,7 +25507,7 @@ var ts;
25506
25507
  }
25507
25508
  function finishUpdateImportDeclaration(updated, original) {
25508
25509
  if (updated !== original) {
25509
- updated.decorators = original.decorators;
25510
+ updated.illegalDecorators = original.illegalDecorators;
25510
25511
  }
25511
25512
  return update(updated, original);
25512
25513
  }
@@ -25652,7 +25653,7 @@ var ts;
25652
25653
  node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.expression);
25653
25654
  node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; // always parsed in an Await context
25654
25655
  // The following properties are used only to report grammar errors
25655
- node.decorators = undefined;
25656
+ node.illegalDecorators = undefined;
25656
25657
  return node;
25657
25658
  }
25658
25659
  // @api
@@ -25664,7 +25665,7 @@ var ts;
25664
25665
  }
25665
25666
  function finishUpdateExportAssignment(updated, original) {
25666
25667
  if (updated !== original) {
25667
- updated.decorators = original.decorators;
25668
+ updated.illegalDecorators = original.illegalDecorators;
25668
25669
  }
25669
25670
  return update(updated, original);
25670
25671
  }
@@ -25682,7 +25683,7 @@ var ts;
25682
25683
  propagateChildFlags(node.moduleSpecifier);
25683
25684
  node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; // always parsed in an Await context
25684
25685
  // The following properties are used only to report grammar errors
25685
- node.decorators = undefined;
25686
+ node.illegalDecorators = undefined;
25686
25687
  return node;
25687
25688
  }
25688
25689
  // @api
@@ -25697,7 +25698,7 @@ var ts;
25697
25698
  }
25698
25699
  function finishUpdateExportDeclaration(updated, original) {
25699
25700
  if (updated !== original) {
25700
- updated.decorators = original.decorators;
25701
+ updated.illegalDecorators = original.illegalDecorators;
25701
25702
  }
25702
25703
  return update(updated, original);
25703
25704
  }
@@ -26461,7 +26462,7 @@ var ts;
26461
26462
  propagateChildFlags(node.name) |
26462
26463
  propagateChildFlags(node.initializer);
26463
26464
  // The following properties are used only to report grammar errors
26464
- node.decorators = undefined;
26465
+ node.illegalDecorators = undefined;
26465
26466
  node.modifiers = undefined;
26466
26467
  node.questionToken = undefined;
26467
26468
  node.exclamationToken = undefined;
@@ -26477,7 +26478,7 @@ var ts;
26477
26478
  function finishUpdatePropertyAssignment(updated, original) {
26478
26479
  // copy children used only for error reporting
26479
26480
  if (updated !== original) {
26480
- updated.decorators = original.decorators;
26481
+ updated.illegalDecorators = original.illegalDecorators;
26481
26482
  updated.modifiers = original.modifiers;
26482
26483
  updated.questionToken = original.questionToken;
26483
26484
  updated.exclamationToken = original.exclamationToken;
@@ -26494,7 +26495,7 @@ var ts;
26494
26495
  1024 /* ContainsES2015 */;
26495
26496
  // The following properties are used only to report grammar errors
26496
26497
  node.equalsToken = undefined;
26497
- node.decorators = undefined;
26498
+ node.illegalDecorators = undefined;
26498
26499
  node.modifiers = undefined;
26499
26500
  node.questionToken = undefined;
26500
26501
  node.exclamationToken = undefined;
@@ -26511,7 +26512,7 @@ var ts;
26511
26512
  if (updated !== original) {
26512
26513
  // copy children used only for error reporting
26513
26514
  updated.equalsToken = original.equalsToken;
26514
- updated.decorators = original.decorators;
26515
+ updated.illegalDecorators = original.illegalDecorators;
26515
26516
  updated.modifiers = original.modifiers;
26516
26517
  updated.questionToken = original.questionToken;
26517
26518
  updated.exclamationToken = original.exclamationToken;
@@ -30990,7 +30991,7 @@ var ts;
30990
30991
  visitNode(cbNode, node.default) ||
30991
30992
  visitNode(cbNode, node.expression);
30992
30993
  case 297 /* ShorthandPropertyAssignment */:
30993
- return visitNodes(cbNode, cbNodes, node.decorators) ||
30994
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
30994
30995
  visitNodes(cbNode, cbNodes, node.modifiers) ||
30995
30996
  visitNode(cbNode, node.name) ||
30996
30997
  visitNode(cbNode, node.questionToken) ||
@@ -31020,7 +31021,7 @@ var ts;
31020
31021
  visitNode(cbNode, node.type) ||
31021
31022
  visitNode(cbNode, node.initializer);
31022
31023
  case 296 /* PropertyAssignment */:
31023
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31024
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31024
31025
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31025
31026
  visitNode(cbNode, node.name) ||
31026
31027
  visitNode(cbNode, node.questionToken) ||
@@ -31037,7 +31038,7 @@ var ts;
31037
31038
  visitNode(cbNode, node.name) ||
31038
31039
  visitNode(cbNode, node.initializer);
31039
31040
  case 176 /* IndexSignature */:
31040
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31041
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31041
31042
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31042
31043
  visitNodes(cbNode, cbNodes, node.typeParameters) ||
31043
31044
  visitNodes(cbNode, cbNodes, node.parameters) ||
@@ -31075,7 +31076,7 @@ var ts;
31075
31076
  visitNodes(cbNode, cbNodes, node.parameters) ||
31076
31077
  visitNode(cbNode, node.type);
31077
31078
  case 171 /* Constructor */:
31078
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31079
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31079
31080
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31080
31081
  visitNode(cbNode, node.name) ||
31081
31082
  visitNodes(cbNode, cbNodes, node.typeParameters) ||
@@ -31097,7 +31098,7 @@ var ts;
31097
31098
  visitNode(cbNode, node.type) ||
31098
31099
  visitNode(cbNode, node.body);
31099
31100
  case 256 /* FunctionDeclaration */:
31100
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31101
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31101
31102
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31102
31103
  visitNode(cbNode, node.asteriskToken) ||
31103
31104
  visitNode(cbNode, node.name) ||
@@ -31121,7 +31122,7 @@ var ts;
31121
31122
  visitNode(cbNode, node.equalsGreaterThanToken) ||
31122
31123
  visitNode(cbNode, node.body);
31123
31124
  case 170 /* ClassStaticBlockDeclaration */:
31124
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31125
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31125
31126
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31126
31127
  visitNode(cbNode, node.body);
31127
31128
  case 178 /* TypeReference */:
@@ -31249,7 +31250,7 @@ var ts;
31249
31250
  return visitNodes(cbNode, cbNodes, node.statements) ||
31250
31251
  visitNode(cbNode, node.endOfFileToken);
31251
31252
  case 237 /* VariableStatement */:
31252
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31253
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31253
31254
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31254
31255
  visitNode(cbNode, node.declarationList);
31255
31256
  case 255 /* VariableDeclarationList */:
@@ -31320,20 +31321,20 @@ var ts;
31320
31321
  visitNodes(cbNode, cbNodes, node.heritageClauses) ||
31321
31322
  visitNodes(cbNode, cbNodes, node.members);
31322
31323
  case 258 /* InterfaceDeclaration */:
31323
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31324
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31324
31325
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31325
31326
  visitNode(cbNode, node.name) ||
31326
31327
  visitNodes(cbNode, cbNodes, node.typeParameters) ||
31327
31328
  visitNodes(cbNode, cbNodes, node.heritageClauses) ||
31328
31329
  visitNodes(cbNode, cbNodes, node.members);
31329
31330
  case 259 /* TypeAliasDeclaration */:
31330
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31331
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31331
31332
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31332
31333
  visitNode(cbNode, node.name) ||
31333
31334
  visitNodes(cbNode, cbNodes, node.typeParameters) ||
31334
31335
  visitNode(cbNode, node.type);
31335
31336
  case 260 /* EnumDeclaration */:
31336
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31337
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31337
31338
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31338
31339
  visitNode(cbNode, node.name) ||
31339
31340
  visitNodes(cbNode, cbNodes, node.members);
@@ -31341,17 +31342,17 @@ var ts;
31341
31342
  return visitNode(cbNode, node.name) ||
31342
31343
  visitNode(cbNode, node.initializer);
31343
31344
  case 261 /* ModuleDeclaration */:
31344
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31345
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31345
31346
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31346
31347
  visitNode(cbNode, node.name) ||
31347
31348
  visitNode(cbNode, node.body);
31348
31349
  case 265 /* ImportEqualsDeclaration */:
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
  visitNode(cbNode, node.moduleReference);
31353
31354
  case 266 /* ImportDeclaration */:
31354
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31355
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31355
31356
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31356
31357
  visitNode(cbNode, node.importClause) ||
31357
31358
  visitNode(cbNode, node.moduleSpecifier) ||
@@ -31365,7 +31366,7 @@ var ts;
31365
31366
  return visitNode(cbNode, node.name) ||
31366
31367
  visitNode(cbNode, node.value);
31367
31368
  case 264 /* NamespaceExportDeclaration */:
31368
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31369
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31369
31370
  visitNode(cbNode, node.name);
31370
31371
  case 268 /* NamespaceImport */:
31371
31372
  return visitNode(cbNode, node.name);
@@ -31375,7 +31376,7 @@ var ts;
31375
31376
  case 273 /* NamedExports */:
31376
31377
  return visitNodes(cbNode, cbNodes, node.elements);
31377
31378
  case 272 /* ExportDeclaration */:
31378
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31379
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31379
31380
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31380
31381
  visitNode(cbNode, node.exportClause) ||
31381
31382
  visitNode(cbNode, node.moduleSpecifier) ||
@@ -31385,7 +31386,7 @@ var ts;
31385
31386
  return visitNode(cbNode, node.propertyName) ||
31386
31387
  visitNode(cbNode, node.name);
31387
31388
  case 271 /* ExportAssignment */:
31388
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31389
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31389
31390
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31390
31391
  visitNode(cbNode, node.expression);
31391
31392
  case 223 /* TemplateExpression */:
@@ -31410,7 +31411,7 @@ var ts;
31410
31411
  case 277 /* ExternalModuleReference */:
31411
31412
  return visitNode(cbNode, node.expression);
31412
31413
  case 276 /* MissingDeclaration */:
31413
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31414
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31414
31415
  visitNodes(cbNode, cbNodes, node.modifiers);
31415
31416
  case 351 /* CommaListExpression */:
31416
31417
  return visitNodes(cbNode, cbNodes, node.elements);
@@ -33961,7 +33962,7 @@ var ts;
33961
33962
  var type = parseTypeAnnotation();
33962
33963
  parseTypeMemberSemicolon();
33963
33964
  var node = factory.createIndexSignature(modifiers, parameters, type);
33964
- node.decorators = decorators;
33965
+ node.illegalDecorators = decorators;
33965
33966
  return withJSDoc(finishNode(node, pos), hasJSDoc);
33966
33967
  }
33967
33968
  function parsePropertyOrMethodSignature(pos, hasJSDoc, modifiers) {
@@ -36121,7 +36122,7 @@ var ts;
36121
36122
  node = factory.createPropertyAssignment(name, initializer);
36122
36123
  }
36123
36124
  // Decorators, Modifiers, questionToken, and exclamationToken are not supported by property assignments and are reported in the grammar checker
36124
- node.decorators = decorators;
36125
+ node.illegalDecorators = decorators;
36125
36126
  node.modifiers = modifiers;
36126
36127
  node.questionToken = questionToken;
36127
36128
  node.exclamationToken = exclamationToken;
@@ -36769,7 +36770,7 @@ var ts;
36769
36770
  // would follow. For recovery and error reporting purposes, return an incomplete declaration.
36770
36771
  var missing = createMissingNode(276 /* MissingDeclaration */, /*reportAtCurrentPosition*/ true, ts.Diagnostics.Declaration_expected);
36771
36772
  ts.setTextRangePos(missing, pos);
36772
- missing.decorators = decorators;
36773
+ missing.illegalDecorators = decorators;
36773
36774
  missing.modifiers = modifiers;
36774
36775
  return missing;
36775
36776
  }
@@ -36912,7 +36913,7 @@ var ts;
36912
36913
  parseSemicolon();
36913
36914
  var node = factory.createVariableStatement(modifiers, declarationList);
36914
36915
  // Decorators are not allowed on a variable statement, so we keep track of them to report them in the grammar checker.
36915
- node.decorators = decorators;
36916
+ node.illegalDecorators = decorators;
36916
36917
  return withJSDoc(finishNode(node, pos), hasJSDoc);
36917
36918
  }
36918
36919
  function parseFunctionDeclaration(pos, hasJSDoc, decorators, modifiers) {
@@ -36932,7 +36933,7 @@ var ts;
36932
36933
  var body = parseFunctionBlockOrSemicolon(isGenerator | isAsync, ts.Diagnostics.or_expected);
36933
36934
  setAwaitContext(savedAwaitContext);
36934
36935
  var node = factory.createFunctionDeclaration(modifiers, asteriskToken, name, typeParameters, parameters, type, body);
36935
- node.decorators = decorators;
36936
+ node.illegalDecorators = decorators;
36936
36937
  return withJSDoc(finishNode(node, pos), hasJSDoc);
36937
36938
  }
36938
36939
  function parseConstructorName() {
@@ -36955,7 +36956,7 @@ var ts;
36955
36956
  var body = parseFunctionBlockOrSemicolon(0 /* None */, ts.Diagnostics.or_expected);
36956
36957
  var node = factory.createConstructorDeclaration(modifiers, parameters, body);
36957
36958
  // Attach invalid nodes if they exist so that we can report them in the grammar checker.
36958
- node.decorators = decorators;
36959
+ node.illegalDecorators = decorators;
36959
36960
  node.typeParameters = typeParameters;
36960
36961
  node.type = type;
36961
36962
  return withJSDoc(finishNode(node, pos), hasJSDoc);
@@ -37071,7 +37072,7 @@ var ts;
37071
37072
  parseExpectedToken(124 /* StaticKeyword */);
37072
37073
  var body = parseClassStaticBlockBody();
37073
37074
  var node = withJSDoc(finishNode(factory.createClassStaticBlockDeclaration(body), pos), hasJSDoc);
37074
- node.decorators = decorators;
37075
+ node.illegalDecorators = decorators;
37075
37076
  node.modifiers = modifiers;
37076
37077
  return node;
37077
37078
  }
@@ -37312,7 +37313,7 @@ var ts;
37312
37313
  var heritageClauses = parseHeritageClauses();
37313
37314
  var members = parseObjectTypeMembers();
37314
37315
  var node = factory.createInterfaceDeclaration(modifiers, name, typeParameters, heritageClauses, members);
37315
- node.decorators = decorators;
37316
+ node.illegalDecorators = decorators;
37316
37317
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37317
37318
  }
37318
37319
  function parseTypeAliasDeclaration(pos, hasJSDoc, decorators, modifiers) {
@@ -37323,7 +37324,7 @@ var ts;
37323
37324
  var type = token() === 138 /* IntrinsicKeyword */ && tryParse(parseKeywordAndNoDot) || parseType();
37324
37325
  parseSemicolon();
37325
37326
  var node = factory.createTypeAliasDeclaration(modifiers, name, typeParameters, type);
37326
- node.decorators = decorators;
37327
+ node.illegalDecorators = decorators;
37327
37328
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37328
37329
  }
37329
37330
  // In an ambient declaration, the grammar only allows integer literals as initializers.
@@ -37349,7 +37350,7 @@ var ts;
37349
37350
  members = createMissingList();
37350
37351
  }
37351
37352
  var node = factory.createEnumDeclaration(modifiers, name, members);
37352
- node.decorators = decorators;
37353
+ node.illegalDecorators = decorators;
37353
37354
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37354
37355
  }
37355
37356
  function parseModuleBlock() {
@@ -37373,7 +37374,7 @@ var ts;
37373
37374
  ? parseModuleOrNamespaceDeclaration(getNodePos(), /*hasJSDoc*/ false, /*decorators*/ undefined, /*modifiers*/ undefined, 4 /* NestedNamespace */ | namespaceFlag)
37374
37375
  : parseModuleBlock();
37375
37376
  var node = factory.createModuleDeclaration(modifiers, name, body, flags);
37376
- node.decorators = decorators;
37377
+ node.illegalDecorators = decorators;
37377
37378
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37378
37379
  }
37379
37380
  function parseAmbientExternalModuleDeclaration(pos, hasJSDoc, decorators, modifiers) {
@@ -37396,7 +37397,7 @@ var ts;
37396
37397
  parseSemicolon();
37397
37398
  }
37398
37399
  var node = factory.createModuleDeclaration(modifiers, name, body, flags);
37399
- node.decorators = decorators;
37400
+ node.illegalDecorators = decorators;
37400
37401
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37401
37402
  }
37402
37403
  function parseModuleDeclaration(pos, hasJSDoc, decorators, modifiers) {
@@ -37436,7 +37437,7 @@ var ts;
37436
37437
  parseSemicolon();
37437
37438
  var node = factory.createNamespaceExportDeclaration(name);
37438
37439
  // NamespaceExportDeclaration nodes cannot have decorators or modifiers, so we attach them here so we can report them in the grammar checker
37439
- node.decorators = decorators;
37440
+ node.illegalDecorators = decorators;
37440
37441
  node.modifiers = modifiers;
37441
37442
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37442
37443
  }
@@ -37476,7 +37477,7 @@ var ts;
37476
37477
  }
37477
37478
  parseSemicolon();
37478
37479
  var node = factory.createImportDeclaration(modifiers, importClause, moduleSpecifier, assertClause);
37479
- node.decorators = decorators;
37480
+ node.illegalDecorators = decorators;
37480
37481
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37481
37482
  }
37482
37483
  function parseAssertEntry() {
@@ -37521,7 +37522,7 @@ var ts;
37521
37522
  var moduleReference = parseModuleReference();
37522
37523
  parseSemicolon();
37523
37524
  var node = factory.createImportEqualsDeclaration(modifiers, isTypeOnly, identifier, moduleReference);
37524
- node.decorators = decorators;
37525
+ node.illegalDecorators = decorators;
37525
37526
  var finished = withJSDoc(finishNode(node, pos), hasJSDoc);
37526
37527
  return finished;
37527
37528
  }
@@ -37711,7 +37712,7 @@ var ts;
37711
37712
  parseSemicolon();
37712
37713
  setAwaitContext(savedAwaitContext);
37713
37714
  var node = factory.createExportDeclaration(modifiers, isTypeOnly, exportClause, moduleSpecifier, assertClause);
37714
- node.decorators = decorators;
37715
+ node.illegalDecorators = decorators;
37715
37716
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37716
37717
  }
37717
37718
  function parseExportAssignment(pos, hasJSDoc, decorators, modifiers) {
@@ -37728,7 +37729,7 @@ var ts;
37728
37729
  parseSemicolon();
37729
37730
  setAwaitContext(savedAwaitContext);
37730
37731
  var node = factory.createExportAssignment(modifiers, isExportEquals, expression);
37731
- node.decorators = decorators;
37732
+ node.illegalDecorators = decorators;
37732
37733
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37733
37734
  }
37734
37735
  var ParsingContext;
@@ -43092,10 +43093,12 @@ var ts;
43092
43093
  if (resolved) {
43093
43094
  var fileName = resolved.fileName, packageId = resolved.packageId;
43094
43095
  var resolvedFileName = options.preserveSymlinks ? fileName : realPath(fileName, host, traceEnabled);
43096
+ var pathsAreEqual = arePathsEqual(fileName, resolvedFileName, host);
43095
43097
  resolvedTypeReferenceDirective = {
43096
43098
  primary: primary,
43097
- resolvedFileName: resolvedFileName,
43098
- originalPath: arePathsEqual(fileName, resolvedFileName, host) ? undefined : fileName,
43099
+ // If the fileName and realpath are differing only in casing prefer fileName so that we can issue correct errors for casing under forceConsistentCasingInFileNames
43100
+ resolvedFileName: pathsAreEqual ? fileName : resolvedFileName,
43101
+ originalPath: pathsAreEqual ? undefined : fileName,
43099
43102
  packageId: packageId,
43100
43103
  isExternalLibraryImport: pathContainsNodeModules(fileName),
43101
43104
  };
@@ -43880,8 +43883,10 @@ var ts;
43880
43883
  var resolvedValue = resolved_1.value;
43881
43884
  if (!compilerOptions.preserveSymlinks && resolvedValue && !resolvedValue.originalPath) {
43882
43885
  var path = realPath(resolvedValue.path, host, traceEnabled);
43883
- var originalPath = arePathsEqual(path, resolvedValue.path, host) ? undefined : resolvedValue.path;
43884
- resolvedValue = __assign(__assign({}, resolvedValue), { path: path, originalPath: originalPath });
43886
+ var pathsAreEqual = arePathsEqual(path, resolvedValue.path, host);
43887
+ var originalPath = pathsAreEqual ? undefined : resolvedValue.path;
43888
+ // If the path and realpath are differing only in casing prefer path so that we can issue correct errors for casing under forceConsistentCasingInFileNames
43889
+ resolvedValue = __assign(__assign({}, resolvedValue), { path: pathsAreEqual ? resolvedValue.path : path, originalPath: originalPath });
43885
43890
  }
43886
43891
  // For node_modules lookups, get the real path so that multiple accesses to an `npm link`-ed module do not create duplicate files.
43887
43892
  return { value: resolvedValue && { resolved: resolvedValue, isExternalLibraryImport: true } };
@@ -51022,41 +51027,61 @@ var ts;
51022
51027
  return typeof file.externalModuleIndicator !== "object" && !resolveExportByName(moduleSymbol, ts.escapeLeadingUnderscores("__esModule"), /*sourceNode*/ undefined, dontResolveAlias);
51023
51028
  }
51024
51029
  function getTargetOfImportClause(node, dontResolveAlias) {
51025
- var _a;
51026
51030
  var moduleSymbol = resolveExternalModuleName(node, node.parent.moduleSpecifier);
51027
51031
  if (moduleSymbol) {
51028
- var exportDefaultSymbol = void 0;
51029
- if (ts.isShorthandAmbientModuleSymbol(moduleSymbol)) {
51030
- exportDefaultSymbol = moduleSymbol;
51031
- }
51032
- else {
51033
- exportDefaultSymbol = resolveExportByName(moduleSymbol, "default" /* Default */, node, dontResolveAlias);
51034
- }
51035
- var file = (_a = moduleSymbol.declarations) === null || _a === void 0 ? void 0 : _a.find(ts.isSourceFile);
51036
- var hasDefaultOnly = isOnlyImportedAsDefault(node.parent.moduleSpecifier);
51037
- var hasSyntheticDefault = canHaveSyntheticDefault(file, moduleSymbol, dontResolveAlias, node.parent.moduleSpecifier);
51038
- if (!exportDefaultSymbol && !hasSyntheticDefault && !hasDefaultOnly) {
51039
- if (hasExportAssignmentSymbol(moduleSymbol)) {
51040
- var compilerOptionName = moduleKind >= ts.ModuleKind.ES2015 ? "allowSyntheticDefaultImports" : "esModuleInterop";
51041
- var exportEqualsSymbol = moduleSymbol.exports.get("export=" /* ExportEquals */);
51042
- var exportAssignment = exportEqualsSymbol.valueDeclaration;
51043
- var err = error(node.name, ts.Diagnostics.Module_0_can_only_be_default_imported_using_the_1_flag, symbolToString(moduleSymbol), compilerOptionName);
51044
- if (exportAssignment) {
51045
- 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));
51046
- }
51047
- }
51048
- else {
51049
- reportNonDefaultExport(moduleSymbol, node);
51032
+ return getTargetofModuleDefault(moduleSymbol, node, dontResolveAlias);
51033
+ }
51034
+ }
51035
+ function getTargetofModuleDefault(moduleSymbol, node, dontResolveAlias) {
51036
+ var _a;
51037
+ var exportDefaultSymbol;
51038
+ if (ts.isShorthandAmbientModuleSymbol(moduleSymbol)) {
51039
+ exportDefaultSymbol = moduleSymbol;
51040
+ }
51041
+ else {
51042
+ exportDefaultSymbol = resolveExportByName(moduleSymbol, "default" /* Default */, node, dontResolveAlias);
51043
+ }
51044
+ var file = (_a = moduleSymbol.declarations) === null || _a === void 0 ? void 0 : _a.find(ts.isSourceFile);
51045
+ var specifier = getModuleSpecifierForImportOrExport(node);
51046
+ if (!specifier) {
51047
+ return exportDefaultSymbol;
51048
+ }
51049
+ var hasDefaultOnly = isOnlyImportedAsDefault(specifier);
51050
+ var hasSyntheticDefault = canHaveSyntheticDefault(file, moduleSymbol, dontResolveAlias, specifier);
51051
+ if (!exportDefaultSymbol && !hasSyntheticDefault && !hasDefaultOnly) {
51052
+ if (hasExportAssignmentSymbol(moduleSymbol)) {
51053
+ var compilerOptionName = moduleKind >= ts.ModuleKind.ES2015 ? "allowSyntheticDefaultImports" : "esModuleInterop";
51054
+ var exportEqualsSymbol = moduleSymbol.exports.get("export=" /* ExportEquals */);
51055
+ var exportAssignment = exportEqualsSymbol.valueDeclaration;
51056
+ var err = error(node.name, ts.Diagnostics.Module_0_can_only_be_default_imported_using_the_1_flag, symbolToString(moduleSymbol), compilerOptionName);
51057
+ if (exportAssignment) {
51058
+ 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));
51050
51059
  }
51051
51060
  }
51052
- else if (hasSyntheticDefault || hasDefaultOnly) {
51053
- // per emit behavior, a synthetic default overrides a "real" .default member if `__esModule` is not present
51054
- var resolved = resolveExternalModuleSymbol(moduleSymbol, dontResolveAlias) || resolveSymbol(moduleSymbol, dontResolveAlias);
51055
- markSymbolOfAliasDeclarationIfTypeOnly(node, moduleSymbol, resolved, /*overwriteTypeOnly*/ false);
51056
- return resolved;
51061
+ else if (ts.isImportClause(node)) {
51062
+ reportNonDefaultExport(moduleSymbol, node);
51057
51063
  }
51058
- markSymbolOfAliasDeclarationIfTypeOnly(node, exportDefaultSymbol, /*finalTarget*/ undefined, /*overwriteTypeOnly*/ false);
51059
- return exportDefaultSymbol;
51064
+ else {
51065
+ errorNoModuleMemberSymbol(moduleSymbol, moduleSymbol, node, ts.isImportOrExportSpecifier(node) && node.propertyName || node.name);
51066
+ }
51067
+ }
51068
+ else if (hasSyntheticDefault || hasDefaultOnly) {
51069
+ // per emit behavior, a synthetic default overrides a "real" .default member if `__esModule` is not present
51070
+ var resolved = resolveExternalModuleSymbol(moduleSymbol, dontResolveAlias) || resolveSymbol(moduleSymbol, dontResolveAlias);
51071
+ markSymbolOfAliasDeclarationIfTypeOnly(node, moduleSymbol, resolved, /*overwriteTypeOnly*/ false);
51072
+ return resolved;
51073
+ }
51074
+ markSymbolOfAliasDeclarationIfTypeOnly(node, exportDefaultSymbol, /*finalTarget*/ undefined, /*overwriteTypeOnly*/ false);
51075
+ return exportDefaultSymbol;
51076
+ }
51077
+ function getModuleSpecifierForImportOrExport(node) {
51078
+ switch (node.kind) {
51079
+ case 267 /* ImportClause */: return node.parent.moduleSpecifier;
51080
+ case 265 /* ImportEqualsDeclaration */: return ts.isExternalModuleReference(node.moduleReference) ? node.moduleReference.expression : undefined;
51081
+ case 268 /* NamespaceImport */: return node.parent.parent.moduleSpecifier;
51082
+ case 270 /* ImportSpecifier */: return node.parent.parent.parent.moduleSpecifier;
51083
+ case 275 /* ExportSpecifier */: return node.parent.parent.moduleSpecifier;
51084
+ default: return ts.Debug.assertNever(node);
51060
51085
  }
51061
51086
  }
51062
51087
  function reportNonDefaultExport(moduleSymbol, node) {
@@ -51146,7 +51171,7 @@ var ts;
51146
51171
  }
51147
51172
  }
51148
51173
  function getExternalModuleMember(node, specifier, dontResolveAlias) {
51149
- var _a, _b;
51174
+ var _a;
51150
51175
  if (dontResolveAlias === void 0) { dontResolveAlias = false; }
51151
51176
  var moduleSpecifier = ts.getExternalModuleRequireArgument(node) || node.moduleSpecifier;
51152
51177
  var moduleSymbol = resolveExternalModuleName(node, moduleSpecifier); // TODO: GH#18217
@@ -51182,29 +51207,33 @@ var ts;
51182
51207
  combineValueAndTypeSymbols(symbolFromVariable, symbolFromModule) :
51183
51208
  symbolFromModule || symbolFromVariable;
51184
51209
  if (!symbol) {
51185
- var moduleName = getFullyQualifiedName(moduleSymbol, node);
51186
- var declarationName = ts.declarationNameToString(name);
51187
- var suggestion = getSuggestedSymbolForNonexistentModule(name, targetSymbol);
51188
- if (suggestion !== undefined) {
51189
- var suggestionName = symbolToString(suggestion);
51190
- var diagnostic = error(name, ts.Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2, moduleName, declarationName, suggestionName);
51191
- if (suggestion.valueDeclaration) {
51192
- ts.addRelatedInfo(diagnostic, ts.createDiagnosticForNode(suggestion.valueDeclaration, ts.Diagnostics._0_is_declared_here, suggestionName));
51193
- }
51194
- }
51195
- else {
51196
- if ((_b = moduleSymbol.exports) === null || _b === void 0 ? void 0 : _b.has("default" /* Default */)) {
51197
- error(name, ts.Diagnostics.Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead, moduleName, declarationName);
51198
- }
51199
- else {
51200
- reportNonExportedMember(node, name, declarationName, moduleSymbol, moduleName);
51201
- }
51202
- }
51210
+ errorNoModuleMemberSymbol(moduleSymbol, targetSymbol, node, name);
51203
51211
  }
51204
51212
  return symbol;
51205
51213
  }
51206
51214
  }
51207
51215
  }
51216
+ function errorNoModuleMemberSymbol(moduleSymbol, targetSymbol, node, name) {
51217
+ var _a;
51218
+ var moduleName = getFullyQualifiedName(moduleSymbol, node);
51219
+ var declarationName = ts.declarationNameToString(name);
51220
+ var suggestion = getSuggestedSymbolForNonexistentModule(name, targetSymbol);
51221
+ if (suggestion !== undefined) {
51222
+ var suggestionName = symbolToString(suggestion);
51223
+ var diagnostic = error(name, ts.Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2, moduleName, declarationName, suggestionName);
51224
+ if (suggestion.valueDeclaration) {
51225
+ ts.addRelatedInfo(diagnostic, ts.createDiagnosticForNode(suggestion.valueDeclaration, ts.Diagnostics._0_is_declared_here, suggestionName));
51226
+ }
51227
+ }
51228
+ else {
51229
+ if ((_a = moduleSymbol.exports) === null || _a === void 0 ? void 0 : _a.has("default" /* Default */)) {
51230
+ error(name, ts.Diagnostics.Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead, moduleName, declarationName);
51231
+ }
51232
+ else {
51233
+ reportNonExportedMember(node, name, declarationName, moduleSymbol, moduleName);
51234
+ }
51235
+ }
51236
+ }
51208
51237
  function reportNonExportedMember(node, name, declarationName, moduleSymbol, moduleName) {
51209
51238
  var _a, _b;
51210
51239
  var localSymbol = (_b = (_a = moduleSymbol.valueDeclaration) === null || _a === void 0 ? void 0 : _a.locals) === null || _b === void 0 ? void 0 : _b.get(name.escapedText);
@@ -51250,6 +51279,13 @@ var ts;
51250
51279
  }
51251
51280
  }
51252
51281
  function getTargetOfImportSpecifier(node, dontResolveAlias) {
51282
+ if (ts.isImportSpecifier(node) && ts.idText(node.propertyName || node.name) === "default" /* Default */) {
51283
+ var specifier = getModuleSpecifierForImportOrExport(node);
51284
+ var moduleSymbol = specifier && resolveExternalModuleName(node, specifier);
51285
+ if (moduleSymbol) {
51286
+ return getTargetofModuleDefault(moduleSymbol, node, dontResolveAlias);
51287
+ }
51288
+ }
51253
51289
  var root = ts.isBindingElement(node) ? ts.getRootDeclaration(node) : node.parent.parent.parent;
51254
51290
  var commonJSPropertyAccess = getCommonJSPropertyAccess(root);
51255
51291
  var resolved = getExternalModuleMember(root, commonJSPropertyAccess || node, dontResolveAlias);
@@ -51271,6 +51307,13 @@ var ts;
51271
51307
  return resolved;
51272
51308
  }
51273
51309
  function getTargetOfExportSpecifier(node, meaning, dontResolveAlias) {
51310
+ if (ts.idText(node.propertyName || node.name) === "default" /* Default */) {
51311
+ var specifier = getModuleSpecifierForImportOrExport(node);
51312
+ var moduleSymbol = specifier && resolveExternalModuleName(node, specifier);
51313
+ if (moduleSymbol) {
51314
+ return getTargetofModuleDefault(moduleSymbol, node, !!dontResolveAlias);
51315
+ }
51316
+ }
51274
51317
  var resolved = node.parent.parent.moduleSpecifier ?
51275
51318
  getExternalModuleMember(node.parent.parent, node, dontResolveAlias) :
51276
51319
  resolveEntityName(node.propertyName || node.name, meaning, /*ignoreErrors*/ false, dontResolveAlias);
@@ -55719,7 +55762,7 @@ var ts;
55719
55762
  // This is an else/if as accessors and properties can't merge in TS, but might in JS
55720
55763
  // If this happens, we assume the accessor takes priority, as it imposes more constraints
55721
55764
  else if (p.flags & (4 /* Property */ | 3 /* Variable */ | 98304 /* Accessor */)) {
55722
- 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),
55765
+ 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),
55723
55766
  // TODO: https://github.com/microsoft/TypeScript/pull/32372#discussion_r328386357
55724
55767
  // interface members can't have initializers, however class members _can_
55725
55768
  /*initializer*/ undefined), ((_d = p.declarations) === null || _d === void 0 ? void 0 : _d.find(ts.or(ts.isPropertyDeclaration, ts.isVariableDeclaration))) || firstPropertyLikeDecl);
@@ -88743,7 +88786,7 @@ var ts;
88743
88786
  return checkGrammarDecorators(node) || checkGrammarModifiers(node);
88744
88787
  }
88745
88788
  function checkGrammarDecorators(node) {
88746
- if (ts.canHaveIllegalDecorators(node) && ts.some(node.decorators)) {
88789
+ if (ts.canHaveIllegalDecorators(node) && ts.some(node.illegalDecorators)) {
88747
88790
  return grammarErrorOnFirstToken(node, ts.Diagnostics.Decorators_are_not_valid_here);
88748
88791
  }
88749
88792
  if (!ts.canHaveDecorators(node) || !ts.hasDecorators(node)) {
@@ -90396,6 +90439,7 @@ var ts;
90396
90439
  })(ts || (ts = {}));
90397
90440
  var ts;
90398
90441
  (function (ts) {
90442
+ var _a;
90399
90443
  function visitNode(node, visitor, test, lift) {
90400
90444
  if (node === undefined || visitor === undefined) {
90401
90445
  return node;
@@ -90610,12 +90654,10 @@ var ts;
90610
90654
  return updated;
90611
90655
  }
90612
90656
  ts.visitFunctionBody = visitFunctionBody;
90613
- /**
90614
- * Visits an iteration body, adding any block-scoped variables required by the transformation.
90615
- */
90616
- function visitIterationBody(body, visitor, context) {
90657
+ function visitIterationBody(body, visitor, context, nodeVisitor) {
90658
+ if (nodeVisitor === void 0) { nodeVisitor = visitNode; }
90617
90659
  context.startBlockScope();
90618
- var updated = visitNode(body, visitor, ts.isStatement, context.factory.liftToBlock);
90660
+ var updated = nodeVisitor(body, visitor, ts.isStatement, context.factory.liftToBlock);
90619
90661
  var declarations = context.endBlockScope();
90620
90662
  if (ts.some(declarations)) {
90621
90663
  if (ts.isBlock(updated)) {
@@ -90634,456 +90676,443 @@ var ts;
90634
90676
  if (node === undefined) {
90635
90677
  return undefined;
90636
90678
  }
90637
- var kind = node.kind;
90638
- // No need to visit nodes with no children.
90639
- if ((kind > 0 /* FirstToken */ && kind <= 160 /* LastToken */) || kind === 192 /* ThisType */) {
90640
- return node;
90641
- }
90642
- var factory = context.factory;
90643
- switch (kind) {
90644
- // Names
90645
- case 79 /* Identifier */:
90646
- ts.Debug.type(node);
90647
- return factory.updateIdentifier(node, nodesVisitor(node.typeArguments, visitor, ts.isTypeNodeOrTypeParameterDeclaration));
90648
- case 161 /* QualifiedName */:
90649
- ts.Debug.type(node);
90650
- return factory.updateQualifiedName(node, nodeVisitor(node.left, visitor, ts.isEntityName), nodeVisitor(node.right, visitor, ts.isIdentifier));
90651
- case 162 /* ComputedPropertyName */:
90652
- ts.Debug.type(node);
90653
- return factory.updateComputedPropertyName(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90654
- // Signature elements
90655
- case 163 /* TypeParameter */:
90656
- ts.Debug.type(node);
90657
- 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));
90658
- case 164 /* Parameter */:
90659
- ts.Debug.type(node);
90660
- 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));
90661
- case 165 /* Decorator */:
90662
- ts.Debug.type(node);
90663
- return factory.updateDecorator(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90664
- // Type elements
90665
- case 166 /* PropertySignature */:
90666
- ts.Debug.type(node);
90667
- 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));
90668
- case 167 /* PropertyDeclaration */:
90669
- ts.Debug.type(node);
90670
- return factory.updatePropertyDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.name, visitor, ts.isPropertyName),
90671
- // QuestionToken and ExclamationToken is uniqued in Property Declaration and the signature of 'updateProperty' is that too
90672
- nodeVisitor(node.questionToken || node.exclamationToken, tokenVisitor, ts.isQuestionOrExclamationToken), nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.initializer, visitor, ts.isExpression));
90673
- case 168 /* MethodSignature */:
90674
- ts.Debug.type(node);
90675
- 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));
90676
- case 169 /* MethodDeclaration */:
90677
- ts.Debug.type(node);
90678
- 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));
90679
- case 171 /* Constructor */:
90680
- ts.Debug.type(node);
90681
- return factory.updateConstructorDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), visitParameterList(node.parameters, visitor, context, nodesVisitor), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90682
- case 172 /* GetAccessor */:
90683
- ts.Debug.type(node);
90684
- 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));
90685
- case 173 /* SetAccessor */:
90686
- ts.Debug.type(node);
90687
- 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));
90688
- case 170 /* ClassStaticBlockDeclaration */:
90689
- ts.Debug.type(node);
90690
- context.startLexicalEnvironment();
90691
- context.suspendLexicalEnvironment();
90692
- return factory.updateClassStaticBlockDeclaration(node, visitFunctionBody(node.body, visitor, context, nodeVisitor));
90693
- case 174 /* CallSignature */:
90694
- ts.Debug.type(node);
90695
- return factory.updateCallSignature(node, nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90696
- case 175 /* ConstructSignature */:
90697
- ts.Debug.type(node);
90698
- return factory.updateConstructSignature(node, nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90699
- case 176 /* IndexSignature */:
90700
- ts.Debug.type(node);
90701
- return factory.updateIndexSignature(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90702
- // Types
90703
- case 177 /* TypePredicate */:
90704
- ts.Debug.type(node);
90705
- return factory.updateTypePredicateNode(node, nodeVisitor(node.assertsModifier, visitor, ts.isAssertsKeyword), nodeVisitor(node.parameterName, visitor, ts.isIdentifierOrThisTypeNode), nodeVisitor(node.type, visitor, ts.isTypeNode));
90706
- case 178 /* TypeReference */:
90707
- ts.Debug.type(node);
90708
- return factory.updateTypeReferenceNode(node, nodeVisitor(node.typeName, visitor, ts.isEntityName), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode));
90709
- case 179 /* FunctionType */:
90710
- ts.Debug.type(node);
90711
- return factory.updateFunctionTypeNode(node, nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90712
- case 180 /* ConstructorType */:
90713
- ts.Debug.type(node);
90714
- 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));
90715
- case 181 /* TypeQuery */:
90716
- ts.Debug.type(node);
90717
- return factory.updateTypeQueryNode(node, nodeVisitor(node.exprName, visitor, ts.isEntityName), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode));
90718
- case 182 /* TypeLiteral */:
90719
- ts.Debug.type(node);
90720
- return factory.updateTypeLiteralNode(node, nodesVisitor(node.members, visitor, ts.isTypeElement));
90721
- case 183 /* ArrayType */:
90722
- ts.Debug.type(node);
90723
- return factory.updateArrayTypeNode(node, nodeVisitor(node.elementType, visitor, ts.isTypeNode));
90724
- case 184 /* TupleType */:
90725
- ts.Debug.type(node);
90726
- return factory.updateTupleTypeNode(node, nodesVisitor(node.elements, visitor, ts.isTypeNode));
90727
- case 185 /* OptionalType */:
90728
- ts.Debug.type(node);
90729
- return factory.updateOptionalTypeNode(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90730
- case 186 /* RestType */:
90731
- ts.Debug.type(node);
90732
- return factory.updateRestTypeNode(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90733
- case 187 /* UnionType */:
90734
- ts.Debug.type(node);
90735
- return factory.updateUnionTypeNode(node, nodesVisitor(node.types, visitor, ts.isTypeNode));
90736
- case 188 /* IntersectionType */:
90737
- ts.Debug.type(node);
90738
- return factory.updateIntersectionTypeNode(node, nodesVisitor(node.types, visitor, ts.isTypeNode));
90739
- case 189 /* ConditionalType */:
90740
- ts.Debug.type(node);
90741
- 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));
90742
- case 190 /* InferType */:
90743
- ts.Debug.type(node);
90744
- return factory.updateInferTypeNode(node, nodeVisitor(node.typeParameter, visitor, ts.isTypeParameterDeclaration));
90745
- case 200 /* ImportType */:
90746
- ts.Debug.type(node);
90747
- 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);
90748
- case 295 /* ImportTypeAssertionContainer */:
90749
- ts.Debug.type(node);
90750
- return factory.updateImportTypeAssertionContainer(node, nodeVisitor(node.assertClause, visitor, ts.isNode), node.multiLine);
90751
- case 197 /* NamedTupleMember */:
90752
- ts.Debug.type(node);
90753
- 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));
90754
- case 191 /* ParenthesizedType */:
90755
- ts.Debug.type(node);
90756
- return factory.updateParenthesizedType(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90757
- case 193 /* TypeOperator */:
90758
- ts.Debug.type(node);
90759
- return factory.updateTypeOperatorNode(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90760
- case 194 /* IndexedAccessType */:
90761
- ts.Debug.type(node);
90762
- return factory.updateIndexedAccessTypeNode(node, nodeVisitor(node.objectType, visitor, ts.isTypeNode), nodeVisitor(node.indexType, visitor, ts.isTypeNode));
90763
- case 195 /* MappedType */:
90764
- ts.Debug.type(node);
90765
- 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));
90766
- case 196 /* LiteralType */:
90767
- ts.Debug.type(node);
90768
- return factory.updateLiteralTypeNode(node, nodeVisitor(node.literal, visitor, ts.isExpression));
90769
- case 198 /* TemplateLiteralType */:
90770
- ts.Debug.type(node);
90771
- return factory.updateTemplateLiteralType(node, nodeVisitor(node.head, visitor, ts.isTemplateHead), nodesVisitor(node.templateSpans, visitor, ts.isTemplateLiteralTypeSpan));
90772
- case 199 /* TemplateLiteralTypeSpan */:
90773
- ts.Debug.type(node);
90774
- return factory.updateTemplateLiteralTypeSpan(node, nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.literal, visitor, ts.isTemplateMiddleOrTemplateTail));
90775
- // Binding patterns
90776
- case 201 /* ObjectBindingPattern */:
90777
- ts.Debug.type(node);
90778
- return factory.updateObjectBindingPattern(node, nodesVisitor(node.elements, visitor, ts.isBindingElement));
90779
- case 202 /* ArrayBindingPattern */:
90780
- ts.Debug.type(node);
90781
- return factory.updateArrayBindingPattern(node, nodesVisitor(node.elements, visitor, ts.isArrayBindingElement));
90782
- case 203 /* BindingElement */:
90783
- ts.Debug.type(node);
90784
- 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));
90785
- // Expression
90786
- case 204 /* ArrayLiteralExpression */:
90787
- ts.Debug.type(node);
90788
- return factory.updateArrayLiteralExpression(node, nodesVisitor(node.elements, visitor, ts.isExpression));
90789
- case 205 /* ObjectLiteralExpression */:
90790
- ts.Debug.type(node);
90791
- return factory.updateObjectLiteralExpression(node, nodesVisitor(node.properties, visitor, ts.isObjectLiteralElementLike));
90792
- case 206 /* PropertyAccessExpression */:
90793
- if (node.flags & 32 /* OptionalChain */) {
90794
- ts.Debug.type(node);
90795
- return factory.updatePropertyAccessChain(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.questionDotToken, tokenVisitor, ts.isQuestionDotToken), nodeVisitor(node.name, visitor, ts.isMemberName));
90796
- }
90797
- ts.Debug.type(node);
90798
- return factory.updatePropertyAccessExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.name, visitor, ts.isMemberName));
90799
- case 207 /* ElementAccessExpression */:
90800
- if (node.flags & 32 /* OptionalChain */) {
90801
- ts.Debug.type(node);
90802
- return factory.updateElementAccessChain(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.questionDotToken, tokenVisitor, ts.isQuestionDotToken), nodeVisitor(node.argumentExpression, visitor, ts.isExpression));
90803
- }
90804
- ts.Debug.type(node);
90805
- return factory.updateElementAccessExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.argumentExpression, visitor, ts.isExpression));
90806
- case 208 /* CallExpression */:
90807
- if (node.flags & 32 /* OptionalChain */) {
90808
- ts.Debug.type(node);
90809
- 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));
90810
- }
90811
- ts.Debug.type(node);
90812
- return factory.updateCallExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodesVisitor(node.arguments, visitor, ts.isExpression));
90813
- case 209 /* NewExpression */:
90814
- ts.Debug.type(node);
90815
- return factory.updateNewExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodesVisitor(node.arguments, visitor, ts.isExpression));
90816
- case 210 /* TaggedTemplateExpression */:
90817
- ts.Debug.type(node);
90818
- return factory.updateTaggedTemplateExpression(node, nodeVisitor(node.tag, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodeVisitor(node.template, visitor, ts.isTemplateLiteral));
90819
- case 211 /* TypeAssertionExpression */:
90820
- ts.Debug.type(node);
90821
- return factory.updateTypeAssertion(node, nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.expression, visitor, ts.isExpression));
90822
- case 212 /* ParenthesizedExpression */:
90823
- ts.Debug.type(node);
90824
- return factory.updateParenthesizedExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90825
- case 213 /* FunctionExpression */:
90826
- ts.Debug.type(node);
90827
- 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));
90828
- case 214 /* ArrowFunction */:
90829
- ts.Debug.type(node);
90830
- 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));
90831
- case 215 /* DeleteExpression */:
90832
- ts.Debug.type(node);
90833
- return factory.updateDeleteExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90834
- case 216 /* TypeOfExpression */:
90835
- ts.Debug.type(node);
90836
- return factory.updateTypeOfExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90837
- case 217 /* VoidExpression */:
90838
- ts.Debug.type(node);
90839
- return factory.updateVoidExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90840
- case 218 /* AwaitExpression */:
90841
- ts.Debug.type(node);
90842
- return factory.updateAwaitExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90843
- case 219 /* PrefixUnaryExpression */:
90844
- ts.Debug.type(node);
90845
- return factory.updatePrefixUnaryExpression(node, nodeVisitor(node.operand, visitor, ts.isExpression));
90846
- case 220 /* PostfixUnaryExpression */:
90847
- ts.Debug.type(node);
90848
- return factory.updatePostfixUnaryExpression(node, nodeVisitor(node.operand, visitor, ts.isExpression));
90849
- case 221 /* BinaryExpression */:
90850
- ts.Debug.type(node);
90851
- return factory.updateBinaryExpression(node, nodeVisitor(node.left, visitor, ts.isExpression), nodeVisitor(node.operatorToken, tokenVisitor, ts.isBinaryOperatorToken), nodeVisitor(node.right, visitor, ts.isExpression));
90852
- case 222 /* ConditionalExpression */:
90853
- ts.Debug.type(node);
90854
- 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));
90855
- case 223 /* TemplateExpression */:
90856
- ts.Debug.type(node);
90857
- return factory.updateTemplateExpression(node, nodeVisitor(node.head, visitor, ts.isTemplateHead), nodesVisitor(node.templateSpans, visitor, ts.isTemplateSpan));
90858
- case 224 /* YieldExpression */:
90859
- ts.Debug.type(node);
90860
- return factory.updateYieldExpression(node, nodeVisitor(node.asteriskToken, tokenVisitor, ts.isAsteriskToken), nodeVisitor(node.expression, visitor, ts.isExpression));
90861
- case 225 /* SpreadElement */:
90862
- ts.Debug.type(node);
90863
- return factory.updateSpreadElement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90864
- case 226 /* ClassExpression */:
90865
- ts.Debug.type(node);
90866
- 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));
90867
- case 228 /* ExpressionWithTypeArguments */:
90868
- ts.Debug.type(node);
90869
- return factory.updateExpressionWithTypeArguments(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode));
90870
- case 229 /* AsExpression */:
90871
- ts.Debug.type(node);
90872
- return factory.updateAsExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.type, visitor, ts.isTypeNode));
90873
- case 230 /* NonNullExpression */:
90874
- if (node.flags & 32 /* OptionalChain */) {
90875
- ts.Debug.type(node);
90876
- return factory.updateNonNullChain(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90877
- }
90878
- ts.Debug.type(node);
90879
- return factory.updateNonNullExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90880
- case 231 /* MetaProperty */:
90881
- ts.Debug.type(node);
90882
- return factory.updateMetaProperty(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
90883
- // Misc
90884
- case 233 /* TemplateSpan */:
90885
- ts.Debug.type(node);
90886
- return factory.updateTemplateSpan(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.literal, visitor, ts.isTemplateMiddleOrTemplateTail));
90887
- // Element
90888
- case 235 /* Block */:
90889
- ts.Debug.type(node);
90890
- return factory.updateBlock(node, nodesVisitor(node.statements, visitor, ts.isStatement));
90891
- case 237 /* VariableStatement */:
90892
- ts.Debug.type(node);
90893
- return factory.updateVariableStatement(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.declarationList, visitor, ts.isVariableDeclarationList));
90894
- case 238 /* ExpressionStatement */:
90895
- ts.Debug.type(node);
90896
- return factory.updateExpressionStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90897
- case 239 /* IfStatement */:
90898
- ts.Debug.type(node);
90899
- 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));
90900
- case 240 /* DoStatement */:
90901
- ts.Debug.type(node);
90902
- return factory.updateDoStatement(node, visitIterationBody(node.statement, visitor, context), nodeVisitor(node.expression, visitor, ts.isExpression));
90903
- case 241 /* WhileStatement */:
90904
- ts.Debug.type(node);
90905
- return factory.updateWhileStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), visitIterationBody(node.statement, visitor, context));
90906
- case 242 /* ForStatement */:
90907
- ts.Debug.type(node);
90908
- 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));
90909
- case 243 /* ForInStatement */:
90910
- ts.Debug.type(node);
90911
- return factory.updateForInStatement(node, nodeVisitor(node.initializer, visitor, ts.isForInitializer), nodeVisitor(node.expression, visitor, ts.isExpression), visitIterationBody(node.statement, visitor, context));
90912
- case 244 /* ForOfStatement */:
90913
- ts.Debug.type(node);
90914
- 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));
90915
- case 245 /* ContinueStatement */:
90916
- ts.Debug.type(node);
90917
- return factory.updateContinueStatement(node, nodeVisitor(node.label, visitor, ts.isIdentifier));
90918
- case 246 /* BreakStatement */:
90919
- ts.Debug.type(node);
90920
- return factory.updateBreakStatement(node, nodeVisitor(node.label, visitor, ts.isIdentifier));
90921
- case 247 /* ReturnStatement */:
90922
- ts.Debug.type(node);
90923
- return factory.updateReturnStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90924
- case 248 /* WithStatement */:
90925
- ts.Debug.type(node);
90926
- return factory.updateWithStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.statement, visitor, ts.isStatement, factory.liftToBlock));
90927
- case 249 /* SwitchStatement */:
90928
- ts.Debug.type(node);
90929
- return factory.updateSwitchStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.caseBlock, visitor, ts.isCaseBlock));
90930
- case 250 /* LabeledStatement */:
90931
- ts.Debug.type(node);
90932
- return factory.updateLabeledStatement(node, nodeVisitor(node.label, visitor, ts.isIdentifier), nodeVisitor(node.statement, visitor, ts.isStatement, factory.liftToBlock));
90933
- case 251 /* ThrowStatement */:
90934
- ts.Debug.type(node);
90935
- return factory.updateThrowStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90936
- case 252 /* TryStatement */:
90937
- ts.Debug.type(node);
90938
- return factory.updateTryStatement(node, nodeVisitor(node.tryBlock, visitor, ts.isBlock), nodeVisitor(node.catchClause, visitor, ts.isCatchClause), nodeVisitor(node.finallyBlock, visitor, ts.isBlock));
90939
- case 254 /* VariableDeclaration */:
90940
- ts.Debug.type(node);
90941
- 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));
90942
- case 255 /* VariableDeclarationList */:
90943
- ts.Debug.type(node);
90944
- return factory.updateVariableDeclarationList(node, nodesVisitor(node.declarations, visitor, ts.isVariableDeclaration));
90945
- case 256 /* FunctionDeclaration */:
90946
- ts.Debug.type(node);
90947
- 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));
90948
- case 257 /* ClassDeclaration */:
90949
- ts.Debug.type(node);
90950
- 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));
90951
- case 258 /* InterfaceDeclaration */:
90952
- ts.Debug.type(node);
90953
- 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));
90954
- case 259 /* TypeAliasDeclaration */:
90955
- ts.Debug.type(node);
90956
- 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));
90957
- case 260 /* EnumDeclaration */:
90958
- ts.Debug.type(node);
90959
- return factory.updateEnumDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.members, visitor, ts.isEnumMember));
90960
- case 261 /* ModuleDeclaration */:
90961
- ts.Debug.type(node);
90962
- return factory.updateModuleDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isModuleName), nodeVisitor(node.body, visitor, ts.isModuleBody));
90963
- case 262 /* ModuleBlock */:
90964
- ts.Debug.type(node);
90965
- return factory.updateModuleBlock(node, nodesVisitor(node.statements, visitor, ts.isStatement));
90966
- case 263 /* CaseBlock */:
90967
- ts.Debug.type(node);
90968
- return factory.updateCaseBlock(node, nodesVisitor(node.clauses, visitor, ts.isCaseOrDefaultClause));
90969
- case 264 /* NamespaceExportDeclaration */:
90970
- ts.Debug.type(node);
90971
- return factory.updateNamespaceExportDeclaration(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
90972
- case 265 /* ImportEqualsDeclaration */:
90973
- ts.Debug.type(node);
90974
- return factory.updateImportEqualsDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), node.isTypeOnly, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.moduleReference, visitor, ts.isModuleReference));
90975
- case 266 /* ImportDeclaration */:
90976
- ts.Debug.type(node);
90977
- 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));
90978
- case 293 /* AssertClause */:
90979
- ts.Debug.type(node);
90980
- return factory.updateAssertClause(node, nodesVisitor(node.elements, visitor, ts.isAssertEntry), node.multiLine);
90981
- case 294 /* AssertEntry */:
90982
- ts.Debug.type(node);
90983
- return factory.updateAssertEntry(node, nodeVisitor(node.name, visitor, ts.isAssertionKey), nodeVisitor(node.value, visitor, ts.isExpressionNode));
90984
- case 267 /* ImportClause */:
90985
- ts.Debug.type(node);
90986
- return factory.updateImportClause(node, node.isTypeOnly, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.namedBindings, visitor, ts.isNamedImportBindings));
90987
- case 268 /* NamespaceImport */:
90988
- ts.Debug.type(node);
90989
- return factory.updateNamespaceImport(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
90990
- case 274 /* NamespaceExport */:
90991
- ts.Debug.type(node);
90992
- return factory.updateNamespaceExport(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
90993
- case 269 /* NamedImports */:
90994
- ts.Debug.type(node);
90995
- return factory.updateNamedImports(node, nodesVisitor(node.elements, visitor, ts.isImportSpecifier));
90996
- case 270 /* ImportSpecifier */:
90997
- ts.Debug.type(node);
90998
- return factory.updateImportSpecifier(node, node.isTypeOnly, nodeVisitor(node.propertyName, visitor, ts.isIdentifier), nodeVisitor(node.name, visitor, ts.isIdentifier));
90999
- case 271 /* ExportAssignment */:
91000
- ts.Debug.type(node);
91001
- return factory.updateExportAssignment(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.expression, visitor, ts.isExpression));
91002
- case 272 /* ExportDeclaration */:
91003
- ts.Debug.type(node);
91004
- 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));
91005
- case 273 /* NamedExports */:
91006
- ts.Debug.type(node);
91007
- return factory.updateNamedExports(node, nodesVisitor(node.elements, visitor, ts.isExportSpecifier));
91008
- case 275 /* ExportSpecifier */:
91009
- ts.Debug.type(node);
91010
- return factory.updateExportSpecifier(node, node.isTypeOnly, nodeVisitor(node.propertyName, visitor, ts.isIdentifier), nodeVisitor(node.name, visitor, ts.isIdentifier));
91011
- // Module references
91012
- case 277 /* ExternalModuleReference */:
91013
- ts.Debug.type(node);
91014
- return factory.updateExternalModuleReference(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91015
- // JSX
91016
- case 278 /* JsxElement */:
91017
- ts.Debug.type(node);
91018
- return factory.updateJsxElement(node, nodeVisitor(node.openingElement, visitor, ts.isJsxOpeningElement), nodesVisitor(node.children, visitor, ts.isJsxChild), nodeVisitor(node.closingElement, visitor, ts.isJsxClosingElement));
91019
- case 279 /* JsxSelfClosingElement */:
91020
- ts.Debug.type(node);
91021
- return factory.updateJsxSelfClosingElement(node, nodeVisitor(node.tagName, visitor, ts.isJsxTagNameExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodeVisitor(node.attributes, visitor, ts.isJsxAttributes));
91022
- case 280 /* JsxOpeningElement */:
91023
- ts.Debug.type(node);
91024
- return factory.updateJsxOpeningElement(node, nodeVisitor(node.tagName, visitor, ts.isJsxTagNameExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodeVisitor(node.attributes, visitor, ts.isJsxAttributes));
91025
- case 281 /* JsxClosingElement */:
91026
- ts.Debug.type(node);
91027
- return factory.updateJsxClosingElement(node, nodeVisitor(node.tagName, visitor, ts.isJsxTagNameExpression));
91028
- case 282 /* JsxFragment */:
91029
- ts.Debug.type(node);
91030
- return factory.updateJsxFragment(node, nodeVisitor(node.openingFragment, visitor, ts.isJsxOpeningFragment), nodesVisitor(node.children, visitor, ts.isJsxChild), nodeVisitor(node.closingFragment, visitor, ts.isJsxClosingFragment));
91031
- case 285 /* JsxAttribute */:
91032
- ts.Debug.type(node);
91033
- return factory.updateJsxAttribute(node, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.initializer, visitor, ts.isStringLiteralOrJsxExpression));
91034
- case 286 /* JsxAttributes */:
91035
- ts.Debug.type(node);
91036
- return factory.updateJsxAttributes(node, nodesVisitor(node.properties, visitor, ts.isJsxAttributeLike));
91037
- case 287 /* JsxSpreadAttribute */:
91038
- ts.Debug.type(node);
91039
- return factory.updateJsxSpreadAttribute(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91040
- case 288 /* JsxExpression */:
91041
- ts.Debug.type(node);
91042
- return factory.updateJsxExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91043
- // Clauses
91044
- case 289 /* CaseClause */:
91045
- ts.Debug.type(node);
91046
- return factory.updateCaseClause(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.statements, visitor, ts.isStatement));
91047
- case 290 /* DefaultClause */:
91048
- ts.Debug.type(node);
91049
- return factory.updateDefaultClause(node, nodesVisitor(node.statements, visitor, ts.isStatement));
91050
- case 291 /* HeritageClause */:
91051
- ts.Debug.type(node);
91052
- return factory.updateHeritageClause(node, nodesVisitor(node.types, visitor, ts.isExpressionWithTypeArguments));
91053
- case 292 /* CatchClause */:
91054
- ts.Debug.type(node);
91055
- return factory.updateCatchClause(node, nodeVisitor(node.variableDeclaration, visitor, ts.isVariableDeclaration), nodeVisitor(node.block, visitor, ts.isBlock));
91056
- // Property assignments
91057
- case 296 /* PropertyAssignment */:
91058
- ts.Debug.type(node);
91059
- return factory.updatePropertyAssignment(node, nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.initializer, visitor, ts.isExpression));
91060
- case 297 /* ShorthandPropertyAssignment */:
91061
- ts.Debug.type(node);
91062
- return factory.updateShorthandPropertyAssignment(node, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.objectAssignmentInitializer, visitor, ts.isExpression));
91063
- case 298 /* SpreadAssignment */:
91064
- ts.Debug.type(node);
91065
- return factory.updateSpreadAssignment(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91066
- // Enum
91067
- case 299 /* EnumMember */:
91068
- ts.Debug.type(node);
91069
- return factory.updateEnumMember(node, nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.initializer, visitor, ts.isExpression));
91070
- // Top-level nodes
91071
- case 305 /* SourceFile */:
91072
- ts.Debug.type(node);
91073
- return factory.updateSourceFile(node, visitLexicalEnvironment(node.statements, visitor, context));
91074
- // Transformation nodes
91075
- case 350 /* PartiallyEmittedExpression */:
91076
- ts.Debug.type(node);
91077
- return factory.updatePartiallyEmittedExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91078
- case 351 /* CommaListExpression */:
91079
- ts.Debug.type(node);
91080
- return factory.updateCommaListExpression(node, nodesVisitor(node.elements, visitor, ts.isExpression));
91081
- default:
91082
- // No need to visit nodes with no children.
91083
- return node;
91084
- }
90679
+ var fn = visitEachChildTable[node.kind];
90680
+ return fn === undefined ? node : fn(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor);
91085
90681
  }
91086
90682
  ts.visitEachChild = visitEachChild;
90683
+ // NOTE: Before you can add a new method to `visitEachChildTable`, you must first ensure the `Node` subtype you
90684
+ // wish to add is defined in the `HasChildren` union in types.ts.
90685
+ var visitEachChildTable = (_a = {},
90686
+ _a[79 /* Identifier */] = function visitEachChildOfIdentifier(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90687
+ return context.factory.updateIdentifier(node, nodesVisitor(node.typeArguments, visitor, ts.isTypeNodeOrTypeParameterDeclaration));
90688
+ },
90689
+ _a[161 /* QualifiedName */] = function visitEachChildOfQualifiedName(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90690
+ return context.factory.updateQualifiedName(node, nodeVisitor(node.left, visitor, ts.isEntityName), nodeVisitor(node.right, visitor, ts.isIdentifier));
90691
+ },
90692
+ _a[162 /* ComputedPropertyName */] = function visitEachChildOfComputedPropertyName(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90693
+ return context.factory.updateComputedPropertyName(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90694
+ },
90695
+ // Signature elements
90696
+ _a[163 /* TypeParameter */] = function visitEachChildOfTypeParameterDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90697
+ 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));
90698
+ },
90699
+ _a[164 /* Parameter */] = function visitEachChildOfParameterDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90700
+ 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));
90701
+ },
90702
+ _a[165 /* Decorator */] = function visitEachChildOfDecorator(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90703
+ return context.factory.updateDecorator(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90704
+ },
90705
+ // Type elements
90706
+ _a[166 /* PropertySignature */] = function visitEachChildOfPropertySignature(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90707
+ 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));
90708
+ },
90709
+ _a[167 /* PropertyDeclaration */] = function visitEachChildOfPropertyDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90710
+ var _a;
90711
+ return context.factory.updatePropertyDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.name, visitor, ts.isPropertyName),
90712
+ // QuestionToken and ExclamationToken are mutually exclusive in PropertyDeclaration
90713
+ 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));
90714
+ },
90715
+ _a[168 /* MethodSignature */] = function visitEachChildOfMethodSignature(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90716
+ 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));
90717
+ },
90718
+ _a[169 /* MethodDeclaration */] = function visitEachChildOfMethodDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90719
+ 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));
90720
+ },
90721
+ _a[171 /* Constructor */] = function visitEachChildOfConstructorDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90722
+ return context.factory.updateConstructorDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), visitParameterList(node.parameters, visitor, context, nodesVisitor), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90723
+ },
90724
+ _a[172 /* GetAccessor */] = function visitEachChildOfGetAccessorDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90725
+ 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));
90726
+ },
90727
+ _a[173 /* SetAccessor */] = function visitEachChildOfSetAccessorDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90728
+ 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));
90729
+ },
90730
+ _a[170 /* ClassStaticBlockDeclaration */] = function visitEachChildOfClassStaticBlockDeclaration(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90731
+ context.startLexicalEnvironment();
90732
+ context.suspendLexicalEnvironment();
90733
+ return context.factory.updateClassStaticBlockDeclaration(node, visitFunctionBody(node.body, visitor, context, nodeVisitor));
90734
+ },
90735
+ _a[174 /* CallSignature */] = function visitEachChildOfCallSignatureDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90736
+ return context.factory.updateCallSignature(node, nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90737
+ },
90738
+ _a[175 /* ConstructSignature */] = function visitEachChildOfConstructSignatureDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90739
+ return context.factory.updateConstructSignature(node, nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90740
+ },
90741
+ _a[176 /* IndexSignature */] = function visitEachChildOfIndexSignatureDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90742
+ return context.factory.updateIndexSignature(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90743
+ },
90744
+ // Types
90745
+ _a[177 /* TypePredicate */] = function visitEachChildOfTypePredicateNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90746
+ return context.factory.updateTypePredicateNode(node, nodeVisitor(node.assertsModifier, visitor, ts.isAssertsKeyword), nodeVisitor(node.parameterName, visitor, ts.isIdentifierOrThisTypeNode), nodeVisitor(node.type, visitor, ts.isTypeNode));
90747
+ },
90748
+ _a[178 /* TypeReference */] = function visitEachChildOfTypeReferenceNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90749
+ return context.factory.updateTypeReferenceNode(node, nodeVisitor(node.typeName, visitor, ts.isEntityName), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode));
90750
+ },
90751
+ _a[179 /* FunctionType */] = function visitEachChildOfFunctionTypeNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90752
+ return context.factory.updateFunctionTypeNode(node, nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90753
+ },
90754
+ _a[180 /* ConstructorType */] = function visitEachChildOfConstructorTypeNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90755
+ 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));
90756
+ },
90757
+ _a[181 /* TypeQuery */] = function visitEachChildOfTypeQueryNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90758
+ return context.factory.updateTypeQueryNode(node, nodeVisitor(node.exprName, visitor, ts.isEntityName), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode));
90759
+ },
90760
+ _a[182 /* TypeLiteral */] = function visitEachChildOfTypeLiteralNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90761
+ return context.factory.updateTypeLiteralNode(node, nodesVisitor(node.members, visitor, ts.isTypeElement));
90762
+ },
90763
+ _a[183 /* ArrayType */] = function visitEachChildOfArrayTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90764
+ return context.factory.updateArrayTypeNode(node, nodeVisitor(node.elementType, visitor, ts.isTypeNode));
90765
+ },
90766
+ _a[184 /* TupleType */] = function visitEachChildOfTupleTypeNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90767
+ return context.factory.updateTupleTypeNode(node, nodesVisitor(node.elements, visitor, ts.isTypeNode));
90768
+ },
90769
+ _a[185 /* OptionalType */] = function visitEachChildOfOptionalTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90770
+ return context.factory.updateOptionalTypeNode(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90771
+ },
90772
+ _a[186 /* RestType */] = function visitEachChildOfRestTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90773
+ return context.factory.updateRestTypeNode(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90774
+ },
90775
+ _a[187 /* UnionType */] = function visitEachChildOfUnionTypeNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90776
+ return context.factory.updateUnionTypeNode(node, nodesVisitor(node.types, visitor, ts.isTypeNode));
90777
+ },
90778
+ _a[188 /* IntersectionType */] = function visitEachChildOfIntersectionTypeNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90779
+ return context.factory.updateIntersectionTypeNode(node, nodesVisitor(node.types, visitor, ts.isTypeNode));
90780
+ },
90781
+ _a[189 /* ConditionalType */] = function visitEachChildOfConditionalTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90782
+ 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));
90783
+ },
90784
+ _a[190 /* InferType */] = function visitEachChildOfInferTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90785
+ return context.factory.updateInferTypeNode(node, nodeVisitor(node.typeParameter, visitor, ts.isTypeParameterDeclaration));
90786
+ },
90787
+ _a[200 /* ImportType */] = function visitEachChildOfImportTypeNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90788
+ 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);
90789
+ },
90790
+ _a[295 /* ImportTypeAssertionContainer */] = function visitEachChildOfImportTypeAssertionContainer(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90791
+ return context.factory.updateImportTypeAssertionContainer(node, nodeVisitor(node.assertClause, visitor, ts.isAssertClause), node.multiLine);
90792
+ },
90793
+ _a[197 /* NamedTupleMember */] = function visitEachChildOfNamedTupleMember(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90794
+ 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));
90795
+ },
90796
+ _a[191 /* ParenthesizedType */] = function visitEachChildOfParenthesizedType(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90797
+ return context.factory.updateParenthesizedType(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90798
+ },
90799
+ _a[193 /* TypeOperator */] = function visitEachChildOfTypeOperatorNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90800
+ return context.factory.updateTypeOperatorNode(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90801
+ },
90802
+ _a[194 /* IndexedAccessType */] = function visitEachChildOfIndexedAccessType(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90803
+ return context.factory.updateIndexedAccessTypeNode(node, nodeVisitor(node.objectType, visitor, ts.isTypeNode), nodeVisitor(node.indexType, visitor, ts.isTypeNode));
90804
+ },
90805
+ _a[195 /* MappedType */] = function visitEachChildOfMappedType(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90806
+ 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));
90807
+ },
90808
+ _a[196 /* LiteralType */] = function visitEachChildOfLiteralTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90809
+ return context.factory.updateLiteralTypeNode(node, nodeVisitor(node.literal, visitor, ts.isExpression));
90810
+ },
90811
+ _a[198 /* TemplateLiteralType */] = function visitEachChildOfTemplateLiteralType(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90812
+ return context.factory.updateTemplateLiteralType(node, nodeVisitor(node.head, visitor, ts.isTemplateHead), nodesVisitor(node.templateSpans, visitor, ts.isTemplateLiteralTypeSpan));
90813
+ },
90814
+ _a[199 /* TemplateLiteralTypeSpan */] = function visitEachChildOfTemplateLiteralTypeSpan(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90815
+ return context.factory.updateTemplateLiteralTypeSpan(node, nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.literal, visitor, ts.isTemplateMiddleOrTemplateTail));
90816
+ },
90817
+ // Binding patterns
90818
+ _a[201 /* ObjectBindingPattern */] = function visitEachChildOfObjectBindingPattern(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90819
+ return context.factory.updateObjectBindingPattern(node, nodesVisitor(node.elements, visitor, ts.isBindingElement));
90820
+ },
90821
+ _a[202 /* ArrayBindingPattern */] = function visitEachChildOfArrayBindingPattern(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90822
+ return context.factory.updateArrayBindingPattern(node, nodesVisitor(node.elements, visitor, ts.isArrayBindingElement));
90823
+ },
90824
+ _a[203 /* BindingElement */] = function visitEachChildOfBindingElement(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90825
+ 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));
90826
+ },
90827
+ // Expression
90828
+ _a[204 /* ArrayLiteralExpression */] = function visitEachChildOfArrayLiteralExpression(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90829
+ return context.factory.updateArrayLiteralExpression(node, nodesVisitor(node.elements, visitor, ts.isExpression));
90830
+ },
90831
+ _a[205 /* ObjectLiteralExpression */] = function visitEachChildOfObjectLiteralExpression(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90832
+ return context.factory.updateObjectLiteralExpression(node, nodesVisitor(node.properties, visitor, ts.isObjectLiteralElementLike));
90833
+ },
90834
+ _a[206 /* PropertyAccessExpression */] = function visitEachChildOfPropertyAccessExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90835
+ return ts.isPropertyAccessChain(node) ?
90836
+ context.factory.updatePropertyAccessChain(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.questionDotToken, tokenVisitor, ts.isQuestionDotToken), nodeVisitor(node.name, visitor, ts.isMemberName)) :
90837
+ context.factory.updatePropertyAccessExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.name, visitor, ts.isMemberName));
90838
+ },
90839
+ _a[207 /* ElementAccessExpression */] = function visitEachChildOfElementAccessExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90840
+ return ts.isElementAccessChain(node) ?
90841
+ context.factory.updateElementAccessChain(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.questionDotToken, tokenVisitor, ts.isQuestionDotToken), nodeVisitor(node.argumentExpression, visitor, ts.isExpression)) :
90842
+ context.factory.updateElementAccessExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.argumentExpression, visitor, ts.isExpression));
90843
+ },
90844
+ _a[208 /* CallExpression */] = function visitEachChildOfCallExpression(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90845
+ return ts.isCallChain(node) ?
90846
+ 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)) :
90847
+ context.factory.updateCallExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodesVisitor(node.arguments, visitor, ts.isExpression));
90848
+ },
90849
+ _a[209 /* NewExpression */] = function visitEachChildOfNewExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90850
+ return context.factory.updateNewExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodesVisitor(node.arguments, visitor, ts.isExpression));
90851
+ },
90852
+ _a[210 /* TaggedTemplateExpression */] = function visitEachChildOfTaggedTemplateExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90853
+ return context.factory.updateTaggedTemplateExpression(node, nodeVisitor(node.tag, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodeVisitor(node.template, visitor, ts.isTemplateLiteral));
90854
+ },
90855
+ _a[211 /* TypeAssertionExpression */] = function visitEachChildOfTypeAssertionExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90856
+ return context.factory.updateTypeAssertion(node, nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.expression, visitor, ts.isExpression));
90857
+ },
90858
+ _a[212 /* ParenthesizedExpression */] = function visitEachChildOfParenthesizedExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90859
+ return context.factory.updateParenthesizedExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90860
+ },
90861
+ _a[213 /* FunctionExpression */] = function visitEachChildOfFunctionExpression(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90862
+ 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));
90863
+ },
90864
+ _a[214 /* ArrowFunction */] = function visitEachChildOfArrowFunction(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90865
+ 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));
90866
+ },
90867
+ _a[215 /* DeleteExpression */] = function visitEachChildOfDeleteExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90868
+ return context.factory.updateDeleteExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90869
+ },
90870
+ _a[216 /* TypeOfExpression */] = function visitEachChildOfTypeOfExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90871
+ return context.factory.updateTypeOfExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90872
+ },
90873
+ _a[217 /* VoidExpression */] = function visitEachChildOfVoidExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90874
+ return context.factory.updateVoidExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90875
+ },
90876
+ _a[218 /* AwaitExpression */] = function visitEachChildOfAwaitExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90877
+ return context.factory.updateAwaitExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90878
+ },
90879
+ _a[219 /* PrefixUnaryExpression */] = function visitEachChildOfPrefixUnaryExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90880
+ return context.factory.updatePrefixUnaryExpression(node, nodeVisitor(node.operand, visitor, ts.isExpression));
90881
+ },
90882
+ _a[220 /* PostfixUnaryExpression */] = function visitEachChildOfPostfixUnaryExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90883
+ return context.factory.updatePostfixUnaryExpression(node, nodeVisitor(node.operand, visitor, ts.isExpression));
90884
+ },
90885
+ _a[221 /* BinaryExpression */] = function visitEachChildOfBinaryExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90886
+ return context.factory.updateBinaryExpression(node, nodeVisitor(node.left, visitor, ts.isExpression), nodeVisitor(node.operatorToken, tokenVisitor, ts.isBinaryOperatorToken), nodeVisitor(node.right, visitor, ts.isExpression));
90887
+ },
90888
+ _a[222 /* ConditionalExpression */] = function visitEachChildOfConditionalExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90889
+ 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));
90890
+ },
90891
+ _a[223 /* TemplateExpression */] = function visitEachChildOfTemplateExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90892
+ return context.factory.updateTemplateExpression(node, nodeVisitor(node.head, visitor, ts.isTemplateHead), nodesVisitor(node.templateSpans, visitor, ts.isTemplateSpan));
90893
+ },
90894
+ _a[224 /* YieldExpression */] = function visitEachChildOfYieldExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90895
+ return context.factory.updateYieldExpression(node, nodeVisitor(node.asteriskToken, tokenVisitor, ts.isAsteriskToken), nodeVisitor(node.expression, visitor, ts.isExpression));
90896
+ },
90897
+ _a[225 /* SpreadElement */] = function visitEachChildOfSpreadElement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90898
+ return context.factory.updateSpreadElement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90899
+ },
90900
+ _a[226 /* ClassExpression */] = function visitEachChildOfClassExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90901
+ 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));
90902
+ },
90903
+ _a[228 /* ExpressionWithTypeArguments */] = function visitEachChildOfExpressionWithTypeArguments(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90904
+ return context.factory.updateExpressionWithTypeArguments(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode));
90905
+ },
90906
+ _a[229 /* AsExpression */] = function visitEachChildOfAsExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90907
+ return context.factory.updateAsExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.type, visitor, ts.isTypeNode));
90908
+ },
90909
+ _a[230 /* NonNullExpression */] = function visitEachChildOfNonNullExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90910
+ return ts.isOptionalChain(node) ?
90911
+ context.factory.updateNonNullChain(node, nodeVisitor(node.expression, visitor, ts.isExpression)) :
90912
+ context.factory.updateNonNullExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90913
+ },
90914
+ _a[231 /* MetaProperty */] = function visitEachChildOfMetaProperty(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90915
+ return context.factory.updateMetaProperty(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
90916
+ },
90917
+ // Misc
90918
+ _a[233 /* TemplateSpan */] = function visitEachChildOfTemplateSpan(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90919
+ return context.factory.updateTemplateSpan(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.literal, visitor, ts.isTemplateMiddleOrTemplateTail));
90920
+ },
90921
+ // Element
90922
+ _a[235 /* Block */] = function visitEachChildOfBlock(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90923
+ return context.factory.updateBlock(node, nodesVisitor(node.statements, visitor, ts.isStatement));
90924
+ },
90925
+ _a[237 /* VariableStatement */] = function visitEachChildOfVariableStatement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90926
+ return context.factory.updateVariableStatement(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.declarationList, visitor, ts.isVariableDeclarationList));
90927
+ },
90928
+ _a[238 /* ExpressionStatement */] = function visitEachChildOfExpressionStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90929
+ return context.factory.updateExpressionStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90930
+ },
90931
+ _a[239 /* IfStatement */] = function visitEachChildOfIfStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90932
+ 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));
90933
+ },
90934
+ _a[240 /* DoStatement */] = function visitEachChildOfDoStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90935
+ return context.factory.updateDoStatement(node, visitIterationBody(node.statement, visitor, context, nodeVisitor), nodeVisitor(node.expression, visitor, ts.isExpression));
90936
+ },
90937
+ _a[241 /* WhileStatement */] = function visitEachChildOfWhileStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90938
+ return context.factory.updateWhileStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), visitIterationBody(node.statement, visitor, context, nodeVisitor));
90939
+ },
90940
+ _a[242 /* ForStatement */] = function visitEachChildOfForStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90941
+ 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));
90942
+ },
90943
+ _a[243 /* ForInStatement */] = function visitEachChildOfForInStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90944
+ return context.factory.updateForInStatement(node, nodeVisitor(node.initializer, visitor, ts.isForInitializer), nodeVisitor(node.expression, visitor, ts.isExpression), visitIterationBody(node.statement, visitor, context, nodeVisitor));
90945
+ },
90946
+ _a[244 /* ForOfStatement */] = function visitEachChildOfForOfStatement(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90947
+ 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));
90948
+ },
90949
+ _a[245 /* ContinueStatement */] = function visitEachChildOfContinueStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90950
+ return context.factory.updateContinueStatement(node, nodeVisitor(node.label, visitor, ts.isIdentifier));
90951
+ },
90952
+ _a[246 /* BreakStatement */] = function visitEachChildOfBreakStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90953
+ return context.factory.updateBreakStatement(node, nodeVisitor(node.label, visitor, ts.isIdentifier));
90954
+ },
90955
+ _a[247 /* ReturnStatement */] = function visitEachChildOfReturnStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90956
+ return context.factory.updateReturnStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90957
+ },
90958
+ _a[248 /* WithStatement */] = function visitEachChildOfWithStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90959
+ return context.factory.updateWithStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.statement, visitor, ts.isStatement, context.factory.liftToBlock));
90960
+ },
90961
+ _a[249 /* SwitchStatement */] = function visitEachChildOfSwitchStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90962
+ return context.factory.updateSwitchStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.caseBlock, visitor, ts.isCaseBlock));
90963
+ },
90964
+ _a[250 /* LabeledStatement */] = function visitEachChildOfLabeledStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90965
+ return context.factory.updateLabeledStatement(node, nodeVisitor(node.label, visitor, ts.isIdentifier), nodeVisitor(node.statement, visitor, ts.isStatement, context.factory.liftToBlock));
90966
+ },
90967
+ _a[251 /* ThrowStatement */] = function visitEachChildOfThrowStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90968
+ return context.factory.updateThrowStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90969
+ },
90970
+ _a[252 /* TryStatement */] = function visitEachChildOfTryStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90971
+ return context.factory.updateTryStatement(node, nodeVisitor(node.tryBlock, visitor, ts.isBlock), nodeVisitor(node.catchClause, visitor, ts.isCatchClause), nodeVisitor(node.finallyBlock, visitor, ts.isBlock));
90972
+ },
90973
+ _a[254 /* VariableDeclaration */] = function visitEachChildOfVariableDeclaration(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90974
+ 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));
90975
+ },
90976
+ _a[255 /* VariableDeclarationList */] = function visitEachChildOfVariableDeclarationList(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90977
+ return context.factory.updateVariableDeclarationList(node, nodesVisitor(node.declarations, visitor, ts.isVariableDeclaration));
90978
+ },
90979
+ _a[256 /* FunctionDeclaration */] = function visitEachChildOfFunctionDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90980
+ 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));
90981
+ },
90982
+ _a[257 /* ClassDeclaration */] = function visitEachChildOfClassDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90983
+ 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));
90984
+ },
90985
+ _a[258 /* InterfaceDeclaration */] = function visitEachChildOfInterfaceDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90986
+ 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));
90987
+ },
90988
+ _a[259 /* TypeAliasDeclaration */] = function visitEachChildOfTypeAliasDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90989
+ 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));
90990
+ },
90991
+ _a[260 /* EnumDeclaration */] = function visitEachChildOfEnumDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90992
+ return context.factory.updateEnumDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.members, visitor, ts.isEnumMember));
90993
+ },
90994
+ _a[261 /* ModuleDeclaration */] = function visitEachChildOfModuleDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90995
+ return context.factory.updateModuleDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isModuleName), nodeVisitor(node.body, visitor, ts.isModuleBody));
90996
+ },
90997
+ _a[262 /* ModuleBlock */] = function visitEachChildOfModuleBlock(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90998
+ return context.factory.updateModuleBlock(node, nodesVisitor(node.statements, visitor, ts.isStatement));
90999
+ },
91000
+ _a[263 /* CaseBlock */] = function visitEachChildOfCaseBlock(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91001
+ return context.factory.updateCaseBlock(node, nodesVisitor(node.clauses, visitor, ts.isCaseOrDefaultClause));
91002
+ },
91003
+ _a[264 /* NamespaceExportDeclaration */] = function visitEachChildOfNamespaceExportDeclaration(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91004
+ return context.factory.updateNamespaceExportDeclaration(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
91005
+ },
91006
+ _a[265 /* ImportEqualsDeclaration */] = function visitEachChildOfImportEqualsDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91007
+ 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));
91008
+ },
91009
+ _a[266 /* ImportDeclaration */] = function visitEachChildOfImportDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91010
+ 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));
91011
+ },
91012
+ _a[293 /* AssertClause */] = function visitEachChildOfAssertClause(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91013
+ return context.factory.updateAssertClause(node, nodesVisitor(node.elements, visitor, ts.isAssertEntry), node.multiLine);
91014
+ },
91015
+ _a[294 /* AssertEntry */] = function visitEachChildOfAssertEntry(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91016
+ return context.factory.updateAssertEntry(node, nodeVisitor(node.name, visitor, ts.isAssertionKey), nodeVisitor(node.value, visitor, ts.isExpression));
91017
+ },
91018
+ _a[267 /* ImportClause */] = function visitEachChildOfImportClause(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91019
+ return context.factory.updateImportClause(node, node.isTypeOnly, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.namedBindings, visitor, ts.isNamedImportBindings));
91020
+ },
91021
+ _a[268 /* NamespaceImport */] = function visitEachChildOfNamespaceImport(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91022
+ return context.factory.updateNamespaceImport(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
91023
+ },
91024
+ _a[274 /* NamespaceExport */] = function visitEachChildOfNamespaceExport(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91025
+ return context.factory.updateNamespaceExport(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
91026
+ },
91027
+ _a[269 /* NamedImports */] = function visitEachChildOfNamedImports(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91028
+ return context.factory.updateNamedImports(node, nodesVisitor(node.elements, visitor, ts.isImportSpecifier));
91029
+ },
91030
+ _a[270 /* ImportSpecifier */] = function visitEachChildOfImportSpecifier(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91031
+ return context.factory.updateImportSpecifier(node, node.isTypeOnly, nodeVisitor(node.propertyName, visitor, ts.isIdentifier), nodeVisitor(node.name, visitor, ts.isIdentifier));
91032
+ },
91033
+ _a[271 /* ExportAssignment */] = function visitEachChildOfExportAssignment(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91034
+ return context.factory.updateExportAssignment(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.expression, visitor, ts.isExpression));
91035
+ },
91036
+ _a[272 /* ExportDeclaration */] = function visitEachChildOfExportDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91037
+ 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));
91038
+ },
91039
+ _a[273 /* NamedExports */] = function visitEachChildOfNamedExports(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91040
+ return context.factory.updateNamedExports(node, nodesVisitor(node.elements, visitor, ts.isExportSpecifier));
91041
+ },
91042
+ _a[275 /* ExportSpecifier */] = function visitEachChildOfExportSpecifier(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91043
+ return context.factory.updateExportSpecifier(node, node.isTypeOnly, nodeVisitor(node.propertyName, visitor, ts.isIdentifier), nodeVisitor(node.name, visitor, ts.isIdentifier));
91044
+ },
91045
+ // Module references
91046
+ _a[277 /* ExternalModuleReference */] = function visitEachChildOfExternalModuleReference(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91047
+ return context.factory.updateExternalModuleReference(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91048
+ },
91049
+ // JSX
91050
+ _a[278 /* JsxElement */] = function visitEachChildOfJsxElement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91051
+ return context.factory.updateJsxElement(node, nodeVisitor(node.openingElement, visitor, ts.isJsxOpeningElement), nodesVisitor(node.children, visitor, ts.isJsxChild), nodeVisitor(node.closingElement, visitor, ts.isJsxClosingElement));
91052
+ },
91053
+ _a[279 /* JsxSelfClosingElement */] = function visitEachChildOfJsxSelfClosingElement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91054
+ return context.factory.updateJsxSelfClosingElement(node, nodeVisitor(node.tagName, visitor, ts.isJsxTagNameExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodeVisitor(node.attributes, visitor, ts.isJsxAttributes));
91055
+ },
91056
+ _a[280 /* JsxOpeningElement */] = function visitEachChildOfJsxOpeningElement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91057
+ return context.factory.updateJsxOpeningElement(node, nodeVisitor(node.tagName, visitor, ts.isJsxTagNameExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodeVisitor(node.attributes, visitor, ts.isJsxAttributes));
91058
+ },
91059
+ _a[281 /* JsxClosingElement */] = function visitEachChildOfJsxClosingElement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91060
+ return context.factory.updateJsxClosingElement(node, nodeVisitor(node.tagName, visitor, ts.isJsxTagNameExpression));
91061
+ },
91062
+ _a[282 /* JsxFragment */] = function visitEachChildOfJsxFragment(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91063
+ return context.factory.updateJsxFragment(node, nodeVisitor(node.openingFragment, visitor, ts.isJsxOpeningFragment), nodesVisitor(node.children, visitor, ts.isJsxChild), nodeVisitor(node.closingFragment, visitor, ts.isJsxClosingFragment));
91064
+ },
91065
+ _a[285 /* JsxAttribute */] = function visitEachChildOfJsxAttribute(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91066
+ return context.factory.updateJsxAttribute(node, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.initializer, visitor, ts.isStringLiteralOrJsxExpression));
91067
+ },
91068
+ _a[286 /* JsxAttributes */] = function visitEachChildOfJsxAttributes(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91069
+ return context.factory.updateJsxAttributes(node, nodesVisitor(node.properties, visitor, ts.isJsxAttributeLike));
91070
+ },
91071
+ _a[287 /* JsxSpreadAttribute */] = function visitEachChildOfJsxSpreadAttribute(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91072
+ return context.factory.updateJsxSpreadAttribute(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91073
+ },
91074
+ _a[288 /* JsxExpression */] = function visitEachChildOfJsxExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91075
+ return context.factory.updateJsxExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91076
+ },
91077
+ // Clauses
91078
+ _a[289 /* CaseClause */] = function visitEachChildOfCaseClause(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91079
+ return context.factory.updateCaseClause(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.statements, visitor, ts.isStatement));
91080
+ },
91081
+ _a[290 /* DefaultClause */] = function visitEachChildOfDefaultClause(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91082
+ return context.factory.updateDefaultClause(node, nodesVisitor(node.statements, visitor, ts.isStatement));
91083
+ },
91084
+ _a[291 /* HeritageClause */] = function visitEachChildOfHeritageClause(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91085
+ return context.factory.updateHeritageClause(node, nodesVisitor(node.types, visitor, ts.isExpressionWithTypeArguments));
91086
+ },
91087
+ _a[292 /* CatchClause */] = function visitEachChildOfCatchClause(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91088
+ return context.factory.updateCatchClause(node, nodeVisitor(node.variableDeclaration, visitor, ts.isVariableDeclaration), nodeVisitor(node.block, visitor, ts.isBlock));
91089
+ },
91090
+ // Property assignments
91091
+ _a[296 /* PropertyAssignment */] = function visitEachChildOfPropertyAssignment(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91092
+ return context.factory.updatePropertyAssignment(node, nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.initializer, visitor, ts.isExpression));
91093
+ },
91094
+ _a[297 /* ShorthandPropertyAssignment */] = function visitEachChildOfShorthandPropertyAssignment(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91095
+ return context.factory.updateShorthandPropertyAssignment(node, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.objectAssignmentInitializer, visitor, ts.isExpression));
91096
+ },
91097
+ _a[298 /* SpreadAssignment */] = function visitEachChildOfSpreadAssignment(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91098
+ return context.factory.updateSpreadAssignment(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91099
+ },
91100
+ // Enum
91101
+ _a[299 /* EnumMember */] = function visitEachChildOfEnumMember(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91102
+ return context.factory.updateEnumMember(node, nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.initializer, visitor, ts.isExpression));
91103
+ },
91104
+ // Top-level nodes
91105
+ _a[305 /* SourceFile */] = function visitEachChildOfSourceFile(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91106
+ return context.factory.updateSourceFile(node, visitLexicalEnvironment(node.statements, visitor, context, /*start*/ undefined, /*ensureUseStrict*/ undefined, nodesVisitor));
91107
+ },
91108
+ // Transformation nodes
91109
+ _a[350 /* PartiallyEmittedExpression */] = function visitEachChildOfPartiallyEmittedExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91110
+ return context.factory.updatePartiallyEmittedExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91111
+ },
91112
+ _a[351 /* CommaListExpression */] = function visitEachChildOfCommaListExpression(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91113
+ return context.factory.updateCommaListExpression(node, nodesVisitor(node.elements, visitor, ts.isExpression));
91114
+ },
91115
+ _a);
91087
91116
  /**
91088
91117
  * Extracts the single node from a NodeArray.
91089
91118
  *