Fix up code so we don't crash when TS itself is emitted with let/const (#50151)

This commit is contained in:
Jake Bailey
2022-08-10 13:38:38 -07:00
committed by GitHub
parent b56483feb8
commit 8a24fe75c9
2 changed files with 9 additions and 3 deletions
+5 -1
View File
@@ -1363,6 +1363,11 @@ namespace ts {
onUnRecoverableConfigFileDiagnostic: noop,
};
// The call to isProgramUptoDate below may refer back to documentRegistryBucketKey;
// calculate this early so it's not undefined if downleveled to a var (or, if emitted
// as a const variable without downleveling, doesn't crash).
const documentRegistryBucketKey = documentRegistry.getKeyForCompilationSettings(newSettings);
// If the program is already up-to-date, we can reuse it
if (isProgramUptoDate(program, rootFileNames, newSettings, (_path, fileName) => host.getScriptVersion(fileName), fileName => compilerHost!.fileExists(fileName), hasInvalidatedResolution, hasChangedAutomaticTypeDirectiveNames, getParsedCommandLine, projectReferences)) {
return;
@@ -1374,7 +1379,6 @@ namespace ts {
// the program points to old source files that have been invalidated because of
// incremental parsing.
const documentRegistryBucketKey = documentRegistry.getKeyForCompilationSettings(newSettings);
const options: CreateProgramOptions = {
rootNames: rootFileNames,
options: newSettings,