From 261a0af9bb08811e5ae77f8842be5da8640bf25d Mon Sep 17 00:00:00 2001 From: Ben Alpert Date: Thu, 30 Apr 2015 02:45:00 -0700 Subject: [PATCH] [react-native] Fix Chrome debugging Summary: Requiring ExceptionsManager in renderApplication (added in D2023119) led to a transitive require of ExecutionEnvironment, which has to run after InitializeJavaScriptAppEngine. InitializeJavaScriptAppEngine is the right place for this sort of logic because we control the order that things are loaded, so move the console.error hook initialization there. @public Test Plan: Loaded shell app in simulator with Chrome debugging with no errors. --- .../Initialization/InitializeJavaScriptAppEngine.js | 7 +++++++ Libraries/ReactIOS/renderApplication.ios.js | 2 -- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Libraries/JavaScriptAppEngine/Initialization/InitializeJavaScriptAppEngine.js b/Libraries/JavaScriptAppEngine/Initialization/InitializeJavaScriptAppEngine.js index 51f6809cc..73493aaf6 100644 --- a/Libraries/JavaScriptAppEngine/Initialization/InitializeJavaScriptAppEngine.js +++ b/Libraries/JavaScriptAppEngine/Initialization/InitializeJavaScriptAppEngine.js @@ -79,6 +79,12 @@ function setupRedBoxErrorHandler() { ErrorUtils.setGlobalHandler(handleErrorWithRedBox); } +function setupRedBoxConsoleErrorHandler() { + // ExceptionsManager transitively requires Promise so we install it after + var ExceptionsManager = require('ExceptionsManager'); + ExceptionsManager.installConsoleErrorReporter(); +} + /** * Sets up a set of window environment wrappers that ensure that the * BatchedBridge is flushed after each tick. In both the case of the @@ -139,4 +145,5 @@ setupTimers(); setupAlert(); setupPromise(); setupXHR(); +setupRedBoxConsoleErrorHandler(); setupGeolocation(); diff --git a/Libraries/ReactIOS/renderApplication.ios.js b/Libraries/ReactIOS/renderApplication.ios.js index 39e5720f5..16052c6fa 100644 --- a/Libraries/ReactIOS/renderApplication.ios.js +++ b/Libraries/ReactIOS/renderApplication.ios.js @@ -11,8 +11,6 @@ */ 'use strict'; -require('ExceptionsManager').installConsoleErrorReporter(); - var React = require('React'); var StyleSheet = require('StyleSheet'); var View = require('View');