From 5789e6776019b2cc25e18709e372aca830bf495f Mon Sep 17 00:00:00 2001 From: Moti Zilberman Date: Thu, 12 Sep 2019 03:52:24 -0700 Subject: [PATCH] Reuse preprocessed exception message in redbox after symbolication Summary: Reuse preprocessed exception message when sending the symbolicated update to the redbox, in case `preprocessException` has actually modified it. Reviewed By: cpojer Differential Revision: D17318008 fbshipit-source-id: 8b4c606c662140fb44c5305e2f3c7faa0b60f0ee --- Libraries/Core/ExceptionsManager.js | 36 ++++++++++++++--------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/Libraries/Core/ExceptionsManager.js b/Libraries/Core/ExceptionsManager.js index 3531c05c1b3..d13b7006fe4 100644 --- a/Libraries/Core/ExceptionsManager.js +++ b/Libraries/Core/ExceptionsManager.js @@ -81,23 +81,23 @@ function reportException(e: ExtendedError, isFatal: boolean) { message = e.jsEngine == null ? message : `${message}, js engine: ${e.jsEngine}`; - NativeExceptionsManager.reportException( - preprocessException({ - message, - originalMessage: message === originalMessage ? null : originalMessage, - name: e.name == null || e.name === '' ? null : e.name, - componentStack: - typeof e.componentStack === 'string' ? e.componentStack : null, - stack, - id: currentExceptionID, - isFatal, - extraData: { - jsEngine: e.jsEngine, - rawStack: e.stack, - framesPopped: e.framesToPop, - }, - }), - ); + const data = preprocessException({ + message, + originalMessage: message === originalMessage ? null : originalMessage, + name: e.name == null || e.name === '' ? null : e.name, + componentStack: + typeof e.componentStack === 'string' ? e.componentStack : null, + stack, + id: currentExceptionID, + isFatal, + extraData: { + jsEngine: e.jsEngine, + rawStack: e.stack, + framesPopped: e.framesToPop, + }, + }); + + NativeExceptionsManager.reportException(data); if (__DEV__) { if (e.preventSymbolication === true) { @@ -111,7 +111,7 @@ function reportException(e: ExtendedError, isFatal: boolean) { frame => !frame.collapse, ); NativeExceptionsManager.updateExceptionMessage( - message, + data.message, stackWithoutCollapsedFrames, currentExceptionID, );