File tree Expand file tree Collapse file tree 2 files changed +28
-1
lines changed Expand file tree Collapse file tree 2 files changed +28
-1
lines changed Original file line number Diff line number Diff line change @@ -270,6 +270,15 @@ class RNPerfMetrics {
270
270
} ) ;
271
271
}
272
272
273
+ stackTraceSymbolicationSucceeded ( specialHermesFrameTypes : string [ ] ) : void {
274
+ this . sendEvent ( {
275
+ eventName : 'StackTraceSymbolicationSucceeded' ,
276
+ params : {
277
+ specialHermesFrameTypes,
278
+ } ,
279
+ } ) ;
280
+ }
281
+
273
282
panelShown ( _panelName : string , _isLaunching ?: boolean ) : void {
274
283
// no-op
275
284
// We only care about the "main" and "drawer" panels for now via panelShownInLocation(…)
@@ -443,10 +452,18 @@ export type StackTraceSymbolicationFailed = Readonly<{
443
452
} > ,
444
453
} > ;
445
454
455
+ export type StackTraceSymbolicationSucceeded = Readonly < {
456
+ eventName : 'StackTraceSymbolicationSucceeded' ,
457
+ params : Readonly < {
458
+ specialHermesFrameTypes : string [ ] ,
459
+ } > ,
460
+ } > ;
461
+
446
462
export type ReactNativeChromeDevToolsEvent =
447
463
EntrypointLoadingStartedEvent | EntrypointLoadingFinishedEvent | DebuggerReadyEvent | BrowserVisibilityChangeEvent |
448
464
BrowserErrorEvent | RemoteDebuggingTerminatedEvent | DeveloperResourceLoadingStartedEvent |
449
465
DeveloperResourceLoadingFinishedEvent | FuseboxSetClientMetadataStartedEvent | FuseboxSetClientMetadataFinishedEvent |
450
- MemoryPanelActionStartedEvent | MemoryPanelActionFinishedEvent | PanelShownEvent | PanelClosedEvent | StackTraceSymbolicationFailed ;
466
+ MemoryPanelActionStartedEvent | MemoryPanelActionFinishedEvent | PanelShownEvent | PanelClosedEvent |
467
+ StackTraceSymbolicationFailed | StackTraceSymbolicationSucceeded ;
451
468
452
469
export type DecoratedReactNativeChromeDevToolsEvent = CommonEventFields & ReactNativeChromeDevToolsEvent ;
Original file line number Diff line number Diff line change @@ -71,6 +71,8 @@ export function parseSourcePositionsFromErrorStack(
71
71
72
72
const lines = stack . split ( '\n' ) ;
73
73
const linkInfos = [ ] ;
74
+ const specialHermesFramesParsed = new Set < SpecialHermesStackTraceFrameTypes > ( ) ;
75
+
74
76
for ( const line of lines ) {
75
77
const match = / ^ \s * a t \s ( a s y n c \s ) ? / . exec ( line ) ;
76
78
if ( ! match ) {
@@ -118,6 +120,9 @@ export function parseSourcePositionsFromErrorStack(
118
120
} else {
119
121
linkInfos . push ( { line, isCallFrame} ) ;
120
122
}
123
+ if ( specialHermesFrameType !== null ) {
124
+ specialHermesFramesParsed . add ( specialHermesFrameType ) ;
125
+ }
121
126
continue ;
122
127
}
123
128
let url = parseOrScriptMatch ( debuggerModel , splitResult . url ) ;
@@ -142,6 +147,11 @@ export function parseSourcePositionsFromErrorStack(
142
147
} ,
143
148
} ) ;
144
149
}
150
+
151
+ if ( linkInfos ?. length ) {
152
+ Host . rnPerfMetrics . stackTraceSymbolicationSucceeded ( Array . from ( specialHermesFramesParsed ) ) ;
153
+ }
154
+
145
155
return linkInfos ;
146
156
}
147
157
You can’t perform that action at this time.
0 commit comments