diff --git a/React/Base/RCTAssert.h b/React/Base/RCTAssert.h index b109bf81a..ce47adc3e 100644 --- a/React/Base/RCTAssert.h +++ b/React/Base/RCTAssert.h @@ -50,6 +50,11 @@ RCT_EXTERN NSString *const RCTErrorDomain; */ RCT_EXTERN NSString *const RCTJSStackTraceKey; +/** + * Name of fatal exceptions generated by RCTFatal + */ +RCT_EXTERN NSString *const RCTFatalExceptionName; + /** * A block signature to be used for custom assertion handling. */ diff --git a/React/Base/RCTAssert.m b/React/Base/RCTAssert.m index 872920834..5ba9da708 100644 --- a/React/Base/RCTAssert.m +++ b/React/Base/RCTAssert.m @@ -12,6 +12,7 @@ NSString *const RCTErrorDomain = @"RCTErrorDomain"; NSString *const RCTJSStackTraceKey = @"RCTJSStackTraceKey"; +NSString *const RCTFatalExceptionName = @"RCTFatalException"; static NSString *const RCTAssertFunctionStack = @"RCTAssertFunctionStack"; @@ -128,7 +129,7 @@ void RCTFatal(NSError *error) @try { #endif NSString *message = RCTFormatError([error localizedDescription], error.userInfo[RCTJSStackTraceKey], 75); - [NSException raise:@"RCTFatalException" format:@"%@", message]; + [NSException raise:RCTFatalExceptionName format:@"%@", message]; #if DEBUG } @catch (NSException *e) {} #endif diff --git a/React/Base/RCTBatchedBridge.m b/React/Base/RCTBatchedBridge.m index 18d6da49b..2bd87c2bd 100644 --- a/React/Base/RCTBatchedBridge.m +++ b/React/Base/RCTBatchedBridge.m @@ -805,7 +805,7 @@ RCT_NOT_IMPLEMENTED(- (instancetype)initWithBundleURL:(__unused NSURL *)bundleUR } @catch (NSException *exception) { // Pass on JS exceptions - if ([exception.name rangeOfString:@"Unhandled JS Exception"].location == 0) { + if ([exception.name isEqualToString:RCTFatalExceptionName]) { @throw exception; }