Skip to content

Commit 527f197

Browse files
committed
consolidate toLower call
1 parent b28befd commit 527f197

1 file changed

Lines changed: 62 additions & 59 deletions

File tree

src/harness/harness.ts

Lines changed: 62 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -916,169 +916,172 @@ module Harness {
916916
}
917917

918918
export function setCompilerOptionForSetting(setting: Harness.TestCaseParser.CompilerSetting, options: ts.CompilerOptions & HarnesOptions): void {
919-
switch (setting.flag.toLowerCase()) {
919+
let name = setting.flag.toLowerCase();
920+
let value = setting.value ? setting.value.toLowerCase() : setting.value;
921+
switch (name) {
920922
case "module":
921-
if (typeof setting.value === "string") {
922-
if (setting.value.toLowerCase() === "amd") {
923-
options.module = ts.ModuleKind.AMD;
924-
} else if (setting.value.toLowerCase() === "umd") {
925-
options.module = ts.ModuleKind.UMD;
926-
} else if (setting.value.toLowerCase() === "commonjs") {
927-
options.module = ts.ModuleKind.CommonJS;
928-
} else if (setting.value.toLowerCase() === "system") {
929-
options.module = ts.ModuleKind.System;
930-
} else if (setting.value.toLowerCase() === "unspecified") {
931-
options.module = ts.ModuleKind.None;
932-
} else {
933-
throw new Error("Unknown module type " + setting.value);
934-
}
923+
if (value === "amd") {
924+
options.module = ts.ModuleKind.AMD;
925+
} else if (value === "umd") {
926+
options.module = ts.ModuleKind.UMD;
927+
} else if (value === "commonjs") {
928+
options.module = ts.ModuleKind.CommonJS;
929+
} else if (value === "system") {
930+
options.module = ts.ModuleKind.System;
931+
} else if (value === "unspecified") {
932+
options.module = ts.ModuleKind.None;
935933
} else {
936-
options.module = <any>setting.value;
934+
throw new Error("Unknown module type " + value);
937935
}
938936
break;
939937

940938
case "target":
941-
if (typeof setting.value === "string") {
942-
if (setting.value.toLowerCase() === "es3") {
943-
options.target = ts.ScriptTarget.ES3;
944-
} else if (setting.value.toLowerCase() === "es5") {
945-
options.target = ts.ScriptTarget.ES5;
946-
} else if (setting.value.toLowerCase() === "es6") {
947-
options.target = ts.ScriptTarget.ES6;
948-
} else {
949-
throw new Error("Unknown compile target " + setting.value);
950-
}
939+
if (value === "es3") {
940+
options.target = ts.ScriptTarget.ES3;
941+
} else if (value === "es5") {
942+
options.target = ts.ScriptTarget.ES5;
943+
} else if (value === "es6") {
944+
options.target = ts.ScriptTarget.ES6;
951945
} else {
952-
options.target = <any>setting.value;
946+
throw new Error("Unknown compile target " + value);
953947
}
954948
break;
955949

956950
case "experimentaldecorators":
957-
options.experimentalDecorators = setting.value === "true";
951+
options.experimentalDecorators = value === "true";
958952
break;
959953

960954
case "emitdecoratormetadata":
961-
options.emitDecoratorMetadata = setting.value === "true";
955+
options.emitDecoratorMetadata = value === "true";
962956
break;
963957

964958
case "experimentalasyncfunctions":
965-
options.experimentalAsyncFunctions = setting.value === "true";
959+
options.experimentalAsyncFunctions = value === "true";
966960
break;
967961

968962
case "noemithelpers":
969-
options.noEmitHelpers = setting.value === "true";
963+
options.noEmitHelpers = value === "true";
970964
break;
971965

972966
case "noemitonerror":
973-
options.noEmitOnError = setting.value === "true";
967+
options.noEmitOnError = value === "true";
974968
break;
975969

976970
case "noresolve":
977-
options.noResolve = setting.value === "true";
971+
options.noResolve = value === "true";
978972
break;
979973

980974
case "noimplicitany":
981-
options.noImplicitAny = setting.value === "true";
975+
options.noImplicitAny = value === "true";
982976
break;
983977

984978
case "nolib":
985-
options.noLib = setting.value === "true";
979+
options.noLib = value === "true";
986980
break;
987981

988982
case "out":
989-
options.out = setting.value;
983+
options.out = value;
990984
break;
991985

992986
case "outdir":
993-
options.outDir = setting.value;
987+
options.outDir = value;
994988
break;
995989

996990
case "skipdefaultlibcheck":
997-
options.skipDefaultLibCheck = setting.value === "true";
991+
options.skipDefaultLibCheck = value === "true";
998992
break;
999993

1000994
case "sourceroot":
1001-
options.sourceRoot = setting.value;
995+
options.sourceRoot = value;
1002996
break;
1003997

1004998
case "maproot":
1005-
options.mapRoot = setting.value;
999+
options.mapRoot = value;
10061000
break;
10071001

10081002
case "sourcemap":
1009-
options.sourceMap = setting.value === "true";
1003+
options.sourceMap = value === "true";
10101004
break;
10111005

10121006
case "declaration":
1013-
options.declaration = setting.value === "true";
1007+
options.declaration = value === "true";
10141008
break;
10151009

10161010
case "newline":
1017-
if (setting.value.toLowerCase() === "crlf") {
1011+
if (value === "crlf") {
10181012
options.newLine = ts.NewLineKind.CarriageReturnLineFeed;
10191013
}
1020-
else if (setting.value.toLowerCase() === "lf") {
1014+
else if (value === "lf") {
10211015
options.newLine = ts.NewLineKind.LineFeed;
10221016
}
10231017
else {
1024-
throw new Error("Unknown option for newLine: " + setting.value);
1018+
throw new Error("Unknown option for newLine: " + value);
10251019
}
10261020
break;
10271021

10281022
case "comments":
1029-
options.removeComments = setting.value === "false";
1023+
options.removeComments = value === "false";
10301024
break;
10311025

10321026
case "stripinternal":
1033-
options.stripInternal = setting.value === "true";
1027+
options.stripInternal = value === "true";
10341028

10351029
case "usecasesensitivefilenames":
1036-
options.useCaseSensitiveFileNames = setting.value === "true";
1030+
options.useCaseSensitiveFileNames = value === "true";
10371031
break;
10381032

10391033
case "filename":
10401034
// Not supported yet
10411035
break;
10421036

10431037
case "emitbom":
1044-
options.emitBOM = setting.value === "true";
1038+
options.emitBOM = value === "true";
10451039
break;
10461040

10471041
case "errortruncation":
1048-
options.noErrorTruncation = setting.value === "false";
1042+
options.noErrorTruncation = value === "false";
10491043
break;
10501044

10511045
case "preserveconstenums":
1052-
options.preserveConstEnums = setting.value === "true";
1046+
options.preserveConstEnums = value === "true";
10531047
break;
10541048

10551049
case "isolatedmodules":
1056-
options.isolatedModules = setting.value === "true";
1050+
options.isolatedModules = value === "true";
10571051
break;
10581052

10591053
case "suppressimplicitanyindexerrors":
1060-
options.suppressImplicitAnyIndexErrors = setting.value === "true";
1054+
options.suppressImplicitAnyIndexErrors = value === "true";
10611055
break;
10621056

10631057
case "includebuiltfile":
10641058
if (!options.includeBuiltFileNames) {
10651059
options.includeBuiltFileNames = [];
10661060
}
1067-
options.includeBuiltFileNames.push(setting.value);
1061+
options.includeBuiltFileNames.push(value);
10681062
break;
10691063

10701064
case "inlinesourcemap":
1071-
options.inlineSourceMap = setting.value === "true";
1065+
options.inlineSourceMap = value === "true";
10721066
break;
10731067

10741068
case "inlinesources":
1075-
options.inlineSources = setting.value === "true";
1069+
options.inlineSources = value === "true";
10761070
break;
10771071

10781072
case "jsx":
1079-
options.jsx = setting.value.toLowerCase() === "react" ? ts.JsxEmit.React :
1080-
setting.value.toLowerCase() === "preserve" ? ts.JsxEmit.Preserve :
1081-
ts.JsxEmit.None;
1073+
if (value === "react") {
1074+
options.jsx = ts.JsxEmit.React;
1075+
}
1076+
else if (value === "preserve") {
1077+
options.jsx = ts.JsxEmit.Preserve;
1078+
}
1079+
else if (value === "none") {
1080+
options.jsx = ts.JsxEmit.None;
1081+
}
1082+
else {
1083+
throw new Error("Unknown option for jsx: " + value);
1084+
}
10821085
break;
10831086

10841087
default:

0 commit comments

Comments
 (0)