From 50b3c2272f2f314ef1cc837b99bdbbfdd2b335cb Mon Sep 17 00:00:00 2001 From: Ramanpreet Nara Date: Wed, 6 Nov 2024 17:58:27 -0800 Subject: [PATCH] ExceptionsManager: Fix soft error reporting (#47465) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/47465 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 Reviewed By: realsoelynn Differential Revision: D65551648 fbshipit-source-id: 99b5bcb5fa1b0b5dc8055a3c86fc983863a25526 --- 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 82b1d295f25..2a6f3a5c461 100644 --- a/packages/react-native/React/CoreModules/RCTExceptionsManager.mm +++ b/packages/react-native/React/CoreModules/RCTExceptionsManager.mm @@ -155,7 +155,7 @@ RCT_EXPORT_METHOD(reportException : (JS::NativeExceptionsManager::ExceptionData 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];