@@ -13,6 +13,9 @@ let currentThreadFilter = 'all';
1313// ============================================================================
1414
1515function resolveString ( index ) {
16+ if ( index === null || index === undefined ) {
17+ return null ;
18+ }
1619 if ( typeof index === 'number' && index >= 0 && index < stringTable . length ) {
1720 return stringTable [ index ] ;
1821 }
@@ -338,14 +341,20 @@ function ensureLibraryLoaded() {
338341 }
339342}
340343
344+ const HEAT_THRESHOLDS = [
345+ [ 0.6 , 8 ] ,
346+ [ 0.35 , 7 ] ,
347+ [ 0.18 , 6 ] ,
348+ [ 0.12 , 5 ] ,
349+ [ 0.06 , 4 ] ,
350+ [ 0.03 , 3 ] ,
351+ [ 0.01 , 2 ] ,
352+ ] ;
353+
341354function getHeatLevel ( percentage ) {
342- if ( percentage >= 0.6 ) return 8 ;
343- if ( percentage >= 0.35 ) return 7 ;
344- if ( percentage >= 0.18 ) return 6 ;
345- if ( percentage >= 0.12 ) return 5 ;
346- if ( percentage >= 0.06 ) return 4 ;
347- if ( percentage >= 0.03 ) return 3 ;
348- if ( percentage >= 0.01 ) return 2 ;
355+ for ( const [ threshold , level ] of HEAT_THRESHOLDS ) {
356+ if ( percentage >= threshold ) return level ;
357+ }
349358 return 1 ;
350359}
351360
@@ -514,13 +523,11 @@ function clearSearch() {
514523// Resize Handler
515524// ============================================================================
516525
517- function handleResize ( chart , data ) {
526+ function handleResize ( ) {
518527 let resizeTimeout ;
519528 window . addEventListener ( "resize" , function ( ) {
520529 clearTimeout ( resizeTimeout ) ;
521- resizeTimeout = setTimeout ( function ( ) {
522- resizeChart ( ) ;
523- } , 100 ) ;
530+ resizeTimeout = setTimeout ( resizeChart , 100 ) ;
524531 } ) ;
525532}
526533
@@ -735,11 +742,11 @@ function populateStats(data) {
735742 function collectFunctions ( node ) {
736743 if ( ! node ) return ;
737744
738- let filename = typeof node . filename === 'number' ? resolveString ( node . filename ) : node . filename ;
739- let funcname = typeof node . funcname === 'number' ? resolveString ( node . funcname ) : node . funcname ;
745+ let filename = resolveString ( node . filename ) ;
746+ let funcname = resolveString ( node . funcname ) ;
740747
741748 if ( ! filename || ! funcname ) {
742- const nameStr = typeof node . name === 'number' ? resolveString ( node . name ) : node . name ;
749+ const nameStr = resolveString ( node . name ) ;
743750 if ( nameStr ?. includes ( '(' ) ) {
744751 const match = nameStr . match ( / ^ ( .+ ?) \s * \( ( .+ ?) : ( \d + ) \) $ / ) ;
745752 if ( match ) {
@@ -993,7 +1000,7 @@ function initFlamegraph() {
9931000 renderFlamegraph ( chart , processedData ) ;
9941001 initSearchHandlers ( ) ;
9951002 initSidebarResize ( ) ;
996- handleResize ( chart , processedData ) ;
1003+ handleResize ( ) ;
9971004}
9981005
9991006if ( document . readyState === "loading" ) {
0 commit comments