diff --git a/src/harness/harness.ts b/src/harness/harness.ts index a0fb88213ed..a3789eb9ebf 100644 --- a/src/harness/harness.ts +++ b/src/harness/harness.ts @@ -844,9 +844,7 @@ namespace Harness { export const es2015DefaultLibFileName = "lib.es2015.d.ts"; // Cache of lib files from "built/local" - const libFileNameSourceFileMap = ts.createMapFromTemplate({ - [defaultLibFileName]: createSourceFileAndAssertInvariants(defaultLibFileName, IO.readFile(libFolder + "lib.es5.d.ts"), /*languageVersion*/ ts.ScriptTarget.Latest) - }); + let libFileNameSourceFileMap: ts.Map | undefined; // Cache of lib files from "tests/lib/" const testLibFileNameSourceFileMap = ts.createMap(); @@ -857,6 +855,12 @@ namespace Harness { return undefined; } + if (!libFileNameSourceFileMap) { + libFileNameSourceFileMap = ts.createMapFromTemplate({ + [defaultLibFileName]: createSourceFileAndAssertInvariants(defaultLibFileName, IO.readFile(libFolder + "lib.es5.d.ts"), /*languageVersion*/ ts.ScriptTarget.Latest) + }); + } + let sourceFile = libFileNameSourceFileMap.get(fileName); if (!sourceFile) { libFileNameSourceFileMap.set(fileName, sourceFile = createSourceFileAndAssertInvariants(fileName, IO.readFile(libFolder + fileName), ts.ScriptTarget.Latest)); diff --git a/src/harness/unittests/moduleResolution.ts b/src/harness/unittests/moduleResolution.ts index 0acbe9450bb..32301d6dccf 100644 --- a/src/harness/unittests/moduleResolution.ts +++ b/src/harness/unittests/moduleResolution.ts @@ -392,7 +392,7 @@ export = C; }); describe("Files with different casing", () => { - const library = createSourceFile("lib.d.ts", "", ScriptTarget.ES5); + let library: SourceFile; function test(files: Map, options: CompilerOptions, currentDirectory: string, useCaseSensitiveFileNames: boolean, rootFiles: string[], diagnosticCodes: number[]): void { const getCanonicalFileName = createGetCanonicalFileName(useCaseSensitiveFileNames); if (!useCaseSensitiveFileNames) { @@ -406,6 +406,9 @@ export = C; const host: CompilerHost = { getSourceFile: (fileName: string, languageVersion: ScriptTarget) => { if (fileName === "lib.d.ts") { + if (!library) { + library = createSourceFile("lib.d.ts", "", ScriptTarget.ES5); + } return library; } const path = getCanonicalFileName(normalizePath(combinePaths(currentDirectory, fileName)));