@@ -31,7 +31,7 @@ Array.prototype.top = function() {
31
31
}
32
32
33
33
34
- function PlotScriptComposer ( kResX , kResY ) {
34
+ function PlotScriptComposer ( kResX , kResY , error_output ) {
35
35
// Constants.
36
36
var kV8BinarySuffixes = [ "/d8" , "/libv8.so" ] ;
37
37
var kStackFrames = 8 ; // Stack frames to display in the plot.
@@ -149,7 +149,10 @@ function PlotScriptComposer(kResX, kResY) {
149
149
150
150
// Utility functions.
151
151
function assert ( something , message ) {
152
- if ( ! something ) print ( new Error ( message ) . stack ) ;
152
+ if ( ! something ) {
153
+ var error = new Error ( message ) ;
154
+ error_output ( error . stack ) ;
155
+ }
153
156
}
154
157
155
158
function FindCodeKind ( kind ) {
@@ -208,10 +211,15 @@ function PlotScriptComposer(kResX, kResY) {
208
211
// Public methods.
209
212
this . collectData = function ( input , distortion_per_entry ) {
210
213
214
+ var last_timestamp = 0 ;
215
+
211
216
// Parse functions.
212
217
var parseTimeStamp = function ( timestamp ) {
218
+ int_timestamp = parseInt ( timestamp ) ;
219
+ assert ( int_timestamp >= last_timestamp , "Inconsistent timestamps." ) ;
220
+ last_timestamp = int_timestamp ;
213
221
distortion += distortion_per_entry ;
214
- return parseInt ( timestamp ) / 1000 - distortion ;
222
+ return int_timestamp / 1000 - distortion ;
215
223
}
216
224
217
225
var processTimerEventStart = function ( name , start ) {
@@ -260,65 +268,6 @@ function PlotScriptComposer(kResX, kResY) {
260
268
code_map . deleteCode ( address ) ;
261
269
} ;
262
270
263
- var processSharedLibrary = function ( name , start , end ) {
264
- var code_entry = new CodeMap . CodeEntry ( end - start , name ) ;
265
- code_entry . kind = - 2 ; // External code kind.
266
- for ( var i = 0 ; i < kV8BinarySuffixes . length ; i ++ ) {
267
- var suffix = kV8BinarySuffixes [ i ] ;
268
- if ( name . indexOf ( suffix , name . length - suffix . length ) >= 0 ) {
269
- code_entry . kind = - 1 ; // V8 runtime code kind.
270
- break ;
271
- }
272
- }
273
- code_map . addLibrary ( start , code_entry ) ;
274
- } ;
275
-
276
- var processTimerEventStart = function ( name , start ) {
277
- // Find out the thread id.
278
- var new_event = TimerEvents [ name ] ;
279
- if ( new_event === undefined ) return ;
280
- var thread_id = new_event . thread_id ;
281
-
282
- start = Math . max ( last_time_stamp [ thread_id ] + kMinRangeLength , start ) ;
283
-
284
- // Last event on this thread is done with the start of this event.
285
- var last_event = event_stack [ thread_id ] . top ( ) ;
286
- if ( last_event !== undefined ) {
287
- var new_range = new Range ( last_time_stamp [ thread_id ] , start ) ;
288
- last_event . ranges . push ( new_range ) ;
289
- }
290
- event_stack [ thread_id ] . push ( new_event ) ;
291
- last_time_stamp [ thread_id ] = start ;
292
- } ;
293
-
294
- var processTimerEventEnd = function ( name , end ) {
295
- // Find out about the thread_id.
296
- var finished_event = TimerEvents [ name ] ;
297
- var thread_id = finished_event . thread_id ;
298
- assert ( finished_event === event_stack [ thread_id ] . pop ( ) ,
299
- "inconsistent event stack" ) ;
300
-
301
- end = Math . max ( last_time_stamp [ thread_id ] + kMinRangeLength , end ) ;
302
-
303
- var new_range = new Range ( last_time_stamp [ thread_id ] , end ) ;
304
- finished_event . ranges . push ( new_range ) ;
305
- last_time_stamp [ thread_id ] = end ;
306
- } ;
307
-
308
- var processCodeCreateEvent = function ( type , kind , address , size , name ) {
309
- var code_entry = new CodeMap . CodeEntry ( size , name ) ;
310
- code_entry . kind = kind ;
311
- code_map . addCode ( address , code_entry ) ;
312
- } ;
313
-
314
- var processCodeMoveEvent = function ( from , to ) {
315
- code_map . moveCode ( from , to ) ;
316
- } ;
317
-
318
- var processCodeDeleteEvent = function ( address ) {
319
- code_map . deleteCode ( address ) ;
320
- } ;
321
-
322
271
var processCodeDeoptEvent = function ( time , size ) {
323
272
deopts . push ( new Deopt ( time , size ) ) ;
324
273
}
0 commit comments