From 42d4eb455365519b10e5e3769e156a350437d2dc Mon Sep 17 00:00:00 2001 From: Ramanpreet Nara Date: Wed, 6 Nov 2024 11:21:10 -0800 Subject: [PATCH] ExceptionsManager: Fix soft error reporting Summary: When you do @(NO), in objc, it creates an NSNumber. So this if condition actually evaluates to true: ``` if (@(NO)) ``` This means that all soft errors will get logged as fatals on ios. Changelog: [Internal] Created from CodeHub with https://fburl.com/edit-in-codehub Differential Revision: D65551648 --- packages/react-native/React/CoreModules/RCTExceptionsManager.mm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-native/React/CoreModules/RCTExceptionsManager.mm b/packages/react-native/React/CoreModules/RCTExceptionsManager.mm index 82b1d295f256..2a6f3a5c461a 100644 --- a/packages/react-native/React/CoreModules/RCTExceptionsManager.mm +++ b/packages/react-native/React/CoreModules/RCTExceptionsManager.mm @@ -155,7 +155,7 @@ - (void)reportFatal:(NSString *)message NSArray *> *stack = errorData[@"stack"]; double exceptionId = [errorData[@"id"] doubleValue]; - if (errorData[@"isFatal"]) { + if ([errorData[@"isFatal"] boolValue]) { [self reportFatal:message stack:stack exceptionId:exceptionId extraDataAsJSON:extraDataAsJSON]; } else { [self reportSoft:message stack:stack exceptionId:exceptionId extraDataAsJSON:extraDataAsJSON];