@@ -781,7 +781,7 @@ module Harness {
781781
782782 public reset ( ) { this . fileCollection = { } ; }
783783
784- public toArray ( ) : { fileName : string ; file : WriterAggregator ; } [ ] {
784+ public toArray ( ) : { fileName : string ; file : WriterAggregator ; } [ ] {
785785 var result : { fileName : string ; file : WriterAggregator ; } [ ] = [ ] ;
786786 for ( var p in this . fileCollection ) {
787787 if ( this . fileCollection . hasOwnProperty ( p ) ) {
@@ -944,6 +944,10 @@ module Harness {
944944
945945 var newLine = '\r\n' ;
946946
947+ // Files from built\local that are requested by test "@includeBuiltFiles" to be in the context.
948+ // Treat them as library files, so include them in build, but not in baselines.
949+ var includeBuiltFiles : { unitName : string ; content : string } [ ] = [ ] ;
950+
947951 var useCaseSensitiveFileNames = ts . sys . useCaseSensitiveFileNames ;
948952 this . settings . forEach ( setting => {
949953 switch ( setting . flag . toLowerCase ( ) ) {
@@ -1061,18 +1065,19 @@ module Harness {
10611065 break ;
10621066
10631067 case 'includebuiltfile' :
1064- inputFiles . push ( { unitName : setting . value , content : normalizeLineEndings ( IO . readFile ( libFolder + setting . value ) , newLine ) } ) ;
1068+ let builtFileName = libFolder + setting . value ;
1069+ includeBuiltFiles . push ( { unitName : builtFileName , content : normalizeLineEndings ( IO . readFile ( builtFileName ) , newLine ) } ) ;
10651070 break ;
10661071
10671072 default :
10681073 throw new Error ( 'Unsupported compiler setting ' + setting . flag ) ;
10691074 }
10701075 } ) ;
1071-
1076+
10721077 var fileOutputs : GeneratedFile [ ] = [ ] ;
10731078
1074- var programFiles = inputFiles . map ( file => file . unitName ) ;
1075- var program = ts . createProgram ( programFiles , options , createCompilerHost ( inputFiles . concat ( otherFiles ) ,
1079+ var programFiles = inputFiles . concat ( includeBuiltFiles ) . map ( file => file . unitName ) ;
1080+ var program = ts . createProgram ( programFiles , options , createCompilerHost ( inputFiles . concat ( includeBuiltFiles ) . concat ( otherFiles ) ,
10761081 ( fn , contents , writeByteOrderMark ) => fileOutputs . push ( { fileName : fn , code : contents , writeByteOrderMark : writeByteOrderMark } ) ,
10771082 options . target , useCaseSensitiveFileNames , currentDirectory ) ) ;
10781083
@@ -1295,7 +1300,7 @@ module Harness {
12951300 } ) ;
12961301
12971302 var numLibraryDiagnostics = ts . countWhere ( diagnostics , diagnostic => {
1298- return diagnostic . fileName && isLibraryFile ( diagnostic . fileName ) ;
1303+ return diagnostic . fileName && ( isLibraryFile ( diagnostic . fileName ) || isBuiltFile ( diagnostic . fileName ) ) ;
12991304 } ) ;
13001305
13011306 var numTest262HarnessDiagnostics = ts . countWhere ( diagnostics , diagnostic => {
@@ -1698,6 +1703,10 @@ module Harness {
16981703 return ( Path . getFileName ( filePath ) === 'lib.d.ts' ) || ( Path . getFileName ( filePath ) === 'lib.core.d.ts' ) ;
16991704 }
17001705
1706+ export function isBuiltFile ( filePath : string ) : boolean {
1707+ return filePath . indexOf ( Harness . libFolder ) === 0 ;
1708+ }
1709+
17011710 export function getDefaultLibraryFile ( ) : { unitName : string , content : string } {
17021711 var libFile = Harness . userSpecifiedroot + Harness . libFolder + "/" + "lib.d.ts" ;
17031712 return {
0 commit comments