typescript 4.6.0-dev.20211126 → 4.6.0-dev.20211203

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -89,7 +89,7 @@ var ts;
89
89
  // The following is baselined as a literal template type without intervention
90
90
  /** The version of the TypeScript compiler release */
91
91
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
92
- ts.version = ts.versionMajorMinor + ".0-dev.20211126";
92
+ ts.version = ts.versionMajorMinor + ".0-dev.20211203";
93
93
  /* @internal */
94
94
  var Comparison;
95
95
  (function (Comparison) {
@@ -33597,9 +33597,10 @@ var ts;
33597
33597
  // - "(x,y)" is a comma expression parsed as a signature with two parameters.
33598
33598
  // - "a ? (b): c" will have "(b):" parsed as a signature with a return type annotation.
33599
33599
  // - "a ? (b): function() {}" will too, since function() is a valid JSDoc function type.
33600
+ // - "a ? (b): (function() {})" as well, but inside of a parenthesized type.
33600
33601
  //
33601
33602
  // So we need just a bit of lookahead to ensure that it can only be a signature.
33602
- var hasJSDocFunctionType = type && ts.isJSDocFunctionType(type);
33603
+ var hasJSDocFunctionType = type && (ts.isJSDocFunctionType(type) || ts.isParenthesizedTypeNode(type) && ts.isJSDocFunctionType(type.type));
33603
33604
  if (!allowAmbiguity && token() !== 38 /* EqualsGreaterThanToken */ && (hasJSDocFunctionType || token() !== 18 /* OpenBraceToken */)) {
33604
33605
  // Returning undefined here will cause our caller to rewind to where we started from.
33605
33606
  return undefined;
@@ -37998,7 +37999,11 @@ var ts;
37998
37999
  var ts;
37999
38000
  (function (ts) {
38000
38001
  /* @internal */
38001
- ts.compileOnSaveCommandLineOption = { name: "compileOnSave", type: "boolean", defaultValueDescription: "false" };
38002
+ ts.compileOnSaveCommandLineOption = {
38003
+ name: "compileOnSave",
38004
+ type: "boolean",
38005
+ defaultValueDescription: false,
38006
+ };
38002
38007
  var jsxOptionMap = new ts.Map(ts.getEntries({
38003
38008
  "preserve": 1 /* Preserve */,
38004
38009
  "react-native": 3 /* ReactNative */,
@@ -38112,6 +38117,7 @@ var ts;
38112
38117
  })),
38113
38118
  category: ts.Diagnostics.Watch_and_Build_Modes,
38114
38119
  description: ts.Diagnostics.Specify_how_the_TypeScript_watch_mode_works,
38120
+ defaultValueDescription: ts.WatchFileKind.UseFsEvents,
38115
38121
  },
38116
38122
  {
38117
38123
  name: "watchDirectory",
@@ -38123,6 +38129,7 @@ var ts;
38123
38129
  })),
38124
38130
  category: ts.Diagnostics.Watch_and_Build_Modes,
38125
38131
  description: ts.Diagnostics.Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality,
38132
+ defaultValueDescription: ts.WatchDirectoryKind.UseFsEvents,
38126
38133
  },
38127
38134
  {
38128
38135
  name: "fallbackPolling",
@@ -38134,13 +38141,14 @@ var ts;
38134
38141
  })),
38135
38142
  category: ts.Diagnostics.Watch_and_Build_Modes,
38136
38143
  description: ts.Diagnostics.Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers,
38144
+ defaultValueDescription: ts.PollingWatchKind.PriorityInterval,
38137
38145
  },
38138
38146
  {
38139
38147
  name: "synchronousWatchDirectory",
38140
38148
  type: "boolean",
38141
38149
  category: ts.Diagnostics.Watch_and_Build_Modes,
38142
38150
  description: ts.Diagnostics.Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_support_recursive_watching_natively,
38143
- defaultValueDescription: "false",
38151
+ defaultValueDescription: false,
38144
38152
  },
38145
38153
  {
38146
38154
  name: "excludeDirectories",
@@ -38176,13 +38184,13 @@ var ts;
38176
38184
  showInSimplifiedHelpView: true,
38177
38185
  category: ts.Diagnostics.Command_line_Options,
38178
38186
  description: ts.Diagnostics.Print_this_message,
38179
- defaultValueDescription: "false",
38187
+ defaultValueDescription: false,
38180
38188
  },
38181
38189
  {
38182
38190
  name: "help",
38183
38191
  shortName: "?",
38184
38192
  type: "boolean",
38185
- defaultValueDescription: "false",
38193
+ defaultValueDescription: false,
38186
38194
  },
38187
38195
  {
38188
38196
  name: "watch",
@@ -38192,7 +38200,7 @@ var ts;
38192
38200
  isCommandLineOnly: true,
38193
38201
  category: ts.Diagnostics.Command_line_Options,
38194
38202
  description: ts.Diagnostics.Watch_input_files,
38195
- defaultValueDescription: "false",
38203
+ defaultValueDescription: false,
38196
38204
  },
38197
38205
  {
38198
38206
  name: "preserveWatchOutput",
@@ -38200,28 +38208,28 @@ var ts;
38200
38208
  showInSimplifiedHelpView: false,
38201
38209
  category: ts.Diagnostics.Output_Formatting,
38202
38210
  description: ts.Diagnostics.Disable_wiping_the_console_in_watch_mode,
38203
- defaultValueDescription: "false",
38211
+ defaultValueDescription: false,
38204
38212
  },
38205
38213
  {
38206
38214
  name: "listFiles",
38207
38215
  type: "boolean",
38208
38216
  category: ts.Diagnostics.Compiler_Diagnostics,
38209
38217
  description: ts.Diagnostics.Print_all_of_the_files_read_during_the_compilation,
38210
- defaultValueDescription: "false"
38218
+ defaultValueDescription: false,
38211
38219
  },
38212
38220
  {
38213
38221
  name: "explainFiles",
38214
38222
  type: "boolean",
38215
38223
  category: ts.Diagnostics.Compiler_Diagnostics,
38216
38224
  description: ts.Diagnostics.Print_files_read_during_the_compilation_including_why_it_was_included,
38217
- defaultValueDescription: "false",
38225
+ defaultValueDescription: false,
38218
38226
  },
38219
38227
  {
38220
38228
  name: "listEmittedFiles",
38221
38229
  type: "boolean",
38222
38230
  category: ts.Diagnostics.Compiler_Diagnostics,
38223
38231
  description: ts.Diagnostics.Print_the_names_of_emitted_files_after_a_compilation,
38224
- defaultValueDescription: "false"
38232
+ defaultValueDescription: false,
38225
38233
  },
38226
38234
  {
38227
38235
  name: "pretty",
@@ -38229,28 +38237,28 @@ var ts;
38229
38237
  showInSimplifiedHelpView: true,
38230
38238
  category: ts.Diagnostics.Output_Formatting,
38231
38239
  description: ts.Diagnostics.Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read,
38232
- defaultValueDescription: "true"
38240
+ defaultValueDescription: true,
38233
38241
  },
38234
38242
  {
38235
38243
  name: "traceResolution",
38236
38244
  type: "boolean",
38237
38245
  category: ts.Diagnostics.Compiler_Diagnostics,
38238
38246
  description: ts.Diagnostics.Log_paths_used_during_the_moduleResolution_process,
38239
- defaultValueDescription: "false"
38247
+ defaultValueDescription: false,
38240
38248
  },
38241
38249
  {
38242
38250
  name: "diagnostics",
38243
38251
  type: "boolean",
38244
38252
  category: ts.Diagnostics.Compiler_Diagnostics,
38245
38253
  description: ts.Diagnostics.Output_compiler_performance_information_after_building,
38246
- defaultValueDescription: "false"
38254
+ defaultValueDescription: false,
38247
38255
  },
38248
38256
  {
38249
38257
  name: "extendedDiagnostics",
38250
38258
  type: "boolean",
38251
38259
  category: ts.Diagnostics.Compiler_Diagnostics,
38252
38260
  description: ts.Diagnostics.Output_more_detailed_compiler_performance_information_after_building,
38253
- defaultValueDescription: "false"
38261
+ defaultValueDescription: false,
38254
38262
  },
38255
38263
  {
38256
38264
  name: "generateCpuProfile",
@@ -38286,7 +38294,7 @@ var ts;
38286
38294
  affectsEmit: true,
38287
38295
  category: ts.Diagnostics.Watch_and_Build_Modes,
38288
38296
  description: ts.Diagnostics.Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it,
38289
- defaultValueDescription: "false",
38297
+ defaultValueDescription: false,
38290
38298
  },
38291
38299
  {
38292
38300
  name: "locale",
@@ -38322,7 +38330,7 @@ var ts;
38322
38330
  showInSimplifiedHelpView: true,
38323
38331
  category: ts.Diagnostics.Language_and_Environment,
38324
38332
  description: ts.Diagnostics.Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declarations,
38325
- defaultValueDescription: "ES3"
38333
+ defaultValueDescription: 0 /* ES3 */,
38326
38334
  };
38327
38335
  var commandOptionsWithoutBuild = [
38328
38336
  // CommandLine only options
@@ -38332,7 +38340,7 @@ var ts;
38332
38340
  showInSimplifiedHelpView: true,
38333
38341
  category: ts.Diagnostics.Command_line_Options,
38334
38342
  description: ts.Diagnostics.Show_all_compiler_options,
38335
- defaultValueDescription: "false",
38343
+ defaultValueDescription: false,
38336
38344
  },
38337
38345
  {
38338
38346
  name: "version",
@@ -38341,7 +38349,7 @@ var ts;
38341
38349
  showInSimplifiedHelpView: true,
38342
38350
  category: ts.Diagnostics.Command_line_Options,
38343
38351
  description: ts.Diagnostics.Print_the_compiler_s_version,
38344
- defaultValueDescription: "false",
38352
+ defaultValueDescription: false,
38345
38353
  },
38346
38354
  {
38347
38355
  name: "init",
@@ -38349,7 +38357,7 @@ var ts;
38349
38357
  showInSimplifiedHelpView: true,
38350
38358
  category: ts.Diagnostics.Command_line_Options,
38351
38359
  description: ts.Diagnostics.Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file,
38352
- defaultValueDescription: "false",
38360
+ defaultValueDescription: false,
38353
38361
  },
38354
38362
  {
38355
38363
  name: "project",
@@ -38368,7 +38376,7 @@ var ts;
38368
38376
  showInSimplifiedHelpView: true,
38369
38377
  category: ts.Diagnostics.Command_line_Options,
38370
38378
  description: ts.Diagnostics.Build_one_or_more_projects_and_their_dependencies_if_out_of_date,
38371
- defaultValueDescription: "false",
38379
+ defaultValueDescription: false,
38372
38380
  },
38373
38381
  {
38374
38382
  name: "showConfig",
@@ -38377,7 +38385,7 @@ var ts;
38377
38385
  category: ts.Diagnostics.Command_line_Options,
38378
38386
  isCommandLineOnly: true,
38379
38387
  description: ts.Diagnostics.Print_the_final_configuration_instead_of_building,
38380
- defaultValueDescription: "false",
38388
+ defaultValueDescription: false,
38381
38389
  },
38382
38390
  {
38383
38391
  name: "listFilesOnly",
@@ -38387,7 +38395,7 @@ var ts;
38387
38395
  affectsEmit: true,
38388
38396
  isCommandLineOnly: true,
38389
38397
  description: ts.Diagnostics.Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing,
38390
- defaultValueDescription: "false",
38398
+ defaultValueDescription: false,
38391
38399
  },
38392
38400
  // Basic
38393
38401
  ts.targetOptionDeclaration,
@@ -38414,13 +38422,15 @@ var ts;
38414
38422
  showInSimplifiedHelpView: true,
38415
38423
  category: ts.Diagnostics.Modules,
38416
38424
  description: ts.Diagnostics.Specify_what_module_code_is_generated,
38425
+ defaultValueDescription: undefined,
38417
38426
  },
38418
38427
  {
38419
38428
  name: "lib",
38420
38429
  type: "list",
38421
38430
  element: {
38422
38431
  name: "lib",
38423
- type: ts.libMap
38432
+ type: ts.libMap,
38433
+ defaultValueDescription: undefined,
38424
38434
  },
38425
38435
  affectsProgramStructure: true,
38426
38436
  showInSimplifiedHelpView: true,
@@ -38435,7 +38445,7 @@ var ts;
38435
38445
  showInSimplifiedHelpView: true,
38436
38446
  category: ts.Diagnostics.JavaScript_Support,
38437
38447
  description: ts.Diagnostics.Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these_files,
38438
- defaultValueDescription: "false"
38448
+ defaultValueDescription: false,
38439
38449
  },
38440
38450
  {
38441
38451
  name: "checkJs",
@@ -38443,7 +38453,7 @@ var ts;
38443
38453
  showInSimplifiedHelpView: true,
38444
38454
  category: ts.Diagnostics.JavaScript_Support,
38445
38455
  description: ts.Diagnostics.Enable_error_reporting_in_type_checked_JavaScript_files,
38446
- defaultValueDescription: "false"
38456
+ defaultValueDescription: false,
38447
38457
  },
38448
38458
  {
38449
38459
  name: "jsx",
@@ -38455,7 +38465,7 @@ var ts;
38455
38465
  showInSimplifiedHelpView: true,
38456
38466
  category: ts.Diagnostics.Language_and_Environment,
38457
38467
  description: ts.Diagnostics.Specify_what_JSX_code_is_generated,
38458
- defaultValueDescription: "undefined"
38468
+ defaultValueDescription: undefined,
38459
38469
  },
38460
38470
  {
38461
38471
  name: "declaration",
@@ -38475,7 +38485,7 @@ var ts;
38475
38485
  showInSimplifiedHelpView: true,
38476
38486
  category: ts.Diagnostics.Emit,
38477
38487
  transpileOptionValue: undefined,
38478
- defaultValueDescription: "false",
38488
+ defaultValueDescription: false,
38479
38489
  description: ts.Diagnostics.Create_sourcemaps_for_d_ts_files
38480
38490
  },
38481
38491
  {
@@ -38486,7 +38496,7 @@ var ts;
38486
38496
  category: ts.Diagnostics.Emit,
38487
38497
  description: ts.Diagnostics.Only_output_d_ts_files_and_not_JavaScript_files,
38488
38498
  transpileOptionValue: undefined,
38489
- defaultValueDescription: "false",
38499
+ defaultValueDescription: false,
38490
38500
  },
38491
38501
  {
38492
38502
  name: "sourceMap",
@@ -38494,7 +38504,7 @@ var ts;
38494
38504
  affectsEmit: true,
38495
38505
  showInSimplifiedHelpView: true,
38496
38506
  category: ts.Diagnostics.Emit,
38497
- defaultValueDescription: "false",
38507
+ defaultValueDescription: false,
38498
38508
  description: ts.Diagnostics.Create_source_map_files_for_emitted_JavaScript_files,
38499
38509
  },
38500
38510
  {
@@ -38535,7 +38545,7 @@ var ts;
38535
38545
  isTSConfigOnly: true,
38536
38546
  category: ts.Diagnostics.Projects,
38537
38547
  transpileOptionValue: undefined,
38538
- defaultValueDescription: "false",
38548
+ defaultValueDescription: false,
38539
38549
  description: ts.Diagnostics.Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references,
38540
38550
  },
38541
38551
  {
@@ -38555,7 +38565,7 @@ var ts;
38555
38565
  affectsEmit: true,
38556
38566
  showInSimplifiedHelpView: true,
38557
38567
  category: ts.Diagnostics.Emit,
38558
- defaultValueDescription: "false",
38568
+ defaultValueDescription: false,
38559
38569
  description: ts.Diagnostics.Disable_emitting_comments,
38560
38570
  },
38561
38571
  {
@@ -38565,7 +38575,7 @@ var ts;
38565
38575
  category: ts.Diagnostics.Emit,
38566
38576
  description: ts.Diagnostics.Disable_emitting_files_from_a_compilation,
38567
38577
  transpileOptionValue: undefined,
38568
- defaultValueDescription: "false"
38578
+ defaultValueDescription: false,
38569
38579
  },
38570
38580
  {
38571
38581
  name: "importHelpers",
@@ -38573,7 +38583,7 @@ var ts;
38573
38583
  affectsEmit: true,
38574
38584
  category: ts.Diagnostics.Emit,
38575
38585
  description: ts.Diagnostics.Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file,
38576
- defaultValueDescription: "false"
38586
+ defaultValueDescription: false,
38577
38587
  },
38578
38588
  {
38579
38589
  name: "importsNotUsedAsValues",
@@ -38585,7 +38595,8 @@ var ts;
38585
38595
  affectsEmit: true,
38586
38596
  affectsSemanticDiagnostics: true,
38587
38597
  category: ts.Diagnostics.Emit,
38588
- description: ts.Diagnostics.Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types
38598
+ description: ts.Diagnostics.Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types,
38599
+ defaultValueDescription: 0 /* Remove */,
38589
38600
  },
38590
38601
  {
38591
38602
  name: "downlevelIteration",
@@ -38593,7 +38604,7 @@ var ts;
38593
38604
  affectsEmit: true,
38594
38605
  category: ts.Diagnostics.Emit,
38595
38606
  description: ts.Diagnostics.Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration,
38596
- defaultValueDescription: "false"
38607
+ defaultValueDescription: false,
38597
38608
  },
38598
38609
  {
38599
38610
  name: "isolatedModules",
@@ -38601,7 +38612,7 @@ var ts;
38601
38612
  category: ts.Diagnostics.Interop_Constraints,
38602
38613
  description: ts.Diagnostics.Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports,
38603
38614
  transpileOptionValue: true,
38604
- defaultValueDescription: "false"
38615
+ defaultValueDescription: false,
38605
38616
  },
38606
38617
  // Strict Type Checks
38607
38618
  {
@@ -38612,7 +38623,7 @@ var ts;
38612
38623
  showInSimplifiedHelpView: true,
38613
38624
  category: ts.Diagnostics.Type_Checking,
38614
38625
  description: ts.Diagnostics.Enable_all_strict_type_checking_options,
38615
- defaultValueDescription: "false"
38626
+ defaultValueDescription: false,
38616
38627
  },
38617
38628
  {
38618
38629
  name: "noImplicitAny",
@@ -38673,7 +38684,7 @@ var ts;
38673
38684
  strictFlag: true,
38674
38685
  category: ts.Diagnostics.Type_Checking,
38675
38686
  description: ts.Diagnostics.Type_catch_clause_variables_as_unknown_instead_of_any,
38676
- defaultValueDescription: "false",
38687
+ defaultValueDescription: false,
38677
38688
  },
38678
38689
  {
38679
38690
  name: "alwaysStrict",
@@ -38691,7 +38702,7 @@ var ts;
38691
38702
  affectsSemanticDiagnostics: true,
38692
38703
  category: ts.Diagnostics.Type_Checking,
38693
38704
  description: ts.Diagnostics.Enable_error_reporting_when_a_local_variables_aren_t_read,
38694
- defaultValueDescription: "false"
38705
+ defaultValueDescription: false,
38695
38706
  },
38696
38707
  {
38697
38708
  name: "noUnusedParameters",
@@ -38699,7 +38710,7 @@ var ts;
38699
38710
  affectsSemanticDiagnostics: true,
38700
38711
  category: ts.Diagnostics.Type_Checking,
38701
38712
  description: ts.Diagnostics.Raise_an_error_when_a_function_parameter_isn_t_read,
38702
- defaultValueDescription: "false"
38713
+ defaultValueDescription: false,
38703
38714
  },
38704
38715
  {
38705
38716
  name: "exactOptionalPropertyTypes",
@@ -38707,7 +38718,7 @@ var ts;
38707
38718
  affectsSemanticDiagnostics: true,
38708
38719
  category: ts.Diagnostics.Type_Checking,
38709
38720
  description: ts.Diagnostics.Interpret_optional_property_types_as_written_rather_than_adding_undefined,
38710
- defaultValueDescription: "false",
38721
+ defaultValueDescription: false,
38711
38722
  },
38712
38723
  {
38713
38724
  name: "noImplicitReturns",
@@ -38715,7 +38726,7 @@ var ts;
38715
38726
  affectsSemanticDiagnostics: true,
38716
38727
  category: ts.Diagnostics.Type_Checking,
38717
38728
  description: ts.Diagnostics.Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function,
38718
- defaultValueDescription: "false"
38729
+ defaultValueDescription: false,
38719
38730
  },
38720
38731
  {
38721
38732
  name: "noFallthroughCasesInSwitch",
@@ -38724,7 +38735,7 @@ var ts;
38724
38735
  affectsSemanticDiagnostics: true,
38725
38736
  category: ts.Diagnostics.Type_Checking,
38726
38737
  description: ts.Diagnostics.Enable_error_reporting_for_fallthrough_cases_in_switch_statements,
38727
- defaultValueDescription: "false",
38738
+ defaultValueDescription: false,
38728
38739
  },
38729
38740
  {
38730
38741
  name: "noUncheckedIndexedAccess",
@@ -38732,7 +38743,7 @@ var ts;
38732
38743
  affectsSemanticDiagnostics: true,
38733
38744
  category: ts.Diagnostics.Type_Checking,
38734
38745
  description: ts.Diagnostics.Include_undefined_in_index_signature_results,
38735
- defaultValueDescription: "false",
38746
+ defaultValueDescription: false,
38736
38747
  },
38737
38748
  {
38738
38749
  name: "noImplicitOverride",
@@ -38740,7 +38751,7 @@ var ts;
38740
38751
  affectsSemanticDiagnostics: true,
38741
38752
  category: ts.Diagnostics.Type_Checking,
38742
38753
  description: ts.Diagnostics.Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier,
38743
- defaultValueDescription: "false",
38754
+ defaultValueDescription: false,
38744
38755
  },
38745
38756
  {
38746
38757
  name: "noPropertyAccessFromIndexSignature",
@@ -38748,7 +38759,7 @@ var ts;
38748
38759
  showInSimplifiedHelpView: false,
38749
38760
  category: ts.Diagnostics.Type_Checking,
38750
38761
  description: ts.Diagnostics.Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type,
38751
- defaultValueDescription: "false"
38762
+ defaultValueDescription: false,
38752
38763
  },
38753
38764
  // Module Resolution
38754
38765
  {
@@ -38842,14 +38853,14 @@ var ts;
38842
38853
  showInSimplifiedHelpView: true,
38843
38854
  category: ts.Diagnostics.Interop_Constraints,
38844
38855
  description: ts.Diagnostics.Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility,
38845
- defaultValueDescription: "false"
38856
+ defaultValueDescription: false,
38846
38857
  },
38847
38858
  {
38848
38859
  name: "preserveSymlinks",
38849
38860
  type: "boolean",
38850
38861
  category: ts.Diagnostics.Interop_Constraints,
38851
38862
  description: ts.Diagnostics.Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node,
38852
- defaultValueDescription: "false",
38863
+ defaultValueDescription: false,
38853
38864
  },
38854
38865
  {
38855
38866
  name: "allowUmdGlobalAccess",
@@ -38857,7 +38868,7 @@ var ts;
38857
38868
  affectsSemanticDiagnostics: true,
38858
38869
  category: ts.Diagnostics.Modules,
38859
38870
  description: ts.Diagnostics.Allow_accessing_UMD_globals_from_modules,
38860
- defaultValueDescription: "false"
38871
+ defaultValueDescription: false,
38861
38872
  },
38862
38873
  // Source Maps
38863
38874
  {
@@ -38882,7 +38893,7 @@ var ts;
38882
38893
  affectsEmit: true,
38883
38894
  category: ts.Diagnostics.Emit,
38884
38895
  description: ts.Diagnostics.Include_sourcemap_files_inside_the_emitted_JavaScript,
38885
- defaultValueDescription: "false"
38896
+ defaultValueDescription: false,
38886
38897
  },
38887
38898
  {
38888
38899
  name: "inlineSources",
@@ -38890,7 +38901,7 @@ var ts;
38890
38901
  affectsEmit: true,
38891
38902
  category: ts.Diagnostics.Emit,
38892
38903
  description: ts.Diagnostics.Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript,
38893
- defaultValueDescription: "false"
38904
+ defaultValueDescription: false,
38894
38905
  },
38895
38906
  // Experimental
38896
38907
  {
@@ -38899,7 +38910,7 @@ var ts;
38899
38910
  affectsSemanticDiagnostics: true,
38900
38911
  category: ts.Diagnostics.Language_and_Environment,
38901
38912
  description: ts.Diagnostics.Enable_experimental_support_for_TC39_stage_2_draft_decorators,
38902
- defaultValueDescription: "false",
38913
+ defaultValueDescription: false,
38903
38914
  },
38904
38915
  {
38905
38916
  name: "emitDecoratorMetadata",
@@ -38908,7 +38919,7 @@ var ts;
38908
38919
  affectsEmit: true,
38909
38920
  category: ts.Diagnostics.Language_and_Environment,
38910
38921
  description: ts.Diagnostics.Emit_design_type_metadata_for_decorated_declarations_in_source_files,
38911
- defaultValueDescription: "false",
38922
+ defaultValueDescription: false,
38912
38923
  },
38913
38924
  // Advanced
38914
38925
  {
@@ -38940,7 +38951,7 @@ var ts;
38940
38951
  affectsModuleResolution: true,
38941
38952
  category: ts.Diagnostics.Modules,
38942
38953
  description: ts.Diagnostics.Enable_importing_json_files,
38943
- defaultValueDescription: "false"
38954
+ defaultValueDescription: false,
38944
38955
  },
38945
38956
  {
38946
38957
  name: "out",
@@ -38966,7 +38977,7 @@ var ts;
38966
38977
  type: "boolean",
38967
38978
  category: ts.Diagnostics.Completeness,
38968
38979
  description: ts.Diagnostics.Skip_type_checking_d_ts_files_that_are_included_with_TypeScript,
38969
- defaultValueDescription: "false",
38980
+ defaultValueDescription: false,
38970
38981
  },
38971
38982
  {
38972
38983
  name: "charset",
@@ -38981,7 +38992,7 @@ var ts;
38981
38992
  affectsEmit: true,
38982
38993
  category: ts.Diagnostics.Emit,
38983
38994
  description: ts.Diagnostics.Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files,
38984
- defaultValueDescription: "false"
38995
+ defaultValueDescription: false,
38985
38996
  },
38986
38997
  {
38987
38998
  name: "newLine",
@@ -39001,7 +39012,7 @@ var ts;
39001
39012
  affectsSemanticDiagnostics: true,
39002
39013
  category: ts.Diagnostics.Output_Formatting,
39003
39014
  description: ts.Diagnostics.Disable_truncating_types_in_error_messages,
39004
- defaultValueDescription: "false"
39015
+ defaultValueDescription: false,
39005
39016
  },
39006
39017
  {
39007
39018
  name: "noLib",
@@ -39012,7 +39023,7 @@ var ts;
39012
39023
  // We are not returning a sourceFile for lib file when asked by the program,
39013
39024
  // so pass --noLib to avoid reporting a file not found error.
39014
39025
  transpileOptionValue: true,
39015
- defaultValueDescription: "false"
39026
+ defaultValueDescription: false,
39016
39027
  },
39017
39028
  {
39018
39029
  name: "noResolve",
@@ -39023,7 +39034,7 @@ var ts;
39023
39034
  // We are not doing a full typecheck, we are not resolving the whole context,
39024
39035
  // so pass --noResolve to avoid reporting missing file errors.
39025
39036
  transpileOptionValue: true,
39026
- defaultValueDescription: "false"
39037
+ defaultValueDescription: false,
39027
39038
  },
39028
39039
  {
39029
39040
  name: "stripInternal",
@@ -39031,7 +39042,7 @@ var ts;
39031
39042
  affectsEmit: true,
39032
39043
  category: ts.Diagnostics.Emit,
39033
39044
  description: ts.Diagnostics.Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments,
39034
- defaultValueDescription: "false",
39045
+ defaultValueDescription: false,
39035
39046
  },
39036
39047
  {
39037
39048
  name: "disableSizeLimit",
@@ -39039,7 +39050,7 @@ var ts;
39039
39050
  affectsProgramStructure: true,
39040
39051
  category: ts.Diagnostics.Editor_Support,
39041
39052
  description: ts.Diagnostics.Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server,
39042
- defaultValueDescription: "false"
39053
+ defaultValueDescription: false,
39043
39054
  },
39044
39055
  {
39045
39056
  name: "disableSourceOfProjectReferenceRedirect",
@@ -39047,7 +39058,7 @@ var ts;
39047
39058
  isTSConfigOnly: true,
39048
39059
  category: ts.Diagnostics.Projects,
39049
39060
  description: ts.Diagnostics.Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects,
39050
- defaultValueDescription: "false",
39061
+ defaultValueDescription: false,
39051
39062
  },
39052
39063
  {
39053
39064
  name: "disableSolutionSearching",
@@ -39055,7 +39066,7 @@ var ts;
39055
39066
  isTSConfigOnly: true,
39056
39067
  category: ts.Diagnostics.Projects,
39057
39068
  description: ts.Diagnostics.Opt_a_project_out_of_multi_project_reference_checking_when_editing,
39058
- defaultValueDescription: "false",
39069
+ defaultValueDescription: false,
39059
39070
  },
39060
39071
  {
39061
39072
  name: "disableReferencedProjectLoad",
@@ -39063,7 +39074,7 @@ var ts;
39063
39074
  isTSConfigOnly: true,
39064
39075
  category: ts.Diagnostics.Projects,
39065
39076
  description: ts.Diagnostics.Reduce_the_number_of_projects_loaded_automatically_by_TypeScript,
39066
- defaultValueDescription: "false",
39077
+ defaultValueDescription: false,
39067
39078
  },
39068
39079
  {
39069
39080
  name: "noImplicitUseStrict",
@@ -39071,7 +39082,7 @@ var ts;
39071
39082
  affectsSemanticDiagnostics: true,
39072
39083
  category: ts.Diagnostics.Backwards_Compatibility,
39073
39084
  description: ts.Diagnostics.Disable_adding_use_strict_directives_in_emitted_JavaScript_files,
39074
- defaultValueDescription: "false"
39085
+ defaultValueDescription: false,
39075
39086
  },
39076
39087
  {
39077
39088
  name: "noEmitHelpers",
@@ -39079,7 +39090,7 @@ var ts;
39079
39090
  affectsEmit: true,
39080
39091
  category: ts.Diagnostics.Emit,
39081
39092
  description: ts.Diagnostics.Disable_generating_custom_helper_functions_like_extends_in_compiled_output,
39082
- defaultValueDescription: "false"
39093
+ defaultValueDescription: false,
39083
39094
  },
39084
39095
  {
39085
39096
  name: "noEmitOnError",
@@ -39088,7 +39099,7 @@ var ts;
39088
39099
  category: ts.Diagnostics.Emit,
39089
39100
  transpileOptionValue: undefined,
39090
39101
  description: ts.Diagnostics.Disable_emitting_files_if_any_type_checking_errors_are_reported,
39091
- defaultValueDescription: "false"
39102
+ defaultValueDescription: false,
39092
39103
  },
39093
39104
  {
39094
39105
  name: "preserveConstEnums",
@@ -39096,7 +39107,7 @@ var ts;
39096
39107
  affectsEmit: true,
39097
39108
  category: ts.Diagnostics.Emit,
39098
39109
  description: ts.Diagnostics.Disable_erasing_const_enum_declarations_in_generated_code,
39099
- defaultValueDescription: "false",
39110
+ defaultValueDescription: false,
39100
39111
  },
39101
39112
  {
39102
39113
  name: "declarationDir",
@@ -39113,7 +39124,7 @@ var ts;
39113
39124
  type: "boolean",
39114
39125
  category: ts.Diagnostics.Completeness,
39115
39126
  description: ts.Diagnostics.Skip_type_checking_all_d_ts_files,
39116
- defaultValueDescription: "false"
39127
+ defaultValueDescription: false,
39117
39128
  },
39118
39129
  {
39119
39130
  name: "allowUnusedLabels",
@@ -39122,7 +39133,7 @@ var ts;
39122
39133
  affectsSemanticDiagnostics: true,
39123
39134
  category: ts.Diagnostics.Type_Checking,
39124
39135
  description: ts.Diagnostics.Disable_error_reporting_for_unused_labels,
39125
- defaultValueDescription: "undefined"
39136
+ defaultValueDescription: undefined,
39126
39137
  },
39127
39138
  {
39128
39139
  name: "allowUnreachableCode",
@@ -39131,7 +39142,7 @@ var ts;
39131
39142
  affectsSemanticDiagnostics: true,
39132
39143
  category: ts.Diagnostics.Type_Checking,
39133
39144
  description: ts.Diagnostics.Disable_error_reporting_for_unreachable_code,
39134
- defaultValueDescription: "undefined"
39145
+ defaultValueDescription: undefined,
39135
39146
  },
39136
39147
  {
39137
39148
  name: "suppressExcessPropertyErrors",
@@ -39139,7 +39150,7 @@ var ts;
39139
39150
  affectsSemanticDiagnostics: true,
39140
39151
  category: ts.Diagnostics.Backwards_Compatibility,
39141
39152
  description: ts.Diagnostics.Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals,
39142
- defaultValueDescription: "false"
39153
+ defaultValueDescription: false,
39143
39154
  },
39144
39155
  {
39145
39156
  name: "suppressImplicitAnyIndexErrors",
@@ -39147,7 +39158,7 @@ var ts;
39147
39158
  affectsSemanticDiagnostics: true,
39148
39159
  category: ts.Diagnostics.Backwards_Compatibility,
39149
39160
  description: ts.Diagnostics.Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures,
39150
- defaultValueDescription: "false"
39161
+ defaultValueDescription: false,
39151
39162
  },
39152
39163
  {
39153
39164
  name: "forceConsistentCasingInFileNames",
@@ -39155,7 +39166,7 @@ var ts;
39155
39166
  affectsModuleResolution: true,
39156
39167
  category: ts.Diagnostics.Interop_Constraints,
39157
39168
  description: ts.Diagnostics.Ensure_that_casing_is_correct_in_imports,
39158
- defaultValueDescription: "false"
39169
+ defaultValueDescription: false,
39159
39170
  },
39160
39171
  {
39161
39172
  name: "maxNodeModuleJsDepth",
@@ -39163,7 +39174,7 @@ var ts;
39163
39174
  affectsModuleResolution: true,
39164
39175
  category: ts.Diagnostics.JavaScript_Support,
39165
39176
  description: ts.Diagnostics.Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicable_with_allowJs,
39166
- defaultValueDescription: "0"
39177
+ defaultValueDescription: 0,
39167
39178
  },
39168
39179
  {
39169
39180
  name: "noStrictGenericChecks",
@@ -39171,7 +39182,7 @@ var ts;
39171
39182
  affectsSemanticDiagnostics: true,
39172
39183
  category: ts.Diagnostics.Backwards_Compatibility,
39173
39184
  description: ts.Diagnostics.Disable_strict_checking_of_generic_signatures_in_function_types,
39174
- defaultValueDescription: "false"
39185
+ defaultValueDescription: false,
39175
39186
  },
39176
39187
  {
39177
39188
  name: "useDefineForClassFields",
@@ -39188,14 +39199,14 @@ var ts;
39188
39199
  affectsEmit: true,
39189
39200
  category: ts.Diagnostics.Emit,
39190
39201
  description: ts.Diagnostics.Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed,
39191
- defaultValueDescription: "false",
39202
+ defaultValueDescription: false,
39192
39203
  },
39193
39204
  {
39194
39205
  name: "keyofStringsOnly",
39195
39206
  type: "boolean",
39196
39207
  category: ts.Diagnostics.Backwards_Compatibility,
39197
39208
  description: ts.Diagnostics.Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option,
39198
- defaultValueDescription: "false"
39209
+ defaultValueDescription: false,
39199
39210
  },
39200
39211
  {
39201
39212
  // A list of plugins to load in the language service
@@ -39237,7 +39248,7 @@ var ts;
39237
39248
  category: ts.Diagnostics.Command_line_Options,
39238
39249
  description: ts.Diagnostics.Enable_verbose_logging,
39239
39250
  type: "boolean",
39240
- defaultValueDescription: "false",
39251
+ defaultValueDescription: false,
39241
39252
  },
39242
39253
  {
39243
39254
  name: "dry",
@@ -39245,7 +39256,7 @@ var ts;
39245
39256
  category: ts.Diagnostics.Command_line_Options,
39246
39257
  description: ts.Diagnostics.Show_what_would_be_built_or_deleted_if_specified_with_clean,
39247
39258
  type: "boolean",
39248
- defaultValueDescription: "false",
39259
+ defaultValueDescription: false,
39249
39260
  },
39250
39261
  {
39251
39262
  name: "force",
@@ -39253,14 +39264,14 @@ var ts;
39253
39264
  category: ts.Diagnostics.Command_line_Options,
39254
39265
  description: ts.Diagnostics.Build_all_projects_including_those_that_appear_to_be_up_to_date,
39255
39266
  type: "boolean",
39256
- defaultValueDescription: "false",
39267
+ defaultValueDescription: false,
39257
39268
  },
39258
39269
  {
39259
39270
  name: "clean",
39260
39271
  category: ts.Diagnostics.Command_line_Options,
39261
39272
  description: ts.Diagnostics.Delete_the_outputs_of_all_projects,
39262
39273
  type: "boolean",
39263
- defaultValueDescription: "false",
39274
+ defaultValueDescription: false,
39264
39275
  }
39265
39276
  ];
39266
39277
  /* @internal */
@@ -39273,12 +39284,12 @@ var ts;
39273
39284
  */
39274
39285
  name: "enableAutoDiscovery",
39275
39286
  type: "boolean",
39276
- defaultValueDescription: "false",
39287
+ defaultValueDescription: false,
39277
39288
  },
39278
39289
  {
39279
39290
  name: "enable",
39280
39291
  type: "boolean",
39281
- defaultValueDescription: "false",
39292
+ defaultValueDescription: false,
39282
39293
  },
39283
39294
  {
39284
39295
  name: "include",
@@ -39299,7 +39310,7 @@ var ts;
39299
39310
  {
39300
39311
  name: "disableFilenameBasedTypeAcquisition",
39301
39312
  type: "boolean",
39302
- defaultValueDescription: "false",
39313
+ defaultValueDescription: false,
39303
39314
  },
39304
39315
  ];
39305
39316
  /*@internal*/
@@ -86612,18 +86623,22 @@ var ts;
86612
86623
  return false;
86613
86624
  }
86614
86625
  function checkNumericLiteralValueSize(node) {
86626
+ // We should test against `getTextOfNode(node)` rather than `node.text`, because `node.text` for large numeric literals can contain "."
86627
+ // e.g. `node.text` for numeric literal `1100000000000000000000` is `1.1e21`.
86628
+ var isFractional = ts.getTextOfNode(node).indexOf(".") !== -1;
86629
+ var isScientific = node.numericLiteralFlags & 16 /* Scientific */;
86615
86630
  // Scientific notation (e.g. 2e54 and 1e00000000010) can't be converted to bigint
86616
- // Literals with 15 or fewer characters aren't long enough to reach past 2^53 - 1
86617
86631
  // Fractional numbers (e.g. 9000000000000000.001) are inherently imprecise anyway
86618
- if (node.numericLiteralFlags & 16 /* Scientific */ || node.text.length <= 15 || node.text.indexOf(".") !== -1) {
86632
+ if (isFractional || isScientific) {
86619
86633
  return;
86620
86634
  }
86621
- // We can't rely on the runtime to accurately store and compare extremely large numeric values
86622
- // Even for internal use, we use getTextOfNode: https://github.com/microsoft/TypeScript/issues/33298
86623
- // Thus, if the runtime claims a too-large number is lower than Number.MAX_SAFE_INTEGER,
86624
- // it's likely addition operations on it will fail too
86625
- var apparentValue = +ts.getTextOfNode(node);
86626
- if (apparentValue <= Math.pow(2, 53) - 1 && apparentValue + 1 > apparentValue) {
86635
+ // Here `node` is guaranteed to be a numeric literal representing an integer.
86636
+ // We need to judge whether the integer `node` represents is <= 2 ** 53 - 1, which can be accomplished by comparing to `value` defined below because:
86637
+ // 1) when `node` represents an integer <= 2 ** 53 - 1, `node.text` is its exact string representation and thus `value` precisely represents the integer.
86638
+ // 2) otherwise, although `node.text` may be imprecise string representation, its mathematical value and consequently `value` cannot be less than 2 ** 53,
86639
+ // thus the result of the predicate won't be affected.
86640
+ var value = +node.text;
86641
+ if (value <= Math.pow(2, 53) - 1) {
86627
86642
  return;
86628
86643
  }
86629
86644
  addErrorOrSuggestion(/*isError*/ false, ts.createDiagnosticForNode(node, ts.Diagnostics.Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers));
@@ -90085,7 +90100,7 @@ var ts;
90085
90100
  // ], C.prototype, "prop");
90086
90101
  //
90087
90102
  var prefix = getClassMemberPrefix(node, member);
90088
- var memberName = getExpressionForPropertyName(member, /*generateNameForComputedPropertyName*/ true);
90103
+ var memberName = getExpressionForPropertyName(member, /*generateNameForComputedPropertyName*/ !ts.hasSyntacticModifier(member, 2 /* Ambient */));
90089
90104
  var descriptor = languageVersion > 0 /* ES3 */
90090
90105
  ? member.kind === 166 /* PropertyDeclaration */
90091
90106
  // We emit `void 0` here to indicate to `__decorate` that it can invoke `Object.defineProperty` directly, but that it
@@ -90899,11 +90914,10 @@ var ts;
90899
90914
  // we can safely elide the parentheses here, as a new synthetic
90900
90915
  // ParenthesizedExpression will be inserted if we remove parentheses too
90901
90916
  // aggressively.
90902
- // HOWEVER - if there are leading comments on the expression itself, to handle ASI
90903
- // correctly for return and throw, we must keep the parenthesis
90904
- if (ts.length(ts.getLeadingCommentRangesOfNode(expression, currentSourceFile))) {
90905
- return factory.updateParenthesizedExpression(node, expression);
90906
- }
90917
+ //
90918
+ // If there are leading comments on the expression itself, the emitter will handle ASI
90919
+ // for return, throw, and yield by re-introducing parenthesis during emit on an as-need
90920
+ // basis.
90907
90921
  return factory.createPartiallyEmittedExpression(expression, node);
90908
90922
  }
90909
90923
  return ts.visitEachChild(node, visitor, context);
@@ -94851,11 +94865,11 @@ var ts;
94851
94865
  }
94852
94866
  function visitOptionalExpression(node, captureThisArg, isDelete) {
94853
94867
  var _a = flattenChain(node), expression = _a.expression, chain = _a.chain;
94854
- var left = visitNonOptionalExpression(expression, ts.isCallChain(chain[0]), /*isDelete*/ false);
94868
+ var left = visitNonOptionalExpression(ts.skipPartiallyEmittedExpressions(expression), ts.isCallChain(chain[0]), /*isDelete*/ false);
94855
94869
  var leftThisArg = ts.isSyntheticReference(left) ? left.thisArg : undefined;
94856
- var leftExpression = ts.isSyntheticReference(left) ? left.expression : left;
94857
- var capturedLeft = leftExpression;
94858
- if (!ts.isSimpleCopiableExpression(leftExpression)) {
94870
+ var capturedLeft = ts.isSyntheticReference(left) ? left.expression : left;
94871
+ var leftExpression = factory.restoreOuterExpressions(expression, capturedLeft, 8 /* PartiallyEmittedExpressions */);
94872
+ if (!ts.isSimpleCopiableExpression(capturedLeft)) {
94859
94873
  capturedLeft = factory.createTempVariable(hoistVariableDeclaration);
94860
94874
  leftExpression = factory.createAssignment(capturedLeft, leftExpression);
94861
94875
  }
@@ -94881,6 +94895,10 @@ var ts;
94881
94895
  break;
94882
94896
  case 207 /* CallExpression */:
94883
94897
  if (i === 0 && leftThisArg) {
94898
+ if (!ts.isGeneratedIdentifier(leftThisArg)) {
94899
+ leftThisArg = factory.cloneNode(leftThisArg);
94900
+ ts.addEmitFlags(leftThisArg, 1536 /* NoComments */);
94901
+ }
94884
94902
  rightExpression = factory.createFunctionCallCall(rightExpression, leftThisArg.kind === 106 /* SuperKeyword */ ? factory.createThis() : leftThisArg, ts.visitNodes(segment.arguments, visitor, ts.isExpression));
94885
94903
  }
94886
94904
  else {
@@ -109663,7 +109681,7 @@ var ts;
109663
109681
  function emitYieldExpression(node) {
109664
109682
  emitTokenWithComment(125 /* YieldKeyword */, node.pos, writeKeyword, node);
109665
109683
  emit(node.asteriskToken);
109666
- emitExpressionWithLeadingSpace(node.expression, parenthesizer.parenthesizeExpressionForDisallowedComma);
109684
+ emitExpressionWithLeadingSpace(node.expression && parenthesizeExpressionForNoAsi(node.expression), parenthesizeExpressionForNoAsiAndDisallowedComma);
109667
109685
  }
109668
109686
  function emitSpreadElement(node) {
109669
109687
  emitTokenWithComment(25 /* DotDotDotToken */, node.pos, writePunctuation, node);
@@ -109860,9 +109878,49 @@ var ts;
109860
109878
  }
109861
109879
  return pos;
109862
109880
  }
109881
+ function commentWillEmitNewLine(node) {
109882
+ return node.kind === 2 /* SingleLineCommentTrivia */ || !!node.hasTrailingNewLine;
109883
+ }
109884
+ function willEmitLeadingNewLine(node) {
109885
+ if (!currentSourceFile)
109886
+ return false;
109887
+ if (ts.some(ts.getLeadingCommentRanges(currentSourceFile.text, node.pos), commentWillEmitNewLine))
109888
+ return true;
109889
+ if (ts.some(ts.getSyntheticLeadingComments(node), commentWillEmitNewLine))
109890
+ return true;
109891
+ if (ts.isPartiallyEmittedExpression(node)) {
109892
+ if (node.pos !== node.expression.pos) {
109893
+ if (ts.some(ts.getTrailingCommentRanges(currentSourceFile.text, node.expression.pos), commentWillEmitNewLine))
109894
+ return true;
109895
+ }
109896
+ return willEmitLeadingNewLine(node.expression);
109897
+ }
109898
+ return false;
109899
+ }
109900
+ /**
109901
+ * Wraps an expression in parens if we would emit a leading comment that would introduce a line separator
109902
+ * between the node and its parent.
109903
+ */
109904
+ function parenthesizeExpressionForNoAsi(node) {
109905
+ if (!commentsDisabled && ts.isPartiallyEmittedExpression(node) && willEmitLeadingNewLine(node)) {
109906
+ var parseNode = ts.getParseTreeNode(node);
109907
+ if (parseNode && ts.isParenthesizedExpression(parseNode)) {
109908
+ // If the original node was a parenthesized expression, restore it to preserve comment and source map emit
109909
+ var parens = ts.factory.createParenthesizedExpression(node.expression);
109910
+ ts.setOriginalNode(parens, node);
109911
+ ts.setTextRange(parens, parseNode);
109912
+ return parens;
109913
+ }
109914
+ return ts.factory.createParenthesizedExpression(node);
109915
+ }
109916
+ return node;
109917
+ }
109918
+ function parenthesizeExpressionForNoAsiAndDisallowedComma(node) {
109919
+ return parenthesizeExpressionForNoAsi(parenthesizer.parenthesizeExpressionForDisallowedComma(node));
109920
+ }
109863
109921
  function emitReturnStatement(node) {
109864
109922
  emitTokenWithComment(105 /* ReturnKeyword */, node.pos, writeKeyword, /*contextNode*/ node);
109865
- emitExpressionWithLeadingSpace(node.expression);
109923
+ emitExpressionWithLeadingSpace(node.expression && parenthesizeExpressionForNoAsi(node.expression), parenthesizeExpressionForNoAsi);
109866
109924
  writeTrailingSemicolon();
109867
109925
  }
109868
109926
  function emitWithStatement(node) {
@@ -109890,7 +109948,7 @@ var ts;
109890
109948
  }
109891
109949
  function emitThrowStatement(node) {
109892
109950
  emitTokenWithComment(109 /* ThrowKeyword */, node.pos, writeKeyword, node);
109893
- emitExpressionWithLeadingSpace(node.expression);
109951
+ emitExpressionWithLeadingSpace(parenthesizeExpressionForNoAsi(node.expression), parenthesizeExpressionForNoAsi);
109894
109952
  writeTrailingSemicolon();
109895
109953
  }
109896
109954
  function emitTryStatement(node) {
@@ -110734,7 +110792,14 @@ var ts;
110734
110792
  }
110735
110793
  // Transformation nodes
110736
110794
  function emitPartiallyEmittedExpression(node) {
110795
+ var emitFlags = ts.getEmitFlags(node);
110796
+ if (!(emitFlags & 512 /* NoLeadingComments */) && node.pos !== node.expression.pos) {
110797
+ emitTrailingCommentsOfPosition(node.expression.pos);
110798
+ }
110737
110799
  emitExpression(node.expression);
110800
+ if (!(emitFlags & 1024 /* NoTrailingComments */) && node.end !== node.expression.end) {
110801
+ emitLeadingCommentsOfPosition(node.expression.end);
110802
+ }
110738
110803
  }
110739
110804
  function emitCommaList(node) {
110740
110805
  emitExpressionList(node, node.elements, 528 /* CommaListElements */, /*parenthesizerRule*/ undefined);
@@ -111098,10 +111163,8 @@ var ts;
111098
111163
  // Emit this child.
111099
111164
  previousSourceFileTextKind = recordBundleFileInternalSectionStart(child);
111100
111165
  if (shouldEmitInterveningComments) {
111101
- if (emitTrailingCommentsOfPosition) {
111102
- var commentRange = ts.getCommentRange(child);
111103
- emitTrailingCommentsOfPosition(commentRange.pos);
111104
- }
111166
+ var commentRange = ts.getCommentRange(child);
111167
+ emitTrailingCommentsOfPosition(commentRange.pos);
111105
111168
  }
111106
111169
  else {
111107
111170
  shouldEmitInterveningComments = mayEmitInterveningComments;
@@ -111422,7 +111485,7 @@ var ts;
111422
111485
  function writeLineSeparatorsAndIndentBefore(node, parent) {
111423
111486
  var leadingNewlines = preserveSourceNewlines && getLeadingLineTerminatorCount(parent, [node], 0 /* None */);
111424
111487
  if (leadingNewlines) {
111425
- writeLinesAndIndent(leadingNewlines, /*writeLinesIfNotIndenting*/ false);
111488
+ writeLinesAndIndent(leadingNewlines, /*writeSpaceIfNotIndenting*/ false);
111426
111489
  }
111427
111490
  return !!leadingNewlines;
111428
111491
  }