From 8e876d244cbfd0cf150db7a372f0908cd0ce1a8d Mon Sep 17 00:00:00 2001 From: rivenhk Date: Wed, 29 Nov 2017 00:57:22 +0800 Subject: [PATCH] Move ReactFiberTreeReflection to react-reconciler/reflection (#11683) * Move ReactFiberTreeReflection to react-reconciler/reflection #11659 * Use * for react-reconciler We don't know the latest local version, and release script currently doesn't bump deps automatically. * Remove unused field * Use CommonJS in entry point for consistency * Undo the CommonJS change I didn't realize it would break the build. * Record sizes * Remove reconciler fixtures They're unnecessary now that we run real tests on reconciler bundles. --- fixtures/reconciler/README.md | 14 - fixtures/reconciler/index.js | 371 ------------------ fixtures/reconciler/package.json | 14 - fixtures/reconciler/yarn.lock | 106 ----- packages/react-dom/src/client/ReactDOMFB.js | 2 +- .../src/events/ReactDOMEventListener.js | 2 +- .../src/test-utils/ReactTestUtils.js | 2 +- .../src/ReactNativeFiberInspector.js | 2 +- packages/react-noop-renderer/package.json | 3 +- packages/react-noop-renderer/src/ReactNoop.js | 7 - packages/react-reconciler/npm/reflection.js | 7 + packages/react-reconciler/package.json | 1 + packages/react-reconciler/reflection.js | 12 + .../src/ReactFiberClassComponent.js | 2 +- .../react-reconciler/src/ReactFiberContext.js | 2 +- .../src/ReactFiberReconciler.js | 2 +- .../src}/ReactFiberTreeReflection.js | 10 +- .../src/ReactNativeRTFiberInspector.js | 2 +- .../src/ReactTestRenderer.js | 2 +- scripts/circleci/build.sh | 5 - scripts/rollup/bundles.js | 10 + scripts/rollup/results.json | 16 +- 22 files changed, 58 insertions(+), 536 deletions(-) delete mode 100644 fixtures/reconciler/README.md delete mode 100644 fixtures/reconciler/index.js delete mode 100644 fixtures/reconciler/package.json delete mode 100644 fixtures/reconciler/yarn.lock create mode 100644 packages/react-reconciler/npm/reflection.js create mode 100644 packages/react-reconciler/reflection.js rename packages/{shared => react-reconciler/src}/ReactFiberTreeReflection.js (96%) diff --git a/fixtures/reconciler/README.md b/fixtures/reconciler/README.md deleted file mode 100644 index 5c3ea3122dc2..000000000000 --- a/fixtures/reconciler/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# React Reconciler Test Fixture - -This folder exists for **React contributors** only. -If you use React you don't need to worry about it. - -These fixtures are a smoke-screen verification that the built React Reconciler distribution works. - -To test, from the project root: -* `yarn build` -* `cd fixtures/reconciler` -* `yarn` -* `yarn test` - -They should run as part of the CI check. diff --git a/fixtures/reconciler/index.js b/fixtures/reconciler/index.js deleted file mode 100644 index 091fa8b919f9..000000000000 --- a/fixtures/reconciler/index.js +++ /dev/null @@ -1,371 +0,0 @@ -/** - * This is a renderer of React that doesn't have a render target output. - * It is used to test that the react-reconciler package doesn't blow up. - * - * @flow - */ -'use strict'; - -var React = require('react'); -var assert = require('assert'); -var ReactFiberReconciler = require('react-reconciler'); -var emptyObject = require('fbjs/lib/emptyObject'); -var assert = require('assert'); - -const UPDATE_SIGNAL = {}; - -var scheduledCallback = null; - -type Container = {rootID: string, children: Array}; -type Props = {prop: any, hidden?: boolean}; -type Instance = {| - type: string, - id: number, - children: Array, - prop: any, -|}; -type TextInstance = {|text: string, id: number|}; - -var instanceCounter = 0; - -function appendChild( - parentInstance: Instance | Container, - child: Instance | TextInstance -): void { - const index = parentInstance.children.indexOf(child); - if (index !== -1) { - parentInstance.children.splice(index, 1); - } - parentInstance.children.push(child); -} - -function insertBefore( - parentInstance: Instance | Container, - child: Instance | TextInstance, - beforeChild: Instance | TextInstance -): void { - const index = parentInstance.children.indexOf(child); - if (index !== -1) { - parentInstance.children.splice(index, 1); - } - const beforeIndex = parentInstance.children.indexOf(beforeChild); - if (beforeIndex === -1) { - throw new Error('This child does not exist.'); - } - parentInstance.children.splice(beforeIndex, 0, child); -} - -function removeChild( - parentInstance: Instance | Container, - child: Instance | TextInstance -): void { - const index = parentInstance.children.indexOf(child); - if (index === -1) { - throw new Error('This child does not exist.'); - } - parentInstance.children.splice(index, 1); -} - -var NoopRenderer = ReactFiberReconciler({ - getRootHostContext() { - return emptyObject; - }, - - getChildHostContext() { - return emptyObject; - }, - - getPublicInstance(instance) { - return instance; - }, - - createInstance(type: string, props: Props): Instance { - const inst = { - id: instanceCounter++, - type: type, - children: [], - prop: props.prop, - }; - // Hide from unit tests - Object.defineProperty(inst, 'id', {value: inst.id, enumerable: false}); - return inst; - }, - - appendInitialChild( - parentInstance: Instance, - child: Instance | TextInstance - ): void { - parentInstance.children.push(child); - }, - - finalizeInitialChildren( - domElement: Instance, - type: string, - props: Props - ): boolean { - return false; - }, - - prepareUpdate( - instance: Instance, - type: string, - oldProps: Props, - newProps: Props - ): null | {} { - return UPDATE_SIGNAL; - }, - - shouldSetTextContent(type: string, props: Props): boolean { - return ( - typeof props.children === 'string' || typeof props.children === 'number' - ); - }, - - shouldDeprioritizeSubtree(type: string, props: Props): boolean { - return !!props.hidden; - }, - - now: Date.now, - - createTextInstance( - text: string, - rootContainerInstance: Container, - hostContext: Object, - internalInstanceHandle: Object - ): TextInstance { - var inst = {text: text, id: instanceCounter++}; - // Hide from unit tests - Object.defineProperty(inst, 'id', {value: inst.id, enumerable: false}); - return inst; - }, - - scheduleDeferredCallback(callback) { - if (scheduledCallback) { - throw new Error( - 'Scheduling a callback twice is excessive. Instead, keep track of ' + - 'whether the callback has already been scheduled.' - ); - } - scheduledCallback = callback; - }, - - prepareForCommit(): void {}, - - resetAfterCommit(): void {}, - - mutation: { - commitMount(instance: Instance, type: string, newProps: Props): void { - // Noop - }, - - commitUpdate( - instance: Instance, - updatePayload: Object, - type: string, - oldProps: Props, - newProps: Props - ): void { - instance.prop = newProps.prop; - }, - - commitTextUpdate( - textInstance: TextInstance, - oldText: string, - newText: string - ): void { - textInstance.text = newText; - }, - - appendChild: appendChild, - appendChildToContainer: appendChild, - insertBefore: insertBefore, - insertInContainerBefore: insertBefore, - removeChild: removeChild, - removeChildFromContainer: removeChild, - - resetTextContent(instance: Instance): void {}, - }, -}); - -var rootContainers = new Map(); -var roots = new Map(); -var DEFAULT_ROOT_ID = ''; - -let yieldedValues = null; - -function* flushUnitsOfWork(n: number): Generator, void, void> { - var didStop = false; - while (!didStop && scheduledCallback !== null) { - var cb = scheduledCallback; - scheduledCallback = null; - yieldedValues = null; - var unitsRemaining = n; - cb({ - timeRemaining() { - if (yieldedValues !== null) { - return 0; - } - if (unitsRemaining-- > 0) { - return 999; - } - didStop = true; - return 0; - }, - }); - - if (yieldedValues !== null) { - const values = yieldedValues; - yieldedValues = null; - yield values; - } - } -} - -var Noop = { - getChildren(rootID: string = DEFAULT_ROOT_ID) { - const container = rootContainers.get(rootID); - if (container) { - return container.children; - } else { - return null; - } - }, - - // Shortcut for testing a single root - render(element: React$Element, callback: ?Function) { - Noop.renderToRootWithID(element, DEFAULT_ROOT_ID, callback); - }, - - renderToRootWithID( - element: React$Element, - rootID: string, - callback: ?Function - ) { - let root = roots.get(rootID); - if (!root) { - const container = {rootID: rootID, children: []}; - rootContainers.set(rootID, container); - root = NoopRenderer.createContainer(container); - roots.set(rootID, root); - } - NoopRenderer.updateContainer(element, root, null, callback); - }, - - flush(): Array { - return Noop.flushUnitsOfWork(Infinity); - }, - - flushUnitsOfWork(n: number): Array { - let values = []; - for (const value of flushUnitsOfWork(n)) { - values.push(...value); - } - return values; - }, - - batchedUpdates: NoopRenderer.batchedUpdates, - - deferredUpdates: NoopRenderer.deferredUpdates, - - unbatchedUpdates: NoopRenderer.unbatchedUpdates, - - flushSync: NoopRenderer.flushSync, -}; - -type TestProps = {| - active: boolean, -|}; -type TestState = {| - counter: number, -|}; - -let instance = null; -class Test extends React.Component { - state = {counter: 0}; - increment() { - this.setState(({counter}) => ({ - counter: counter + 1, - })); - } - render() { - return [this.props.active ? 'Active' : 'Inactive', this.state.counter]; - } -} -const Children = props => props.children; -Noop.render( -
-
Hello
- - Hello world - - {'Number '} - {42} - - (instance = t)} /> - -
-); -Noop.flush(); -const actual1 = Noop.getChildren(); -const expected1 = [ - { - type: 'main', - children: [ - {type: 'div', children: [], prop: undefined}, - {text: 'Hello world'}, - { - type: 'span', - children: [{text: 'Number '}, {text: '42'}], - prop: undefined, - }, - {text: 'Active'}, - {text: '0'}, - ], - prop: undefined, - }, -]; -assert.deepEqual( - actual1, - expected1, - 'Error. Noop.getChildren() returned unexpected value.\nExpected: ' + - JSON.stringify(expected1, null, 2) + - '\n\nActual:\n ' + - JSON.stringify(actual1, null, 2) -); - -if (instance === null) { - throw new Error('Expected instance to exist.'); -} - -instance.increment(); -Noop.flush(); -const actual2 = Noop.getChildren(); -const expected2 = [ - { - type: 'main', - children: [ - {type: 'div', children: [], prop: undefined}, - {text: 'Hello world'}, - { - type: 'span', - children: [{text: 'Number '}, {text: '42'}], - prop: undefined, - }, - {text: 'Active'}, - {text: '1'}, - ], - prop: undefined, - }, -]; -assert.deepEqual( - actual2, - expected2, - 'Error. Noop.getChildren() returned unexpected value.\nExpected: ' + - JSON.stringify(expected2, null, 2) + - '\n\nActual:\n ' + - JSON.stringify(actual2, null, 2) -); - -const beginGreen = '\u001b[32m'; -const endGreen = '\u001b[39m'; -console.log(beginGreen + 'Reconciler package is OK!' + endGreen); diff --git a/fixtures/reconciler/package.json b/fixtures/reconciler/package.json deleted file mode 100644 index 15d5a904a458..000000000000 --- a/fixtures/reconciler/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "react-fixtures", - "version": "0.1.0", - "private": true, - "dependencies": { - "react": "file:../../build/packages/react", - "react-reconciler": "file:../../build/packages/react-reconciler" - }, - "scripts": { - "test:dev": "../../node_modules/.bin/babel-node ./index", - "test:prod": "NODE_ENV=production ../../node_modules/.bin/babel-node ./index", - "test": "npm run test:dev && npm run test:prod" - } -} diff --git a/fixtures/reconciler/yarn.lock b/fixtures/reconciler/yarn.lock deleted file mode 100644 index 7627e2cabdfc..000000000000 --- a/fixtures/reconciler/yarn.lock +++ /dev/null @@ -1,106 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -asap@~2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - -core-js@^1.0.0: - version "1.2.7" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" - -encoding@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" - dependencies: - iconv-lite "~0.4.13" - -fbjs@^0.8.16: - version "0.8.16" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db" - dependencies: - core-js "^1.0.0" - isomorphic-fetch "^2.1.1" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - setimmediate "^1.0.5" - ua-parser-js "^0.7.9" - -iconv-lite@~0.4.13: - version "0.4.19" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" - -is-stream@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - -isomorphic-fetch@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" - dependencies: - node-fetch "^1.0.1" - whatwg-fetch ">=0.10.0" - -js-tokens@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" - dependencies: - js-tokens "^3.0.0" - -node-fetch@^1.0.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" - -object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - -promise@^7.1.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" - dependencies: - asap "~2.0.3" - -prop-types@^15.6.0: - version "15.6.0" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856" - dependencies: - fbjs "^0.8.16" - loose-envify "^1.3.1" - object-assign "^4.1.1" - -"react-reconciler@file:../../build/packages/react-reconciler": - version "0.1.0" - dependencies: - fbjs "^0.8.16" - loose-envify "^1.1.0" - object-assign "^4.1.1" - -"react@file:../../build/packages/react": - version "16.0.0" - dependencies: - fbjs "^0.8.16" - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.0" - -setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - -ua-parser-js@^0.7.9: - version "0.7.17" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac" - -whatwg-fetch@>=0.10.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" diff --git a/packages/react-dom/src/client/ReactDOMFB.js b/packages/react-dom/src/client/ReactDOMFB.js index e259a7189dce..aa7c7dbf6445 100644 --- a/packages/react-dom/src/client/ReactDOMFB.js +++ b/packages/react-dom/src/client/ReactDOMFB.js @@ -7,7 +7,7 @@ * @flow */ -import * as ReactFiberTreeReflection from 'shared/ReactFiberTreeReflection'; +import * as ReactFiberTreeReflection from 'react-reconciler/reflection'; import * as ReactInstanceMap from 'shared/ReactInstanceMap'; // TODO: direct imports like some-package/src/* are bad. Fix me. import * as ReactFiberErrorLogger from 'react-reconciler/src/ReactFiberErrorLogger'; diff --git a/packages/react-dom/src/events/ReactDOMEventListener.js b/packages/react-dom/src/events/ReactDOMEventListener.js index df136f67ec3e..78c3ae43c3aa 100644 --- a/packages/react-dom/src/events/ReactDOMEventListener.js +++ b/packages/react-dom/src/events/ReactDOMEventListener.js @@ -6,7 +6,7 @@ */ import {batchedUpdates} from 'events/ReactGenericBatching'; -import {isFiberMounted} from 'shared/ReactFiberTreeReflection'; +import {isFiberMounted} from 'react-reconciler/reflection'; import {HostRoot} from 'shared/ReactTypeOfWork'; import EventListener from 'fbjs/lib/EventListener'; diff --git a/packages/react-dom/src/test-utils/ReactTestUtils.js b/packages/react-dom/src/test-utils/ReactTestUtils.js index 355daad05536..8c06abf0383e 100644 --- a/packages/react-dom/src/test-utils/ReactTestUtils.js +++ b/packages/react-dom/src/test-utils/ReactTestUtils.js @@ -7,7 +7,7 @@ import React from 'react'; import ReactDOM from 'react-dom'; -import {findCurrentFiberUsingSlowPath} from 'shared/ReactFiberTreeReflection'; +import {findCurrentFiberUsingSlowPath} from 'react-reconciler/reflection'; import * as ReactInstanceMap from 'shared/ReactInstanceMap'; import { ClassComponent, diff --git a/packages/react-native-renderer/src/ReactNativeFiberInspector.js b/packages/react-native-renderer/src/ReactNativeFiberInspector.js index 0a2d890c411d..2ea72b87e2fb 100644 --- a/packages/react-native-renderer/src/ReactNativeFiberInspector.js +++ b/packages/react-native-renderer/src/ReactNativeFiberInspector.js @@ -12,7 +12,7 @@ import type {Fiber} from 'react-reconciler/src/ReactFiber'; import { findCurrentHostFiber, findCurrentFiberUsingSlowPath, -} from 'shared/ReactFiberTreeReflection'; +} from 'react-reconciler/reflection'; import getComponentName from 'shared/getComponentName'; import {HostComponent} from 'shared/ReactTypeOfWork'; import emptyObject from 'fbjs/lib/emptyObject'; diff --git a/packages/react-noop-renderer/package.json b/packages/react-noop-renderer/package.json index 355a0e6d6302..afd4aaef7151 100644 --- a/packages/react-noop-renderer/package.json +++ b/packages/react-noop-renderer/package.json @@ -10,7 +10,8 @@ "fbjs": "^0.8.16", "object-assign": "^4.1.1", "prop-types": "^15.6.0", - "regenerator-runtime": "^0.11.0" + "regenerator-runtime": "^0.11.0", + "react-reconciler": "*" }, "peerDependencies": { "react": "^16.0.0" diff --git a/packages/react-noop-renderer/src/ReactNoop.js b/packages/react-noop-renderer/src/ReactNoop.js index f7a895ff9bb1..f472da3a975d 100644 --- a/packages/react-noop-renderer/src/ReactNoop.js +++ b/packages/react-noop-renderer/src/ReactNoop.js @@ -17,8 +17,6 @@ import type {Fiber} from 'react-reconciler/src/ReactFiber'; import type {UpdateQueue} from 'react-reconciler/src/ReactFiberUpdateQueue'; -// TODO: direct imports like some-package/src/* are bad. Fix me. -import ReactFiberInstrumentation from 'react-reconciler/src/ReactFiberInstrumentation'; import ReactFiberReconciler from 'react-reconciler'; import {enablePersistentReconciler} from 'shared/ReactFeatureFlags'; import * as ReactInstanceMap from 'shared/ReactInstanceMap'; @@ -565,11 +563,6 @@ var ReactNoop = { failInBeginPhase = false; } }, - - __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: { - // Private. Used only by fixtures/fiber-debugger. - ReactFiberInstrumentation, - }, }; export default ReactNoop; diff --git a/packages/react-reconciler/npm/reflection.js b/packages/react-reconciler/npm/reflection.js new file mode 100644 index 000000000000..a25929bd73bc --- /dev/null +++ b/packages/react-reconciler/npm/reflection.js @@ -0,0 +1,7 @@ +'use strict'; + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./cjs/react-reconciler-reflection.production.min.js'); +} else { + module.exports = require('./cjs/react-reconciler-reflection.development.js'); +} diff --git a/packages/react-reconciler/package.json b/packages/react-reconciler/package.json index d01cacad1b16..7c129ea18772 100644 --- a/packages/react-reconciler/package.json +++ b/packages/react-reconciler/package.json @@ -12,6 +12,7 @@ "LICENSE", "README.md", "index.js", + "reflection.js", "cjs/" ], "main": "index.js", diff --git a/packages/react-reconciler/reflection.js b/packages/react-reconciler/reflection.js new file mode 100644 index 000000000000..bd3d4a3288c2 --- /dev/null +++ b/packages/react-reconciler/reflection.js @@ -0,0 +1,12 @@ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + */ + +'use strict'; + +export * from './src/ReactFiberTreeReflection'; diff --git a/packages/react-reconciler/src/ReactFiberClassComponent.js b/packages/react-reconciler/src/ReactFiberClassComponent.js index 68faabeccca4..f48fe0c35c47 100644 --- a/packages/react-reconciler/src/ReactFiberClassComponent.js +++ b/packages/react-reconciler/src/ReactFiberClassComponent.js @@ -15,7 +15,7 @@ import { debugRenderPhaseSideEffects, enableAsyncSubtreeAPI, } from 'shared/ReactFeatureFlags'; -import {isMounted} from 'shared/ReactFiberTreeReflection'; +import {isMounted} from 'react-reconciler/reflection'; import * as ReactInstanceMap from 'shared/ReactInstanceMap'; import emptyObject from 'fbjs/lib/emptyObject'; import getComponentName from 'shared/getComponentName'; diff --git a/packages/react-reconciler/src/ReactFiberContext.js b/packages/react-reconciler/src/ReactFiberContext.js index 231ee6da51db..70429ad791cb 100644 --- a/packages/react-reconciler/src/ReactFiberContext.js +++ b/packages/react-reconciler/src/ReactFiberContext.js @@ -10,7 +10,7 @@ import type {Fiber} from './ReactFiber'; import type {StackCursor} from './ReactFiberStack'; -import {isFiberMounted} from 'shared/ReactFiberTreeReflection'; +import {isFiberMounted} from 'react-reconciler/reflection'; import {ClassComponent, HostRoot} from 'shared/ReactTypeOfWork'; import getComponentName from 'shared/getComponentName'; import emptyObject from 'fbjs/lib/emptyObject'; diff --git a/packages/react-reconciler/src/ReactFiberReconciler.js b/packages/react-reconciler/src/ReactFiberReconciler.js index c09cf9cf6534..67894f0f9578 100644 --- a/packages/react-reconciler/src/ReactFiberReconciler.js +++ b/packages/react-reconciler/src/ReactFiberReconciler.js @@ -15,7 +15,7 @@ import {enableAsyncSubtreeAPI} from 'shared/ReactFeatureFlags'; import { findCurrentHostFiber, findCurrentHostFiberWithNoPortals, -} from 'shared/ReactFiberTreeReflection'; +} from 'react-reconciler/reflection'; import * as ReactInstanceMap from 'shared/ReactInstanceMap'; import {HostComponent} from 'shared/ReactTypeOfWork'; import emptyObject from 'fbjs/lib/emptyObject'; diff --git a/packages/shared/ReactFiberTreeReflection.js b/packages/react-reconciler/src/ReactFiberTreeReflection.js similarity index 96% rename from packages/shared/ReactFiberTreeReflection.js rename to packages/react-reconciler/src/ReactFiberTreeReflection.js index 9bb670db300f..e25d065d2710 100644 --- a/packages/shared/ReactFiberTreeReflection.js +++ b/packages/react-reconciler/src/ReactFiberTreeReflection.js @@ -12,17 +12,17 @@ import type {Fiber} from 'react-reconciler/src/ReactFiber'; import invariant from 'fbjs/lib/invariant'; import warning from 'fbjs/lib/warning'; -import * as ReactInstanceMap from './ReactInstanceMap'; -import {ReactCurrentOwner} from './ReactGlobalSharedState'; -import getComponentName from './getComponentName'; +import * as ReactInstanceMap from 'shared/ReactInstanceMap'; +import {ReactCurrentOwner} from 'shared/ReactGlobalSharedState'; +import getComponentName from 'shared/getComponentName'; import { ClassComponent, HostComponent, HostRoot, HostPortal, HostText, -} from './ReactTypeOfWork'; -import {NoEffect, Placement} from './ReactTypeOfSideEffect'; +} from 'shared/ReactTypeOfWork'; +import {NoEffect, Placement} from 'shared/ReactTypeOfSideEffect'; var MOUNTING = 1; var MOUNTED = 2; diff --git a/packages/react-rt-renderer/src/ReactNativeRTFiberInspector.js b/packages/react-rt-renderer/src/ReactNativeRTFiberInspector.js index ba2613bdf86b..07df3162b339 100644 --- a/packages/react-rt-renderer/src/ReactNativeRTFiberInspector.js +++ b/packages/react-rt-renderer/src/ReactNativeRTFiberInspector.js @@ -10,7 +10,7 @@ import { findCurrentFiberUsingSlowPath, findCurrentHostFiber, -} from 'shared/ReactFiberTreeReflection'; +} from 'react-reconciler/reflection'; import getComponentName from 'shared/getComponentName'; import {HostComponent} from 'shared/ReactTypeOfWork'; import emptyObject from 'fbjs/lib/emptyObject'; diff --git a/packages/react-test-renderer/src/ReactTestRenderer.js b/packages/react-test-renderer/src/ReactTestRenderer.js index e3d1a6955650..c68516d31d51 100644 --- a/packages/react-test-renderer/src/ReactTestRenderer.js +++ b/packages/react-test-renderer/src/ReactTestRenderer.js @@ -12,7 +12,7 @@ import type {FiberRoot} from 'react-reconciler/src/ReactFiberRoot'; import ReactFiberReconciler from 'react-reconciler'; import {batchedUpdates} from 'events/ReactGenericBatching'; -import {findCurrentFiberUsingSlowPath} from 'shared/ReactFiberTreeReflection'; +import {findCurrentFiberUsingSlowPath} from 'react-reconciler/reflection'; import emptyObject from 'fbjs/lib/emptyObject'; import { Fragment, diff --git a/scripts/circleci/build.sh b/scripts/circleci/build.sh index 779931cddf80..5281af30e6fb 100755 --- a/scripts/circleci/build.sh +++ b/scripts/circleci/build.sh @@ -10,8 +10,3 @@ yarn build --extract-errors # Do a sanity check on bundles yarn lint-build - -# Check that the standalone reconciler isn't borked -cd fixtures/reconciler -yarn -yarn test diff --git a/scripts/rollup/bundles.js b/scripts/rollup/bundles.js index 79ca65112610..abab79daafc1 100644 --- a/scripts/rollup/bundles.js +++ b/scripts/rollup/bundles.js @@ -211,6 +211,16 @@ const bundles = [ externals: ['react'], }, + /******* Reflection *******/ + { + label: 'reconciler-reflection', + moduleType: RENDERER_UTILS, + bundleTypes: [NODE_DEV, NODE_PROD], + entry: 'react-reconciler/reflection', + global: 'ReactFiberTreeReflection', + externals: [], + }, + /******* React Call Return (experimental) *******/ { label: 'react-call-return', diff --git a/scripts/rollup/results.json b/scripts/rollup/results.json index 37741731c68c..66d87a0b9b23 100644 --- a/scripts/rollup/results.json +++ b/scripts/rollup/results.json @@ -189,8 +189,8 @@ "gzip": 2725 }, "react-noop-renderer.development.js (NODE_DEV)": { - "size": 277788, - "gzip": 58527 + "size": 17474, + "gzip": 4855 }, "react-reconciler.development.js (NODE_DEV)": { "size": 262177, @@ -217,8 +217,16 @@ "gzip": 3917 }, "react-noop-renderer.production.min.js (NODE_PROD)": { - "size": 45144, - "gzip": 14079 + "size": 6011, + "gzip": 2418 + }, + "react-reconciler-reflection.development.js (NODE_DEV)": { + "size": 10398, + "gzip": 3198 + }, + "react-reconciler-reflection.production.min.js (NODE_PROD)": { + "size": 2408, + "gzip": 1062 } } } \ No newline at end of file