Skip to content

Commit 6ec4d65

Browse files
idefacebook-github-bot-0
authored andcommitted
Set up the RN JS environment before requiring other modules
Summary: Set up the polyfills for console and process before initializing other modules. Some modules do work (e.g. call `invariant`) when they are first required, so requiring the DefaultInjection module at the beginning ensures we have a consistent JS environment. Closes facebook/react-native#3526 Reviewed By: spicyj Differential Revision: D2560340 Pulled By: frantic fb-gh-sync-id: 44c743e3212ff1dcdbe0169041dfd3ea8f1a54f7
1 parent 251a408 commit 6ec4d65

2 files changed

Lines changed: 11 additions & 6 deletions

File tree

Libraries/JavaScriptAppEngine/Initialization/InitializeJavaScriptAppEngine.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,6 @@
2222
/* eslint strict: 0 */
2323
/* globals GLOBAL: true, window: true */
2424

25-
// Just to make sure the JS gets packaged up.
26-
require('RCTDebugComponentOwnership');
27-
require('RCTDeviceEventEmitter');
28-
require('PerformanceLogger');
2925
require('regenerator/runtime');
3026

3127
if (typeof GLOBAL === 'undefined') {
@@ -184,6 +180,7 @@ function setUpNumber() {
184180
Number.MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER || -(Math.pow(2, 53) - 1);
185181
}
186182

183+
setUpProcessEnv();
187184
setUpRedBoxErrorHandler();
188185
setUpTimers();
189186
setUpAlert();
@@ -193,6 +190,11 @@ setUpRedBoxConsoleErrorHandler();
193190
setUpGeolocation();
194191
setUpWebSockets();
195192
setUpProfile();
196-
setUpProcessEnv();
197193
setUpFlowChecker();
198194
setUpNumber();
195+
196+
// Just to make sure the JS gets packaged up. Wait until the JS environment has
197+
// been initialized before requiring them.
198+
require('RCTDebugComponentOwnership');
199+
require('RCTDeviceEventEmitter');
200+
require('PerformanceLogger');

Libraries/ReactNative/ReactNative.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,17 @@
1111
*/
1212
'use strict';
1313

14+
// Require ReactNativeDefaultInjection first for its side effects of setting up
15+
// the JS environment
16+
var ReactNativeDefaultInjection = require('ReactNativeDefaultInjection');
17+
1418
var ReactChildren = require('ReactChildren');
1519
var ReactClass = require('ReactClass');
1620
var ReactComponent = require('ReactComponent');
1721
var ReactCurrentOwner = require('ReactCurrentOwner');
1822
var ReactElement = require('ReactElement');
1923
var ReactElementValidator = require('ReactElementValidator');
2024
var ReactInstanceHandles = require('ReactInstanceHandles');
21-
var ReactNativeDefaultInjection = require('ReactNativeDefaultInjection');
2225
var ReactNativeMount = require('ReactNativeMount');
2326
var ReactPropTypes = require('ReactPropTypes');
2427
var ReactUpdates = require('ReactUpdates');

0 commit comments

Comments
 (0)