@@ -40,6 +40,21 @@ function getFullRoute(state) {
4040 }
4141}
4242
43+ export const getStackTrace = ( e ) => {
44+ let jsStackTrace ;
45+ if ( Platform . hasOwnProperty ( "constants" ) ) {
46+ // RN version >= 0.63
47+ if ( Platform . constants . reactNativeVersion . minor >= 64 )
48+ // RN version >= 0.64 -> Stacktrace as string
49+ jsStackTrace = parseErrorStackLib ( e . stack ) ;
50+ // RN version == 0.63 -> Stacktrace as string
51+ else jsStackTrace = parseErrorStackLib ( e ) ;
52+ }
53+ // RN version < 0.63 -> Stacktrace as string
54+ else jsStackTrace = parseErrorStackLib ( e ) ;
55+ return jsStackTrace ;
56+ } ;
57+
4358export const isOnReportHandlerSet = ( ) => {
4459 return _isOnReportHandlerSet ;
4560} ;
@@ -52,17 +67,7 @@ export const captureJsErrors = () => {
5267 }
5368
5469 function errorHandler ( e , isFatal ) {
55- let jsStackTrace ;
56- if ( Platform . hasOwnProperty ( "constants" ) ) {
57- // RN version >= 0.63
58- if ( Platform . constants . reactNativeVersion . minor >= 64 )
59- // RN version >= 0.64 -> Stacktrace as string
60- jsStackTrace = parseErrorStackLib ( e . stack ) ;
61- // RN version == 0.63 -> Stacktrace as Object
62- else jsStackTrace = parseErrorStackLib ( e ) ;
63- }
64- // RN version < 0.63 -> Stacktrace as Object
65- else jsStackTrace = parseErrorStackLib ( e ) ;
70+ let jsStackTrace = getStackTrace ( e ) ;
6671
6772 //JSON object to be sent to the native SDK
6873 var jsonObject = {
@@ -101,5 +106,6 @@ export default {
101106 setOnReportHandler,
102107 isOnReportHandlerSet,
103108 getActiveRouteName,
104- getFullRoute
109+ getFullRoute,
110+ getStackTrace,
105111} ;
0 commit comments