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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/typescript.js CHANGED
@@ -99,7 +99,7 @@ var ts;
99
99
  // The following is baselined as a literal template type without intervention
100
100
  /** The version of the TypeScript compiler release */
101
101
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
102
- ts.version = ts.versionMajorMinor + ".0-dev.20220818";
102
+ ts.version = ts.versionMajorMinor + ".0-dev.20220821";
103
103
  /* @internal */
104
104
  var Comparison;
105
105
  (function (Comparison) {
@@ -2488,6 +2488,7 @@ var ts;
2488
2488
  var currentAssertionLevel = 0 /* None */;
2489
2489
  Debug.currentLogLevel = LogLevel.Warning;
2490
2490
  Debug.isDebugging = false;
2491
+ Debug.enableDeprecationWarnings = true;
2491
2492
  function getTypeScriptVersion() {
2492
2493
  return typeScriptVersion !== null && typeScriptVersion !== void 0 ? typeScriptVersion : (typeScriptVersion = new ts.Version(ts.version));
2493
2494
  }
@@ -3111,7 +3112,7 @@ var ts;
3111
3112
  function createWarningDeprecation(name, errorAfter, since, message) {
3112
3113
  var hasWrittenDeprecation = false;
3113
3114
  return function () {
3114
- if (!hasWrittenDeprecation) {
3115
+ if (Debug.enableDeprecationWarnings && !hasWrittenDeprecation) {
3115
3116
  log.warn(formatDeprecationMessage(name, /*error*/ false, errorAfter, since, message));
3116
3117
  hasWrittenDeprecation = true;
3117
3118
  }
@@ -21390,7 +21391,7 @@ var ts;
21390
21391
  case 165 /* Decorator */: {
21391
21392
  var parent_2 = node.parent;
21392
21393
  return ts.canHaveDecorators(parent_2) ? parent_2.modifiers :
21393
- ts.canHaveIllegalDecorators(parent_2) ? parent_2.decorators :
21394
+ ts.canHaveIllegalDecorators(parent_2) ? parent_2.illegalDecorators :
21394
21395
  undefined;
21395
21396
  }
21396
21397
  case 291 /* HeritageClause */:
@@ -23467,7 +23468,7 @@ var ts;
23467
23468
  node.body = body;
23468
23469
  node.transformFlags = propagateChildFlags(body) | 16777216 /* ContainsClassFields */;
23469
23470
  // The following properties are used only to report grammar errors
23470
- node.decorators = undefined;
23471
+ node.illegalDecorators = undefined;
23471
23472
  node.modifiers = undefined;
23472
23473
  return node;
23473
23474
  }
@@ -23479,7 +23480,7 @@ var ts;
23479
23480
  }
23480
23481
  function finishUpdateClassStaticBlockDeclaration(updated, original) {
23481
23482
  if (updated !== original) {
23482
- updated.decorators = original.decorators;
23483
+ updated.illegalDecorators = original.illegalDecorators;
23483
23484
  updated.modifiers = original.modifiers;
23484
23485
  }
23485
23486
  return update(updated, original);
@@ -23492,7 +23493,7 @@ var ts;
23492
23493
  /*type*/ undefined, body);
23493
23494
  node.transformFlags |= 1024 /* ContainsES2015 */;
23494
23495
  // The following properties are used only to report grammar errors
23495
- node.decorators = undefined;
23496
+ node.illegalDecorators = undefined;
23496
23497
  node.typeParameters = undefined;
23497
23498
  node.type = undefined;
23498
23499
  return node;
@@ -23507,7 +23508,7 @@ var ts;
23507
23508
  }
23508
23509
  function finishUpdateConstructorDeclaration(updated, original) {
23509
23510
  if (updated !== original) {
23510
- updated.decorators = original.decorators;
23511
+ updated.illegalDecorators = original.illegalDecorators;
23511
23512
  updated.typeParameters = original.typeParameters;
23512
23513
  updated.type = original.type;
23513
23514
  }
@@ -25255,7 +25256,7 @@ var ts;
25255
25256
  }
25256
25257
  }
25257
25258
  // The following properties are used only to report grammar errors
25258
- node.decorators = undefined;
25259
+ node.illegalDecorators = undefined;
25259
25260
  return node;
25260
25261
  }
25261
25262
  // @api
@@ -25273,7 +25274,7 @@ var ts;
25273
25274
  function finishUpdateFunctionDeclaration(updated, original) {
25274
25275
  if (updated !== original) {
25275
25276
  // copy children used only for error reporting
25276
- updated.decorators = original.decorators;
25277
+ updated.illegalDecorators = original.illegalDecorators;
25277
25278
  }
25278
25279
  return finishUpdateBaseSignatureDeclaration(updated, original);
25279
25280
  }
@@ -25307,7 +25308,7 @@ var ts;
25307
25308
  node.members = createNodeArray(members);
25308
25309
  node.transformFlags = 1 /* ContainsTypeScript */;
25309
25310
  // The following properties are used only to report grammar errors
25310
- node.decorators = undefined;
25311
+ node.illegalDecorators = undefined;
25311
25312
  return node;
25312
25313
  }
25313
25314
  // @api
@@ -25322,7 +25323,7 @@ var ts;
25322
25323
  }
25323
25324
  function finishUpdateInterfaceDeclaration(updated, original) {
25324
25325
  if (updated !== original) {
25325
- updated.decorators = original.decorators;
25326
+ updated.illegalDecorators = original.illegalDecorators;
25326
25327
  }
25327
25328
  return update(updated, original);
25328
25329
  }
@@ -25332,7 +25333,7 @@ var ts;
25332
25333
  node.type = type;
25333
25334
  node.transformFlags = 1 /* ContainsTypeScript */;
25334
25335
  // The following properties are used only to report grammar errors
25335
- node.decorators = undefined;
25336
+ node.illegalDecorators = undefined;
25336
25337
  return node;
25337
25338
  }
25338
25339
  // @api
@@ -25346,7 +25347,7 @@ var ts;
25346
25347
  }
25347
25348
  function finishUpdateTypeAliasDeclaration(updated, original) {
25348
25349
  if (updated !== original) {
25349
- updated.decorators = original.decorators;
25350
+ updated.illegalDecorators = original.illegalDecorators;
25350
25351
  }
25351
25352
  return update(updated, original);
25352
25353
  }
@@ -25359,7 +25360,7 @@ var ts;
25359
25360
  1 /* ContainsTypeScript */;
25360
25361
  node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; // Enum declarations cannot contain `await`
25361
25362
  // The following properties are used only to report grammar errors
25362
- node.decorators = undefined;
25363
+ node.illegalDecorators = undefined;
25363
25364
  return node;
25364
25365
  }
25365
25366
  // @api
@@ -25372,7 +25373,7 @@ var ts;
25372
25373
  }
25373
25374
  function finishUpdateEnumDeclaration(updated, original) {
25374
25375
  if (updated !== original) {
25375
- updated.decorators = original.decorators;
25376
+ updated.illegalDecorators = original.illegalDecorators;
25376
25377
  }
25377
25378
  return update(updated, original);
25378
25379
  }
@@ -25396,7 +25397,7 @@ var ts;
25396
25397
  }
25397
25398
  node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; // Module declarations cannot contain `await`.
25398
25399
  // The following properties are used only to report grammar errors
25399
- node.decorators = undefined;
25400
+ node.illegalDecorators = undefined;
25400
25401
  return node;
25401
25402
  }
25402
25403
  // @api
@@ -25409,7 +25410,7 @@ var ts;
25409
25410
  }
25410
25411
  function finishUpdateModuleDeclaration(updated, original) {
25411
25412
  if (updated !== original) {
25412
- updated.decorators = original.decorators;
25413
+ updated.illegalDecorators = original.illegalDecorators;
25413
25414
  }
25414
25415
  return update(updated, original);
25415
25416
  }
@@ -25445,7 +25446,7 @@ var ts;
25445
25446
  /*modifiers*/ undefined, name);
25446
25447
  node.transformFlags = 1 /* ContainsTypeScript */;
25447
25448
  // The following properties are used only to report grammar errors
25448
- node.decorators = undefined;
25449
+ node.illegalDecorators = undefined;
25449
25450
  node.modifiers = undefined;
25450
25451
  return node;
25451
25452
  }
@@ -25457,7 +25458,7 @@ var ts;
25457
25458
  }
25458
25459
  function finishUpdateNamespaceExportDeclaration(updated, original) {
25459
25460
  if (updated !== original) {
25460
- updated.decorators = original.decorators;
25461
+ updated.illegalDecorators = original.illegalDecorators;
25461
25462
  updated.modifiers = original.modifiers;
25462
25463
  }
25463
25464
  return update(updated, original);
@@ -25472,7 +25473,7 @@ var ts;
25472
25473
  node.transformFlags |= 1 /* ContainsTypeScript */;
25473
25474
  node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; // Import= declaration is always parsed in an Await context
25474
25475
  // The following properties are used only to report grammar errors
25475
- node.decorators = undefined;
25476
+ node.illegalDecorators = undefined;
25476
25477
  return node;
25477
25478
  }
25478
25479
  // @api
@@ -25486,7 +25487,7 @@ var ts;
25486
25487
  }
25487
25488
  function finishUpdateImportEqualsDeclaration(updated, original) {
25488
25489
  if (updated !== original) {
25489
- updated.decorators = original.decorators;
25490
+ updated.illegalDecorators = original.illegalDecorators;
25490
25491
  }
25491
25492
  return update(updated, original);
25492
25493
  }
@@ -25502,7 +25503,7 @@ var ts;
25502
25503
  propagateChildFlags(node.moduleSpecifier);
25503
25504
  node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; // always parsed in an Await context
25504
25505
  // The following properties are used only to report grammar errors
25505
- node.decorators = undefined;
25506
+ node.illegalDecorators = undefined;
25506
25507
  return node;
25507
25508
  }
25508
25509
  // @api
@@ -25516,7 +25517,7 @@ var ts;
25516
25517
  }
25517
25518
  function finishUpdateImportDeclaration(updated, original) {
25518
25519
  if (updated !== original) {
25519
- updated.decorators = original.decorators;
25520
+ updated.illegalDecorators = original.illegalDecorators;
25520
25521
  }
25521
25522
  return update(updated, original);
25522
25523
  }
@@ -25662,7 +25663,7 @@ var ts;
25662
25663
  node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.expression);
25663
25664
  node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; // always parsed in an Await context
25664
25665
  // The following properties are used only to report grammar errors
25665
- node.decorators = undefined;
25666
+ node.illegalDecorators = undefined;
25666
25667
  return node;
25667
25668
  }
25668
25669
  // @api
@@ -25674,7 +25675,7 @@ var ts;
25674
25675
  }
25675
25676
  function finishUpdateExportAssignment(updated, original) {
25676
25677
  if (updated !== original) {
25677
- updated.decorators = original.decorators;
25678
+ updated.illegalDecorators = original.illegalDecorators;
25678
25679
  }
25679
25680
  return update(updated, original);
25680
25681
  }
@@ -25692,7 +25693,7 @@ var ts;
25692
25693
  propagateChildFlags(node.moduleSpecifier);
25693
25694
  node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */; // always parsed in an Await context
25694
25695
  // The following properties are used only to report grammar errors
25695
- node.decorators = undefined;
25696
+ node.illegalDecorators = undefined;
25696
25697
  return node;
25697
25698
  }
25698
25699
  // @api
@@ -25707,7 +25708,7 @@ var ts;
25707
25708
  }
25708
25709
  function finishUpdateExportDeclaration(updated, original) {
25709
25710
  if (updated !== original) {
25710
- updated.decorators = original.decorators;
25711
+ updated.illegalDecorators = original.illegalDecorators;
25711
25712
  }
25712
25713
  return update(updated, original);
25713
25714
  }
@@ -26471,7 +26472,7 @@ var ts;
26471
26472
  propagateChildFlags(node.name) |
26472
26473
  propagateChildFlags(node.initializer);
26473
26474
  // The following properties are used only to report grammar errors
26474
- node.decorators = undefined;
26475
+ node.illegalDecorators = undefined;
26475
26476
  node.modifiers = undefined;
26476
26477
  node.questionToken = undefined;
26477
26478
  node.exclamationToken = undefined;
@@ -26487,7 +26488,7 @@ var ts;
26487
26488
  function finishUpdatePropertyAssignment(updated, original) {
26488
26489
  // copy children used only for error reporting
26489
26490
  if (updated !== original) {
26490
- updated.decorators = original.decorators;
26491
+ updated.illegalDecorators = original.illegalDecorators;
26491
26492
  updated.modifiers = original.modifiers;
26492
26493
  updated.questionToken = original.questionToken;
26493
26494
  updated.exclamationToken = original.exclamationToken;
@@ -26504,7 +26505,7 @@ var ts;
26504
26505
  1024 /* ContainsES2015 */;
26505
26506
  // The following properties are used only to report grammar errors
26506
26507
  node.equalsToken = undefined;
26507
- node.decorators = undefined;
26508
+ node.illegalDecorators = undefined;
26508
26509
  node.modifiers = undefined;
26509
26510
  node.questionToken = undefined;
26510
26511
  node.exclamationToken = undefined;
@@ -26521,7 +26522,7 @@ var ts;
26521
26522
  if (updated !== original) {
26522
26523
  // copy children used only for error reporting
26523
26524
  updated.equalsToken = original.equalsToken;
26524
- updated.decorators = original.decorators;
26525
+ updated.illegalDecorators = original.illegalDecorators;
26525
26526
  updated.modifiers = original.modifiers;
26526
26527
  updated.questionToken = original.questionToken;
26527
26528
  updated.exclamationToken = original.exclamationToken;
@@ -31000,7 +31001,7 @@ var ts;
31000
31001
  visitNode(cbNode, node.default) ||
31001
31002
  visitNode(cbNode, node.expression);
31002
31003
  case 297 /* ShorthandPropertyAssignment */:
31003
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31004
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31004
31005
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31005
31006
  visitNode(cbNode, node.name) ||
31006
31007
  visitNode(cbNode, node.questionToken) ||
@@ -31030,7 +31031,7 @@ var ts;
31030
31031
  visitNode(cbNode, node.type) ||
31031
31032
  visitNode(cbNode, node.initializer);
31032
31033
  case 296 /* PropertyAssignment */:
31033
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31034
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31034
31035
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31035
31036
  visitNode(cbNode, node.name) ||
31036
31037
  visitNode(cbNode, node.questionToken) ||
@@ -31047,7 +31048,7 @@ var ts;
31047
31048
  visitNode(cbNode, node.name) ||
31048
31049
  visitNode(cbNode, node.initializer);
31049
31050
  case 176 /* IndexSignature */:
31050
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31051
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31051
31052
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31052
31053
  visitNodes(cbNode, cbNodes, node.typeParameters) ||
31053
31054
  visitNodes(cbNode, cbNodes, node.parameters) ||
@@ -31085,7 +31086,7 @@ var ts;
31085
31086
  visitNodes(cbNode, cbNodes, node.parameters) ||
31086
31087
  visitNode(cbNode, node.type);
31087
31088
  case 171 /* Constructor */:
31088
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31089
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31089
31090
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31090
31091
  visitNode(cbNode, node.name) ||
31091
31092
  visitNodes(cbNode, cbNodes, node.typeParameters) ||
@@ -31107,7 +31108,7 @@ var ts;
31107
31108
  visitNode(cbNode, node.type) ||
31108
31109
  visitNode(cbNode, node.body);
31109
31110
  case 256 /* FunctionDeclaration */:
31110
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31111
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31111
31112
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31112
31113
  visitNode(cbNode, node.asteriskToken) ||
31113
31114
  visitNode(cbNode, node.name) ||
@@ -31131,7 +31132,7 @@ var ts;
31131
31132
  visitNode(cbNode, node.equalsGreaterThanToken) ||
31132
31133
  visitNode(cbNode, node.body);
31133
31134
  case 170 /* ClassStaticBlockDeclaration */:
31134
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31135
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31135
31136
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31136
31137
  visitNode(cbNode, node.body);
31137
31138
  case 178 /* TypeReference */:
@@ -31259,7 +31260,7 @@ var ts;
31259
31260
  return visitNodes(cbNode, cbNodes, node.statements) ||
31260
31261
  visitNode(cbNode, node.endOfFileToken);
31261
31262
  case 237 /* VariableStatement */:
31262
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31263
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31263
31264
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31264
31265
  visitNode(cbNode, node.declarationList);
31265
31266
  case 255 /* VariableDeclarationList */:
@@ -31330,20 +31331,20 @@ var ts;
31330
31331
  visitNodes(cbNode, cbNodes, node.heritageClauses) ||
31331
31332
  visitNodes(cbNode, cbNodes, node.members);
31332
31333
  case 258 /* InterfaceDeclaration */:
31333
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31334
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31334
31335
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31335
31336
  visitNode(cbNode, node.name) ||
31336
31337
  visitNodes(cbNode, cbNodes, node.typeParameters) ||
31337
31338
  visitNodes(cbNode, cbNodes, node.heritageClauses) ||
31338
31339
  visitNodes(cbNode, cbNodes, node.members);
31339
31340
  case 259 /* TypeAliasDeclaration */:
31340
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31341
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31341
31342
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31342
31343
  visitNode(cbNode, node.name) ||
31343
31344
  visitNodes(cbNode, cbNodes, node.typeParameters) ||
31344
31345
  visitNode(cbNode, node.type);
31345
31346
  case 260 /* EnumDeclaration */:
31346
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31347
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31347
31348
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31348
31349
  visitNode(cbNode, node.name) ||
31349
31350
  visitNodes(cbNode, cbNodes, node.members);
@@ -31351,17 +31352,17 @@ var ts;
31351
31352
  return visitNode(cbNode, node.name) ||
31352
31353
  visitNode(cbNode, node.initializer);
31353
31354
  case 261 /* ModuleDeclaration */:
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.name) ||
31357
31358
  visitNode(cbNode, node.body);
31358
31359
  case 265 /* ImportEqualsDeclaration */:
31359
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31360
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31360
31361
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31361
31362
  visitNode(cbNode, node.name) ||
31362
31363
  visitNode(cbNode, node.moduleReference);
31363
31364
  case 266 /* ImportDeclaration */:
31364
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31365
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31365
31366
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31366
31367
  visitNode(cbNode, node.importClause) ||
31367
31368
  visitNode(cbNode, node.moduleSpecifier) ||
@@ -31375,7 +31376,7 @@ var ts;
31375
31376
  return visitNode(cbNode, node.name) ||
31376
31377
  visitNode(cbNode, node.value);
31377
31378
  case 264 /* NamespaceExportDeclaration */:
31378
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31379
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31379
31380
  visitNode(cbNode, node.name);
31380
31381
  case 268 /* NamespaceImport */:
31381
31382
  return visitNode(cbNode, node.name);
@@ -31385,7 +31386,7 @@ var ts;
31385
31386
  case 273 /* NamedExports */:
31386
31387
  return visitNodes(cbNode, cbNodes, node.elements);
31387
31388
  case 272 /* ExportDeclaration */:
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.exportClause) ||
31391
31392
  visitNode(cbNode, node.moduleSpecifier) ||
@@ -31395,7 +31396,7 @@ var ts;
31395
31396
  return visitNode(cbNode, node.propertyName) ||
31396
31397
  visitNode(cbNode, node.name);
31397
31398
  case 271 /* ExportAssignment */:
31398
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31399
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31399
31400
  visitNodes(cbNode, cbNodes, node.modifiers) ||
31400
31401
  visitNode(cbNode, node.expression);
31401
31402
  case 223 /* TemplateExpression */:
@@ -31420,7 +31421,7 @@ var ts;
31420
31421
  case 277 /* ExternalModuleReference */:
31421
31422
  return visitNode(cbNode, node.expression);
31422
31423
  case 276 /* MissingDeclaration */:
31423
- return visitNodes(cbNode, cbNodes, node.decorators) ||
31424
+ return visitNodes(cbNode, cbNodes, node.illegalDecorators) ||
31424
31425
  visitNodes(cbNode, cbNodes, node.modifiers);
31425
31426
  case 351 /* CommaListExpression */:
31426
31427
  return visitNodes(cbNode, cbNodes, node.elements);
@@ -33971,7 +33972,7 @@ var ts;
33971
33972
  var type = parseTypeAnnotation();
33972
33973
  parseTypeMemberSemicolon();
33973
33974
  var node = factory.createIndexSignature(modifiers, parameters, type);
33974
- node.decorators = decorators;
33975
+ node.illegalDecorators = decorators;
33975
33976
  return withJSDoc(finishNode(node, pos), hasJSDoc);
33976
33977
  }
33977
33978
  function parsePropertyOrMethodSignature(pos, hasJSDoc, modifiers) {
@@ -36131,7 +36132,7 @@ var ts;
36131
36132
  node = factory.createPropertyAssignment(name, initializer);
36132
36133
  }
36133
36134
  // Decorators, Modifiers, questionToken, and exclamationToken are not supported by property assignments and are reported in the grammar checker
36134
- node.decorators = decorators;
36135
+ node.illegalDecorators = decorators;
36135
36136
  node.modifiers = modifiers;
36136
36137
  node.questionToken = questionToken;
36137
36138
  node.exclamationToken = exclamationToken;
@@ -36779,7 +36780,7 @@ var ts;
36779
36780
  // would follow. For recovery and error reporting purposes, return an incomplete declaration.
36780
36781
  var missing = createMissingNode(276 /* MissingDeclaration */, /*reportAtCurrentPosition*/ true, ts.Diagnostics.Declaration_expected);
36781
36782
  ts.setTextRangePos(missing, pos);
36782
- missing.decorators = decorators;
36783
+ missing.illegalDecorators = decorators;
36783
36784
  missing.modifiers = modifiers;
36784
36785
  return missing;
36785
36786
  }
@@ -36922,7 +36923,7 @@ var ts;
36922
36923
  parseSemicolon();
36923
36924
  var node = factory.createVariableStatement(modifiers, declarationList);
36924
36925
  // Decorators are not allowed on a variable statement, so we keep track of them to report them in the grammar checker.
36925
- node.decorators = decorators;
36926
+ node.illegalDecorators = decorators;
36926
36927
  return withJSDoc(finishNode(node, pos), hasJSDoc);
36927
36928
  }
36928
36929
  function parseFunctionDeclaration(pos, hasJSDoc, decorators, modifiers) {
@@ -36942,7 +36943,7 @@ var ts;
36942
36943
  var body = parseFunctionBlockOrSemicolon(isGenerator | isAsync, ts.Diagnostics.or_expected);
36943
36944
  setAwaitContext(savedAwaitContext);
36944
36945
  var node = factory.createFunctionDeclaration(modifiers, asteriskToken, name, typeParameters, parameters, type, body);
36945
- node.decorators = decorators;
36946
+ node.illegalDecorators = decorators;
36946
36947
  return withJSDoc(finishNode(node, pos), hasJSDoc);
36947
36948
  }
36948
36949
  function parseConstructorName() {
@@ -36965,7 +36966,7 @@ var ts;
36965
36966
  var body = parseFunctionBlockOrSemicolon(0 /* None */, ts.Diagnostics.or_expected);
36966
36967
  var node = factory.createConstructorDeclaration(modifiers, parameters, body);
36967
36968
  // Attach invalid nodes if they exist so that we can report them in the grammar checker.
36968
- node.decorators = decorators;
36969
+ node.illegalDecorators = decorators;
36969
36970
  node.typeParameters = typeParameters;
36970
36971
  node.type = type;
36971
36972
  return withJSDoc(finishNode(node, pos), hasJSDoc);
@@ -37081,7 +37082,7 @@ var ts;
37081
37082
  parseExpectedToken(124 /* StaticKeyword */);
37082
37083
  var body = parseClassStaticBlockBody();
37083
37084
  var node = withJSDoc(finishNode(factory.createClassStaticBlockDeclaration(body), pos), hasJSDoc);
37084
- node.decorators = decorators;
37085
+ node.illegalDecorators = decorators;
37085
37086
  node.modifiers = modifiers;
37086
37087
  return node;
37087
37088
  }
@@ -37322,7 +37323,7 @@ var ts;
37322
37323
  var heritageClauses = parseHeritageClauses();
37323
37324
  var members = parseObjectTypeMembers();
37324
37325
  var node = factory.createInterfaceDeclaration(modifiers, name, typeParameters, heritageClauses, members);
37325
- node.decorators = decorators;
37326
+ node.illegalDecorators = decorators;
37326
37327
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37327
37328
  }
37328
37329
  function parseTypeAliasDeclaration(pos, hasJSDoc, decorators, modifiers) {
@@ -37333,7 +37334,7 @@ var ts;
37333
37334
  var type = token() === 138 /* IntrinsicKeyword */ && tryParse(parseKeywordAndNoDot) || parseType();
37334
37335
  parseSemicolon();
37335
37336
  var node = factory.createTypeAliasDeclaration(modifiers, name, typeParameters, type);
37336
- node.decorators = decorators;
37337
+ node.illegalDecorators = decorators;
37337
37338
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37338
37339
  }
37339
37340
  // In an ambient declaration, the grammar only allows integer literals as initializers.
@@ -37359,7 +37360,7 @@ var ts;
37359
37360
  members = createMissingList();
37360
37361
  }
37361
37362
  var node = factory.createEnumDeclaration(modifiers, name, members);
37362
- node.decorators = decorators;
37363
+ node.illegalDecorators = decorators;
37363
37364
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37364
37365
  }
37365
37366
  function parseModuleBlock() {
@@ -37383,7 +37384,7 @@ var ts;
37383
37384
  ? parseModuleOrNamespaceDeclaration(getNodePos(), /*hasJSDoc*/ false, /*decorators*/ undefined, /*modifiers*/ undefined, 4 /* NestedNamespace */ | namespaceFlag)
37384
37385
  : parseModuleBlock();
37385
37386
  var node = factory.createModuleDeclaration(modifiers, name, body, flags);
37386
- node.decorators = decorators;
37387
+ node.illegalDecorators = decorators;
37387
37388
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37388
37389
  }
37389
37390
  function parseAmbientExternalModuleDeclaration(pos, hasJSDoc, decorators, modifiers) {
@@ -37406,7 +37407,7 @@ var ts;
37406
37407
  parseSemicolon();
37407
37408
  }
37408
37409
  var node = factory.createModuleDeclaration(modifiers, name, body, flags);
37409
- node.decorators = decorators;
37410
+ node.illegalDecorators = decorators;
37410
37411
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37411
37412
  }
37412
37413
  function parseModuleDeclaration(pos, hasJSDoc, decorators, modifiers) {
@@ -37446,7 +37447,7 @@ var ts;
37446
37447
  parseSemicolon();
37447
37448
  var node = factory.createNamespaceExportDeclaration(name);
37448
37449
  // NamespaceExportDeclaration nodes cannot have decorators or modifiers, so we attach them here so we can report them in the grammar checker
37449
- node.decorators = decorators;
37450
+ node.illegalDecorators = decorators;
37450
37451
  node.modifiers = modifiers;
37451
37452
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37452
37453
  }
@@ -37486,7 +37487,7 @@ var ts;
37486
37487
  }
37487
37488
  parseSemicolon();
37488
37489
  var node = factory.createImportDeclaration(modifiers, importClause, moduleSpecifier, assertClause);
37489
- node.decorators = decorators;
37490
+ node.illegalDecorators = decorators;
37490
37491
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37491
37492
  }
37492
37493
  function parseAssertEntry() {
@@ -37531,7 +37532,7 @@ var ts;
37531
37532
  var moduleReference = parseModuleReference();
37532
37533
  parseSemicolon();
37533
37534
  var node = factory.createImportEqualsDeclaration(modifiers, isTypeOnly, identifier, moduleReference);
37534
- node.decorators = decorators;
37535
+ node.illegalDecorators = decorators;
37535
37536
  var finished = withJSDoc(finishNode(node, pos), hasJSDoc);
37536
37537
  return finished;
37537
37538
  }
@@ -37721,7 +37722,7 @@ var ts;
37721
37722
  parseSemicolon();
37722
37723
  setAwaitContext(savedAwaitContext);
37723
37724
  var node = factory.createExportDeclaration(modifiers, isTypeOnly, exportClause, moduleSpecifier, assertClause);
37724
- node.decorators = decorators;
37725
+ node.illegalDecorators = decorators;
37725
37726
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37726
37727
  }
37727
37728
  function parseExportAssignment(pos, hasJSDoc, decorators, modifiers) {
@@ -37738,7 +37739,7 @@ var ts;
37738
37739
  parseSemicolon();
37739
37740
  setAwaitContext(savedAwaitContext);
37740
37741
  var node = factory.createExportAssignment(modifiers, isExportEquals, expression);
37741
- node.decorators = decorators;
37742
+ node.illegalDecorators = decorators;
37742
37743
  return withJSDoc(finishNode(node, pos), hasJSDoc);
37743
37744
  }
37744
37745
  var ParsingContext;
@@ -43102,10 +43103,12 @@ var ts;
43102
43103
  if (resolved) {
43103
43104
  var fileName = resolved.fileName, packageId = resolved.packageId;
43104
43105
  var resolvedFileName = options.preserveSymlinks ? fileName : realPath(fileName, host, traceEnabled);
43106
+ var pathsAreEqual = arePathsEqual(fileName, resolvedFileName, host);
43105
43107
  resolvedTypeReferenceDirective = {
43106
43108
  primary: primary,
43107
- resolvedFileName: resolvedFileName,
43108
- originalPath: arePathsEqual(fileName, resolvedFileName, host) ? undefined : fileName,
43109
+ // If the fileName and realpath are differing only in casing prefer fileName so that we can issue correct errors for casing under forceConsistentCasingInFileNames
43110
+ resolvedFileName: pathsAreEqual ? fileName : resolvedFileName,
43111
+ originalPath: pathsAreEqual ? undefined : fileName,
43109
43112
  packageId: packageId,
43110
43113
  isExternalLibraryImport: pathContainsNodeModules(fileName),
43111
43114
  };
@@ -43890,8 +43893,10 @@ var ts;
43890
43893
  var resolvedValue = resolved_1.value;
43891
43894
  if (!compilerOptions.preserveSymlinks && resolvedValue && !resolvedValue.originalPath) {
43892
43895
  var path = realPath(resolvedValue.path, host, traceEnabled);
43893
- var originalPath = arePathsEqual(path, resolvedValue.path, host) ? undefined : resolvedValue.path;
43894
- resolvedValue = __assign(__assign({}, resolvedValue), { path: path, originalPath: originalPath });
43896
+ var pathsAreEqual = arePathsEqual(path, resolvedValue.path, host);
43897
+ var originalPath = pathsAreEqual ? undefined : resolvedValue.path;
43898
+ // If the path and realpath are differing only in casing prefer path so that we can issue correct errors for casing under forceConsistentCasingInFileNames
43899
+ resolvedValue = __assign(__assign({}, resolvedValue), { path: pathsAreEqual ? resolvedValue.path : path, originalPath: originalPath });
43895
43900
  }
43896
43901
  // For node_modules lookups, get the real path so that multiple accesses to an `npm link`-ed module do not create duplicate files.
43897
43902
  return { value: resolvedValue && { resolved: resolvedValue, isExternalLibraryImport: true } };
@@ -51032,41 +51037,61 @@ var ts;
51032
51037
  return typeof file.externalModuleIndicator !== "object" && !resolveExportByName(moduleSymbol, ts.escapeLeadingUnderscores("__esModule"), /*sourceNode*/ undefined, dontResolveAlias);
51033
51038
  }
51034
51039
  function getTargetOfImportClause(node, dontResolveAlias) {
51035
- var _a;
51036
51040
  var moduleSymbol = resolveExternalModuleName(node, node.parent.moduleSpecifier);
51037
51041
  if (moduleSymbol) {
51038
- var exportDefaultSymbol = void 0;
51039
- if (ts.isShorthandAmbientModuleSymbol(moduleSymbol)) {
51040
- exportDefaultSymbol = moduleSymbol;
51041
- }
51042
- else {
51043
- exportDefaultSymbol = resolveExportByName(moduleSymbol, "default" /* Default */, node, dontResolveAlias);
51044
- }
51045
- var file = (_a = moduleSymbol.declarations) === null || _a === void 0 ? void 0 : _a.find(ts.isSourceFile);
51046
- var hasDefaultOnly = isOnlyImportedAsDefault(node.parent.moduleSpecifier);
51047
- var hasSyntheticDefault = canHaveSyntheticDefault(file, moduleSymbol, dontResolveAlias, node.parent.moduleSpecifier);
51048
- if (!exportDefaultSymbol && !hasSyntheticDefault && !hasDefaultOnly) {
51049
- if (hasExportAssignmentSymbol(moduleSymbol)) {
51050
- var compilerOptionName = moduleKind >= ts.ModuleKind.ES2015 ? "allowSyntheticDefaultImports" : "esModuleInterop";
51051
- var exportEqualsSymbol = moduleSymbol.exports.get("export=" /* ExportEquals */);
51052
- var exportAssignment = exportEqualsSymbol.valueDeclaration;
51053
- var err = error(node.name, ts.Diagnostics.Module_0_can_only_be_default_imported_using_the_1_flag, symbolToString(moduleSymbol), compilerOptionName);
51054
- if (exportAssignment) {
51055
- 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));
51056
- }
51057
- }
51058
- else {
51059
- reportNonDefaultExport(moduleSymbol, node);
51042
+ return getTargetofModuleDefault(moduleSymbol, node, dontResolveAlias);
51043
+ }
51044
+ }
51045
+ function getTargetofModuleDefault(moduleSymbol, node, dontResolveAlias) {
51046
+ var _a;
51047
+ var exportDefaultSymbol;
51048
+ if (ts.isShorthandAmbientModuleSymbol(moduleSymbol)) {
51049
+ exportDefaultSymbol = moduleSymbol;
51050
+ }
51051
+ else {
51052
+ exportDefaultSymbol = resolveExportByName(moduleSymbol, "default" /* Default */, node, dontResolveAlias);
51053
+ }
51054
+ var file = (_a = moduleSymbol.declarations) === null || _a === void 0 ? void 0 : _a.find(ts.isSourceFile);
51055
+ var specifier = getModuleSpecifierForImportOrExport(node);
51056
+ if (!specifier) {
51057
+ return exportDefaultSymbol;
51058
+ }
51059
+ var hasDefaultOnly = isOnlyImportedAsDefault(specifier);
51060
+ var hasSyntheticDefault = canHaveSyntheticDefault(file, moduleSymbol, dontResolveAlias, specifier);
51061
+ if (!exportDefaultSymbol && !hasSyntheticDefault && !hasDefaultOnly) {
51062
+ if (hasExportAssignmentSymbol(moduleSymbol)) {
51063
+ var compilerOptionName = moduleKind >= ts.ModuleKind.ES2015 ? "allowSyntheticDefaultImports" : "esModuleInterop";
51064
+ var exportEqualsSymbol = moduleSymbol.exports.get("export=" /* ExportEquals */);
51065
+ var exportAssignment = exportEqualsSymbol.valueDeclaration;
51066
+ var err = error(node.name, ts.Diagnostics.Module_0_can_only_be_default_imported_using_the_1_flag, symbolToString(moduleSymbol), compilerOptionName);
51067
+ if (exportAssignment) {
51068
+ 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));
51060
51069
  }
51061
51070
  }
51062
- else if (hasSyntheticDefault || hasDefaultOnly) {
51063
- // per emit behavior, a synthetic default overrides a "real" .default member if `__esModule` is not present
51064
- var resolved = resolveExternalModuleSymbol(moduleSymbol, dontResolveAlias) || resolveSymbol(moduleSymbol, dontResolveAlias);
51065
- markSymbolOfAliasDeclarationIfTypeOnly(node, moduleSymbol, resolved, /*overwriteTypeOnly*/ false);
51066
- return resolved;
51071
+ else if (ts.isImportClause(node)) {
51072
+ reportNonDefaultExport(moduleSymbol, node);
51067
51073
  }
51068
- markSymbolOfAliasDeclarationIfTypeOnly(node, exportDefaultSymbol, /*finalTarget*/ undefined, /*overwriteTypeOnly*/ false);
51069
- return exportDefaultSymbol;
51074
+ else {
51075
+ errorNoModuleMemberSymbol(moduleSymbol, moduleSymbol, node, ts.isImportOrExportSpecifier(node) && node.propertyName || node.name);
51076
+ }
51077
+ }
51078
+ else if (hasSyntheticDefault || hasDefaultOnly) {
51079
+ // per emit behavior, a synthetic default overrides a "real" .default member if `__esModule` is not present
51080
+ var resolved = resolveExternalModuleSymbol(moduleSymbol, dontResolveAlias) || resolveSymbol(moduleSymbol, dontResolveAlias);
51081
+ markSymbolOfAliasDeclarationIfTypeOnly(node, moduleSymbol, resolved, /*overwriteTypeOnly*/ false);
51082
+ return resolved;
51083
+ }
51084
+ markSymbolOfAliasDeclarationIfTypeOnly(node, exportDefaultSymbol, /*finalTarget*/ undefined, /*overwriteTypeOnly*/ false);
51085
+ return exportDefaultSymbol;
51086
+ }
51087
+ function getModuleSpecifierForImportOrExport(node) {
51088
+ switch (node.kind) {
51089
+ case 267 /* ImportClause */: return node.parent.moduleSpecifier;
51090
+ case 265 /* ImportEqualsDeclaration */: return ts.isExternalModuleReference(node.moduleReference) ? node.moduleReference.expression : undefined;
51091
+ case 268 /* NamespaceImport */: return node.parent.parent.moduleSpecifier;
51092
+ case 270 /* ImportSpecifier */: return node.parent.parent.parent.moduleSpecifier;
51093
+ case 275 /* ExportSpecifier */: return node.parent.parent.moduleSpecifier;
51094
+ default: return ts.Debug.assertNever(node);
51070
51095
  }
51071
51096
  }
51072
51097
  function reportNonDefaultExport(moduleSymbol, node) {
@@ -51156,7 +51181,7 @@ var ts;
51156
51181
  }
51157
51182
  }
51158
51183
  function getExternalModuleMember(node, specifier, dontResolveAlias) {
51159
- var _a, _b;
51184
+ var _a;
51160
51185
  if (dontResolveAlias === void 0) { dontResolveAlias = false; }
51161
51186
  var moduleSpecifier = ts.getExternalModuleRequireArgument(node) || node.moduleSpecifier;
51162
51187
  var moduleSymbol = resolveExternalModuleName(node, moduleSpecifier); // TODO: GH#18217
@@ -51192,29 +51217,33 @@ var ts;
51192
51217
  combineValueAndTypeSymbols(symbolFromVariable, symbolFromModule) :
51193
51218
  symbolFromModule || symbolFromVariable;
51194
51219
  if (!symbol) {
51195
- var moduleName = getFullyQualifiedName(moduleSymbol, node);
51196
- var declarationName = ts.declarationNameToString(name);
51197
- var suggestion = getSuggestedSymbolForNonexistentModule(name, targetSymbol);
51198
- if (suggestion !== undefined) {
51199
- var suggestionName = symbolToString(suggestion);
51200
- var diagnostic = error(name, ts.Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2, moduleName, declarationName, suggestionName);
51201
- if (suggestion.valueDeclaration) {
51202
- ts.addRelatedInfo(diagnostic, ts.createDiagnosticForNode(suggestion.valueDeclaration, ts.Diagnostics._0_is_declared_here, suggestionName));
51203
- }
51204
- }
51205
- else {
51206
- if ((_b = moduleSymbol.exports) === null || _b === void 0 ? void 0 : _b.has("default" /* Default */)) {
51207
- error(name, ts.Diagnostics.Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead, moduleName, declarationName);
51208
- }
51209
- else {
51210
- reportNonExportedMember(node, name, declarationName, moduleSymbol, moduleName);
51211
- }
51212
- }
51220
+ errorNoModuleMemberSymbol(moduleSymbol, targetSymbol, node, name);
51213
51221
  }
51214
51222
  return symbol;
51215
51223
  }
51216
51224
  }
51217
51225
  }
51226
+ function errorNoModuleMemberSymbol(moduleSymbol, targetSymbol, node, name) {
51227
+ var _a;
51228
+ var moduleName = getFullyQualifiedName(moduleSymbol, node);
51229
+ var declarationName = ts.declarationNameToString(name);
51230
+ var suggestion = getSuggestedSymbolForNonexistentModule(name, targetSymbol);
51231
+ if (suggestion !== undefined) {
51232
+ var suggestionName = symbolToString(suggestion);
51233
+ var diagnostic = error(name, ts.Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2, moduleName, declarationName, suggestionName);
51234
+ if (suggestion.valueDeclaration) {
51235
+ ts.addRelatedInfo(diagnostic, ts.createDiagnosticForNode(suggestion.valueDeclaration, ts.Diagnostics._0_is_declared_here, suggestionName));
51236
+ }
51237
+ }
51238
+ else {
51239
+ if ((_a = moduleSymbol.exports) === null || _a === void 0 ? void 0 : _a.has("default" /* Default */)) {
51240
+ error(name, ts.Diagnostics.Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead, moduleName, declarationName);
51241
+ }
51242
+ else {
51243
+ reportNonExportedMember(node, name, declarationName, moduleSymbol, moduleName);
51244
+ }
51245
+ }
51246
+ }
51218
51247
  function reportNonExportedMember(node, name, declarationName, moduleSymbol, moduleName) {
51219
51248
  var _a, _b;
51220
51249
  var localSymbol = (_b = (_a = moduleSymbol.valueDeclaration) === null || _a === void 0 ? void 0 : _a.locals) === null || _b === void 0 ? void 0 : _b.get(name.escapedText);
@@ -51260,6 +51289,13 @@ var ts;
51260
51289
  }
51261
51290
  }
51262
51291
  function getTargetOfImportSpecifier(node, dontResolveAlias) {
51292
+ if (ts.isImportSpecifier(node) && ts.idText(node.propertyName || node.name) === "default" /* Default */) {
51293
+ var specifier = getModuleSpecifierForImportOrExport(node);
51294
+ var moduleSymbol = specifier && resolveExternalModuleName(node, specifier);
51295
+ if (moduleSymbol) {
51296
+ return getTargetofModuleDefault(moduleSymbol, node, dontResolveAlias);
51297
+ }
51298
+ }
51263
51299
  var root = ts.isBindingElement(node) ? ts.getRootDeclaration(node) : node.parent.parent.parent;
51264
51300
  var commonJSPropertyAccess = getCommonJSPropertyAccess(root);
51265
51301
  var resolved = getExternalModuleMember(root, commonJSPropertyAccess || node, dontResolveAlias);
@@ -51281,6 +51317,13 @@ var ts;
51281
51317
  return resolved;
51282
51318
  }
51283
51319
  function getTargetOfExportSpecifier(node, meaning, dontResolveAlias) {
51320
+ if (ts.idText(node.propertyName || node.name) === "default" /* Default */) {
51321
+ var specifier = getModuleSpecifierForImportOrExport(node);
51322
+ var moduleSymbol = specifier && resolveExternalModuleName(node, specifier);
51323
+ if (moduleSymbol) {
51324
+ return getTargetofModuleDefault(moduleSymbol, node, !!dontResolveAlias);
51325
+ }
51326
+ }
51284
51327
  var resolved = node.parent.parent.moduleSpecifier ?
51285
51328
  getExternalModuleMember(node.parent.parent, node, dontResolveAlias) :
51286
51329
  resolveEntityName(node.propertyName || node.name, meaning, /*ignoreErrors*/ false, dontResolveAlias);
@@ -55729,7 +55772,7 @@ var ts;
55729
55772
  // This is an else/if as accessors and properties can't merge in TS, but might in JS
55730
55773
  // If this happens, we assume the accessor takes priority, as it imposes more constraints
55731
55774
  else if (p.flags & (4 /* Property */ | 3 /* Variable */ | 98304 /* Accessor */)) {
55732
- 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),
55775
+ 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),
55733
55776
  // TODO: https://github.com/microsoft/TypeScript/pull/32372#discussion_r328386357
55734
55777
  // interface members can't have initializers, however class members _can_
55735
55778
  /*initializer*/ undefined), ((_d = p.declarations) === null || _d === void 0 ? void 0 : _d.find(ts.or(ts.isPropertyDeclaration, ts.isVariableDeclaration))) || firstPropertyLikeDecl);
@@ -88753,7 +88796,7 @@ var ts;
88753
88796
  return checkGrammarDecorators(node) || checkGrammarModifiers(node);
88754
88797
  }
88755
88798
  function checkGrammarDecorators(node) {
88756
- if (ts.canHaveIllegalDecorators(node) && ts.some(node.decorators)) {
88799
+ if (ts.canHaveIllegalDecorators(node) && ts.some(node.illegalDecorators)) {
88757
88800
  return grammarErrorOnFirstToken(node, ts.Diagnostics.Decorators_are_not_valid_here);
88758
88801
  }
88759
88802
  if (!ts.canHaveDecorators(node) || !ts.hasDecorators(node)) {
@@ -90406,6 +90449,7 @@ var ts;
90406
90449
  })(ts || (ts = {}));
90407
90450
  var ts;
90408
90451
  (function (ts) {
90452
+ var _a;
90409
90453
  function visitNode(node, visitor, test, lift) {
90410
90454
  if (node === undefined || visitor === undefined) {
90411
90455
  return node;
@@ -90620,12 +90664,10 @@ var ts;
90620
90664
  return updated;
90621
90665
  }
90622
90666
  ts.visitFunctionBody = visitFunctionBody;
90623
- /**
90624
- * Visits an iteration body, adding any block-scoped variables required by the transformation.
90625
- */
90626
- function visitIterationBody(body, visitor, context) {
90667
+ function visitIterationBody(body, visitor, context, nodeVisitor) {
90668
+ if (nodeVisitor === void 0) { nodeVisitor = visitNode; }
90627
90669
  context.startBlockScope();
90628
- var updated = visitNode(body, visitor, ts.isStatement, context.factory.liftToBlock);
90670
+ var updated = nodeVisitor(body, visitor, ts.isStatement, context.factory.liftToBlock);
90629
90671
  var declarations = context.endBlockScope();
90630
90672
  if (ts.some(declarations)) {
90631
90673
  if (ts.isBlock(updated)) {
@@ -90644,456 +90686,443 @@ var ts;
90644
90686
  if (node === undefined) {
90645
90687
  return undefined;
90646
90688
  }
90647
- var kind = node.kind;
90648
- // No need to visit nodes with no children.
90649
- if ((kind > 0 /* FirstToken */ && kind <= 160 /* LastToken */) || kind === 192 /* ThisType */) {
90650
- return node;
90651
- }
90652
- var factory = context.factory;
90653
- switch (kind) {
90654
- // Names
90655
- case 79 /* Identifier */:
90656
- ts.Debug.type(node);
90657
- return factory.updateIdentifier(node, nodesVisitor(node.typeArguments, visitor, ts.isTypeNodeOrTypeParameterDeclaration));
90658
- case 161 /* QualifiedName */:
90659
- ts.Debug.type(node);
90660
- return factory.updateQualifiedName(node, nodeVisitor(node.left, visitor, ts.isEntityName), nodeVisitor(node.right, visitor, ts.isIdentifier));
90661
- case 162 /* ComputedPropertyName */:
90662
- ts.Debug.type(node);
90663
- return factory.updateComputedPropertyName(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90664
- // Signature elements
90665
- case 163 /* TypeParameter */:
90666
- ts.Debug.type(node);
90667
- 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));
90668
- case 164 /* Parameter */:
90669
- ts.Debug.type(node);
90670
- 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));
90671
- case 165 /* Decorator */:
90672
- ts.Debug.type(node);
90673
- return factory.updateDecorator(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90674
- // Type elements
90675
- case 166 /* PropertySignature */:
90676
- ts.Debug.type(node);
90677
- 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));
90678
- case 167 /* PropertyDeclaration */:
90679
- ts.Debug.type(node);
90680
- return factory.updatePropertyDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.name, visitor, ts.isPropertyName),
90681
- // QuestionToken and ExclamationToken is uniqued in Property Declaration and the signature of 'updateProperty' is that too
90682
- nodeVisitor(node.questionToken || node.exclamationToken, tokenVisitor, ts.isQuestionOrExclamationToken), nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.initializer, visitor, ts.isExpression));
90683
- case 168 /* MethodSignature */:
90684
- ts.Debug.type(node);
90685
- 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));
90686
- case 169 /* MethodDeclaration */:
90687
- ts.Debug.type(node);
90688
- 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));
90689
- case 171 /* Constructor */:
90690
- ts.Debug.type(node);
90691
- return factory.updateConstructorDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), visitParameterList(node.parameters, visitor, context, nodesVisitor), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90692
- case 172 /* GetAccessor */:
90693
- ts.Debug.type(node);
90694
- 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));
90695
- case 173 /* SetAccessor */:
90696
- ts.Debug.type(node);
90697
- 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));
90698
- case 170 /* ClassStaticBlockDeclaration */:
90699
- ts.Debug.type(node);
90700
- context.startLexicalEnvironment();
90701
- context.suspendLexicalEnvironment();
90702
- return factory.updateClassStaticBlockDeclaration(node, visitFunctionBody(node.body, visitor, context, nodeVisitor));
90703
- case 174 /* CallSignature */:
90704
- ts.Debug.type(node);
90705
- return factory.updateCallSignature(node, nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90706
- case 175 /* ConstructSignature */:
90707
- ts.Debug.type(node);
90708
- return factory.updateConstructSignature(node, nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90709
- case 176 /* IndexSignature */:
90710
- ts.Debug.type(node);
90711
- return factory.updateIndexSignature(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90712
- // Types
90713
- case 177 /* TypePredicate */:
90714
- ts.Debug.type(node);
90715
- return factory.updateTypePredicateNode(node, nodeVisitor(node.assertsModifier, visitor, ts.isAssertsKeyword), nodeVisitor(node.parameterName, visitor, ts.isIdentifierOrThisTypeNode), nodeVisitor(node.type, visitor, ts.isTypeNode));
90716
- case 178 /* TypeReference */:
90717
- ts.Debug.type(node);
90718
- return factory.updateTypeReferenceNode(node, nodeVisitor(node.typeName, visitor, ts.isEntityName), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode));
90719
- case 179 /* FunctionType */:
90720
- ts.Debug.type(node);
90721
- return factory.updateFunctionTypeNode(node, nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90722
- case 180 /* ConstructorType */:
90723
- ts.Debug.type(node);
90724
- 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));
90725
- case 181 /* TypeQuery */:
90726
- ts.Debug.type(node);
90727
- return factory.updateTypeQueryNode(node, nodeVisitor(node.exprName, visitor, ts.isEntityName), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode));
90728
- case 182 /* TypeLiteral */:
90729
- ts.Debug.type(node);
90730
- return factory.updateTypeLiteralNode(node, nodesVisitor(node.members, visitor, ts.isTypeElement));
90731
- case 183 /* ArrayType */:
90732
- ts.Debug.type(node);
90733
- return factory.updateArrayTypeNode(node, nodeVisitor(node.elementType, visitor, ts.isTypeNode));
90734
- case 184 /* TupleType */:
90735
- ts.Debug.type(node);
90736
- return factory.updateTupleTypeNode(node, nodesVisitor(node.elements, visitor, ts.isTypeNode));
90737
- case 185 /* OptionalType */:
90738
- ts.Debug.type(node);
90739
- return factory.updateOptionalTypeNode(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90740
- case 186 /* RestType */:
90741
- ts.Debug.type(node);
90742
- return factory.updateRestTypeNode(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90743
- case 187 /* UnionType */:
90744
- ts.Debug.type(node);
90745
- return factory.updateUnionTypeNode(node, nodesVisitor(node.types, visitor, ts.isTypeNode));
90746
- case 188 /* IntersectionType */:
90747
- ts.Debug.type(node);
90748
- return factory.updateIntersectionTypeNode(node, nodesVisitor(node.types, visitor, ts.isTypeNode));
90749
- case 189 /* ConditionalType */:
90750
- ts.Debug.type(node);
90751
- 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));
90752
- case 190 /* InferType */:
90753
- ts.Debug.type(node);
90754
- return factory.updateInferTypeNode(node, nodeVisitor(node.typeParameter, visitor, ts.isTypeParameterDeclaration));
90755
- case 200 /* ImportType */:
90756
- ts.Debug.type(node);
90757
- 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);
90758
- case 295 /* ImportTypeAssertionContainer */:
90759
- ts.Debug.type(node);
90760
- return factory.updateImportTypeAssertionContainer(node, nodeVisitor(node.assertClause, visitor, ts.isNode), node.multiLine);
90761
- case 197 /* NamedTupleMember */:
90762
- ts.Debug.type(node);
90763
- 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));
90764
- case 191 /* ParenthesizedType */:
90765
- ts.Debug.type(node);
90766
- return factory.updateParenthesizedType(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90767
- case 193 /* TypeOperator */:
90768
- ts.Debug.type(node);
90769
- return factory.updateTypeOperatorNode(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90770
- case 194 /* IndexedAccessType */:
90771
- ts.Debug.type(node);
90772
- return factory.updateIndexedAccessTypeNode(node, nodeVisitor(node.objectType, visitor, ts.isTypeNode), nodeVisitor(node.indexType, visitor, ts.isTypeNode));
90773
- case 195 /* MappedType */:
90774
- ts.Debug.type(node);
90775
- 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));
90776
- case 196 /* LiteralType */:
90777
- ts.Debug.type(node);
90778
- return factory.updateLiteralTypeNode(node, nodeVisitor(node.literal, visitor, ts.isExpression));
90779
- case 198 /* TemplateLiteralType */:
90780
- ts.Debug.type(node);
90781
- return factory.updateTemplateLiteralType(node, nodeVisitor(node.head, visitor, ts.isTemplateHead), nodesVisitor(node.templateSpans, visitor, ts.isTemplateLiteralTypeSpan));
90782
- case 199 /* TemplateLiteralTypeSpan */:
90783
- ts.Debug.type(node);
90784
- return factory.updateTemplateLiteralTypeSpan(node, nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.literal, visitor, ts.isTemplateMiddleOrTemplateTail));
90785
- // Binding patterns
90786
- case 201 /* ObjectBindingPattern */:
90787
- ts.Debug.type(node);
90788
- return factory.updateObjectBindingPattern(node, nodesVisitor(node.elements, visitor, ts.isBindingElement));
90789
- case 202 /* ArrayBindingPattern */:
90790
- ts.Debug.type(node);
90791
- return factory.updateArrayBindingPattern(node, nodesVisitor(node.elements, visitor, ts.isArrayBindingElement));
90792
- case 203 /* BindingElement */:
90793
- ts.Debug.type(node);
90794
- 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));
90795
- // Expression
90796
- case 204 /* ArrayLiteralExpression */:
90797
- ts.Debug.type(node);
90798
- return factory.updateArrayLiteralExpression(node, nodesVisitor(node.elements, visitor, ts.isExpression));
90799
- case 205 /* ObjectLiteralExpression */:
90800
- ts.Debug.type(node);
90801
- return factory.updateObjectLiteralExpression(node, nodesVisitor(node.properties, visitor, ts.isObjectLiteralElementLike));
90802
- case 206 /* PropertyAccessExpression */:
90803
- if (node.flags & 32 /* OptionalChain */) {
90804
- ts.Debug.type(node);
90805
- return factory.updatePropertyAccessChain(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.questionDotToken, tokenVisitor, ts.isQuestionDotToken), nodeVisitor(node.name, visitor, ts.isMemberName));
90806
- }
90807
- ts.Debug.type(node);
90808
- return factory.updatePropertyAccessExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.name, visitor, ts.isMemberName));
90809
- case 207 /* ElementAccessExpression */:
90810
- if (node.flags & 32 /* OptionalChain */) {
90811
- ts.Debug.type(node);
90812
- return factory.updateElementAccessChain(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.questionDotToken, tokenVisitor, ts.isQuestionDotToken), nodeVisitor(node.argumentExpression, visitor, ts.isExpression));
90813
- }
90814
- ts.Debug.type(node);
90815
- return factory.updateElementAccessExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.argumentExpression, visitor, ts.isExpression));
90816
- case 208 /* CallExpression */:
90817
- if (node.flags & 32 /* OptionalChain */) {
90818
- ts.Debug.type(node);
90819
- 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));
90820
- }
90821
- ts.Debug.type(node);
90822
- return factory.updateCallExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodesVisitor(node.arguments, visitor, ts.isExpression));
90823
- case 209 /* NewExpression */:
90824
- ts.Debug.type(node);
90825
- return factory.updateNewExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodesVisitor(node.arguments, visitor, ts.isExpression));
90826
- case 210 /* TaggedTemplateExpression */:
90827
- ts.Debug.type(node);
90828
- return factory.updateTaggedTemplateExpression(node, nodeVisitor(node.tag, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodeVisitor(node.template, visitor, ts.isTemplateLiteral));
90829
- case 211 /* TypeAssertionExpression */:
90830
- ts.Debug.type(node);
90831
- return factory.updateTypeAssertion(node, nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.expression, visitor, ts.isExpression));
90832
- case 212 /* ParenthesizedExpression */:
90833
- ts.Debug.type(node);
90834
- return factory.updateParenthesizedExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90835
- case 213 /* FunctionExpression */:
90836
- ts.Debug.type(node);
90837
- 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));
90838
- case 214 /* ArrowFunction */:
90839
- ts.Debug.type(node);
90840
- 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));
90841
- case 215 /* DeleteExpression */:
90842
- ts.Debug.type(node);
90843
- return factory.updateDeleteExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90844
- case 216 /* TypeOfExpression */:
90845
- ts.Debug.type(node);
90846
- return factory.updateTypeOfExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90847
- case 217 /* VoidExpression */:
90848
- ts.Debug.type(node);
90849
- return factory.updateVoidExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90850
- case 218 /* AwaitExpression */:
90851
- ts.Debug.type(node);
90852
- return factory.updateAwaitExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90853
- case 219 /* PrefixUnaryExpression */:
90854
- ts.Debug.type(node);
90855
- return factory.updatePrefixUnaryExpression(node, nodeVisitor(node.operand, visitor, ts.isExpression));
90856
- case 220 /* PostfixUnaryExpression */:
90857
- ts.Debug.type(node);
90858
- return factory.updatePostfixUnaryExpression(node, nodeVisitor(node.operand, visitor, ts.isExpression));
90859
- case 221 /* BinaryExpression */:
90860
- ts.Debug.type(node);
90861
- return factory.updateBinaryExpression(node, nodeVisitor(node.left, visitor, ts.isExpression), nodeVisitor(node.operatorToken, tokenVisitor, ts.isBinaryOperatorToken), nodeVisitor(node.right, visitor, ts.isExpression));
90862
- case 222 /* ConditionalExpression */:
90863
- ts.Debug.type(node);
90864
- 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));
90865
- case 223 /* TemplateExpression */:
90866
- ts.Debug.type(node);
90867
- return factory.updateTemplateExpression(node, nodeVisitor(node.head, visitor, ts.isTemplateHead), nodesVisitor(node.templateSpans, visitor, ts.isTemplateSpan));
90868
- case 224 /* YieldExpression */:
90869
- ts.Debug.type(node);
90870
- return factory.updateYieldExpression(node, nodeVisitor(node.asteriskToken, tokenVisitor, ts.isAsteriskToken), nodeVisitor(node.expression, visitor, ts.isExpression));
90871
- case 225 /* SpreadElement */:
90872
- ts.Debug.type(node);
90873
- return factory.updateSpreadElement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90874
- case 226 /* ClassExpression */:
90875
- ts.Debug.type(node);
90876
- 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));
90877
- case 228 /* ExpressionWithTypeArguments */:
90878
- ts.Debug.type(node);
90879
- return factory.updateExpressionWithTypeArguments(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode));
90880
- case 229 /* AsExpression */:
90881
- ts.Debug.type(node);
90882
- return factory.updateAsExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.type, visitor, ts.isTypeNode));
90883
- case 230 /* NonNullExpression */:
90884
- if (node.flags & 32 /* OptionalChain */) {
90885
- ts.Debug.type(node);
90886
- return factory.updateNonNullChain(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90887
- }
90888
- ts.Debug.type(node);
90889
- return factory.updateNonNullExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90890
- case 231 /* MetaProperty */:
90891
- ts.Debug.type(node);
90892
- return factory.updateMetaProperty(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
90893
- // Misc
90894
- case 233 /* TemplateSpan */:
90895
- ts.Debug.type(node);
90896
- return factory.updateTemplateSpan(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.literal, visitor, ts.isTemplateMiddleOrTemplateTail));
90897
- // Element
90898
- case 235 /* Block */:
90899
- ts.Debug.type(node);
90900
- return factory.updateBlock(node, nodesVisitor(node.statements, visitor, ts.isStatement));
90901
- case 237 /* VariableStatement */:
90902
- ts.Debug.type(node);
90903
- return factory.updateVariableStatement(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.declarationList, visitor, ts.isVariableDeclarationList));
90904
- case 238 /* ExpressionStatement */:
90905
- ts.Debug.type(node);
90906
- return factory.updateExpressionStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90907
- case 239 /* IfStatement */:
90908
- ts.Debug.type(node);
90909
- 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));
90910
- case 240 /* DoStatement */:
90911
- ts.Debug.type(node);
90912
- return factory.updateDoStatement(node, visitIterationBody(node.statement, visitor, context), nodeVisitor(node.expression, visitor, ts.isExpression));
90913
- case 241 /* WhileStatement */:
90914
- ts.Debug.type(node);
90915
- return factory.updateWhileStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), visitIterationBody(node.statement, visitor, context));
90916
- case 242 /* ForStatement */:
90917
- ts.Debug.type(node);
90918
- 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));
90919
- case 243 /* ForInStatement */:
90920
- ts.Debug.type(node);
90921
- return factory.updateForInStatement(node, nodeVisitor(node.initializer, visitor, ts.isForInitializer), nodeVisitor(node.expression, visitor, ts.isExpression), visitIterationBody(node.statement, visitor, context));
90922
- case 244 /* ForOfStatement */:
90923
- ts.Debug.type(node);
90924
- 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));
90925
- case 245 /* ContinueStatement */:
90926
- ts.Debug.type(node);
90927
- return factory.updateContinueStatement(node, nodeVisitor(node.label, visitor, ts.isIdentifier));
90928
- case 246 /* BreakStatement */:
90929
- ts.Debug.type(node);
90930
- return factory.updateBreakStatement(node, nodeVisitor(node.label, visitor, ts.isIdentifier));
90931
- case 247 /* ReturnStatement */:
90932
- ts.Debug.type(node);
90933
- return factory.updateReturnStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90934
- case 248 /* WithStatement */:
90935
- ts.Debug.type(node);
90936
- return factory.updateWithStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.statement, visitor, ts.isStatement, factory.liftToBlock));
90937
- case 249 /* SwitchStatement */:
90938
- ts.Debug.type(node);
90939
- return factory.updateSwitchStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.caseBlock, visitor, ts.isCaseBlock));
90940
- case 250 /* LabeledStatement */:
90941
- ts.Debug.type(node);
90942
- return factory.updateLabeledStatement(node, nodeVisitor(node.label, visitor, ts.isIdentifier), nodeVisitor(node.statement, visitor, ts.isStatement, factory.liftToBlock));
90943
- case 251 /* ThrowStatement */:
90944
- ts.Debug.type(node);
90945
- return factory.updateThrowStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90946
- case 252 /* TryStatement */:
90947
- ts.Debug.type(node);
90948
- return factory.updateTryStatement(node, nodeVisitor(node.tryBlock, visitor, ts.isBlock), nodeVisitor(node.catchClause, visitor, ts.isCatchClause), nodeVisitor(node.finallyBlock, visitor, ts.isBlock));
90949
- case 254 /* VariableDeclaration */:
90950
- ts.Debug.type(node);
90951
- 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));
90952
- case 255 /* VariableDeclarationList */:
90953
- ts.Debug.type(node);
90954
- return factory.updateVariableDeclarationList(node, nodesVisitor(node.declarations, visitor, ts.isVariableDeclaration));
90955
- case 256 /* FunctionDeclaration */:
90956
- ts.Debug.type(node);
90957
- 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));
90958
- case 257 /* ClassDeclaration */:
90959
- ts.Debug.type(node);
90960
- 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));
90961
- case 258 /* InterfaceDeclaration */:
90962
- ts.Debug.type(node);
90963
- 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));
90964
- case 259 /* TypeAliasDeclaration */:
90965
- ts.Debug.type(node);
90966
- 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));
90967
- case 260 /* EnumDeclaration */:
90968
- ts.Debug.type(node);
90969
- return factory.updateEnumDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.members, visitor, ts.isEnumMember));
90970
- case 261 /* ModuleDeclaration */:
90971
- ts.Debug.type(node);
90972
- return factory.updateModuleDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isModuleName), nodeVisitor(node.body, visitor, ts.isModuleBody));
90973
- case 262 /* ModuleBlock */:
90974
- ts.Debug.type(node);
90975
- return factory.updateModuleBlock(node, nodesVisitor(node.statements, visitor, ts.isStatement));
90976
- case 263 /* CaseBlock */:
90977
- ts.Debug.type(node);
90978
- return factory.updateCaseBlock(node, nodesVisitor(node.clauses, visitor, ts.isCaseOrDefaultClause));
90979
- case 264 /* NamespaceExportDeclaration */:
90980
- ts.Debug.type(node);
90981
- return factory.updateNamespaceExportDeclaration(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
90982
- case 265 /* ImportEqualsDeclaration */:
90983
- ts.Debug.type(node);
90984
- return factory.updateImportEqualsDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), node.isTypeOnly, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.moduleReference, visitor, ts.isModuleReference));
90985
- case 266 /* ImportDeclaration */:
90986
- ts.Debug.type(node);
90987
- 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));
90988
- case 293 /* AssertClause */:
90989
- ts.Debug.type(node);
90990
- return factory.updateAssertClause(node, nodesVisitor(node.elements, visitor, ts.isAssertEntry), node.multiLine);
90991
- case 294 /* AssertEntry */:
90992
- ts.Debug.type(node);
90993
- return factory.updateAssertEntry(node, nodeVisitor(node.name, visitor, ts.isAssertionKey), nodeVisitor(node.value, visitor, ts.isExpressionNode));
90994
- case 267 /* ImportClause */:
90995
- ts.Debug.type(node);
90996
- return factory.updateImportClause(node, node.isTypeOnly, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.namedBindings, visitor, ts.isNamedImportBindings));
90997
- case 268 /* NamespaceImport */:
90998
- ts.Debug.type(node);
90999
- return factory.updateNamespaceImport(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
91000
- case 274 /* NamespaceExport */:
91001
- ts.Debug.type(node);
91002
- return factory.updateNamespaceExport(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
91003
- case 269 /* NamedImports */:
91004
- ts.Debug.type(node);
91005
- return factory.updateNamedImports(node, nodesVisitor(node.elements, visitor, ts.isImportSpecifier));
91006
- case 270 /* ImportSpecifier */:
91007
- ts.Debug.type(node);
91008
- return factory.updateImportSpecifier(node, node.isTypeOnly, nodeVisitor(node.propertyName, visitor, ts.isIdentifier), nodeVisitor(node.name, visitor, ts.isIdentifier));
91009
- case 271 /* ExportAssignment */:
91010
- ts.Debug.type(node);
91011
- return factory.updateExportAssignment(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.expression, visitor, ts.isExpression));
91012
- case 272 /* ExportDeclaration */:
91013
- ts.Debug.type(node);
91014
- 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));
91015
- case 273 /* NamedExports */:
91016
- ts.Debug.type(node);
91017
- return factory.updateNamedExports(node, nodesVisitor(node.elements, visitor, ts.isExportSpecifier));
91018
- case 275 /* ExportSpecifier */:
91019
- ts.Debug.type(node);
91020
- return factory.updateExportSpecifier(node, node.isTypeOnly, nodeVisitor(node.propertyName, visitor, ts.isIdentifier), nodeVisitor(node.name, visitor, ts.isIdentifier));
91021
- // Module references
91022
- case 277 /* ExternalModuleReference */:
91023
- ts.Debug.type(node);
91024
- return factory.updateExternalModuleReference(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91025
- // JSX
91026
- case 278 /* JsxElement */:
91027
- ts.Debug.type(node);
91028
- return factory.updateJsxElement(node, nodeVisitor(node.openingElement, visitor, ts.isJsxOpeningElement), nodesVisitor(node.children, visitor, ts.isJsxChild), nodeVisitor(node.closingElement, visitor, ts.isJsxClosingElement));
91029
- case 279 /* JsxSelfClosingElement */:
91030
- ts.Debug.type(node);
91031
- return factory.updateJsxSelfClosingElement(node, nodeVisitor(node.tagName, visitor, ts.isJsxTagNameExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodeVisitor(node.attributes, visitor, ts.isJsxAttributes));
91032
- case 280 /* JsxOpeningElement */:
91033
- ts.Debug.type(node);
91034
- return factory.updateJsxOpeningElement(node, nodeVisitor(node.tagName, visitor, ts.isJsxTagNameExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodeVisitor(node.attributes, visitor, ts.isJsxAttributes));
91035
- case 281 /* JsxClosingElement */:
91036
- ts.Debug.type(node);
91037
- return factory.updateJsxClosingElement(node, nodeVisitor(node.tagName, visitor, ts.isJsxTagNameExpression));
91038
- case 282 /* JsxFragment */:
91039
- ts.Debug.type(node);
91040
- return factory.updateJsxFragment(node, nodeVisitor(node.openingFragment, visitor, ts.isJsxOpeningFragment), nodesVisitor(node.children, visitor, ts.isJsxChild), nodeVisitor(node.closingFragment, visitor, ts.isJsxClosingFragment));
91041
- case 285 /* JsxAttribute */:
91042
- ts.Debug.type(node);
91043
- return factory.updateJsxAttribute(node, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.initializer, visitor, ts.isStringLiteralOrJsxExpression));
91044
- case 286 /* JsxAttributes */:
91045
- ts.Debug.type(node);
91046
- return factory.updateJsxAttributes(node, nodesVisitor(node.properties, visitor, ts.isJsxAttributeLike));
91047
- case 287 /* JsxSpreadAttribute */:
91048
- ts.Debug.type(node);
91049
- return factory.updateJsxSpreadAttribute(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91050
- case 288 /* JsxExpression */:
91051
- ts.Debug.type(node);
91052
- return factory.updateJsxExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91053
- // Clauses
91054
- case 289 /* CaseClause */:
91055
- ts.Debug.type(node);
91056
- return factory.updateCaseClause(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.statements, visitor, ts.isStatement));
91057
- case 290 /* DefaultClause */:
91058
- ts.Debug.type(node);
91059
- return factory.updateDefaultClause(node, nodesVisitor(node.statements, visitor, ts.isStatement));
91060
- case 291 /* HeritageClause */:
91061
- ts.Debug.type(node);
91062
- return factory.updateHeritageClause(node, nodesVisitor(node.types, visitor, ts.isExpressionWithTypeArguments));
91063
- case 292 /* CatchClause */:
91064
- ts.Debug.type(node);
91065
- return factory.updateCatchClause(node, nodeVisitor(node.variableDeclaration, visitor, ts.isVariableDeclaration), nodeVisitor(node.block, visitor, ts.isBlock));
91066
- // Property assignments
91067
- case 296 /* PropertyAssignment */:
91068
- ts.Debug.type(node);
91069
- return factory.updatePropertyAssignment(node, nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.initializer, visitor, ts.isExpression));
91070
- case 297 /* ShorthandPropertyAssignment */:
91071
- ts.Debug.type(node);
91072
- return factory.updateShorthandPropertyAssignment(node, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.objectAssignmentInitializer, visitor, ts.isExpression));
91073
- case 298 /* SpreadAssignment */:
91074
- ts.Debug.type(node);
91075
- return factory.updateSpreadAssignment(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91076
- // Enum
91077
- case 299 /* EnumMember */:
91078
- ts.Debug.type(node);
91079
- return factory.updateEnumMember(node, nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.initializer, visitor, ts.isExpression));
91080
- // Top-level nodes
91081
- case 305 /* SourceFile */:
91082
- ts.Debug.type(node);
91083
- return factory.updateSourceFile(node, visitLexicalEnvironment(node.statements, visitor, context));
91084
- // Transformation nodes
91085
- case 350 /* PartiallyEmittedExpression */:
91086
- ts.Debug.type(node);
91087
- return factory.updatePartiallyEmittedExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91088
- case 351 /* CommaListExpression */:
91089
- ts.Debug.type(node);
91090
- return factory.updateCommaListExpression(node, nodesVisitor(node.elements, visitor, ts.isExpression));
91091
- default:
91092
- // No need to visit nodes with no children.
91093
- return node;
91094
- }
90689
+ var fn = visitEachChildTable[node.kind];
90690
+ return fn === undefined ? node : fn(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor);
91095
90691
  }
91096
90692
  ts.visitEachChild = visitEachChild;
90693
+ // NOTE: Before you can add a new method to `visitEachChildTable`, you must first ensure the `Node` subtype you
90694
+ // wish to add is defined in the `HasChildren` union in types.ts.
90695
+ var visitEachChildTable = (_a = {},
90696
+ _a[79 /* Identifier */] = function visitEachChildOfIdentifier(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90697
+ return context.factory.updateIdentifier(node, nodesVisitor(node.typeArguments, visitor, ts.isTypeNodeOrTypeParameterDeclaration));
90698
+ },
90699
+ _a[161 /* QualifiedName */] = function visitEachChildOfQualifiedName(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90700
+ return context.factory.updateQualifiedName(node, nodeVisitor(node.left, visitor, ts.isEntityName), nodeVisitor(node.right, visitor, ts.isIdentifier));
90701
+ },
90702
+ _a[162 /* ComputedPropertyName */] = function visitEachChildOfComputedPropertyName(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90703
+ return context.factory.updateComputedPropertyName(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90704
+ },
90705
+ // Signature elements
90706
+ _a[163 /* TypeParameter */] = function visitEachChildOfTypeParameterDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90707
+ 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));
90708
+ },
90709
+ _a[164 /* Parameter */] = function visitEachChildOfParameterDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90710
+ 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));
90711
+ },
90712
+ _a[165 /* Decorator */] = function visitEachChildOfDecorator(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90713
+ return context.factory.updateDecorator(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90714
+ },
90715
+ // Type elements
90716
+ _a[166 /* PropertySignature */] = function visitEachChildOfPropertySignature(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90717
+ 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));
90718
+ },
90719
+ _a[167 /* PropertyDeclaration */] = function visitEachChildOfPropertyDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90720
+ var _a;
90721
+ return context.factory.updatePropertyDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifierLike), nodeVisitor(node.name, visitor, ts.isPropertyName),
90722
+ // QuestionToken and ExclamationToken are mutually exclusive in PropertyDeclaration
90723
+ 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));
90724
+ },
90725
+ _a[168 /* MethodSignature */] = function visitEachChildOfMethodSignature(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90726
+ 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));
90727
+ },
90728
+ _a[169 /* MethodDeclaration */] = function visitEachChildOfMethodDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90729
+ 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));
90730
+ },
90731
+ _a[171 /* Constructor */] = function visitEachChildOfConstructorDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90732
+ return context.factory.updateConstructorDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), visitParameterList(node.parameters, visitor, context, nodesVisitor), visitFunctionBody(node.body, visitor, context, nodeVisitor));
90733
+ },
90734
+ _a[172 /* GetAccessor */] = function visitEachChildOfGetAccessorDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90735
+ 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));
90736
+ },
90737
+ _a[173 /* SetAccessor */] = function visitEachChildOfSetAccessorDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90738
+ 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));
90739
+ },
90740
+ _a[170 /* ClassStaticBlockDeclaration */] = function visitEachChildOfClassStaticBlockDeclaration(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90741
+ context.startLexicalEnvironment();
90742
+ context.suspendLexicalEnvironment();
90743
+ return context.factory.updateClassStaticBlockDeclaration(node, visitFunctionBody(node.body, visitor, context, nodeVisitor));
90744
+ },
90745
+ _a[174 /* CallSignature */] = function visitEachChildOfCallSignatureDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90746
+ return context.factory.updateCallSignature(node, nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90747
+ },
90748
+ _a[175 /* ConstructSignature */] = function visitEachChildOfConstructSignatureDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90749
+ return context.factory.updateConstructSignature(node, nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90750
+ },
90751
+ _a[176 /* IndexSignature */] = function visitEachChildOfIndexSignatureDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90752
+ return context.factory.updateIndexSignature(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90753
+ },
90754
+ // Types
90755
+ _a[177 /* TypePredicate */] = function visitEachChildOfTypePredicateNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90756
+ return context.factory.updateTypePredicateNode(node, nodeVisitor(node.assertsModifier, visitor, ts.isAssertsKeyword), nodeVisitor(node.parameterName, visitor, ts.isIdentifierOrThisTypeNode), nodeVisitor(node.type, visitor, ts.isTypeNode));
90757
+ },
90758
+ _a[178 /* TypeReference */] = function visitEachChildOfTypeReferenceNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90759
+ return context.factory.updateTypeReferenceNode(node, nodeVisitor(node.typeName, visitor, ts.isEntityName), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode));
90760
+ },
90761
+ _a[179 /* FunctionType */] = function visitEachChildOfFunctionTypeNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90762
+ return context.factory.updateFunctionTypeNode(node, nodesVisitor(node.typeParameters, visitor, ts.isTypeParameterDeclaration), nodesVisitor(node.parameters, visitor, ts.isParameterDeclaration), nodeVisitor(node.type, visitor, ts.isTypeNode));
90763
+ },
90764
+ _a[180 /* ConstructorType */] = function visitEachChildOfConstructorTypeNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90765
+ 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));
90766
+ },
90767
+ _a[181 /* TypeQuery */] = function visitEachChildOfTypeQueryNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90768
+ return context.factory.updateTypeQueryNode(node, nodeVisitor(node.exprName, visitor, ts.isEntityName), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode));
90769
+ },
90770
+ _a[182 /* TypeLiteral */] = function visitEachChildOfTypeLiteralNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90771
+ return context.factory.updateTypeLiteralNode(node, nodesVisitor(node.members, visitor, ts.isTypeElement));
90772
+ },
90773
+ _a[183 /* ArrayType */] = function visitEachChildOfArrayTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90774
+ return context.factory.updateArrayTypeNode(node, nodeVisitor(node.elementType, visitor, ts.isTypeNode));
90775
+ },
90776
+ _a[184 /* TupleType */] = function visitEachChildOfTupleTypeNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90777
+ return context.factory.updateTupleTypeNode(node, nodesVisitor(node.elements, visitor, ts.isTypeNode));
90778
+ },
90779
+ _a[185 /* OptionalType */] = function visitEachChildOfOptionalTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90780
+ return context.factory.updateOptionalTypeNode(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90781
+ },
90782
+ _a[186 /* RestType */] = function visitEachChildOfRestTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90783
+ return context.factory.updateRestTypeNode(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90784
+ },
90785
+ _a[187 /* UnionType */] = function visitEachChildOfUnionTypeNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90786
+ return context.factory.updateUnionTypeNode(node, nodesVisitor(node.types, visitor, ts.isTypeNode));
90787
+ },
90788
+ _a[188 /* IntersectionType */] = function visitEachChildOfIntersectionTypeNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90789
+ return context.factory.updateIntersectionTypeNode(node, nodesVisitor(node.types, visitor, ts.isTypeNode));
90790
+ },
90791
+ _a[189 /* ConditionalType */] = function visitEachChildOfConditionalTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90792
+ 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));
90793
+ },
90794
+ _a[190 /* InferType */] = function visitEachChildOfInferTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90795
+ return context.factory.updateInferTypeNode(node, nodeVisitor(node.typeParameter, visitor, ts.isTypeParameterDeclaration));
90796
+ },
90797
+ _a[200 /* ImportType */] = function visitEachChildOfImportTypeNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90798
+ 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);
90799
+ },
90800
+ _a[295 /* ImportTypeAssertionContainer */] = function visitEachChildOfImportTypeAssertionContainer(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90801
+ return context.factory.updateImportTypeAssertionContainer(node, nodeVisitor(node.assertClause, visitor, ts.isAssertClause), node.multiLine);
90802
+ },
90803
+ _a[197 /* NamedTupleMember */] = function visitEachChildOfNamedTupleMember(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90804
+ 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));
90805
+ },
90806
+ _a[191 /* ParenthesizedType */] = function visitEachChildOfParenthesizedType(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90807
+ return context.factory.updateParenthesizedType(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90808
+ },
90809
+ _a[193 /* TypeOperator */] = function visitEachChildOfTypeOperatorNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90810
+ return context.factory.updateTypeOperatorNode(node, nodeVisitor(node.type, visitor, ts.isTypeNode));
90811
+ },
90812
+ _a[194 /* IndexedAccessType */] = function visitEachChildOfIndexedAccessType(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90813
+ return context.factory.updateIndexedAccessTypeNode(node, nodeVisitor(node.objectType, visitor, ts.isTypeNode), nodeVisitor(node.indexType, visitor, ts.isTypeNode));
90814
+ },
90815
+ _a[195 /* MappedType */] = function visitEachChildOfMappedType(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90816
+ 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));
90817
+ },
90818
+ _a[196 /* LiteralType */] = function visitEachChildOfLiteralTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90819
+ return context.factory.updateLiteralTypeNode(node, nodeVisitor(node.literal, visitor, ts.isExpression));
90820
+ },
90821
+ _a[198 /* TemplateLiteralType */] = function visitEachChildOfTemplateLiteralType(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90822
+ return context.factory.updateTemplateLiteralType(node, nodeVisitor(node.head, visitor, ts.isTemplateHead), nodesVisitor(node.templateSpans, visitor, ts.isTemplateLiteralTypeSpan));
90823
+ },
90824
+ _a[199 /* TemplateLiteralTypeSpan */] = function visitEachChildOfTemplateLiteralTypeSpan(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90825
+ return context.factory.updateTemplateLiteralTypeSpan(node, nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.literal, visitor, ts.isTemplateMiddleOrTemplateTail));
90826
+ },
90827
+ // Binding patterns
90828
+ _a[201 /* ObjectBindingPattern */] = function visitEachChildOfObjectBindingPattern(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90829
+ return context.factory.updateObjectBindingPattern(node, nodesVisitor(node.elements, visitor, ts.isBindingElement));
90830
+ },
90831
+ _a[202 /* ArrayBindingPattern */] = function visitEachChildOfArrayBindingPattern(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90832
+ return context.factory.updateArrayBindingPattern(node, nodesVisitor(node.elements, visitor, ts.isArrayBindingElement));
90833
+ },
90834
+ _a[203 /* BindingElement */] = function visitEachChildOfBindingElement(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90835
+ 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));
90836
+ },
90837
+ // Expression
90838
+ _a[204 /* ArrayLiteralExpression */] = function visitEachChildOfArrayLiteralExpression(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90839
+ return context.factory.updateArrayLiteralExpression(node, nodesVisitor(node.elements, visitor, ts.isExpression));
90840
+ },
90841
+ _a[205 /* ObjectLiteralExpression */] = function visitEachChildOfObjectLiteralExpression(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90842
+ return context.factory.updateObjectLiteralExpression(node, nodesVisitor(node.properties, visitor, ts.isObjectLiteralElementLike));
90843
+ },
90844
+ _a[206 /* PropertyAccessExpression */] = function visitEachChildOfPropertyAccessExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90845
+ return ts.isPropertyAccessChain(node) ?
90846
+ context.factory.updatePropertyAccessChain(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.questionDotToken, tokenVisitor, ts.isQuestionDotToken), nodeVisitor(node.name, visitor, ts.isMemberName)) :
90847
+ context.factory.updatePropertyAccessExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.name, visitor, ts.isMemberName));
90848
+ },
90849
+ _a[207 /* ElementAccessExpression */] = function visitEachChildOfElementAccessExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90850
+ return ts.isElementAccessChain(node) ?
90851
+ context.factory.updateElementAccessChain(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.questionDotToken, tokenVisitor, ts.isQuestionDotToken), nodeVisitor(node.argumentExpression, visitor, ts.isExpression)) :
90852
+ context.factory.updateElementAccessExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.argumentExpression, visitor, ts.isExpression));
90853
+ },
90854
+ _a[208 /* CallExpression */] = function visitEachChildOfCallExpression(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90855
+ return ts.isCallChain(node) ?
90856
+ 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)) :
90857
+ context.factory.updateCallExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodesVisitor(node.arguments, visitor, ts.isExpression));
90858
+ },
90859
+ _a[209 /* NewExpression */] = function visitEachChildOfNewExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90860
+ return context.factory.updateNewExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodesVisitor(node.arguments, visitor, ts.isExpression));
90861
+ },
90862
+ _a[210 /* TaggedTemplateExpression */] = function visitEachChildOfTaggedTemplateExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90863
+ return context.factory.updateTaggedTemplateExpression(node, nodeVisitor(node.tag, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodeVisitor(node.template, visitor, ts.isTemplateLiteral));
90864
+ },
90865
+ _a[211 /* TypeAssertionExpression */] = function visitEachChildOfTypeAssertionExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90866
+ return context.factory.updateTypeAssertion(node, nodeVisitor(node.type, visitor, ts.isTypeNode), nodeVisitor(node.expression, visitor, ts.isExpression));
90867
+ },
90868
+ _a[212 /* ParenthesizedExpression */] = function visitEachChildOfParenthesizedExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90869
+ return context.factory.updateParenthesizedExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90870
+ },
90871
+ _a[213 /* FunctionExpression */] = function visitEachChildOfFunctionExpression(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90872
+ 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));
90873
+ },
90874
+ _a[214 /* ArrowFunction */] = function visitEachChildOfArrowFunction(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90875
+ 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));
90876
+ },
90877
+ _a[215 /* DeleteExpression */] = function visitEachChildOfDeleteExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90878
+ return context.factory.updateDeleteExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90879
+ },
90880
+ _a[216 /* TypeOfExpression */] = function visitEachChildOfTypeOfExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90881
+ return context.factory.updateTypeOfExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90882
+ },
90883
+ _a[217 /* VoidExpression */] = function visitEachChildOfVoidExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90884
+ return context.factory.updateVoidExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90885
+ },
90886
+ _a[218 /* AwaitExpression */] = function visitEachChildOfAwaitExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90887
+ return context.factory.updateAwaitExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90888
+ },
90889
+ _a[219 /* PrefixUnaryExpression */] = function visitEachChildOfPrefixUnaryExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90890
+ return context.factory.updatePrefixUnaryExpression(node, nodeVisitor(node.operand, visitor, ts.isExpression));
90891
+ },
90892
+ _a[220 /* PostfixUnaryExpression */] = function visitEachChildOfPostfixUnaryExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90893
+ return context.factory.updatePostfixUnaryExpression(node, nodeVisitor(node.operand, visitor, ts.isExpression));
90894
+ },
90895
+ _a[221 /* BinaryExpression */] = function visitEachChildOfBinaryExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90896
+ return context.factory.updateBinaryExpression(node, nodeVisitor(node.left, visitor, ts.isExpression), nodeVisitor(node.operatorToken, tokenVisitor, ts.isBinaryOperatorToken), nodeVisitor(node.right, visitor, ts.isExpression));
90897
+ },
90898
+ _a[222 /* ConditionalExpression */] = function visitEachChildOfConditionalExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90899
+ 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));
90900
+ },
90901
+ _a[223 /* TemplateExpression */] = function visitEachChildOfTemplateExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90902
+ return context.factory.updateTemplateExpression(node, nodeVisitor(node.head, visitor, ts.isTemplateHead), nodesVisitor(node.templateSpans, visitor, ts.isTemplateSpan));
90903
+ },
90904
+ _a[224 /* YieldExpression */] = function visitEachChildOfYieldExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90905
+ return context.factory.updateYieldExpression(node, nodeVisitor(node.asteriskToken, tokenVisitor, ts.isAsteriskToken), nodeVisitor(node.expression, visitor, ts.isExpression));
90906
+ },
90907
+ _a[225 /* SpreadElement */] = function visitEachChildOfSpreadElement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90908
+ return context.factory.updateSpreadElement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90909
+ },
90910
+ _a[226 /* ClassExpression */] = function visitEachChildOfClassExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90911
+ 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));
90912
+ },
90913
+ _a[228 /* ExpressionWithTypeArguments */] = function visitEachChildOfExpressionWithTypeArguments(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90914
+ return context.factory.updateExpressionWithTypeArguments(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode));
90915
+ },
90916
+ _a[229 /* AsExpression */] = function visitEachChildOfAsExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90917
+ return context.factory.updateAsExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.type, visitor, ts.isTypeNode));
90918
+ },
90919
+ _a[230 /* NonNullExpression */] = function visitEachChildOfNonNullExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90920
+ return ts.isOptionalChain(node) ?
90921
+ context.factory.updateNonNullChain(node, nodeVisitor(node.expression, visitor, ts.isExpression)) :
90922
+ context.factory.updateNonNullExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90923
+ },
90924
+ _a[231 /* MetaProperty */] = function visitEachChildOfMetaProperty(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90925
+ return context.factory.updateMetaProperty(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
90926
+ },
90927
+ // Misc
90928
+ _a[233 /* TemplateSpan */] = function visitEachChildOfTemplateSpan(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90929
+ return context.factory.updateTemplateSpan(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.literal, visitor, ts.isTemplateMiddleOrTemplateTail));
90930
+ },
90931
+ // Element
90932
+ _a[235 /* Block */] = function visitEachChildOfBlock(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90933
+ return context.factory.updateBlock(node, nodesVisitor(node.statements, visitor, ts.isStatement));
90934
+ },
90935
+ _a[237 /* VariableStatement */] = function visitEachChildOfVariableStatement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90936
+ return context.factory.updateVariableStatement(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.declarationList, visitor, ts.isVariableDeclarationList));
90937
+ },
90938
+ _a[238 /* ExpressionStatement */] = function visitEachChildOfExpressionStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90939
+ return context.factory.updateExpressionStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90940
+ },
90941
+ _a[239 /* IfStatement */] = function visitEachChildOfIfStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90942
+ 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));
90943
+ },
90944
+ _a[240 /* DoStatement */] = function visitEachChildOfDoStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90945
+ return context.factory.updateDoStatement(node, visitIterationBody(node.statement, visitor, context, nodeVisitor), nodeVisitor(node.expression, visitor, ts.isExpression));
90946
+ },
90947
+ _a[241 /* WhileStatement */] = function visitEachChildOfWhileStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90948
+ return context.factory.updateWhileStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), visitIterationBody(node.statement, visitor, context, nodeVisitor));
90949
+ },
90950
+ _a[242 /* ForStatement */] = function visitEachChildOfForStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90951
+ 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));
90952
+ },
90953
+ _a[243 /* ForInStatement */] = function visitEachChildOfForInStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90954
+ return context.factory.updateForInStatement(node, nodeVisitor(node.initializer, visitor, ts.isForInitializer), nodeVisitor(node.expression, visitor, ts.isExpression), visitIterationBody(node.statement, visitor, context, nodeVisitor));
90955
+ },
90956
+ _a[244 /* ForOfStatement */] = function visitEachChildOfForOfStatement(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90957
+ 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));
90958
+ },
90959
+ _a[245 /* ContinueStatement */] = function visitEachChildOfContinueStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90960
+ return context.factory.updateContinueStatement(node, nodeVisitor(node.label, visitor, ts.isIdentifier));
90961
+ },
90962
+ _a[246 /* BreakStatement */] = function visitEachChildOfBreakStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90963
+ return context.factory.updateBreakStatement(node, nodeVisitor(node.label, visitor, ts.isIdentifier));
90964
+ },
90965
+ _a[247 /* ReturnStatement */] = function visitEachChildOfReturnStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90966
+ return context.factory.updateReturnStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90967
+ },
90968
+ _a[248 /* WithStatement */] = function visitEachChildOfWithStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90969
+ return context.factory.updateWithStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.statement, visitor, ts.isStatement, context.factory.liftToBlock));
90970
+ },
90971
+ _a[249 /* SwitchStatement */] = function visitEachChildOfSwitchStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90972
+ return context.factory.updateSwitchStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodeVisitor(node.caseBlock, visitor, ts.isCaseBlock));
90973
+ },
90974
+ _a[250 /* LabeledStatement */] = function visitEachChildOfLabeledStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90975
+ return context.factory.updateLabeledStatement(node, nodeVisitor(node.label, visitor, ts.isIdentifier), nodeVisitor(node.statement, visitor, ts.isStatement, context.factory.liftToBlock));
90976
+ },
90977
+ _a[251 /* ThrowStatement */] = function visitEachChildOfThrowStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90978
+ return context.factory.updateThrowStatement(node, nodeVisitor(node.expression, visitor, ts.isExpression));
90979
+ },
90980
+ _a[252 /* TryStatement */] = function visitEachChildOfTryStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
90981
+ return context.factory.updateTryStatement(node, nodeVisitor(node.tryBlock, visitor, ts.isBlock), nodeVisitor(node.catchClause, visitor, ts.isCatchClause), nodeVisitor(node.finallyBlock, visitor, ts.isBlock));
90982
+ },
90983
+ _a[254 /* VariableDeclaration */] = function visitEachChildOfVariableDeclaration(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {
90984
+ 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));
90985
+ },
90986
+ _a[255 /* VariableDeclarationList */] = function visitEachChildOfVariableDeclarationList(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
90987
+ return context.factory.updateVariableDeclarationList(node, nodesVisitor(node.declarations, visitor, ts.isVariableDeclaration));
90988
+ },
90989
+ _a[256 /* FunctionDeclaration */] = function visitEachChildOfFunctionDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {
90990
+ 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));
90991
+ },
90992
+ _a[257 /* ClassDeclaration */] = function visitEachChildOfClassDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90993
+ 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));
90994
+ },
90995
+ _a[258 /* InterfaceDeclaration */] = function visitEachChildOfInterfaceDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90996
+ 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));
90997
+ },
90998
+ _a[259 /* TypeAliasDeclaration */] = function visitEachChildOfTypeAliasDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
90999
+ 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));
91000
+ },
91001
+ _a[260 /* EnumDeclaration */] = function visitEachChildOfEnumDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91002
+ return context.factory.updateEnumDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isIdentifier), nodesVisitor(node.members, visitor, ts.isEnumMember));
91003
+ },
91004
+ _a[261 /* ModuleDeclaration */] = function visitEachChildOfModuleDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91005
+ return context.factory.updateModuleDeclaration(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.name, visitor, ts.isModuleName), nodeVisitor(node.body, visitor, ts.isModuleBody));
91006
+ },
91007
+ _a[262 /* ModuleBlock */] = function visitEachChildOfModuleBlock(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91008
+ return context.factory.updateModuleBlock(node, nodesVisitor(node.statements, visitor, ts.isStatement));
91009
+ },
91010
+ _a[263 /* CaseBlock */] = function visitEachChildOfCaseBlock(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91011
+ return context.factory.updateCaseBlock(node, nodesVisitor(node.clauses, visitor, ts.isCaseOrDefaultClause));
91012
+ },
91013
+ _a[264 /* NamespaceExportDeclaration */] = function visitEachChildOfNamespaceExportDeclaration(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91014
+ return context.factory.updateNamespaceExportDeclaration(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
91015
+ },
91016
+ _a[265 /* ImportEqualsDeclaration */] = function visitEachChildOfImportEqualsDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91017
+ 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));
91018
+ },
91019
+ _a[266 /* ImportDeclaration */] = function visitEachChildOfImportDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91020
+ 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));
91021
+ },
91022
+ _a[293 /* AssertClause */] = function visitEachChildOfAssertClause(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91023
+ return context.factory.updateAssertClause(node, nodesVisitor(node.elements, visitor, ts.isAssertEntry), node.multiLine);
91024
+ },
91025
+ _a[294 /* AssertEntry */] = function visitEachChildOfAssertEntry(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91026
+ return context.factory.updateAssertEntry(node, nodeVisitor(node.name, visitor, ts.isAssertionKey), nodeVisitor(node.value, visitor, ts.isExpression));
91027
+ },
91028
+ _a[267 /* ImportClause */] = function visitEachChildOfImportClause(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91029
+ return context.factory.updateImportClause(node, node.isTypeOnly, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.namedBindings, visitor, ts.isNamedImportBindings));
91030
+ },
91031
+ _a[268 /* NamespaceImport */] = function visitEachChildOfNamespaceImport(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91032
+ return context.factory.updateNamespaceImport(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
91033
+ },
91034
+ _a[274 /* NamespaceExport */] = function visitEachChildOfNamespaceExport(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91035
+ return context.factory.updateNamespaceExport(node, nodeVisitor(node.name, visitor, ts.isIdentifier));
91036
+ },
91037
+ _a[269 /* NamedImports */] = function visitEachChildOfNamedImports(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91038
+ return context.factory.updateNamedImports(node, nodesVisitor(node.elements, visitor, ts.isImportSpecifier));
91039
+ },
91040
+ _a[270 /* ImportSpecifier */] = function visitEachChildOfImportSpecifier(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91041
+ return context.factory.updateImportSpecifier(node, node.isTypeOnly, nodeVisitor(node.propertyName, visitor, ts.isIdentifier), nodeVisitor(node.name, visitor, ts.isIdentifier));
91042
+ },
91043
+ _a[271 /* ExportAssignment */] = function visitEachChildOfExportAssignment(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91044
+ return context.factory.updateExportAssignment(node, nodesVisitor(node.modifiers, visitor, ts.isModifier), nodeVisitor(node.expression, visitor, ts.isExpression));
91045
+ },
91046
+ _a[272 /* ExportDeclaration */] = function visitEachChildOfExportDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91047
+ 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));
91048
+ },
91049
+ _a[273 /* NamedExports */] = function visitEachChildOfNamedExports(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91050
+ return context.factory.updateNamedExports(node, nodesVisitor(node.elements, visitor, ts.isExportSpecifier));
91051
+ },
91052
+ _a[275 /* ExportSpecifier */] = function visitEachChildOfExportSpecifier(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91053
+ return context.factory.updateExportSpecifier(node, node.isTypeOnly, nodeVisitor(node.propertyName, visitor, ts.isIdentifier), nodeVisitor(node.name, visitor, ts.isIdentifier));
91054
+ },
91055
+ // Module references
91056
+ _a[277 /* ExternalModuleReference */] = function visitEachChildOfExternalModuleReference(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91057
+ return context.factory.updateExternalModuleReference(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91058
+ },
91059
+ // JSX
91060
+ _a[278 /* JsxElement */] = function visitEachChildOfJsxElement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91061
+ return context.factory.updateJsxElement(node, nodeVisitor(node.openingElement, visitor, ts.isJsxOpeningElement), nodesVisitor(node.children, visitor, ts.isJsxChild), nodeVisitor(node.closingElement, visitor, ts.isJsxClosingElement));
91062
+ },
91063
+ _a[279 /* JsxSelfClosingElement */] = function visitEachChildOfJsxSelfClosingElement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91064
+ return context.factory.updateJsxSelfClosingElement(node, nodeVisitor(node.tagName, visitor, ts.isJsxTagNameExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodeVisitor(node.attributes, visitor, ts.isJsxAttributes));
91065
+ },
91066
+ _a[280 /* JsxOpeningElement */] = function visitEachChildOfJsxOpeningElement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91067
+ return context.factory.updateJsxOpeningElement(node, nodeVisitor(node.tagName, visitor, ts.isJsxTagNameExpression), nodesVisitor(node.typeArguments, visitor, ts.isTypeNode), nodeVisitor(node.attributes, visitor, ts.isJsxAttributes));
91068
+ },
91069
+ _a[281 /* JsxClosingElement */] = function visitEachChildOfJsxClosingElement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91070
+ return context.factory.updateJsxClosingElement(node, nodeVisitor(node.tagName, visitor, ts.isJsxTagNameExpression));
91071
+ },
91072
+ _a[282 /* JsxFragment */] = function visitEachChildOfJsxFragment(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91073
+ return context.factory.updateJsxFragment(node, nodeVisitor(node.openingFragment, visitor, ts.isJsxOpeningFragment), nodesVisitor(node.children, visitor, ts.isJsxChild), nodeVisitor(node.closingFragment, visitor, ts.isJsxClosingFragment));
91074
+ },
91075
+ _a[285 /* JsxAttribute */] = function visitEachChildOfJsxAttribute(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91076
+ return context.factory.updateJsxAttribute(node, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.initializer, visitor, ts.isStringLiteralOrJsxExpression));
91077
+ },
91078
+ _a[286 /* JsxAttributes */] = function visitEachChildOfJsxAttributes(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91079
+ return context.factory.updateJsxAttributes(node, nodesVisitor(node.properties, visitor, ts.isJsxAttributeLike));
91080
+ },
91081
+ _a[287 /* JsxSpreadAttribute */] = function visitEachChildOfJsxSpreadAttribute(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91082
+ return context.factory.updateJsxSpreadAttribute(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91083
+ },
91084
+ _a[288 /* JsxExpression */] = function visitEachChildOfJsxExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91085
+ return context.factory.updateJsxExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91086
+ },
91087
+ // Clauses
91088
+ _a[289 /* CaseClause */] = function visitEachChildOfCaseClause(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {
91089
+ return context.factory.updateCaseClause(node, nodeVisitor(node.expression, visitor, ts.isExpression), nodesVisitor(node.statements, visitor, ts.isStatement));
91090
+ },
91091
+ _a[290 /* DefaultClause */] = function visitEachChildOfDefaultClause(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91092
+ return context.factory.updateDefaultClause(node, nodesVisitor(node.statements, visitor, ts.isStatement));
91093
+ },
91094
+ _a[291 /* HeritageClause */] = function visitEachChildOfHeritageClause(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91095
+ return context.factory.updateHeritageClause(node, nodesVisitor(node.types, visitor, ts.isExpressionWithTypeArguments));
91096
+ },
91097
+ _a[292 /* CatchClause */] = function visitEachChildOfCatchClause(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91098
+ return context.factory.updateCatchClause(node, nodeVisitor(node.variableDeclaration, visitor, ts.isVariableDeclaration), nodeVisitor(node.block, visitor, ts.isBlock));
91099
+ },
91100
+ // Property assignments
91101
+ _a[296 /* PropertyAssignment */] = function visitEachChildOfPropertyAssignment(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91102
+ return context.factory.updatePropertyAssignment(node, nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.initializer, visitor, ts.isExpression));
91103
+ },
91104
+ _a[297 /* ShorthandPropertyAssignment */] = function visitEachChildOfShorthandPropertyAssignment(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91105
+ return context.factory.updateShorthandPropertyAssignment(node, nodeVisitor(node.name, visitor, ts.isIdentifier), nodeVisitor(node.objectAssignmentInitializer, visitor, ts.isExpression));
91106
+ },
91107
+ _a[298 /* SpreadAssignment */] = function visitEachChildOfSpreadAssignment(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91108
+ return context.factory.updateSpreadAssignment(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91109
+ },
91110
+ // Enum
91111
+ _a[299 /* EnumMember */] = function visitEachChildOfEnumMember(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91112
+ return context.factory.updateEnumMember(node, nodeVisitor(node.name, visitor, ts.isPropertyName), nodeVisitor(node.initializer, visitor, ts.isExpression));
91113
+ },
91114
+ // Top-level nodes
91115
+ _a[305 /* SourceFile */] = function visitEachChildOfSourceFile(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91116
+ return context.factory.updateSourceFile(node, visitLexicalEnvironment(node.statements, visitor, context, /*start*/ undefined, /*ensureUseStrict*/ undefined, nodesVisitor));
91117
+ },
91118
+ // Transformation nodes
91119
+ _a[350 /* PartiallyEmittedExpression */] = function visitEachChildOfPartiallyEmittedExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
91120
+ return context.factory.updatePartiallyEmittedExpression(node, nodeVisitor(node.expression, visitor, ts.isExpression));
91121
+ },
91122
+ _a[351 /* CommaListExpression */] = function visitEachChildOfCommaListExpression(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
91123
+ return context.factory.updateCommaListExpression(node, nodesVisitor(node.elements, visitor, ts.isExpression));
91124
+ },
91125
+ _a);
91097
91126
  /**
91098
91127
  * Extracts the single node from a NodeArray.
91099
91128
  *
@@ -171629,9 +171658,9 @@ var ts;
171629
171658
  // - error: 5.0
171630
171659
  var ts;
171631
171660
  (function (ts) {
171632
- var MUST_MERGE = { since: "4.8", warnAfter: "4.9.0-0", message: "Decorators have been combined with modifiers. Callers should switch to an overload without a 'decorators' parameter." };
171633
- var DISALLOW_DECORATORS = { since: "4.8", warnAfter: "4.9.0-0", message: "Decorators are no longer supported for this function. Callers should switch to an overload without a 'decorators' parameter." };
171634
- var DISALLOW_DECORATORS_AND_MODIFIERS = { since: "4.8", warnAfter: "4.9.0-0", message: "Decorators and modifiers are no longer supported for this function. Callers should switch to an overload without the 'decorators' or 'modifiers' parameters." };
171661
+ var MUST_MERGE = { since: "4.8", warnAfter: "4.9.0-0", message: "Decorators have been combined with modifiers. Callers should switch to an overload that does not accept a 'decorators' parameter." };
171662
+ var DISALLOW_DECORATORS = { since: "4.8", warnAfter: "4.9.0-0", message: "Decorators are no longer supported for this function. Callers should switch to an overload that does not accept a 'decorators' parameter." };
171663
+ var DISALLOW_DECORATORS_AND_MODIFIERS = { since: "4.8", warnAfter: "4.9.0-0", message: "Decorators and modifiers are no longer supported for this function. Callers should switch to an overload that does not accept the 'decorators' and 'modifiers' parameters." };
171635
171664
  function patchNodeFactory(factory) {
171636
171665
  var createParameterDeclaration = factory.createParameterDeclaration, updateParameterDeclaration = factory.updateParameterDeclaration, createPropertyDeclaration = factory.createPropertyDeclaration, updatePropertyDeclaration = factory.updatePropertyDeclaration, createMethodDeclaration = factory.createMethodDeclaration, updateMethodDeclaration = factory.updateMethodDeclaration, createConstructorDeclaration = factory.createConstructorDeclaration, updateConstructorDeclaration = factory.updateConstructorDeclaration, createGetAccessorDeclaration = factory.createGetAccessorDeclaration, updateGetAccessorDeclaration = factory.updateGetAccessorDeclaration, createSetAccessorDeclaration = factory.createSetAccessorDeclaration, updateSetAccessorDeclaration = factory.updateSetAccessorDeclaration, createIndexSignature = factory.createIndexSignature, updateIndexSignature = factory.updateIndexSignature, createClassStaticBlockDeclaration = factory.createClassStaticBlockDeclaration, updateClassStaticBlockDeclaration = factory.updateClassStaticBlockDeclaration, createClassExpression = factory.createClassExpression, updateClassExpression = factory.updateClassExpression, createFunctionDeclaration = factory.createFunctionDeclaration, updateFunctionDeclaration = factory.updateFunctionDeclaration, createClassDeclaration = factory.createClassDeclaration, updateClassDeclaration = factory.updateClassDeclaration, createInterfaceDeclaration = factory.createInterfaceDeclaration, updateInterfaceDeclaration = factory.updateInterfaceDeclaration, createTypeAliasDeclaration = factory.createTypeAliasDeclaration, updateTypeAliasDeclaration = factory.updateTypeAliasDeclaration, createEnumDeclaration = factory.createEnumDeclaration, updateEnumDeclaration = factory.updateEnumDeclaration, createModuleDeclaration = factory.createModuleDeclaration, updateModuleDeclaration = factory.updateModuleDeclaration, createImportEqualsDeclaration = factory.createImportEqualsDeclaration, updateImportEqualsDeclaration = factory.updateImportEqualsDeclaration, createImportDeclaration = factory.createImportDeclaration, updateImportDeclaration = factory.updateImportDeclaration, createExportAssignment = factory.createExportAssignment, updateExportAssignment = factory.updateExportAssignment, createExportDeclaration = factory.createExportDeclaration, updateExportDeclaration = factory.updateExportDeclaration;
171637
171666
  factory.createParameterDeclaration = ts.buildOverload("createParameterDeclaration")
@@ -171858,7 +171887,7 @@ var ts;
171858
171887
  return (decorators === undefined || !ts.some(decorators, ts.isModifier)) &&
171859
171888
  (modifiers === undefined || !ts.some(modifiers, ts.isParameter)) &&
171860
171889
  (parameters === undefined || ts.isArray(parameters)) &&
171861
- (body === undefined || !ts.isBlock(body));
171890
+ (body === undefined || ts.isBlock(body));
171862
171891
  },
171863
171892
  })
171864
171893
  .deprecate({
@@ -171887,7 +171916,7 @@ var ts;
171887
171916
  return (decorators === undefined || !ts.some(decorators, ts.isModifier)) &&
171888
171917
  (modifiers === undefined || !ts.some(modifiers, ts.isParameter)) &&
171889
171918
  (parameters === undefined || ts.isArray(parameters)) &&
171890
- (body === undefined || !ts.isBlock(body));
171919
+ (body === undefined || ts.isBlock(body));
171891
171920
  },
171892
171921
  })
171893
171922
  .deprecate({