From ddb2155cb04d2eeda07df5161ab228cd78975b08 Mon Sep 17 00:00:00 2001 From: Ron Buckton Date: Tue, 19 Dec 2017 14:00:17 -0800 Subject: [PATCH] Additional PR feedback and cleanup --- Jakefile.js | 5 ++--- src/harness/compilerRunner.ts | 5 ++--- src/harness/harness.ts | 19 +++---------------- src/harness/rwcRunner.ts | 7 ++----- src/harness/test262Runner.ts | 6 ++---- src/harness/unittests/publicApi.ts | 4 ++-- src/harness/unittests/symbolWalker.ts | 10 +++------- src/harness/vfs.ts | 9 +++++---- 8 files changed, 21 insertions(+), 44 deletions(-) diff --git a/Jakefile.js b/Jakefile.js index 36539b89474..384b15b83a3 100644 --- a/Jakefile.js +++ b/Jakefile.js @@ -487,7 +487,6 @@ var buildProtocolTs = path.join(scriptsDirectory, "buildProtocol.ts"); var buildProtocolJs = path.join(scriptsDirectory, "buildProtocol.js"); var buildProtocolDts = path.join(builtLocalDirectory, "protocol.d.ts"); var typescriptServicesDts = path.join(builtLocalDirectory, "typescriptServices.d.ts"); -var typesMapJson = path.join(builtLocalDirectory, "typesMap.json"); file(buildProtocolTs); @@ -652,7 +651,7 @@ var serverFile = path.join(builtLocalDirectory, "tsserver.js"); compileFile(serverFile, serverSources, [builtLocalDirectory, copyright, cancellationTokenFile, typingsInstallerFile, watchGuardFile].concat(serverSources).concat(servicesSources), /*prefixes*/ [copyright], /*useBuiltCompiler*/ true, { types: ["node"], preserveConstEnums: true, lib: "es6" }); var tsserverLibraryFile = path.join(builtLocalDirectory, "tsserverlibrary.js"); var tsserverLibraryDefinitionFile = path.join(builtLocalDirectory, "tsserverlibrary.d.ts"); -file(typesMapOutputPath, undefined, function() { +file(typesMapOutputPath, /** @type {*} */(function() { var content = fs.readFileSync(path.join(serverDirectory, 'typesMap.json')); // Validate that it's valid JSON try { @@ -661,7 +660,7 @@ file(typesMapOutputPath, undefined, function() { console.log("Parse error in typesMap.json: " + e); } fs.writeFileSync(typesMapOutputPath, content); -}); +})); compileFile( tsserverLibraryFile, languageServiceLibrarySources, diff --git a/src/harness/compilerRunner.ts b/src/harness/compilerRunner.ts index ee7bc9835ec..f2351a51f7d 100644 --- a/src/harness/compilerRunner.ts +++ b/src/harness/compilerRunner.ts @@ -164,15 +164,14 @@ class CompilerTest { tsConfigOptions.configFile.fileName = tsConfigOptions.configFilePath; } - const output = Harness.Compiler.compileFiles( + this.result = Harness.Compiler.compileFiles( this.toBeCompiled, this.otherFiles, this.harnessSettings, /*options*/ tsConfigOptions, /*currentDirectory*/ this.harnessSettings.currentDirectory); - this.options = output.options; - this.result = output.result; + this.options = this.result.options; } public static getConfigurations(fileName: string) { diff --git a/src/harness/harness.ts b/src/harness/harness.ts index 2cd550fcc8b..569ec6ac0d0 100644 --- a/src/harness/harness.ts +++ b/src/harness/harness.ts @@ -1198,18 +1198,13 @@ namespace Harness { fileOptions?: any; } - export interface CompilationOutput { - result: compiler.CompilationResult; - options: ts.CompilerOptions & HarnessOptions; - } - export function compileFiles( inputFiles: TestFile[], otherFiles: TestFile[], harnessSettings: TestCaseParser.CompilerSettings, compilerOptions: ts.CompilerOptions, // Current directory is needed for rwcRunner to be able to use currentDirectory defined in json file - currentDirectory: string): CompilationOutput { + currentDirectory: string): compiler.CompilationResult { const options: ts.CompilerOptions & HarnessOptions = compilerOptions ? ts.cloneCompilerOptions(compilerOptions) : { noResolve: false }; options.target = options.target || ts.ScriptTarget.ES3; options.newLine = options.newLine || ts.NewLineKind.CarriageReturnLineFeed; @@ -1244,7 +1239,7 @@ namespace Harness { } } - const result = compiler.compileFiles( + return compiler.compileFiles( new compiler.CompilerHost( vfs.VirtualFileSystem.createFromDocuments( useCaseSensitiveFileNames, @@ -1255,14 +1250,6 @@ namespace Harness { ), programFileNames, options); - - // const fileOutputs = compilation.outputs.map(output => output.asGeneratedFile()); - // const traceResults = compilation.traces && compilation.traces.slice(); - // const program = compilation.program; - // const emitResult = compilation.result; - // const errors = compilation.diagnostics; - // const result = new CompilerResult(fileOutputs, errors, program, compilation.vfs.currentDirectory, emitResult.sourceMaps, traceResults); - return { result, options }; } export interface DeclarationCompilationContext { @@ -1343,7 +1330,7 @@ namespace Harness { } const { declInputFiles, declOtherFiles, harnessSettings, options, currentDirectory } = context; const output = compileFiles(declInputFiles, declOtherFiles, harnessSettings, options, currentDirectory); - return { declInputFiles, declOtherFiles, declResult: output.result }; + return { declInputFiles, declOtherFiles, declResult: output }; } export function minimalDiagnosticsToString(diagnostics: ReadonlyArray, pretty?: boolean) { diff --git a/src/harness/rwcRunner.ts b/src/harness/rwcRunner.ts index 6b4f31fdd52..d13796d9ef3 100644 --- a/src/harness/rwcRunner.ts +++ b/src/harness/rwcRunner.ts @@ -142,8 +142,7 @@ namespace RWC { opts.options.noLib = true; // Emit the results - compilerOptions = undefined; - const output = Harness.Compiler.compileFiles( + compilerResult = Harness.Compiler.compileFiles( inputFiles, otherFiles, /* harnessOptions */ undefined, @@ -151,9 +150,7 @@ namespace RWC { // Since each RWC json file specifies its current directory in its json file, we need // to pass this information in explicitly instead of acquiring it from the process. currentDirectory); - - compilerOptions = output.options; - compilerResult = output.result; + compilerOptions = compilerResult.options; }); function getHarnessCompilerInputUnit(fileName: string): Harness.Compiler.TestFile { diff --git a/src/harness/test262Runner.ts b/src/harness/test262Runner.ts index e3dae7e55ba..8cfc18e3691 100644 --- a/src/harness/test262Runner.ts +++ b/src/harness/test262Runner.ts @@ -52,14 +52,12 @@ class Test262BaselineRunner extends RunnerBase { compilerResult: undefined, }; - const output = Harness.Compiler.compileFiles( + testState.compilerResult = Harness.Compiler.compileFiles( [Test262BaselineRunner.helperFile].concat(inputFiles), /*otherFiles*/ [], /* harnessOptions */ undefined, Test262BaselineRunner.options, - /* currentDirectory */ undefined - ); - testState.compilerResult = output.result; + /* currentDirectory */ undefined); }); after(() => { diff --git a/src/harness/unittests/publicApi.ts b/src/harness/unittests/publicApi.ts index ba9672d54ad..4160d26ac6b 100644 --- a/src/harness/unittests/publicApi.ts +++ b/src/harness/unittests/publicApi.ts @@ -19,8 +19,8 @@ describe("Public APIs", () => { content: fileContent }; const inputFiles = [testFile]; - const output = Harness.Compiler.compileFiles(inputFiles, [], /*harnessSettings*/ undefined, /*options*/ {}, /*currentDirectory*/ undefined); - assert(!output.result.diagnostics || !output.result.diagnostics.length, Harness.Compiler.minimalDiagnosticsToString(output.result.diagnostics, /*pretty*/ true)); + const result = Harness.Compiler.compileFiles(inputFiles, [], /*harnessSettings*/ undefined, /*options*/ {}, /*currentDirectory*/ undefined); + assert(!result.diagnostics || !result.diagnostics.length, Harness.Compiler.minimalDiagnosticsToString(result.diagnostics, /*pretty*/ true)); }); } diff --git a/src/harness/unittests/symbolWalker.ts b/src/harness/unittests/symbolWalker.ts index 6d38fbb5198..f793c237da3 100644 --- a/src/harness/unittests/symbolWalker.ts +++ b/src/harness/unittests/symbolWalker.ts @@ -4,17 +4,13 @@ namespace ts { describe("Symbol Walker", () => { function test(description: string, source: string, verifier: (file: SourceFile, checker: TypeChecker) => void) { it(description, () => { - let {result} = Harness.Compiler.compileFiles([{ + const result = Harness.Compiler.compileFiles([{ unitName: "main.ts", content: source }], [], {}, {}, "/"); - let file = result.program.getSourceFile("main.ts"); - let checker = result.program.getTypeChecker(); + const file = result.program.getSourceFile("main.ts"); + const checker = result.program.getTypeChecker(); verifier(file, checker); - - result = undefined; - file = undefined; - checker = undefined; }); } diff --git a/src/harness/vfs.ts b/src/harness/vfs.ts index 4be0024019e..4f901a8335c 100644 --- a/src/harness/vfs.ts +++ b/src/harness/vfs.ts @@ -9,10 +9,11 @@ // support the eventual conversion of harness into a modular system. namespace vfs { - const S_IFMT = 0xf000; - const S_IFLNK = 0xa000; - const S_IFREG = 0x8000; - const S_IFDIR = 0x4000; + // file mode flags used for computing Stats + const S_IFMT = 0xf000; // file type flags mask + const S_IFLNK = 0xa000; // symbolic link + const S_IFREG = 0x8000; // regular file + const S_IFDIR = 0x4000; // regular directory export interface PathMappings { [path: string]: string;