@@ -39,12 +39,14 @@ export interface IPerformanceLogger {
3939 ) : void ;
4040 clear ( ) : void ;
4141 clearCompleted ( ) : void ;
42+ close ( ) : void ;
4243 currentTimestamp ( ) : number ;
4344 getExtras ( ) : { [ key : string ] : ExtraValue , ...} ;
4445 getPoints ( ) : { [ key : string ] : number , ...} ;
4546 getPointExtras ( ) : { [ key : string ] : Extras , ...} ;
4647 getTimespans ( ) : { [ key : string ] : Timespan , ...} ;
4748 hasTimespan ( key : string ) : boolean ;
49+ isClosed ( ) : boolean ;
4850 logEverything ( ) : void ;
4951 markPoint ( key : string , timestamp ? : number , extras ? : Extras ) : void ;
5052 removeExtra ( key : string ) : ExtraValue | void ;
@@ -62,6 +64,7 @@ class PerformanceLogger implements IPerformanceLogger {
6264 _extras: { [ key : string ] : ExtraValue } = { } ;
6365 _points: { [ key : string ] : number } = { } ;
6466 _pointExtras: { [ key : string ] : Extras , ...} = { } ;
67+ _closed: boolean = false ;
6568
6669 addTimespan (
6770 key : string ,
@@ -70,6 +73,12 @@ class PerformanceLogger implements IPerformanceLogger {
7073 startExtras ? : Extras ,
7174 endExtras ? : Extras ,
7275 ) {
76+ if ( this . _closed ) {
77+ if ( PRINT_TO_CONSOLE && __DEV__ ) {
78+ infoLog ( 'PerformanceLogger: addTimespan - has closed ignoring: ' , key ) ;
79+ }
80+ return ;
81+ }
7382 if ( this . _timespans [ key ] ) {
7483 if ( PRINT_TO_CONSOLE && __DEV__ ) {
7584 infoLog (
@@ -111,6 +120,10 @@ class PerformanceLogger implements IPerformanceLogger {
111120 }
112121 }
113122
123+ close ( ) {
124+ this . _closed = true ;
125+ }
126+
114127 currentTimestamp ( ) {
115128 return performanceNow ( ) ;
116129 }
@@ -135,6 +148,10 @@ class PerformanceLogger implements IPerformanceLogger {
135148 return ! ! this . _timespans [ key ] ;
136149 }
137150
151+ isClosed ( ) {
152+ return this . _closed ;
153+ }
154+
138155 logEverything ( ) {
139156 if ( PRINT_TO_CONSOLE ) {
140157 // log timespans
@@ -155,6 +172,12 @@ class PerformanceLogger implements IPerformanceLogger {
155172 }
156173
157174 markPoint ( key : string , timestamp ? : number , extras ? : Extras ) {
175+ if ( this . _closed ) {
176+ if ( PRINT_TO_CONSOLE && __DEV__ ) {
177+ infoLog ( 'PerformanceLogger: markPoint - has closed ignoring: ' , key ) ;
178+ }
179+ return ;
180+ }
158181 if ( this . _points [ key ] ) {
159182 if ( PRINT_TO_CONSOLE && __DEV__ ) {
160183 infoLog (
@@ -177,6 +200,13 @@ class PerformanceLogger implements IPerformanceLogger {
177200 }
178201
179202 setExtra ( key : string , value : ExtraValue ) {
203+ if ( this . _closed ) {
204+ if ( PRINT_TO_CONSOLE && __DEV__ ) {
205+ infoLog ( 'PerformanceLogger: setExtra - has closed ignoring: ' , key ) ;
206+ }
207+ return ;
208+ }
209+
180210 if ( this . _extras . hasOwnProperty ( key ) ) {
181211 if ( PRINT_TO_CONSOLE && __DEV__ ) {
182212 infoLog (
@@ -190,6 +220,16 @@ class PerformanceLogger implements IPerformanceLogger {
190220 }
191221
192222 startTimespan ( key : string , extras ? : Extras ) {
223+ if ( this . _closed ) {
224+ if ( PRINT_TO_CONSOLE && __DEV__ ) {
225+ infoLog (
226+ 'PerformanceLogger: startTimespan - has closed ignoring: ' ,
227+ key ,
228+ ) ;
229+ }
230+ return ;
231+ }
232+
193233 if ( this . _timespans [ key ] ) {
194234 if ( PRINT_TO_CONSOLE && __DEV__ ) {
195235 infoLog (
@@ -211,6 +251,13 @@ class PerformanceLogger implements IPerformanceLogger {
211251 }
212252
213253 stopTimespan ( key : string , extras ? : Extras ) {
254+ if ( this . _closed ) {
255+ if ( PRINT_TO_CONSOLE && __DEV__ ) {
256+ infoLog ( 'PerformanceLogger: stopTimespan - has closed ignoring: ' , key ) ;
257+ }
258+ return ;
259+ }
260+
214261 const timespan = this . _timespans [ key ] ;
215262 if ( ! timespan || timespan . startTime == null ) {
216263 if ( PRINT_TO_CONSOLE && __DEV__ ) {
0 commit comments