diff --git a/mocks/ReactElementTestChild.js b/mocks/ReactElementTestChild.js
index 2e9d076933..2e0d5e7e1c 100644
--- a/mocks/ReactElementTestChild.js
+++ b/mocks/ReactElementTestChild.js
@@ -11,7 +11,7 @@
'use strict';
-var React = require('React');
+var React = require('ReactEntry');
class Child extends React.Component {
render() {
diff --git a/mocks/ReactMockedComponentTestComponent.js b/mocks/ReactMockedComponentTestComponent.js
index 285265df14..6e16ca091f 100644
--- a/mocks/ReactMockedComponentTestComponent.js
+++ b/mocks/ReactMockedComponentTestComponent.js
@@ -11,7 +11,7 @@
'use strict';
-var React = require('React');
+var React = require('ReactEntry');
class ReactMockedComponentTestComponent extends React.Component {
state = {foo: 'bar'};
diff --git a/scripts/fiber/record-tests b/scripts/fiber/record-tests
index 99257e92f1..9066832fd0 100755
--- a/scripts/fiber/record-tests
+++ b/scripts/fiber/record-tests
@@ -122,7 +122,7 @@ function formatResults(runResults, predicate) {
}
function recordTests(maxWorkers, trackFacts) {
- process.env.REACT_DOM_JEST_USE_FIBER = true;
+ process.env.REACT_JEST_USE_FIBER = true;
runJest(maxWorkers)
.then((runResults) => {
const passing = formatResults(
diff --git a/scripts/jest/setupMocks.js b/scripts/jest/setupMocks.js
new file mode 100644
index 0000000000..c4743804b7
--- /dev/null
+++ b/scripts/jest/setupMocks.js
@@ -0,0 +1,26 @@
+'use strict';
+
+// We want to globally mock this but jest doesn't let us do that by default
+// for a file that already exists. So we have to explicitly mock it.
+jest.mock('ReactDOMFeatureFlags', () => {
+ const flags = require.requireActual('ReactDOMFeatureFlags');
+ return Object.assign({}, flags, {
+ useFiber: !!process.env.REACT_JEST_USE_FIBER,
+ });
+});
+jest.mock('ReactFeatureFlags', () => {
+ const flags = require.requireActual('ReactFeatureFlags');
+ return Object.assign({}, flags, {
+ disableNewFiberFeatures: true,
+ });
+});
+jest.mock('ReactNativeFeatureFlags', () => {
+ const flags = require.requireActual('ReactNativeFeatureFlags');
+ return Object.assign({}, flags, {
+ useFiber: !!process.env.REACT_JEST_USE_FIBER,
+ });
+});
+
+// Error logging varies between Fiber and Stack;
+// Rather than fork dozens of tests, mock the error-logging file by default.
+jest.mock('ReactFiberErrorLogger');
diff --git a/scripts/jest/setupSpecEquivalenceReporter.js b/scripts/jest/setupSpecEquivalenceReporter.js
index f432e3150d..9fa132d2a8 100644
--- a/scripts/jest/setupSpecEquivalenceReporter.js
+++ b/scripts/jest/setupSpecEquivalenceReporter.js
@@ -9,6 +9,8 @@
'use strict';
+require('./setupMocks');
+
var expect = global.expect;
var numExpectations = 0;
diff --git a/scripts/jest/test-framework-setup.js b/scripts/jest/test-framework-setup.js
index 59f2f3c69e..3eb26a2dc2 100644
--- a/scripts/jest/test-framework-setup.js
+++ b/scripts/jest/test-framework-setup.js
@@ -1,38 +1,6 @@
'use strict';
-// We want to globally mock this but jest doesn't let us do that by default
-// for a file that already exists. So we have to explicitly mock it.
-jest.mock('ReactDOM');
-jest.mock('ReactDOMServer');
-jest.mock('ReactNative');
-jest.mock('ReactDOMFeatureFlags', () => {
- const flags = require.requireActual('ReactDOMFeatureFlags');
- return Object.assign({}, flags, {
- useFiber: false || !!process.env.REACT_DOM_JEST_USE_FIBER,
- });
-});
-jest.mock('ReactFeatureFlags', () => {
- const flags = require.requireActual('ReactFeatureFlags');
- return Object.assign({}, flags, {
- disableNewFiberFeatures: true,
- });
-});
-jest.mock('ReactNativeFeatureFlags', () => {
- const flags = require.requireActual('ReactNativeFeatureFlags');
- return Object.assign({}, flags, {
- useFiber: flags.useFiber || !!process.env.REACT_DOM_JEST_USE_FIBER,
- });
-});
-jest.mock('ReactTestRendererFeatureFlags', () => {
- const flags = require.requireActual('ReactTestRendererFeatureFlags');
- return Object.assign({}, flags, {
- useFiber: flags.useFiber || !!process.env.REACT_DOM_JEST_USE_FIBER,
- });
-});
-
-// Error logging varies between Fiber and Stack;
-// Rather than fork dozens of tests, mock the error-logging file by default.
-jest.mock('ReactFiberErrorLogger');
+require('./setupMocks');
var env = jasmine.getEnv();
diff --git a/scripts/rollup/build.js b/scripts/rollup/build.js
index fcc2659fd0..6847a16d4a 100644
--- a/scripts/rollup/build.js
+++ b/scripts/rollup/build.js
@@ -145,12 +145,6 @@ function updateBundleConfig(config, filename, format, bundleType, hasteName) {
});
}
-function setReactNativeUseFiberEnvVariable(useFiber) {
- return {
- 'process.env.REACT_NATIVE_USE_FIBER': useFiber,
- };
-}
-
function stripEnvVariables(production) {
return {
__DEV__: production ? 'false' : 'true',
@@ -338,7 +332,6 @@ function getPlugins(
case RN_PROD:
plugins.push(
replace(stripEnvVariables(bundleType === RN_PROD)),
- replace(setReactNativeUseFiberEnvVariable(useFiber)),
// needs to happen after strip env
commonjs(getCommonJsConfig(bundleType)),
uglify(
diff --git a/scripts/rollup/bundles.js b/scripts/rollup/bundles.js
index c2bd6b6c79..e52b0f52fd 100644
--- a/scripts/rollup/bundles.js
+++ b/scripts/rollup/bundles.js
@@ -43,13 +43,13 @@ const bundles = [
moduleName: 'React',
sourceMap: false,
},
- entry: 'src/isomorphic/React.js',
+ entry: 'src/isomorphic/ReactEntry',
externals: [
'create-react-class/factory',
'prop-types',
'prop-types/checkPropTypes',
],
- fbEntry: 'src/fb/ReactFBEntry.js',
+ fbEntry: 'src/fb/ReactFBEntry',
hasteName: 'React',
isRenderer: false,
label: 'core',
@@ -75,9 +75,9 @@ const bundles = [
moduleName: 'ReactDOM',
sourceMap: false,
},
- entry: 'src/renderers/dom/fiber/ReactDOMFiber.js',
+ entry: 'src/renderers/dom/fiber/ReactDOMFiberEntry',
externals: ['prop-types', 'prop-types/checkPropTypes'],
- fbEntry: 'src/fb/ReactDOMFiberFBEntry.js',
+ fbEntry: 'src/fb/ReactDOMFiberFBEntry',
hasteName: 'ReactDOMFiber',
isRenderer: true,
label: 'dom-fiber',
@@ -102,7 +102,7 @@ const bundles = [
moduleName: 'ReactTestUtils',
sourceMap: false,
},
- entry: 'src/renderers/dom/test/ReactTestUtils',
+ entry: 'src/renderers/dom/test/ReactTestUtilsEntry',
externals: [
'prop-types',
'prop-types/checkPropTypes',
@@ -110,7 +110,7 @@ const bundles = [
'react-dom',
'react-test-renderer', // TODO (bvaughn) Remove this dependency before 16.0.0
],
- fbEntry: 'src/renderers/dom/test/ReactTestUtils',
+ fbEntry: 'src/renderers/dom/test/ReactTestUtilsEntry',
hasteName: 'ReactTestUtils',
isRenderer: true,
label: 'test-utils',
@@ -138,9 +138,9 @@ const bundles = [
moduleName: 'ReactDOMServer',
sourceMap: false,
},
- entry: 'src/renderers/dom/ReactDOMServerStream.js',
+ entry: 'src/renderers/dom/ReactDOMServerStreamEntry',
externals: ['prop-types', 'prop-types/checkPropTypes'],
- fbEntry: 'src/renderers/dom/ReactDOMServerStream.js',
+ fbEntry: 'src/renderers/dom/ReactDOMServerStreamEntry',
hasteName: 'ReactDOMServerStream',
isRenderer: true,
label: 'dom-server-stream',
@@ -168,7 +168,7 @@ const bundles = [
moduleName: 'ReactART',
sourceMap: false,
},
- entry: 'src/renderers/art/ReactARTFiber.js',
+ entry: 'src/renderers/art/ReactARTFiberEntry',
externals: [
'art/modes/current',
'art/modes/fast-noSideEffects',
@@ -176,7 +176,7 @@ const bundles = [
'prop-types/checkPropTypes',
'react-dom',
],
- fbEntry: 'src/renderers/art/ReactARTFiber.js',
+ fbEntry: 'src/renderers/art/ReactARTFiberEntry',
hasteName: 'ReactARTFiber',
isRenderer: true,
label: 'art-fiber',
@@ -200,7 +200,7 @@ const bundles = [
moduleName: 'ReactNativeStack',
sourceMap: false,
},
- entry: 'src/renderers/native/ReactNativeStack.js',
+ entry: 'src/renderers/native/ReactNativeStackEntry',
externals: [
'ExceptionsManager',
'InitializeCore',
@@ -242,7 +242,7 @@ const bundles = [
moduleName: 'ReactNativeFiber',
sourceMap: false,
},
- entry: 'src/renderers/native/ReactNativeFiber.js',
+ entry: 'src/renderers/native/ReactNativeFiberEntry',
externals: [
'ExceptionsManager',
'InitializeCore',
@@ -285,9 +285,9 @@ const bundles = [
moduleName: 'ReactTestRenderer',
sourceMap: false,
},
- entry: 'src/renderers/testing/ReactTestRendererFiber',
+ entry: 'src/renderers/testing/ReactTestRendererFiberEntry',
externals: ['prop-types/checkPropTypes'],
- fbEntry: 'src/renderers/testing/ReactTestRendererFiber',
+ fbEntry: 'src/renderers/testing/ReactTestRendererFiberEntry',
hasteName: 'ReactTestRendererFiber',
isRenderer: true,
label: 'test-fiber',
@@ -310,13 +310,13 @@ const bundles = [
moduleName: 'ReactShallowRenderer',
sourceMap: false,
},
- entry: 'src/renderers/testing/ReactShallowRenderer',
+ entry: 'src/renderers/testing/ReactShallowRendererEntry',
externals: [
'react-dom',
'prop-types/checkPropTypes',
'react-test-renderer',
],
- fbEntry: 'src/renderers/testing/ReactShallowRenderer',
+ fbEntry: 'src/renderers/testing/ReactShallowRendererEntry',
hasteName: 'ReactShallowRenderer',
isRenderer: true,
label: 'shallow-renderer',
@@ -337,7 +337,7 @@ const bundles = [
moduleName: 'ReactNoop',
sourceMap: false,
},
- entry: 'src/renderers/noop/ReactNoop.js',
+ entry: 'src/renderers/noop/ReactNoopEntry',
externals: ['prop-types/checkPropTypes'],
isRenderer: true,
label: 'noop-fiber',
diff --git a/scripts/rollup/modules.js b/scripts/rollup/modules.js
index bc6467ff9f..cdc0e32b4d 100644
--- a/scripts/rollup/modules.js
+++ b/scripts/rollup/modules.js
@@ -130,6 +130,8 @@ function ignoreReactNativeModules() {
// This imports NativeMethodsMixin, causing
// a circular dependency.
'View',
+ // We have a shim for this file.
+ 'ReactNativeFeatureFlags',
];
}
diff --git a/src/fb/ReactDOMFiberFBEntry.js b/src/fb/ReactDOMFiberFBEntry.js
index f2c00ed5c4..bd358c631b 100644
--- a/src/fb/ReactDOMFiberFBEntry.js
+++ b/src/fb/ReactDOMFiberFBEntry.js
@@ -9,7 +9,7 @@
'use strict';
-var ReactDOMFiber = require('ReactDOMFiber');
+var ReactDOMFiber = require('ReactDOMFiberEntry');
Object.assign(
ReactDOMFiber.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,
diff --git a/src/fb/ReactFBEntry.js b/src/fb/ReactFBEntry.js
index ac3fe41e62..d583f3ad36 100644
--- a/src/fb/ReactFBEntry.js
+++ b/src/fb/ReactFBEntry.js
@@ -9,7 +9,7 @@
'use strict';
-var React = require('React');
+var React = require('ReactEntry');
// Add existing internal dependencies from www codebase.
// The goal is to get rid of these with time or turn them into public APIs.
diff --git a/src/isomorphic/React.js b/src/isomorphic/ReactEntry.js
similarity index 98%
rename from src/isomorphic/React.js
rename to src/isomorphic/ReactEntry.js
index 49d1ae2b08..2a89505003 100644
--- a/src/isomorphic/React.js
+++ b/src/isomorphic/ReactEntry.js
@@ -6,7 +6,7 @@
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
- * @providesModule React
+ * @providesModule ReactEntry
*/
'use strict';
diff --git a/src/isomorphic/classic/element/__tests__/ReactElement-test.js b/src/isomorphic/classic/element/__tests__/ReactElement-test.js
index 1abcfb31a0..e0f0047c47 100644
--- a/src/isomorphic/classic/element/__tests__/ReactElement-test.js
+++ b/src/isomorphic/classic/element/__tests__/ReactElement-test.js
@@ -481,7 +481,7 @@ describe('comparing jsx vs .createFactory() vs .createElement()', () => {
jest.resetModules();
React = require('react');
ReactDOM = require('react-dom');
- ReactTestUtils = require('ReactTestUtils');
+ ReactTestUtils = require('react-dom/test-utils');
Child = jest.genMockFromModule('ReactElementTestChild');
});
diff --git a/src/node_modules/react-art/index.js b/src/node_modules/react-art/index.js
index 0904d9c420..d823916f06 100644
--- a/src/node_modules/react-art/index.js
+++ b/src/node_modules/react-art/index.js
@@ -6,4 +6,4 @@
'use strict';
-module.exports = require('ReactARTFiber');
+module.exports = require('ReactARTFiberEntry');
diff --git a/src/node_modules/react-dom/index.js b/src/node_modules/react-dom/index.js
index 2cee4e3abe..9e3e32c735 100644
--- a/src/node_modules/react-dom/index.js
+++ b/src/node_modules/react-dom/index.js
@@ -6,4 +6,9 @@
'use strict';
-module.exports = require('ReactDOM');
+var ReactDOMFeatureFlags = require('ReactDOMFeatureFlags');
+var useFiber = ReactDOMFeatureFlags.useFiber;
+
+module.exports = useFiber
+ ? require('ReactDOMFiberEntry')
+ : require('ReactDOMStackEntry');
diff --git a/src/node_modules/react-dom/lib/ReactDOM.js b/src/node_modules/react-dom/lib/ReactDOM.js
deleted file mode 100644
index 2cee4e3abe..0000000000
--- a/src/node_modules/react-dom/lib/ReactDOM.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/**
- * Copyright 2016-present Facebook. All Rights Reserved.
- *
- * @flow
- */
-
-'use strict';
-
-module.exports = require('ReactDOM');
diff --git a/src/node_modules/react-dom/lib/ReactDOMServer.js b/src/node_modules/react-dom/lib/ReactDOMServer.js
deleted file mode 100644
index e02fa01f40..0000000000
--- a/src/node_modules/react-dom/lib/ReactDOMServer.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/**
- * Copyright 2016-present Facebook. All Rights Reserved.
- *
- * @flow
- */
-
-'use strict';
-
-module.exports = require('ReactDOMServer');
diff --git a/src/node_modules/react-dom/lib/ReactInstanceMap.js b/src/node_modules/react-dom/lib/ReactInstanceMap.js
deleted file mode 100644
index 7e3afdf6cd..0000000000
--- a/src/node_modules/react-dom/lib/ReactInstanceMap.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/**
- * Copyright 2016-present Facebook. All Rights Reserved.
- *
- * @flow
- */
-
-'use strict';
-
-module.exports = require('ReactInstanceMap');
diff --git a/src/node_modules/react-dom/lib/ReactPerf.js b/src/node_modules/react-dom/lib/ReactPerf.js
deleted file mode 100644
index a0793939a1..0000000000
--- a/src/node_modules/react-dom/lib/ReactPerf.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/**
- * Copyright 2016-present Facebook. All Rights Reserved.
- *
- * @flow
- */
-
-'use strict';
-
-module.exports = require('ReactPerf');
diff --git a/src/node_modules/react-dom/lib/ReactTestUtils.js b/src/node_modules/react-dom/lib/ReactTestUtils.js
deleted file mode 100644
index ef0d67875e..0000000000
--- a/src/node_modules/react-dom/lib/ReactTestUtils.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/**
- * Copyright 2016-present Facebook. All Rights Reserved.
- *
- * @flow
- */
-
-'use strict';
-
-module.exports = require('ReactTestUtils');
diff --git a/src/node_modules/react-dom/lib/getVendorPrefixedEventName.js b/src/node_modules/react-dom/lib/getVendorPrefixedEventName.js
deleted file mode 100644
index 68c931aa49..0000000000
--- a/src/node_modules/react-dom/lib/getVendorPrefixedEventName.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/**
- * Copyright 2016-present Facebook. All Rights Reserved.
- *
- * @flow
- */
-
-'use strict';
-
-module.exports = require('getVendorPrefixedEventName');
diff --git a/src/node_modules/react-dom/server.js b/src/node_modules/react-dom/server.js
index e02fa01f40..d2f03c0b29 100644
--- a/src/node_modules/react-dom/server.js
+++ b/src/node_modules/react-dom/server.js
@@ -6,4 +6,9 @@
'use strict';
-module.exports = require('ReactDOMServer');
+var ReactDOMFeatureFlags = require('ReactDOMFeatureFlags');
+var useFiber = ReactDOMFeatureFlags.useFiber;
+
+module.exports = useFiber
+ ? require('ReactDOMServerStreamEntry')
+ : require('ReactDOMServerStackEntry');
diff --git a/src/node_modules/react-dom/test-utils.js b/src/node_modules/react-dom/test-utils.js
index ef0d67875e..e7672851c1 100644
--- a/src/node_modules/react-dom/test-utils.js
+++ b/src/node_modules/react-dom/test-utils.js
@@ -6,4 +6,4 @@
'use strict';
-module.exports = require('ReactTestUtils');
+module.exports = require('ReactTestUtilsEntry');
diff --git a/src/node_modules/react-native/index.js b/src/node_modules/react-native/index.js
index 7897e25151..8406536142 100644
--- a/src/node_modules/react-native/index.js
+++ b/src/node_modules/react-native/index.js
@@ -6,4 +6,9 @@
'use strict';
-module.exports = require('ReactNative');
+var ReactNativeFeatureFlags = require('ReactNativeFeatureFlags');
+var useFiber = ReactNativeFeatureFlags.useFiber;
+
+module.exports = useFiber
+ ? require('ReactNativeFiberEntry')
+ : require('ReactNativeStackEntry');
diff --git a/src/node_modules/react-noop-renderer/index.js b/src/node_modules/react-noop-renderer/index.js
index c690bc1d2a..a559141f65 100644
--- a/src/node_modules/react-noop-renderer/index.js
+++ b/src/node_modules/react-noop-renderer/index.js
@@ -6,4 +6,4 @@
'use strict';
-module.exports = require('ReactNoop');
+module.exports = require('ReactNoopEntry');
diff --git a/src/node_modules/react-test-renderer/index.js b/src/node_modules/react-test-renderer/index.js
index a11b1836c7..7694e83eee 100644
--- a/src/node_modules/react-test-renderer/index.js
+++ b/src/node_modules/react-test-renderer/index.js
@@ -6,4 +6,4 @@
'use strict';
-module.exports = require('ReactTestRenderer');
+module.exports = require('ReactTestRendererFiberEntry');
diff --git a/src/node_modules/react-test-renderer/shallow.js b/src/node_modules/react-test-renderer/shallow.js
index 9522341660..482ec75ad5 100644
--- a/src/node_modules/react-test-renderer/shallow.js
+++ b/src/node_modules/react-test-renderer/shallow.js
@@ -6,4 +6,4 @@
'use strict';
-module.exports = require('ReactShallowRenderer');
+module.exports = require('ReactShallowRendererEntry');
diff --git a/src/node_modules/react/index.js b/src/node_modules/react/index.js
index 3566a38179..e8e3170ada 100644
--- a/src/node_modules/react/index.js
+++ b/src/node_modules/react/index.js
@@ -6,4 +6,4 @@
'use strict';
-module.exports = require('React');
+module.exports = require('ReactEntry');
diff --git a/src/node_modules/react/lib/ReactComponentTreeHook.js b/src/node_modules/react/lib/ReactComponentTreeHook.js
deleted file mode 100644
index fe857e7bae..0000000000
--- a/src/node_modules/react/lib/ReactComponentTreeHook.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/**
- * Copyright 2016-present Facebook. All Rights Reserved.
- *
- * @flow
- */
-
-'use strict';
-
-module.exports = require('ReactComponentTreeHook');
diff --git a/src/node_modules/react/lib/ReactCurrentOwner.js b/src/node_modules/react/lib/ReactCurrentOwner.js
deleted file mode 100644
index 54ae79f8db..0000000000
--- a/src/node_modules/react/lib/ReactCurrentOwner.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/**
- * Copyright 2016-present Facebook. All Rights Reserved.
- *
- * @flow
- */
-
-'use strict';
-
-module.exports = require('ReactCurrentOwner');
diff --git a/src/node_modules/react/lib/ReactDebugCurrentFrame.js b/src/node_modules/react/lib/ReactDebugCurrentFrame.js
deleted file mode 100644
index 79df089683..0000000000
--- a/src/node_modules/react/lib/ReactDebugCurrentFrame.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/**
- * Copyright 2016-present Facebook. All Rights Reserved.
- *
- * @flow
- */
-
-'use strict';
-
-module.exports = require('ReactDebugCurrentFrame');
diff --git a/src/renderers/__tests__/ReactComponentTreeHook-test.native.js b/src/renderers/__tests__/ReactComponentTreeHook-test.native.js
index 7095d0df60..b31ada8ff6 100644
--- a/src/renderers/__tests__/ReactComponentTreeHook-test.native.js
+++ b/src/renderers/__tests__/ReactComponentTreeHook-test.native.js
@@ -36,7 +36,7 @@ describeStack('ReactComponentTreeHook', () => {
PropTypes = require('prop-types');
React = require('react');
- ReactNative = require('ReactNative');
+ ReactNative = require('react-native');
ReactInstanceMap = require('ReactInstanceMap');
ReactComponentTreeHook = require('ReactComponentTreeHook');
ReactComponentTreeTestUtils = require('ReactComponentTreeTestUtils');
diff --git a/src/renderers/__tests__/ReactPerf-test.js b/src/renderers/__tests__/ReactPerf-test.js
index 9ba784a32f..40d76b8120 100644
--- a/src/renderers/__tests__/ReactPerf-test.js
+++ b/src/renderers/__tests__/ReactPerf-test.js
@@ -42,7 +42,7 @@ describeStack('ReactPerf', () => {
React = require('react');
ReactDOM = require('react-dom');
ReactPerf = require('ReactPerf');
- ReactTestUtils = require('ReactTestUtils');
+ ReactTestUtils = require('react-dom/test-utils');
emptyFunction = require('fbjs/lib/emptyFunction');
App = class extends React.Component {
diff --git a/src/renderers/__tests__/ReactStatelessComponent-test.js b/src/renderers/__tests__/ReactStatelessComponent-test.js
index 0792eded59..f3eafc118e 100644
--- a/src/renderers/__tests__/ReactStatelessComponent-test.js
+++ b/src/renderers/__tests__/ReactStatelessComponent-test.js
@@ -32,7 +32,7 @@ describe('ReactStatelessComponent', () => {
PropTypes = require('prop-types');
React = require('react');
ReactDOM = require('react-dom');
- ReactTestUtils = require('ReactTestUtils');
+ ReactTestUtils = require('react-dom/test-utils');
});
it('should render stateless component', () => {
diff --git a/src/renderers/__tests__/refs-test.js b/src/renderers/__tests__/refs-test.js
index c7f3f8ce7b..ccdfd418a9 100644
--- a/src/renderers/__tests__/refs-test.js
+++ b/src/renderers/__tests__/refs-test.js
@@ -115,7 +115,7 @@ describe('reactiverefs', () => {
beforeEach(() => {
jest.resetModules();
React = require('react');
- ReactTestUtils = require('ReactTestUtils');
+ ReactTestUtils = require('react-dom/test-utils');
});
/**
@@ -171,7 +171,7 @@ describe('ref swapping', () => {
beforeEach(() => {
jest.resetModules();
React = require('react');
- ReactTestUtils = require('ReactTestUtils');
+ ReactTestUtils = require('react-dom/test-utils');
RefHopsAround = class extends React.Component {
state = {count: 0};
@@ -312,14 +312,15 @@ describe('string refs between fiber and stack', () => {
beforeEach(() => {
jest.resetModules();
React = require('react');
- ReactTestUtils = require('ReactTestUtils');
+ ReactTestUtils = require('react-dom/test-utils');
});
it('attaches, detaches from fiber component with stack layer', () => {
spyOn(console, 'error');
const ReactCurrentOwner = require('ReactCurrentOwner');
- const ReactDOM = require('react-dom');
- const ReactDOMFiber = require('ReactDOMFiber');
+
+ const ReactDOMStack = require('ReactDOMStackEntry');
+ const ReactDOMFiber = require('ReactDOMFiberEntry');
const ReactInstanceMap = require('ReactInstanceMap');
let layerMounted = false;
class A extends React.Component {
@@ -332,7 +333,7 @@ describe('string refs between fiber and stack', () => {
const span = ;
ReactCurrentOwner.current = null;
- ReactDOM.unstable_renderSubtreeIntoContainer(
+ ReactDOMStack.unstable_renderSubtreeIntoContainer(
this,
span,
(this._container = document.createElement('div')),
@@ -343,7 +344,7 @@ describe('string refs between fiber and stack', () => {
);
}
componentWillUnmount() {
- ReactDOM.unmountComponentAtNode(this._container);
+ ReactDOMStack.unmountComponentAtNode(this._container);
}
}
const container = document.createElement('div');
@@ -365,8 +366,8 @@ describe('string refs between fiber and stack', () => {
it('attaches, detaches from stack component with fiber layer', () => {
spyOn(console, 'error');
const ReactCurrentOwner = require('ReactCurrentOwner');
- const ReactDOM = require('react-dom');
- const ReactDOMFiber = require('ReactDOMFiber');
+ const ReactDOM = require('ReactDOMStackEntry');
+ const ReactDOMFiber = require('ReactDOMFiberEntry');
const ReactInstanceMap = require('ReactInstanceMap');
let layerMounted = false;
class A extends React.Component {
diff --git a/src/renderers/art/ReactARTFiber.js b/src/renderers/art/ReactARTFiberEntry.js
similarity index 99%
rename from src/renderers/art/ReactARTFiber.js
rename to src/renderers/art/ReactARTFiberEntry.js
index 30380652c1..d28a6293c7 100644
--- a/src/renderers/art/ReactARTFiber.js
+++ b/src/renderers/art/ReactARTFiberEntry.js
@@ -6,7 +6,7 @@
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
- * @providesModule ReactARTFiber
+ * @providesModule ReactARTFiberEntry
*/
'use strict';
diff --git a/src/renderers/dom/ReactDOMServer.js b/src/renderers/dom/ReactDOMServerStackEntry.js
similarity index 92%
rename from src/renderers/dom/ReactDOMServer.js
rename to src/renderers/dom/ReactDOMServerStackEntry.js
index 559fbe6bfd..758c6f214c 100644
--- a/src/renderers/dom/ReactDOMServer.js
+++ b/src/renderers/dom/ReactDOMServerStackEntry.js
@@ -6,7 +6,7 @@
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
- * @providesModule ReactDOMServer
+ * @providesModule ReactDOMServerStackEntry
*/
'use strict';
@@ -19,7 +19,7 @@ var ReactVersion = require('ReactVersion');
ReactDOMInjection.inject();
ReactDOMStackInjection.inject();
-var ReactDOMServer = {
+var ReactDOMServerStack = {
renderToString: ReactServerRendering.renderToString,
renderToStaticMarkup: ReactServerRendering.renderToStaticMarkup,
version: ReactVersion,
@@ -36,4 +36,4 @@ if (__DEV__) {
ReactInstrumentation.debugTool.addHook(ReactDOMInvalidARIAHook);
}
-module.exports = ReactDOMServer;
+module.exports = ReactDOMServerStack;
diff --git a/src/renderers/dom/ReactDOMServerStream.js b/src/renderers/dom/ReactDOMServerStreamEntry.js
similarity index 85%
rename from src/renderers/dom/ReactDOMServerStream.js
rename to src/renderers/dom/ReactDOMServerStreamEntry.js
index c4c3abedf4..d78d5938f3 100644
--- a/src/renderers/dom/ReactDOMServerStream.js
+++ b/src/renderers/dom/ReactDOMServerStreamEntry.js
@@ -6,7 +6,7 @@
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
- * @providesModule ReactDOMServerStream
+ * @providesModule ReactDOMServerStreamEntry
*/
'use strict';
@@ -17,10 +17,10 @@ var ReactVersion = require('ReactVersion');
ReactDOMInjection.inject();
-var ReactDOMServer = {
+var ReactDOMServerStream = {
renderToString: ReactServerRenderer.renderToString,
renderToStaticMarkup: ReactServerRenderer.renderToStaticMarkup,
version: ReactVersion,
};
-module.exports = ReactDOMServer;
+module.exports = ReactDOMServerStream;
diff --git a/src/renderers/dom/ReactDOM.js b/src/renderers/dom/ReactDOMStackEntry.js
similarity index 98%
rename from src/renderers/dom/ReactDOM.js
rename to src/renderers/dom/ReactDOMStackEntry.js
index a6cdc8b5ab..a7f76d8ae6 100644
--- a/src/renderers/dom/ReactDOM.js
+++ b/src/renderers/dom/ReactDOMStackEntry.js
@@ -6,7 +6,7 @@
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
- * @providesModule ReactDOM
+ * @providesModule ReactDOMStackEntry
*/
/* globals __REACT_DEVTOOLS_GLOBAL_HOOK__*/
@@ -29,7 +29,7 @@ var warning = require('fbjs/lib/warning');
ReactDOMInjection.inject();
ReactDOMStackInjection.inject();
-var ReactDOM = {
+var ReactDOMStack = {
findDOMNode: findDOMNode,
render: ReactMount.render,
unmountComponentAtNode: ReactMount.unmountComponentAtNode,
@@ -163,4 +163,4 @@ if (__DEV__) {
ReactInstrumentation.debugTool.addHook(ReactDOMInvalidARIAHook);
}
-module.exports = ReactDOM;
+module.exports = ReactDOMStack;
diff --git a/src/renderers/dom/__mocks__/ReactDOM.js b/src/renderers/dom/__mocks__/ReactDOM.js
deleted file mode 100644
index c5965c9ec9..0000000000
--- a/src/renderers/dom/__mocks__/ReactDOM.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- * Copyright 2013-2015, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- */
-
-'use strict';
-
-var ReactDOMFeatureFlags = require('ReactDOMFeatureFlags');
-
-var useFiber = ReactDOMFeatureFlags.useFiber;
-
-module.exports = useFiber
- ? require('ReactDOMFiber')
- : require.requireActual('ReactDOM');
diff --git a/src/renderers/dom/__mocks__/ReactDOMServer.js b/src/renderers/dom/__mocks__/ReactDOMServer.js
deleted file mode 100644
index 7ba363afc5..0000000000
--- a/src/renderers/dom/__mocks__/ReactDOMServer.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- * Copyright 2013-2015, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- */
-
-'use strict';
-
-var ReactDOMFeatureFlags = require('ReactDOMFeatureFlags');
-
-var useFiber = ReactDOMFeatureFlags.useFiber;
-
-module.exports = useFiber
- ? require('ReactDOMServerStream')
- : require.requireActual('ReactDOMServer');
diff --git a/src/renderers/dom/fiber/ReactDOMFiber.js b/src/renderers/dom/fiber/ReactDOMFiberEntry.js
similarity index 99%
rename from src/renderers/dom/fiber/ReactDOMFiber.js
rename to src/renderers/dom/fiber/ReactDOMFiberEntry.js
index 3267591823..d2a48cb020 100644
--- a/src/renderers/dom/fiber/ReactDOMFiber.js
+++ b/src/renderers/dom/fiber/ReactDOMFiberEntry.js
@@ -6,7 +6,7 @@
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
- * @providesModule ReactDOMFiber
+ * @providesModule ReactDOMFiberEntry
* @flow
*/
@@ -510,7 +510,7 @@ function renderSubtreeIntoContainer(
return DOMRenderer.getPublicRootInstance(root);
}
-var ReactDOM = {
+var ReactDOMFiber = {
render(
element: ReactElement,
container: DOMContainer,
@@ -639,4 +639,4 @@ if (typeof injectInternals === 'function') {
});
}
-module.exports = ReactDOM;
+module.exports = ReactDOMFiber;
diff --git a/src/renderers/dom/shared/__tests__/inputValueTracking-test.js b/src/renderers/dom/shared/__tests__/inputValueTracking-test.js
index 2e4bfd1e96..f2bab94f3b 100644
--- a/src/renderers/dom/shared/__tests__/inputValueTracking-test.js
+++ b/src/renderers/dom/shared/__tests__/inputValueTracking-test.js
@@ -12,7 +12,7 @@
'use strict';
var React = require('react');
-var ReactTestUtils = require('ReactTestUtils');
+var ReactTestUtils = require('react-dom/test-utils');
// TODO: can we express this test with only public API?
var inputValueTracking = require('inputValueTracking');
diff --git a/src/renderers/dom/shared/eventPlugins/__tests__/BeforeInputEventPlugin-test.js b/src/renderers/dom/shared/eventPlugins/__tests__/BeforeInputEventPlugin-test.js
index 28785406e7..a2477239e6 100644
--- a/src/renderers/dom/shared/eventPlugins/__tests__/BeforeInputEventPlugin-test.js
+++ b/src/renderers/dom/shared/eventPlugins/__tests__/BeforeInputEventPlugin-test.js
@@ -12,7 +12,7 @@
'use strict';
var React = require('react');
-var ReactTestUtils = require('ReactTestUtils');
+var ReactTestUtils = require('react-dom/test-utils');
var EventMapping = {
compositionstart: 'topCompositionStart',
diff --git a/src/renderers/dom/test/ReactTestUtils.js b/src/renderers/dom/test/ReactTestUtilsEntry.js
similarity index 99%
rename from src/renderers/dom/test/ReactTestUtils.js
rename to src/renderers/dom/test/ReactTestUtilsEntry.js
index 787dceec6c..a08eef557c 100644
--- a/src/renderers/dom/test/ReactTestUtils.js
+++ b/src/renderers/dom/test/ReactTestUtilsEntry.js
@@ -6,7 +6,7 @@
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
- * @providesModule ReactTestUtils
+ * @providesModule ReactTestUtilsEntry
*/
'use strict';
@@ -16,7 +16,7 @@ var React = require('react');
var ReactDOM = require('react-dom');
var ReactFiberTreeReflection = require('ReactFiberTreeReflection');
var ReactInstanceMap = require('ReactInstanceMap');
-var ReactShallowRenderer = require('ReactShallowRenderer'); // TODO (bvaughn) Remove this import before 16.0.0
+var ReactShallowRenderer = require('ReactShallowRendererEntry'); // TODO (bvaughn) Remove this import before 16.0.0
var ReactTypeOfWork = require('ReactTypeOfWork');
var SyntheticEvent = require('SyntheticEvent');
diff --git a/src/renderers/native/ReactNative.js b/src/renderers/native/ReactNative.js
deleted file mode 100644
index 82b12de9a1..0000000000
--- a/src/renderers/native/ReactNative.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- * Copyright (c) 2015-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- * @providesModule ReactNative
- * @flow
- */
-'use strict';
-
-const ReactNativeFeatureFlags = require('ReactNativeFeatureFlags');
-
-module.exports = ReactNativeFeatureFlags.useFiber
- ? require('ReactNativeFiber')
- : require('ReactNativeStack');
diff --git a/src/renderers/native/ReactNativeFeatureFlags.js b/src/renderers/native/ReactNativeFeatureFlags.js
index 4c48e7f6f1..8668bc0ad1 100644
--- a/src/renderers/native/ReactNativeFeatureFlags.js
+++ b/src/renderers/native/ReactNativeFeatureFlags.js
@@ -12,10 +12,8 @@
'use strict';
-// Read from process.env in order to support Rollup flat bundles.
-// Jest test script will also write this value for Fiber tests.
var ReactNativeFeatureFlags = {
- useFiber: process.env.REACT_NATIVE_USE_FIBER,
+ useFiber: true,
};
module.exports = ReactNativeFeatureFlags;
diff --git a/src/renderers/native/ReactNativeFiber.js b/src/renderers/native/ReactNativeFiberEntry.js
similarity index 92%
rename from src/renderers/native/ReactNativeFiber.js
rename to src/renderers/native/ReactNativeFiberEntry.js
index 4ca7626307..2c226e5f43 100644
--- a/src/renderers/native/ReactNativeFiber.js
+++ b/src/renderers/native/ReactNativeFiberEntry.js
@@ -6,7 +6,7 @@
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
- * @providesModule ReactNativeFiber
+ * @providesModule ReactNativeFiberEntry
* @flow
*/
@@ -27,7 +27,6 @@ const findNumericNodeHandle = require('findNumericNodeHandleFiber');
const {injectInternals} = require('ReactFiberDevToolsHook');
-import type {Element} from 'React';
import type {ReactNativeType} from 'ReactNativeTypes';
import type {ReactNodeList} from 'ReactTypes';
@@ -45,12 +44,12 @@ ReactFiberErrorLogger.injection.injectDialog(
ReactNativeFiberErrorDialog.showDialog,
);
-const ReactNative: ReactNativeType = {
+const ReactNativeFiber: ReactNativeType = {
NativeComponent: require('ReactNativeComponent'),
findNodeHandle: findNumericNodeHandle,
- render(element: Element, containerTag: any, callback: ?Function) {
+ render(element: ReactElement, containerTag: any, callback: ?Function) {
let root = roots.get(containerTag);
if (!root) {
@@ -75,7 +74,7 @@ const ReactNative: ReactNativeType = {
},
unmountComponentAtNodeAndRemoveContainer(containerTag: number) {
- ReactNative.unmountComponentAtNode(containerTag);
+ ReactNativeFiber.unmountComponentAtNode(containerTag);
// Call back into native to remove all of the subviews from this container
UIManager.removeRootView(containerTag);
@@ -108,7 +107,7 @@ const ReactNative: ReactNativeType = {
if (__DEV__) {
// $FlowFixMe
Object.assign(
- ReactNative.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,
+ ReactNativeFiber.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,
{
ReactDebugTool: require('ReactDebugTool'), // RCTRenderingPerf, Systrace
ReactPerf: require('ReactPerf'), // ReactPerfStallHandler, RCTRenderingPerf
@@ -127,4 +126,4 @@ if (typeof injectInternals === 'function') {
});
}
-module.exports = ReactNative;
+module.exports = ReactNativeFiber;
diff --git a/src/renderers/native/ReactNativeStack.js b/src/renderers/native/ReactNativeStackEntry.js
similarity index 94%
rename from src/renderers/native/ReactNativeStack.js
rename to src/renderers/native/ReactNativeStackEntry.js
index bf87addc40..f9a81d41c5 100644
--- a/src/renderers/native/ReactNativeStack.js
+++ b/src/renderers/native/ReactNativeStackEntry.js
@@ -6,7 +6,7 @@
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
- * @providesModule ReactNativeStack
+ * @providesModule ReactNativeStackEntry
* @flow
*/
'use strict';
@@ -33,7 +33,7 @@ var render = function(
return ReactNativeMount.renderComponent(element, mountInto, callback);
};
-var ReactNative: ReactNativeType = {
+var ReactNativeStack: ReactNativeType = {
NativeComponent: require('ReactNativeComponent'),
hasReactNativeInitialized: false,
@@ -67,7 +67,7 @@ var ReactNative: ReactNativeType = {
if (__DEV__) {
// $FlowFixMe
Object.assign(
- ReactNative.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,
+ ReactNativeStack.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,
{
ReactDebugTool: require('ReactDebugTool'), // RCTRenderingPerf, Systrace
ReactPerf: require('ReactPerf'), // ReactPerfStallHandler, RCTRenderingPerf
@@ -105,4 +105,4 @@ if (
});
}
-module.exports = ReactNative;
+module.exports = ReactNativeStack;
diff --git a/src/renderers/native/__mocks__/ReactNative.js b/src/renderers/native/__mocks__/ReactNative.js
deleted file mode 100644
index ce5f605038..0000000000
--- a/src/renderers/native/__mocks__/ReactNative.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/**
- * Copyright 2013-2015, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- */
-
-'use strict';
-
-const ReactNativeFeatureFlags = require('ReactNativeFeatureFlags');
-
-module.exports = ReactNativeFeatureFlags.useFiber
- ? require('ReactNativeFiber')
- : require('ReactNativeStack');
diff --git a/src/renderers/native/takeSnapshot.js b/src/renderers/native/takeSnapshot.js
index 252bc5dc8e..ec4fa6c050 100644
--- a/src/renderers/native/takeSnapshot.js
+++ b/src/renderers/native/takeSnapshot.js
@@ -14,8 +14,6 @@
const ReactNativeFeatureFlags = require('ReactNativeFeatureFlags');
const UIManager = require('UIManager');
-import type {Element} from 'React';
-
const findNumericNodeHandle = ReactNativeFeatureFlags.useFiber
? require('findNumericNodeHandleFiber')
: require('findNumericNodeHandleStack');
@@ -38,7 +36,7 @@ const findNumericNodeHandle = ReactNativeFeatureFlags.useFiber
* @platform ios
*/
function takeSnapshot(
- view?: 'window' | Element | number,
+ view?: 'window' | ReactElement | number,
options?: {
width?: number,
height?: number,
diff --git a/src/renderers/noop/ReactNoop.js b/src/renderers/noop/ReactNoopEntry.js
similarity index 99%
rename from src/renderers/noop/ReactNoop.js
rename to src/renderers/noop/ReactNoopEntry.js
index 2b98dd290e..83bffd5006 100644
--- a/src/renderers/noop/ReactNoop.js
+++ b/src/renderers/noop/ReactNoopEntry.js
@@ -6,7 +6,7 @@
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
- * @providesModule ReactNoop
+ * @providesModule ReactNoopEntry
* @flow
*/
diff --git a/src/renderers/shared/__tests__/ReactDOMFrameScheduling-test.js b/src/renderers/shared/__tests__/ReactDOMFrameScheduling-test.js
index 5a8a532374..f08812005b 100644
--- a/src/renderers/shared/__tests__/ReactDOMFrameScheduling-test.js
+++ b/src/renderers/shared/__tests__/ReactDOMFrameScheduling-test.js
@@ -21,7 +21,7 @@ describeFiber('ReactDOMFrameScheduling', () => {
global.requestAnimationFrame = undefined;
jest.resetModules();
expect(() => {
- require('ReactDOM');
+ require('react-dom');
}).toThrow(
'React depends on requestAnimationFrame. Make sure that you load a ' +
'polyfill in older browsers.',
@@ -44,7 +44,7 @@ describeFiber('ReactDOMFrameScheduling', () => {
delete global.window;
jest.resetModules();
expect(() => {
- require('ReactDOM');
+ require('react-dom');
}).not.toThrow();
} finally {
global.requestAnimationFrame = previousRAF;
diff --git a/src/renderers/shared/fiber/__tests__/ReactIncrementalErrorHandling-test.js b/src/renderers/shared/fiber/__tests__/ReactIncrementalErrorHandling-test.js
index 3bec2f0f52..48423d3f1c 100644
--- a/src/renderers/shared/fiber/__tests__/ReactIncrementalErrorHandling-test.js
+++ b/src/renderers/shared/fiber/__tests__/ReactIncrementalErrorHandling-test.js
@@ -959,7 +959,7 @@ describe('ReactIncrementalErrorHandling', () => {
jest.unmock('ReactFiberErrorLogger');
}
React = require('react');
- ReactNoop = require('ReactNoop');
+ ReactNoop = require('react-noop-renderer');
}
function normalizeCodeLocInfo(str) {
diff --git a/src/renderers/testing/ReactShallowRenderer.js b/src/renderers/testing/ReactShallowRendererEntry.js
similarity index 99%
rename from src/renderers/testing/ReactShallowRenderer.js
rename to src/renderers/testing/ReactShallowRendererEntry.js
index d9c5a58095..640b0b253d 100644
--- a/src/renderers/testing/ReactShallowRenderer.js
+++ b/src/renderers/testing/ReactShallowRendererEntry.js
@@ -6,7 +6,7 @@
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
- * @providesModule ReactShallowRenderer
+ * @providesModule ReactShallowRendererEntry
* @preventMunge
*/
diff --git a/src/renderers/testing/ReactTestRenderer.js b/src/renderers/testing/ReactTestRenderer.js
deleted file mode 100644
index 93b4de4733..0000000000
--- a/src/renderers/testing/ReactTestRenderer.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- * Copyright (c) 2013-present Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- * @providesModule ReactTestRenderer
- */
-
-'use strict';
-
-const ReactTestRendererFeatureFlags = require('ReactTestRendererFeatureFlags');
-
-module.exports = ReactTestRendererFeatureFlags.useFiber
- ? require('ReactTestRendererFiber')
- : require('ReactTestRendererStack');
diff --git a/src/renderers/testing/ReactTestRendererFeatureFlags.js b/src/renderers/testing/ReactTestRendererFeatureFlags.js
deleted file mode 100644
index b2a8d273eb..0000000000
--- a/src/renderers/testing/ReactTestRendererFeatureFlags.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- * @providesModule ReactTestRendererFeatureFlags
- */
-
-'use strict';
-
-var ReactTestRendererFeatureFlags = {
- useFiber: false,
-};
-
-module.exports = ReactTestRendererFeatureFlags;
diff --git a/src/renderers/testing/ReactTestRendererFiber.js b/src/renderers/testing/ReactTestRendererFiberEntry.js
similarity index 97%
rename from src/renderers/testing/ReactTestRendererFiber.js
rename to src/renderers/testing/ReactTestRendererFiberEntry.js
index ea4a48e7e5..ee9986ebb5 100644
--- a/src/renderers/testing/ReactTestRendererFiber.js
+++ b/src/renderers/testing/ReactTestRendererFiberEntry.js
@@ -6,7 +6,7 @@
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
- * @providesModule ReactTestRendererFiber
+ * @providesModule ReactTestRendererFiberEntry
* @preventMunge
* @flow
*/
@@ -26,10 +26,13 @@ var {
HostRoot,
} = ReactTypeOfWork;
-import type {TestRendererOptions} from 'ReactTestMount';
import type {Fiber} from 'ReactFiber';
import type {FiberRoot} from 'ReactFiberRoot';
+type TestRendererOptions = {
+ createNodeMock: (element: ReactElement) => any,
+};
+
type ReactTestRendererJSON = {|
type: string,
props: {[propName: string]: any},
@@ -319,7 +322,7 @@ function toTree(node: ?Fiber) {
}
}
-var ReactTestFiberRenderer = {
+var ReactTestRendererFiber = {
create(element: ReactElement, options: TestRendererOptions) {
var createNodeMock = defaultTestOptions.createNodeMock;
if (options && typeof options.createNodeMock === 'function') {
@@ -381,4 +384,4 @@ var ReactTestFiberRenderer = {
/* eslint-enable camelcase */
};
-module.exports = ReactTestFiberRenderer;
+module.exports = ReactTestRendererFiber;
diff --git a/src/renderers/testing/__tests__/ReactTestRenderer-test.js b/src/renderers/testing/__tests__/ReactTestRenderer-test.js
index 81b0ea4c2b..740e353a36 100644
--- a/src/renderers/testing/__tests__/ReactTestRenderer-test.js
+++ b/src/renderers/testing/__tests__/ReactTestRenderer-test.js
@@ -12,8 +12,7 @@
'use strict';
var React = require('react');
-var ReactTestRenderer = require('ReactTestRenderer');
-var ReactDOMFeatureFlags = require('ReactDOMFeatureFlags');
+var ReactTestRenderer = require('react-test-renderer');
var prettyFormat = require('pretty-format');
var ReactFeatureFlags;
@@ -145,10 +144,7 @@ describe('ReactTestRenderer', () => {
expect(renderer.toJSON()).toEqual({
type: 'div',
props: {className: 'purple'},
- children: [
- ReactDOMFeatureFlags.useFiber ? '7' : 7,
- {type: 'moo', props: {}, children: null},
- ],
+ children: ['7', {type: 'moo', props: {}, children: null}],
});
expect(renders).toBe(6);
});
@@ -454,21 +450,12 @@ describe('ReactTestRenderer', () => {
props: {},
children: ['Happy Birthday!'],
});
- if (ReactDOMFeatureFlags.useFiber) {
- expect(log).toEqual([
- 'Boundary render',
- 'Angry render',
- 'Boundary componentDidMount',
- 'Boundary render',
- ]);
- } else {
- expect(log).toEqual([
- 'Boundary render',
- 'Angry render',
- 'Boundary render',
- 'Boundary componentDidMount',
- ]);
- }
+ expect(log).toEqual([
+ 'Boundary render',
+ 'Angry render',
+ 'Boundary componentDidMount',
+ 'Boundary render',
+ ]);
});
it('can update text nodes', () => {
@@ -503,7 +490,7 @@ describe('ReactTestRenderer', () => {
renderer.update({42});
expect(renderer.toJSON()).toEqual({
type: 'div',
- children: [ReactDOMFeatureFlags.useFiber ? '42' : 42],
+ children: ['42'],
props: {},
});
renderer.update();
@@ -673,39 +660,37 @@ describe('ReactTestRenderer', () => {
);
});
- if (ReactDOMFeatureFlags.useFiber) {
- it('can update text nodes when rendered as root', () => {
- var renderer = ReactTestRenderer.create(['Hello', 'world']);
- expect(renderer.toJSON()).toEqual(['Hello', 'world']);
- renderer.update(42);
- expect(renderer.toJSON()).toEqual('42');
- renderer.update([42, 'world']);
- expect(renderer.toJSON()).toEqual(['42', 'world']);
+ it('can update text nodes when rendered as root', () => {
+ var renderer = ReactTestRenderer.create(['Hello', 'world']);
+ expect(renderer.toJSON()).toEqual(['Hello', 'world']);
+ renderer.update(42);
+ expect(renderer.toJSON()).toEqual('42');
+ renderer.update([42, 'world']);
+ expect(renderer.toJSON()).toEqual(['42', 'world']);
+ });
+
+ it('can render and update root fragments', () => {
+ var Component = props => props.children;
+
+ var renderer = ReactTestRenderer.create([
+ Hi,
+ Bye,
+ ]);
+ expect(renderer.toJSON()).toEqual(['Hi', 'Bye']);
+ renderer.update();
+ expect(renderer.toJSON()).toEqual({
+ type: 'div',
+ children: null,
+ props: {},
});
-
- it('can render and update root fragments', () => {
- var Component = props => props.children;
-
- var renderer = ReactTestRenderer.create([
- Hi,
- Bye,
- ]);
- expect(renderer.toJSON()).toEqual(['Hi', 'Bye']);
- renderer.update();
- expect(renderer.toJSON()).toEqual({
+ renderer.update([goodbye
, 'world']);
+ expect(renderer.toJSON()).toEqual([
+ {
type: 'div',
- children: null,
+ children: ['goodbye'],
props: {},
- });
- renderer.update([goodbye
, 'world']);
- expect(renderer.toJSON()).toEqual([
- {
- type: 'div',
- children: ['goodbye'],
- props: {},
- },
- 'world',
- ]);
- });
- }
+ },
+ 'world',
+ ]);
+ });
});
diff --git a/src/renderers/testing/stack/ReactTestEmptyComponent.js b/src/renderers/testing/stack/ReactTestEmptyComponent.js
deleted file mode 100644
index 37ff674c0c..0000000000
--- a/src/renderers/testing/stack/ReactTestEmptyComponent.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- * @providesModule ReactTestEmptyComponent
- * @preventMunge
- * @flow
- */
-
-'use strict';
-
-class ReactTestEmptyComponent {
- _currentElement: null;
-
- constructor() {
- this._currentElement = null;
- }
- receiveComponent(): void {}
- toJSON(): void {}
- mountComponent(): void {}
- getHostNode(): void {}
- unmountComponent(): void {}
-}
-
-module.exports = ReactTestEmptyComponent;
diff --git a/src/renderers/testing/stack/ReactTestMount.js b/src/renderers/testing/stack/ReactTestMount.js
deleted file mode 100644
index 3b57ead3e1..0000000000
--- a/src/renderers/testing/stack/ReactTestMount.js
+++ /dev/null
@@ -1,208 +0,0 @@
-/**
- * Copyright (c) 2015-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- * @providesModule ReactTestMount
- * @flow
- */
-'use strict';
-
-var React = require('react');
-var ReactReconciler = require('ReactReconciler');
-var ReactUpdates = require('ReactUpdates');
-
-var emptyObject = require('fbjs/lib/emptyObject');
-var getHostComponentFromComposite = require('getHostComponentFromComposite');
-var instantiateReactComponent = require('instantiateReactComponent');
-var invariant = require('fbjs/lib/invariant');
-
-export type TestRendererOptions = {
- createNodeMock: (element: ReactElement) => any,
-};
-
-var defaultTestOptions = {
- createNodeMock: function() {
- return null;
- },
-};
-
-/**
- * Temporary (?) hack so that we can store all top-level pending updates on
- * composites instead of having to worry about different types of components
- * here.
- */
-var TopLevelWrapper = function() {};
-TopLevelWrapper.prototype.isReactComponent = {};
-if (__DEV__) {
- TopLevelWrapper.displayName = 'TopLevelWrapper';
-}
-TopLevelWrapper.prototype.render = function() {
- return this.props.child;
-};
-TopLevelWrapper.isReactTopLevelWrapper = true;
-
-/**
- * Mounts this component and inserts it into the DOM.
- *
- * @param {ReactComponent} componentInstance The instance to mount.
- * @param {ReactReconcileTransaction} transaction
- * @param {Object} hostParent
- * @param {Object} hostContainerInfo
- */
-function mountComponentIntoNode(
- componentInstance,
- transaction,
- hostParent,
- hostContainerInfo,
-) {
- var image = ReactReconciler.mountComponent(
- componentInstance,
- transaction,
- null,
- hostContainerInfo,
- emptyObject,
- );
- componentInstance._renderedComponent._topLevelWrapper = componentInstance;
- return image;
-}
-
-/**
- * Batched mount.
- *
- * @param {ReactComponent} componentInstance The instance to mount.
- * @param {number} rootID ID of the root node.
- * @param {number} containerTag container element to mount into.
- */
-function batchedMountComponentIntoNode(componentInstance, options) {
- var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(true);
- var image = transaction.perform(
- mountComponentIntoNode,
- null,
- componentInstance,
- transaction,
- null,
- options,
- );
- ReactUpdates.ReactReconcileTransaction.release(transaction);
- return image;
-}
-
-var ReactTestInstance = function(component) {
- this._component = component;
-};
-ReactTestInstance.prototype.getInstance = function() {
- return this._component._renderedComponent.getPublicInstance();
-};
-ReactTestInstance.prototype.update = function(nextElement) {
- invariant(
- this._component,
- "ReactTestRenderer: .update() can't be called after unmount.",
- );
- var nextWrappedElement = React.createElement(TopLevelWrapper, {
- child: nextElement,
- });
- var component = this._component;
- ReactUpdates.batchedUpdates(function() {
- var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(true);
- transaction.perform(function() {
- ReactReconciler.receiveComponent(
- component,
- nextWrappedElement,
- transaction,
- emptyObject,
- );
- });
- ReactUpdates.ReactReconcileTransaction.release(transaction);
- });
-};
-ReactTestInstance.prototype.unmount = function(nextElement) {
- var component = this._component;
- ReactUpdates.batchedUpdates(function() {
- var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(true);
- transaction.perform(function() {
- ReactReconciler.unmountComponent(
- component,
- false /* safely */,
- false /* skipLifecycle */,
- );
- });
- ReactUpdates.ReactReconcileTransaction.release(transaction);
- });
- this._component = null;
-};
-ReactTestInstance.prototype.toTree = function() {
- return toTree(this._component._renderedComponent);
-};
-ReactTestInstance.prototype.toJSON = function() {
- var inst = getHostComponentFromComposite(this._component);
- if (inst === null) {
- return null;
- }
- return inst.toJSON();
-};
-
-function toTree(component) {
- var element = component._currentElement;
- if (!React.isValidElement(element)) {
- return element;
- }
- if (!component._renderedComponent) {
- var rendered = [];
- for (var key in component._renderedChildren) {
- var inst = component._renderedChildren[key];
- var json = toTree(inst);
- if (json !== undefined) {
- rendered.push(json);
- }
- }
-
- return {
- nodeType: 'host',
- type: element.type,
- props: {...element.props},
- instance: component._nodeMock,
- rendered: rendered,
- };
- } else {
- return {
- nodeType: 'component',
- type: element.type,
- props: {...element.props},
- instance: component._instance,
- rendered: toTree(component._renderedComponent),
- };
- }
-}
-
-/**
- * As soon as `ReactMount` is refactored to not rely on the DOM, we can share
- * code between the two. For now, we'll hard code the ID logic.
- */
-var ReactTestMount = {
- render: function(
- nextElement: ReactElement,
- options?: TestRendererOptions,
- ): ReactTestInstance {
- var nextWrappedElement = React.createElement(TopLevelWrapper, {
- child: nextElement,
- });
-
- var instance = instantiateReactComponent(nextWrappedElement, false);
-
- // The initial render is synchronous but any updates that happen during
- // rendering, in componentWillMount or componentDidMount, will be batched
- // according to the current batching strategy.
- ReactUpdates.batchedUpdates(
- batchedMountComponentIntoNode,
- instance,
- Object.assign({}, defaultTestOptions, options),
- );
- return new ReactTestInstance(instance);
- },
-};
-
-module.exports = ReactTestMount;
diff --git a/src/renderers/testing/stack/ReactTestReconcileTransaction.js b/src/renderers/testing/stack/ReactTestReconcileTransaction.js
deleted file mode 100644
index 379be398eb..0000000000
--- a/src/renderers/testing/stack/ReactTestReconcileTransaction.js
+++ /dev/null
@@ -1,134 +0,0 @@
-/**
- * Copyright (c) 2015-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- * @providesModule ReactTestReconcileTransaction
- * @flow
- */
-'use strict';
-
-var CallbackQueue = require('CallbackQueue');
-var PooledClass = require('PooledClass');
-var Transaction = require('Transaction');
-var ReactUpdateQueue = require('ReactUpdateQueue');
-
-import type {TestRendererOptions} from 'ReactTestMount';
-
-/**
- * Provides a `CallbackQueue` queue for collecting `onDOMReady` callbacks during
- * the performing of the transaction.
- */
-var ON_DOM_READY_QUEUEING = {
- /**
- * Initializes the internal `onDOMReady` queue.
- */
- initialize: function() {
- this.reactMountReady.reset();
- },
-
- /**
- * After DOM is flushed, invoke all registered `onDOMReady` callbacks.
- */
- close: function() {
- this.reactMountReady.notifyAll();
- },
-};
-
-/**
- * Executed within the scope of the `Transaction` instance. Consider these as
- * being member methods, but with an implied ordering while being isolated from
- * each other.
- */
-var TRANSACTION_WRAPPERS = [ON_DOM_READY_QUEUEING];
-
-/**
- * Currently:
- * - The order that these are listed in the transaction is critical:
- * - Suppresses events.
- * - Restores selection range.
- *
- * Future:
- * - Restore document/overflow scroll positions that were unintentionally
- * modified via DOM insertions above the top viewport boundary.
- * - Implement/integrate with customized constraint based layout system and keep
- * track of which dimensions must be remeasured.
- *
- * @class ReactTestReconcileTransaction
- */
-function ReactTestReconcileTransaction(testOptions: TestRendererOptions) {
- this.reinitializeTransaction();
- this.testOptions = testOptions;
- this.reactMountReady = CallbackQueue.getPooled(this);
-}
-
-var Mixin = {
- /**
- * @see Transaction
- * @abstract
- * @final
- * @return {array