From c735a98523e112ccb1e7a45fc854fb3e21327939 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Tue, 15 Sep 2015 12:47:11 -0700 Subject: [PATCH] Respond to code review comments --- src/harness/fourslash.ts | 2 +- src/harness/harness.ts | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index ae131b8390f..1d333a29ccb 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -125,7 +125,7 @@ module FourSlash { // List of allowed metadata names let fileMetadataNames = [metadataOptionNames.fileName, metadataOptionNames.emitThisFile, metadataOptionNames.resolveReference]; - function convertGlobalOptionsToCompilerOptions(globalOptions: { [idx: string]: string }): ts.CompilerOptions { + function convertGlobalOptionsToCompilerOptions(globalOptions: Harness.TestCaseParser.CompilerSettings): ts.CompilerOptions { let settings: ts.CompilerOptions = { target: ts.ScriptTarget.ES5 }; Harness.Compiler.setCompilerOptionsFromHarnessSetting(globalOptions, settings); return settings; diff --git a/src/harness/harness.ts b/src/harness/harness.ts index c4287bacb43..01b583d64e1 100644 --- a/src/harness/harness.ts +++ b/src/harness/harness.ts @@ -949,7 +949,7 @@ module Harness { }; } - interface HarnesOptions { + interface HarnessOptions { useCaseSensitiveFileNames?: boolean; includeBuiltFile?: string; baselineFile?: string; @@ -977,10 +977,13 @@ module Harness { return ts.lookUp(optionsIndex, name.toLowerCase()); } - export function setCompilerOptionsFromHarnessSetting(settings: Harness.TestCaseParser.CompilerSettings, options: ts.CompilerOptions & HarnesOptions): void { + export function setCompilerOptionsFromHarnessSetting(settings: Harness.TestCaseParser.CompilerSettings, options: ts.CompilerOptions & HarnessOptions): void { for (let name in settings) { if (settings.hasOwnProperty(name)) { let value = settings[name]; + if (value === undefined) { + throw new Error(`Cannot have undefined value for compiler option '${name}'.`); + } let option = getCommandLineOption(name); if (option) { switch (option.type) { @@ -993,17 +996,17 @@ module Harness { // If not a primitive, the possible types are specified in what is effectively a map of options. default: let map = >option.type; - let key = (value).toLowerCase(); + let key = value.toLowerCase(); if (ts.hasProperty(map, key)) { options[option.name] = map[key]; } else { - throw new Error(`Unkown value '${value}' for compiler option '${name}'.`); + throw new Error(`Unknown value '${value}' for compiler option '${name}'.`); } } } else { - throw new Error(`Unkown compiler option '${name}'.`); + throw new Error(`Unknown compiler option '${name}'.`); } } } @@ -1062,7 +1065,7 @@ module Harness { otherFiles: { unitName: string; content: string }[], onComplete: (result: CompilerResult, program: ts.Program) => void, settingsCallback?: (settings: ts.CompilerOptions) => void, - options?: ts.CompilerOptions & HarnesOptions, + options?: ts.CompilerOptions & HarnessOptions, // Current directory is needed for rwcRunner to be able to use currentDirectory defined in json file currentDirectory?: string) {