From 1304e781369a3b48b741f1b28c6f985785b1d87b Mon Sep 17 00:00:00 2001 From: Milen Dzhumerov Date: Wed, 16 Dec 2015 04:01:41 -0800 Subject: [PATCH] Inline require ExceptionsManager dependencies Summary: Inline require `ExceptionsManager` dependencies which are eagerly loaded on app startup (via `setUpConsole()` which is called from `InitializeJavaScriptAppEngine.js`) even though it's necessary until an exception needs to be reported. This can save about 30-40ms on an iOS device. public Reviewed By: nicklockwood, tadeuzagallo, jspahrsummers Differential Revision: D2755161 fb-gh-sync-id: d4cbfebf04d861b3a70558346a395d3d3ee87cc6 --- .../Initialization/ExceptionsManager.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Libraries/JavaScriptAppEngine/Initialization/ExceptionsManager.js b/Libraries/JavaScriptAppEngine/Initialization/ExceptionsManager.js index 8e652caf0..f7537669f 100644 --- a/Libraries/JavaScriptAppEngine/Initialization/ExceptionsManager.js +++ b/Libraries/JavaScriptAppEngine/Initialization/ExceptionsManager.js @@ -11,12 +11,6 @@ */ 'use strict'; -var RCTExceptionsManager = require('NativeModules').ExceptionsManager; - -var loadSourceMap = require('loadSourceMap'); -var parseErrorStack = require('parseErrorStack'); -var stringifySafe = require('stringifySafe'); - var sourceMapPromise; var exceptionID = 0; @@ -25,6 +19,10 @@ var exceptionID = 0; * Handles the developer-visible aspect of errors and exceptions */ function reportException(e: Error, isFatal: bool) { + var loadSourceMap = require('loadSourceMap'); + var parseErrorStack = require('parseErrorStack'); + var RCTExceptionsManager = require('NativeModules').ExceptionsManager; + var currentExceptionID = ++exceptionID; if (RCTExceptionsManager) { var stack = parseErrorStack(e); @@ -83,6 +81,7 @@ function installConsoleErrorReporter() { if (arguments[0] && arguments[0].stack) { reportException(arguments[0], /* isFatal */ false); } else { + var stringifySafe = require('stringifySafe'); var str = Array.prototype.map.call(arguments, stringifySafe).join(', '); if (str.slice(0, 10) === '"Warning: ') { // React warnings use console.error so that a stack trace is shown, but