@@ -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