@@ -910,7 +910,12 @@ module Harness {
910910 } ;
911911 }
912912
913- export function setCompilerOptionForSetting ( setting : Harness . TestCaseParser . CompilerSetting , options : ts . CompilerOptions ) : void {
913+ interface HarnesOptions {
914+ useCaseSensitiveFileNames ?: boolean ;
915+ includeBuiltFileNames ?: string [ ] ;
916+ }
917+
918+ export function setCompilerOptionForSetting ( setting : Harness . TestCaseParser . CompilerSetting , options : ts . CompilerOptions & HarnesOptions ) : void {
914919 switch ( setting . flag . toLowerCase ( ) ) {
915920 case "module" :
916921 if ( typeof setting . value === "string" ) {
@@ -1028,7 +1033,7 @@ module Harness {
10281033 options . stripInternal = setting . value === "true" ;
10291034
10301035 case "usecasesensitivefilenames" :
1031- useCaseSensitiveFileNames = setting . value === "true" ;
1036+ options . useCaseSensitiveFileNames = setting . value === "true" ;
10321037 break ;
10331038
10341039 case "filename" :
@@ -1056,8 +1061,10 @@ module Harness {
10561061 break ;
10571062
10581063 case "includebuiltfile" :
1059- let builtFileName = libFolder + setting . value ;
1060- includeBuiltFiles . push ( { unitName : builtFileName , content : normalizeLineEndings ( IO . readFile ( builtFileName ) , newLine ) } ) ;
1064+ if ( ! options . includeBuiltFileNames ) {
1065+ options . includeBuiltFileNames = [ ] ;
1066+ }
1067+ options . includeBuiltFileNames . push ( setting . value ) ;
10611068 break ;
10621069
10631070 case "inlinesourcemap" :
@@ -1136,7 +1143,7 @@ module Harness {
11361143 otherFiles : { unitName : string ; content : string } [ ] ,
11371144 onComplete : ( result : CompilerResult , program : ts . Program ) => void ,
11381145 settingsCallback ?: ( settings : ts . CompilerOptions ) => void ,
1139- options ?: ts . CompilerOptions ,
1146+ options ?: ts . CompilerOptions & HarnesOptions ,
11401147 // Current directory is needed for rwcRunner to be able to use currentDirectory defined in json file
11411148 currentDirectory ?: string ) {
11421149
@@ -1153,12 +1160,18 @@ module Harness {
11531160 let newLine = "\r\n" ;
11541161 options . skipDefaultLibCheck = true ;
11551162
1163+ // Parse settings
1164+ this . settings . forEach ( setting => setCompilerOptionForSetting ( setting , options ) ) ;
1165+
11561166 // Files from built\local that are requested by test "@includeBuiltFiles" to be in the context.
11571167 // Treat them as library files, so include them in build, but not in baselines.
11581168 let includeBuiltFiles : { unitName : string ; content : string } [ ] = [ ] ;
1169+ ts . forEach ( options . includeBuiltFileNames , fileName => {
1170+ let builtFileName = libFolder + fileName ;
1171+ includeBuiltFiles . push ( { unitName : builtFileName , content : normalizeLineEndings ( IO . readFile ( builtFileName ) , newLine ) } ) ;
1172+ } ) ;
11591173
1160- let useCaseSensitiveFileNames = ts . sys . useCaseSensitiveFileNames ;
1161- this . settings . forEach ( setting => setCompilerOptionForSetting ( setting , options ) ) ;
1174+ let useCaseSensitiveFileNames = options . useCaseSensitiveFileNames !== undefined ? options . useCaseSensitiveFileNames : ts . sys . useCaseSensitiveFileNames ;
11621175
11631176 let fileOutputs : GeneratedFile [ ] = [ ] ;
11641177
0 commit comments