@@ -438,17 +438,46 @@ export interface OldRenderData {
438438
439439const RENDER_DEBOUNCE_MS = 16 ;
440440
441- export const renderDataMap = new WeakMap < object , RenderData > ( ) ;
441+ export const renderDataMap = new WeakMap < object , Map < string , RenderData > > ( ) ;
442+
443+ function getFiberIdentifier ( fiber : Fiber ) {
444+ return `${ fiber . key } ::${ fiber . index } ` ;
445+ }
446+
447+ export function getRenderData ( type : unknown , fiber : Fiber ) {
448+ const id = getFiberIdentifier ( fiber ) ;
449+ const keyMap = renderDataMap . get ( type as object ) ;
450+
451+ if ( keyMap ) {
452+ return keyMap . get ( id ) ;
453+ }
454+
455+ return undefined ;
456+ }
457+
458+ export function setRenderData ( fiber : Fiber , value : RenderData ) {
459+ const type = getType ( fiber . type )
460+ const id = getFiberIdentifier ( fiber ) ;
461+ let keyMap = renderDataMap . get ( type as object ) ;
462+
463+ if ( ! keyMap ) {
464+ keyMap = new Map ( ) ;
465+ renderDataMap . set ( type as object , keyMap ) ;
466+ }
467+
468+ keyMap . set ( id , value ) ;
469+ }
442470
443471const trackRender = (
444- type : unknown ,
472+ fiber : Fiber ,
445473 fiberSelfTime : number ,
446474 fiberTotalTime : number ,
447475 hasChanges : boolean ,
448476 hasDomMutations : boolean ,
449477) => {
450478 const currentTimestamp = Date . now ( ) ;
451- const existingData = renderDataMap . get ( type as object ) ;
479+ const type = getType ( fiber . type )
480+ const existingData = getRenderData ( type , fiber ) ;
452481
453482 if (
454483 ( hasChanges || hasDomMutations ) &&
@@ -468,7 +497,7 @@ const trackRender = (
468497 renderData . totalTime = fiberTotalTime || 0 ;
469498 renderData . lastRenderTimestamp = currentTimestamp ;
470499
471- renderDataMap . set ( type as object , { ...renderData } ) ;
500+ setRenderData ( fiber , { ...renderData } ) ;
472501 }
473502} ;
474503
@@ -598,7 +627,7 @@ export const createInstrumentation = (
598627
599628 if ( phase === 'update' ) {
600629 trackRender (
601- type ,
630+ fiber ,
602631 fiberSelfTime ,
603632 fiberTotalTime ,
604633 hasChanges ,
0 commit comments