@@ -1120,6 +1120,18 @@ namespace ts {
11201120 }
11211121 }
11221122
1123+ export function getEnvironmentVariable ( name : string , host ?: CompilerHost ) {
1124+ if ( host && host . getEnvironmentVariable ) {
1125+ return host . getEnvironmentVariable ( name ) ;
1126+ }
1127+
1128+ if ( sys && sys . getEnvironmentVariable ) {
1129+ return sys . getEnvironmentVariable ( name ) ;
1130+ }
1131+
1132+ return "" ;
1133+ }
1134+
11231135 export function copyListRemovingItem < T > ( item : T , list : T [ ] ) {
11241136 const copiedList : T [ ] = [ ] ;
11251137 for ( const e of list ) {
@@ -1139,17 +1151,16 @@ namespace ts {
11391151 /** Performance measurements for the compiler. */
11401152 /*@internal */
11411153 export namespace performance {
1142- let counters : Map < number > = { } ;
1143- let measures : Map < number > = { } ;
1144- let enabled = false ;
1154+ let counters : Map < number > ;
1155+ let measures : Map < number > ;
11451156
11461157 /**
11471158 * Increments a counter with the specified name.
11481159 *
11491160 * @param counterName The name of the counter.
11501161 */
11511162 export function increment ( counterName : string ) {
1152- if ( enabled ) {
1163+ if ( counters ) {
11531164 counters [ counterName ] = ( getProperty ( counters , counterName ) || 0 ) + 1 ;
11541165 }
11551166 }
@@ -1160,14 +1171,14 @@ namespace ts {
11601171 * @param counterName The name of the counter.
11611172 */
11621173 export function getCount ( counterName : string ) {
1163- return enabled && getProperty ( counters , counterName ) || 0 ;
1174+ return counters && getProperty ( counters , counterName ) || 0 ;
11641175 }
11651176
11661177 /**
11671178 * Marks the start of a performance measurement.
11681179 */
11691180 export function mark ( ) {
1170- return enabled ? Date . now ( ) : 0 ;
1181+ return measures ? Date . now ( ) : 0 ;
11711182 }
11721183
11731184 /**
@@ -1177,7 +1188,7 @@ namespace ts {
11771188 * @param marker The timestamp of the starting mark.
11781189 */
11791190 export function measure ( measureName : string , marker : number ) {
1180- if ( enabled ) {
1191+ if ( measures ) {
11811192 measures [ measureName ] = ( getProperty ( measures , measureName ) || 0 ) + ( mark ( ) - marker ) ;
11821193 }
11831194 }
@@ -1188,25 +1199,29 @@ namespace ts {
11881199 * @param measureName The name of the measure whose durations should be accumulated.
11891200 */
11901201 export function getDuration ( measureName : string ) {
1191- return enabled && getProperty ( measures , measureName ) || 0 ;
1202+ return measures && getProperty ( measures , measureName ) || 0 ;
11921203 }
11931204
1194- /**
1195- * Resets all marks and measurements in the performance service.
1196- */
1197- export function reset ( ) {
1198- counters = { } ;
1199- measures = { } ;
1200- }
1201-
1202- /** Enables performance measurements for the compiler. */
1205+ /** Enables (and resets) performance measurements for the compiler. */
12031206 export function enable ( ) {
1204- enabled = true ;
1205- }
1206-
1207- /** Disables performance measurements for the compiler. */
1207+ counters = { } ;
1208+ measures = {
1209+ programTime : 0 ,
1210+ parseTime : 0 ,
1211+ bindTime : 0 ,
1212+ emitTime : 0 ,
1213+ ioReadTime : 0 ,
1214+ ioWriteTime : 0 ,
1215+ printTime : 0 ,
1216+ commentTime : 0 ,
1217+ sourceMapTime : 0
1218+ } ;
1219+ }
1220+
1221+ /** Disables (and clears) performance measurements for the compiler. */
12081222 export function disable ( ) {
1209- enabled = false ;
1223+ counters = undefined ;
1224+ measures = undefined ;
12101225 }
12111226 }
12121227}
0 commit comments