├── .gitignore
├── LICENSE
├── README.md
└── source-code-demo
├── .gitignore
├── README.md
├── config
├── env.js
├── getHttpsConfig.js
├── jest
│ ├── cssTransform.js
│ └── fileTransform.js
├── modules.js
├── paths.js
├── pnpTs.js
├── webpack.config.js
└── webpackDevServer.config.js
├── package-lock.json
├── package.json
├── public
├── favicon.ico
├── index.html
├── logo192.png
├── logo512.png
├── manifest.json
└── robots.txt
├── scripts
├── build.js
├── start.js
└── test.js
└── src
├── App.css
├── App.js
├── App.test.js
├── index.css
├── index.js
├── logo.svg
├── react
├── .circleci
│ └── config.yml
├── .editorconfig
├── .eslintignore
├── .eslintrc.js
├── .gitattributes
├── .github
│ ├── ISSUE_TEMPLATE.md
│ └── PULL_REQUEST_TEMPLATE.md
├── .gitignore
├── .mailmap
├── .nvmrc
├── .prettierignore
├── .prettierrc.js
├── .watchmanconfig
├── AUTHORS
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── appveyor.yml
├── babel.config.js
├── dangerfile.js
├── fixtures
│ ├── art
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── VectorWidget.js
│ │ ├── app.js
│ │ ├── index.html
│ │ ├── package.json
│ │ ├── webpack.config.js
│ │ └── yarn.lock
│ ├── attribute-behavior
│ │ ├── .gitignore
│ │ ├── AttributeTableSnapshot.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── public
│ │ │ ├── favicon.ico
│ │ │ ├── index.html
│ │ │ └── manifest.json
│ │ ├── src
│ │ │ ├── App.js
│ │ │ ├── App.test.js
│ │ │ ├── attributes.js
│ │ │ ├── index.css
│ │ │ └── index.js
│ │ └── yarn.lock
│ ├── devtools
│ │ ├── regression
│ │ │ ├── 14.9.html
│ │ │ ├── 15.0.html
│ │ │ ├── 15.1.html
│ │ │ ├── 15.2.html
│ │ │ ├── 15.3.html
│ │ │ ├── 15.4.html
│ │ │ ├── 15.5.html
│ │ │ ├── 15.6.html
│ │ │ ├── 16.0.html
│ │ │ ├── 16.1.html
│ │ │ ├── 16.2.html
│ │ │ ├── 16.3.html
│ │ │ ├── 16.4.html
│ │ │ ├── 16.5.html
│ │ │ ├── 16.6.html
│ │ │ ├── 16.7.html
│ │ │ ├── canary.html
│ │ │ ├── index.html
│ │ │ ├── next.html
│ │ │ ├── server.js
│ │ │ ├── shared.js
│ │ │ └── styles.css
│ │ └── standalone
│ │ │ └── index.html
│ ├── dom
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── public
│ │ │ ├── act-dom.html
│ │ │ ├── favicon.ico
│ │ │ ├── index.html
│ │ │ ├── react-logo.svg
│ │ │ ├── renderer.html
│ │ │ ├── renderer.js
│ │ │ └── test.mp4
│ │ ├── src
│ │ │ ├── __tests__
│ │ │ │ ├── nested-act-test.js
│ │ │ │ └── wrong-act-test.js
│ │ │ ├── components
│ │ │ │ ├── App.js
│ │ │ │ ├── Fixture.js
│ │ │ │ ├── FixtureSet.js
│ │ │ │ ├── Header.js
│ │ │ │ ├── Iframe.js
│ │ │ │ ├── IssueList.js
│ │ │ │ ├── TestCase.js
│ │ │ │ ├── VersionPicker.js
│ │ │ │ ├── fixtures
│ │ │ │ │ ├── buttons
│ │ │ │ │ │ └── index.js
│ │ │ │ │ ├── custom-elements
│ │ │ │ │ │ └── index.js
│ │ │ │ │ ├── date-inputs
│ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ └── switch-date-test-case.js
│ │ │ │ │ ├── error-handling
│ │ │ │ │ │ └── index.js
│ │ │ │ │ ├── event-pooling
│ │ │ │ │ │ ├── hit-box.js
│ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ ├── mouse-move.js
│ │ │ │ │ │ └── persistence.js
│ │ │ │ │ ├── home.js
│ │ │ │ │ ├── hydration
│ │ │ │ │ │ ├── Code.js
│ │ │ │ │ │ ├── code-transformer.js
│ │ │ │ │ │ ├── codemirror-paraiso-dark.css
│ │ │ │ │ │ ├── data.js
│ │ │ │ │ │ ├── hydration.css
│ │ │ │ │ │ └── index.js
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── input-change-events
│ │ │ │ │ │ ├── InputPlaceholderFixture.js
│ │ │ │ │ │ ├── RadioClickFixture.js
│ │ │ │ │ │ ├── RadioGroupFixture.js
│ │ │ │ │ │ ├── RadioNameChangeFixture.js
│ │ │ │ │ │ ├── RangeKeyboardFixture.js
│ │ │ │ │ │ └── index.js
│ │ │ │ │ ├── media-events
│ │ │ │ │ │ └── index.js
│ │ │ │ │ ├── mouse-events
│ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ └── mouse-movement.js
│ │ │ │ │ ├── number-inputs
│ │ │ │ │ │ ├── NumberInputDecimal.js
│ │ │ │ │ │ ├── NumberInputExtraZeroes.js
│ │ │ │ │ │ ├── NumberTestCase.js
│ │ │ │ │ │ └── index.js
│ │ │ │ │ ├── password-inputs
│ │ │ │ │ │ ├── PasswordTestCase.js
│ │ │ │ │ │ └── index.js
│ │ │ │ │ ├── pointer-events
│ │ │ │ │ │ ├── drag-box.js
│ │ │ │ │ │ ├── drag.js
│ │ │ │ │ │ ├── hover-box.js
│ │ │ │ │ │ ├── hover.js
│ │ │ │ │ │ └── index.js
│ │ │ │ │ ├── range-inputs
│ │ │ │ │ │ └── index.js
│ │ │ │ │ ├── selection-events
│ │ │ │ │ │ ├── OnSelectEventTestCase.js
│ │ │ │ │ │ ├── ReorderedInputsTestCase.js
│ │ │ │ │ │ └── index.js
│ │ │ │ │ ├── selects
│ │ │ │ │ │ └── index.js
│ │ │ │ │ ├── suspense
│ │ │ │ │ │ └── index.js
│ │ │ │ │ ├── text-inputs
│ │ │ │ │ │ ├── InputTestCase.js
│ │ │ │ │ │ ├── README.md
│ │ │ │ │ │ ├── ReplaceEmailInput.js
│ │ │ │ │ │ └── index.js
│ │ │ │ │ └── textareas
│ │ │ │ │ │ └── index.js
│ │ │ │ └── propTypes.js
│ │ │ ├── find-dom-node.js
│ │ │ ├── index.js
│ │ │ ├── polyfills.js
│ │ │ ├── react-loader.js
│ │ │ ├── style.css
│ │ │ ├── tags.js
│ │ │ └── toWarnDev.js
│ │ └── yarn.lock
│ ├── eslint
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── index.js
│ │ ├── package.json
│ │ ├── proxy
│ │ │ ├── index.js
│ │ │ └── package.json
│ │ ├── watch.sh
│ │ └── yarn.lock
│ ├── expiration
│ │ ├── .gitignore
│ │ ├── package.json
│ │ ├── public
│ │ │ └── index.html
│ │ ├── src
│ │ │ └── index.js
│ │ └── yarn.lock
│ ├── fiber-debugger
│ │ ├── .env
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── public
│ │ │ ├── favicon.ico
│ │ │ └── index.html
│ │ ├── src
│ │ │ ├── App.js
│ │ │ ├── Editor.js
│ │ │ ├── Fibers.js
│ │ │ ├── describeFibers.js
│ │ │ ├── index.css
│ │ │ └── index.js
│ │ └── yarn.lock
│ ├── fiber-triangle
│ │ └── index.html
│ ├── fizz-ssr-browser
│ │ └── index.html
│ ├── packaging
│ │ ├── README.md
│ │ ├── babel-standalone
│ │ │ └── dev.html
│ │ ├── browserify
│ │ │ ├── dev
│ │ │ │ ├── .gitignore
│ │ │ │ ├── index.html
│ │ │ │ ├── input.js
│ │ │ │ ├── package.json
│ │ │ │ └── yarn.lock
│ │ │ └── prod
│ │ │ │ ├── .gitignore
│ │ │ │ ├── index.html
│ │ │ │ ├── input.js
│ │ │ │ ├── package.json
│ │ │ │ └── yarn.lock
│ │ ├── brunch
│ │ │ ├── dev
│ │ │ │ ├── .gitignore
│ │ │ │ ├── app
│ │ │ │ │ └── initialize.js
│ │ │ │ ├── config.js
│ │ │ │ ├── index.html
│ │ │ │ ├── input.js
│ │ │ │ ├── package.json
│ │ │ │ └── yarn.lock
│ │ │ └── prod
│ │ │ │ ├── .gitignore
│ │ │ │ ├── app
│ │ │ │ └── initialize.js
│ │ │ │ ├── config.js
│ │ │ │ ├── index.html
│ │ │ │ ├── input.js
│ │ │ │ ├── package.json
│ │ │ │ └── yarn.lock
│ │ ├── build-all.js
│ │ ├── globals
│ │ │ ├── dev.html
│ │ │ └── prod.html
│ │ ├── index.html
│ │ ├── requirejs
│ │ │ ├── dev.html
│ │ │ └── prod.html
│ │ ├── rjs
│ │ │ ├── dev
│ │ │ │ ├── .gitignore
│ │ │ │ ├── config.js
│ │ │ │ ├── index.html
│ │ │ │ ├── input.js
│ │ │ │ ├── package.json
│ │ │ │ └── yarn.lock
│ │ │ └── prod
│ │ │ │ ├── .gitignore
│ │ │ │ ├── config.js
│ │ │ │ ├── index.html
│ │ │ │ ├── input.js
│ │ │ │ ├── package.json
│ │ │ │ └── yarn.lock
│ │ ├── systemjs-builder
│ │ │ ├── dev
│ │ │ │ ├── .gitignore
│ │ │ │ ├── build.js
│ │ │ │ ├── config.js
│ │ │ │ ├── index.html
│ │ │ │ ├── input.js
│ │ │ │ ├── package.json
│ │ │ │ └── yarn.lock
│ │ │ └── prod
│ │ │ │ ├── .gitignore
│ │ │ │ ├── build.js
│ │ │ │ ├── config.js
│ │ │ │ ├── index.html
│ │ │ │ ├── input.js
│ │ │ │ ├── package.json
│ │ │ │ └── yarn.lock
│ │ ├── systemjs
│ │ │ ├── dev.html
│ │ │ └── prod.html
│ │ ├── webpack-alias
│ │ │ ├── dev
│ │ │ │ ├── .gitignore
│ │ │ │ ├── config.js
│ │ │ │ ├── index.html
│ │ │ │ ├── input.js
│ │ │ │ ├── package.json
│ │ │ │ └── yarn.lock
│ │ │ └── prod
│ │ │ │ ├── .gitignore
│ │ │ │ ├── config.js
│ │ │ │ ├── index.html
│ │ │ │ ├── input.js
│ │ │ │ ├── package.json
│ │ │ │ └── yarn.lock
│ │ └── webpack
│ │ │ ├── dev
│ │ │ ├── .gitignore
│ │ │ ├── config.js
│ │ │ ├── index.html
│ │ │ ├── input.js
│ │ │ ├── package.json
│ │ │ └── yarn.lock
│ │ │ └── prod
│ │ │ ├── .gitignore
│ │ │ ├── config.js
│ │ │ ├── index.html
│ │ │ ├── input.js
│ │ │ ├── package.json
│ │ │ └── yarn.lock
│ ├── scheduler
│ │ └── index.html
│ ├── ssr
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── public
│ │ │ ├── favicon.ico
│ │ │ └── index.html
│ │ ├── server
│ │ │ ├── index.js
│ │ │ └── render.js
│ │ ├── src
│ │ │ ├── components
│ │ │ │ ├── App.js
│ │ │ │ ├── Chrome.css
│ │ │ │ ├── Chrome.js
│ │ │ │ ├── Page.css
│ │ │ │ ├── Page.js
│ │ │ │ ├── Page2.js
│ │ │ │ ├── Suspend.js
│ │ │ │ └── Theme.js
│ │ │ └── index.js
│ │ └── yarn.lock
│ ├── tracing
│ │ ├── index.html
│ │ ├── script.js
│ │ ├── test.html
│ │ └── test.js
│ └── unstable-async
│ │ └── time-slicing
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── public
│ │ ├── favicon.ico
│ │ ├── index.html
│ │ └── manifest.json
│ │ ├── src
│ │ ├── Charts.js
│ │ ├── Clock.js
│ │ ├── index.css
│ │ └── index.js
│ │ └── yarn.lock
├── netlify.toml
├── package.json
├── packages
│ ├── babel-plugin-react-jsx
│ │ ├── README.md
│ │ ├── __tests__
│ │ │ ├── TransformJSXToReactCreateElement-test.js
│ │ │ ├── TransformJSXToReactJSX-test.js
│ │ │ └── __snapshots__
│ │ │ │ ├── TransformJSXToReactCreateElement-test.js.snap
│ │ │ │ └── TransformJSXToReactJSX-test.js.snap
│ │ ├── index.js
│ │ ├── npm
│ │ │ └── index.js
│ │ ├── package.json
│ │ └── src
│ │ │ └── TransformJSXToReactBabelPlugin.js
│ ├── create-subscription
│ │ ├── README.md
│ │ ├── index.js
│ │ ├── npm
│ │ │ └── index.js
│ │ ├── package.json
│ │ └── src
│ │ │ ├── __tests__
│ │ │ └── createSubscription-test.internal.js
│ │ │ └── createSubscription.js
│ ├── eslint-plugin-react-hooks
│ │ ├── README.md
│ │ ├── __tests__
│ │ │ ├── ESLintRuleExhaustiveDeps-test.js
│ │ │ └── ESLintRulesOfHooks-test.js
│ │ ├── index.js
│ │ ├── npm
│ │ │ └── index.js
│ │ ├── package.json
│ │ └── src
│ │ │ ├── ExhaustiveDeps.js
│ │ │ ├── RulesOfHooks.js
│ │ │ └── index.js
│ ├── jest-mock-scheduler
│ │ ├── README.md
│ │ ├── npm
│ │ │ └── index.js
│ │ └── package.json
│ ├── jest-react
│ │ ├── README.md
│ │ ├── index.js
│ │ ├── npm
│ │ │ └── index.js
│ │ ├── package.json
│ │ └── src
│ │ │ └── JestReact.js
│ ├── legacy-events
│ │ ├── EventBatching.js
│ │ ├── EventPluginHub.js
│ │ ├── EventPluginRegistry.js
│ │ ├── EventPluginUtils.js
│ │ ├── EventPropagators.js
│ │ ├── EventSystemFlags.js
│ │ ├── PluginModuleType.js
│ │ ├── ReactControlledComponent.js
│ │ ├── ReactGenericBatching.js
│ │ ├── ReactSyntheticEventType.js
│ │ ├── ResponderEventPlugin.js
│ │ ├── ResponderSyntheticEvent.js
│ │ ├── ResponderTopLevelEventTypes.js
│ │ ├── ResponderTouchHistoryStore.js
│ │ ├── SyntheticEvent.js
│ │ ├── TopLevelEventTypes.js
│ │ ├── __tests__
│ │ │ ├── EventPluginRegistry-test.internal.js
│ │ │ ├── ResponderEventPlugin-test.internal.js
│ │ │ ├── accumulate-test.internal.js
│ │ │ └── accumulateInto-test.internal.js
│ │ ├── accumulate.js
│ │ ├── accumulateInto.js
│ │ ├── forEachAccumulated.js
│ │ ├── forks
│ │ │ └── ResponderTopLevelEventTypes.dom.js
│ │ └── package.json
│ ├── react-art
│ │ ├── Circle.js
│ │ ├── README.md
│ │ ├── Rectangle.js
│ │ ├── Wedge.js
│ │ ├── index.js
│ │ ├── npm
│ │ │ ├── Circle.js
│ │ │ ├── Rectangle.js
│ │ │ ├── Wedge.js
│ │ │ └── index.js
│ │ ├── package.json
│ │ └── src
│ │ │ ├── ReactART.js
│ │ │ ├── ReactARTHostConfig.js
│ │ │ ├── ReactARTInternals.js
│ │ │ └── __tests__
│ │ │ ├── ReactART-test.js
│ │ │ └── __snapshots__
│ │ │ └── ReactART-test.js.snap
│ ├── react-cache
│ │ ├── README.md
│ │ ├── index.js
│ │ ├── npm
│ │ │ └── index.js
│ │ ├── package.json
│ │ └── src
│ │ │ ├── LRU.js
│ │ │ ├── ReactCache.js
│ │ │ └── __tests__
│ │ │ └── ReactCache-test.internal.js
│ ├── react-debug-tools
│ │ ├── README.md
│ │ ├── index.js
│ │ ├── npm
│ │ │ └── index.js
│ │ ├── package.json
│ │ └── src
│ │ │ ├── ReactDebugHooks.js
│ │ │ ├── ReactDebugTools.js
│ │ │ └── __tests__
│ │ │ ├── ReactDevToolsHooksIntegration-test.js
│ │ │ ├── ReactHooksInspection-test.internal.js
│ │ │ ├── ReactHooksInspection-test.js
│ │ │ └── ReactHooksInspectionIntegration-test.js
│ ├── react-devtools-core
│ │ ├── README.md
│ │ ├── backend.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── backend.js
│ │ │ ├── editor.js
│ │ │ └── standalone.js
│ │ ├── standalone.js
│ │ ├── webpack.backend.js
│ │ └── webpack.standalone.js
│ ├── react-devtools-extensions
│ │ ├── .circleci
│ │ │ └── config.yml
│ │ ├── README.md
│ │ ├── build.js
│ │ ├── chrome
│ │ │ ├── README.md
│ │ │ ├── build.js
│ │ │ ├── deploy.js
│ │ │ ├── manifest.json
│ │ │ ├── now.json
│ │ │ └── test.js
│ │ ├── deploy.chrome.html
│ │ ├── deploy.firefox.html
│ │ ├── deploy.html
│ │ ├── deploy.js
│ │ ├── firefox
│ │ │ ├── README.md
│ │ │ ├── build.js
│ │ │ ├── deploy.js
│ │ │ ├── manifest.json
│ │ │ ├── now.json
│ │ │ └── test.js
│ │ ├── flow-typed
│ │ │ ├── jest.js
│ │ │ └── npm
│ │ │ │ └── react-test-renderer_v16.x.x.js
│ │ ├── icons
│ │ │ ├── 128-deadcode.png
│ │ │ ├── 128-development.png
│ │ │ ├── 128-disabled.png
│ │ │ ├── 128-outdated.png
│ │ │ ├── 128-production.png
│ │ │ ├── 128-unminified.png
│ │ │ ├── 16-deadcode.png
│ │ │ ├── 16-development.png
│ │ │ ├── 16-disabled.png
│ │ │ ├── 16-outdated.png
│ │ │ ├── 16-production.png
│ │ │ ├── 16-unminified.png
│ │ │ ├── 32-deadcode.png
│ │ │ ├── 32-development.png
│ │ │ ├── 32-disabled.png
│ │ │ ├── 32-outdated.png
│ │ │ ├── 32-production.png
│ │ │ ├── 32-unminified.png
│ │ │ ├── 48-deadcode.png
│ │ │ ├── 48-development.png
│ │ │ ├── 48-disabled.png
│ │ │ ├── 48-outdated.png
│ │ │ ├── 48-production.png
│ │ │ ├── 48-unminified.png
│ │ │ ├── deadcode.svg
│ │ │ ├── development.svg
│ │ │ ├── disabled.svg
│ │ │ ├── outdated.svg
│ │ │ └── production.svg
│ │ ├── main.html
│ │ ├── package.json
│ │ ├── panel.html
│ │ ├── popups
│ │ │ ├── deadcode.html
│ │ │ ├── development.html
│ │ │ ├── disabled.html
│ │ │ ├── outdated.html
│ │ │ ├── production.html
│ │ │ ├── shared.js
│ │ │ └── unminified.html
│ │ ├── src
│ │ │ ├── backend.js
│ │ │ ├── background.js
│ │ │ ├── contentScript.js
│ │ │ ├── inject.js
│ │ │ ├── injectGlobalHook.js
│ │ │ ├── main.js
│ │ │ ├── panel.js
│ │ │ ├── renderer.js
│ │ │ └── utils.js
│ │ ├── utils.js
│ │ ├── webpack.backend.js
│ │ └── webpack.config.js
│ ├── react-devtools-inline
│ │ ├── README.md
│ │ ├── backend.js
│ │ ├── frontend.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── backend.js
│ │ │ ├── constants.js
│ │ │ └── frontend.js
│ │ └── webpack.config.js
│ ├── react-devtools-shared
│ │ ├── babel.config.js
│ │ ├── package.json
│ │ └── src
│ │ │ ├── __tests__
│ │ │ ├── __mocks__
│ │ │ │ └── cssMock.js
│ │ │ ├── __snapshots__
│ │ │ │ ├── inspectedElementContext-test.js.snap
│ │ │ │ ├── ownersListContext-test.js.snap
│ │ │ │ ├── profilerContext-test.js.snap
│ │ │ │ ├── profilingCache-test.js.snap
│ │ │ │ ├── profilingCharts-test.js.snap
│ │ │ │ ├── profilingCommitTreeBuilder-test.js.snap
│ │ │ │ ├── store-test.js.snap
│ │ │ │ ├── storeComponentFilters-test.js.snap
│ │ │ │ ├── storeOwners-test.js.snap
│ │ │ │ ├── storeStressSync-test.js.snap
│ │ │ │ ├── storeStressTestConcurrent-test.js.snap
│ │ │ │ └── treeContext-test.js.snap
│ │ │ ├── bridge-test.js
│ │ │ ├── console-test.js
│ │ │ ├── inspectedElementContext-test.js
│ │ │ ├── inspectedElementSerializer.js
│ │ │ ├── legacy
│ │ │ │ ├── __snapshots__
│ │ │ │ │ ├── inspectElement-test.js.snap
│ │ │ │ │ └── storeLegacy-v15-test.js.snap
│ │ │ │ ├── inspectElement-test.js
│ │ │ │ └── storeLegacy-v15-test.js
│ │ │ ├── ownersListContext-test.js
│ │ │ ├── profilerContext-test.js
│ │ │ ├── profilerStore-test.js
│ │ │ ├── profilingCache-test.js
│ │ │ ├── profilingCharts-test.js
│ │ │ ├── profilingCommitTreeBuilder-test.js
│ │ │ ├── profilingUtils-test.js
│ │ │ ├── setupEnv.js
│ │ │ ├── setupTests.js
│ │ │ ├── store-test.js
│ │ │ ├── storeComponentFilters-test.js
│ │ │ ├── storeOwners-test.js
│ │ │ ├── storeSerializer.js
│ │ │ ├── storeStressSync-test.js
│ │ │ ├── storeStressTestConcurrent-test.js
│ │ │ ├── treeContext-test.js
│ │ │ ├── useEditableValue-test.js
│ │ │ ├── utils-test.js
│ │ │ └── utils.js
│ │ │ ├── backend
│ │ │ ├── NativeStyleEditor
│ │ │ │ ├── resolveBoxStyle.js
│ │ │ │ ├── setupNativeStyleEditor.js
│ │ │ │ └── types.js
│ │ │ ├── agent.js
│ │ │ ├── console.js
│ │ │ ├── describeComponentFrame.js
│ │ │ ├── index.js
│ │ │ ├── legacy
│ │ │ │ ├── renderer.js
│ │ │ │ └── utils.js
│ │ │ ├── renderer.js
│ │ │ ├── types.js
│ │ │ ├── utils.js
│ │ │ └── views
│ │ │ │ └── Highlighter
│ │ │ │ ├── Highlighter.js
│ │ │ │ ├── Overlay.js
│ │ │ │ └── index.js
│ │ │ ├── bridge.js
│ │ │ ├── constants.js
│ │ │ ├── devtools
│ │ │ ├── ProfilerStore.js
│ │ │ ├── ProfilingCache.js
│ │ │ ├── cache.js
│ │ │ ├── index.js
│ │ │ ├── store.js
│ │ │ ├── utils.js
│ │ │ └── views
│ │ │ │ ├── Button.css
│ │ │ │ ├── Button.js
│ │ │ │ ├── ButtonIcon.css
│ │ │ │ ├── ButtonIcon.js
│ │ │ │ ├── Components
│ │ │ │ ├── Badge.css
│ │ │ │ ├── Badge.js
│ │ │ │ ├── Components.css
│ │ │ │ ├── Components.js
│ │ │ │ ├── EditableName.css
│ │ │ │ ├── EditableName.js
│ │ │ │ ├── EditableValue.css
│ │ │ │ ├── EditableValue.js
│ │ │ │ ├── Element.css
│ │ │ │ ├── Element.js
│ │ │ │ ├── ExpandCollapseToggle.css
│ │ │ │ ├── ExpandCollapseToggle.js
│ │ │ │ ├── HocBadges.css
│ │ │ │ ├── HocBadges.js
│ │ │ │ ├── HooksTree.css
│ │ │ │ ├── HooksTree.js
│ │ │ │ ├── InspectHostNodesToggle.js
│ │ │ │ ├── InspectedElementContext.js
│ │ │ │ ├── InspectedElementTree.css
│ │ │ │ ├── InspectedElementTree.js
│ │ │ │ ├── KeyValue.css
│ │ │ │ ├── KeyValue.js
│ │ │ │ ├── NativeStyleEditor
│ │ │ │ │ ├── AutoSizeInput.css
│ │ │ │ │ ├── AutoSizeInput.js
│ │ │ │ │ ├── LayoutViewer.css
│ │ │ │ │ ├── LayoutViewer.js
│ │ │ │ │ ├── StyleEditor.css
│ │ │ │ │ ├── StyleEditor.js
│ │ │ │ │ ├── context.js
│ │ │ │ │ ├── index.js
│ │ │ │ │ └── types.js
│ │ │ │ ├── OwnersListContext.js
│ │ │ │ ├── OwnersStack.css
│ │ │ │ ├── OwnersStack.js
│ │ │ │ ├── SearchInput.css
│ │ │ │ ├── SearchInput.js
│ │ │ │ ├── SelectedElement.css
│ │ │ │ ├── SelectedElement.js
│ │ │ │ ├── SelectedTreeHighlight.css
│ │ │ │ ├── SelectedTreeHighlight.js
│ │ │ │ ├── Tree.css
│ │ │ │ ├── Tree.js
│ │ │ │ ├── TreeContext.js
│ │ │ │ ├── TreeFocusedContext.js
│ │ │ │ ├── ViewElementSourceContext.js
│ │ │ │ └── types.js
│ │ │ │ ├── DevTools.css
│ │ │ │ ├── DevTools.js
│ │ │ │ ├── ErrorBoundary.css
│ │ │ │ ├── ErrorBoundary.js
│ │ │ │ ├── Icon.css
│ │ │ │ ├── Icon.js
│ │ │ │ ├── ModalDialog.css
│ │ │ │ ├── ModalDialog.js
│ │ │ │ ├── Profiler
│ │ │ │ ├── ChartNode.css
│ │ │ │ ├── ChartNode.js
│ │ │ │ ├── ClearProfilingDataButton.js
│ │ │ │ ├── CommitFlamegraph.css
│ │ │ │ ├── CommitFlamegraph.js
│ │ │ │ ├── CommitFlamegraphListItem.js
│ │ │ │ ├── CommitRanked.css
│ │ │ │ ├── CommitRanked.js
│ │ │ │ ├── CommitRankedListItem.js
│ │ │ │ ├── CommitTreeBuilder.js
│ │ │ │ ├── FlamegraphChartBuilder.js
│ │ │ │ ├── InteractionListItem.css
│ │ │ │ ├── InteractionListItem.js
│ │ │ │ ├── Interactions.css
│ │ │ │ ├── Interactions.js
│ │ │ │ ├── InteractionsChartBuilder.js
│ │ │ │ ├── NoCommitData.css
│ │ │ │ ├── NoCommitData.js
│ │ │ │ ├── NoInteractions.css
│ │ │ │ ├── NoInteractions.js
│ │ │ │ ├── Profiler.css
│ │ │ │ ├── Profiler.js
│ │ │ │ ├── ProfilerContext.js
│ │ │ │ ├── ProfilingImportExportButtons.css
│ │ │ │ ├── ProfilingImportExportButtons.js
│ │ │ │ ├── RankedChartBuilder.js
│ │ │ │ ├── RecordToggle.css
│ │ │ │ ├── RecordToggle.js
│ │ │ │ ├── ReloadAndProfileButton.js
│ │ │ │ ├── RootSelector.css
│ │ │ │ ├── RootSelector.js
│ │ │ │ ├── SidebarCommitInfo.css
│ │ │ │ ├── SidebarCommitInfo.js
│ │ │ │ ├── SidebarInteractions.css
│ │ │ │ ├── SidebarInteractions.js
│ │ │ │ ├── SidebarSelectedFiberInfo.css
│ │ │ │ ├── SidebarSelectedFiberInfo.js
│ │ │ │ ├── SnapshotCommitList.css
│ │ │ │ ├── SnapshotCommitList.js
│ │ │ │ ├── SnapshotCommitListItem.css
│ │ │ │ ├── SnapshotCommitListItem.js
│ │ │ │ ├── SnapshotSelector.css
│ │ │ │ ├── SnapshotSelector.js
│ │ │ │ ├── constants.js
│ │ │ │ ├── types.js
│ │ │ │ └── utils.js
│ │ │ │ ├── ReactLogo.css
│ │ │ │ ├── ReactLogo.js
│ │ │ │ ├── Settings
│ │ │ │ ├── ComponentsSettings.js
│ │ │ │ ├── GeneralSettings.js
│ │ │ │ ├── ProfilerSettings.js
│ │ │ │ ├── SettingsContext.js
│ │ │ │ ├── SettingsModal.css
│ │ │ │ ├── SettingsModal.js
│ │ │ │ ├── SettingsModalContext.js
│ │ │ │ ├── SettingsModalContextToggle.js
│ │ │ │ └── SettingsShared.css
│ │ │ │ ├── TabBar.css
│ │ │ │ ├── TabBar.js
│ │ │ │ ├── Toggle.css
│ │ │ │ ├── Toggle.js
│ │ │ │ ├── Tooltip.css
│ │ │ │ ├── WarnIfLegacyBackendDetected.css
│ │ │ │ ├── WarnIfLegacyBackendDetected.js
│ │ │ │ ├── context.js
│ │ │ │ ├── hooks.js
│ │ │ │ ├── portaledContent.js
│ │ │ │ ├── root.css
│ │ │ │ └── utils.js
│ │ │ ├── hook.js
│ │ │ ├── hydration.js
│ │ │ ├── storage.js
│ │ │ ├── types.js
│ │ │ └── utils.js
│ ├── react-devtools-shell
│ │ ├── README.md
│ │ ├── index.html
│ │ ├── now.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── app
│ │ │ │ ├── DeeplyNestedComponents
│ │ │ │ │ └── index.js
│ │ │ │ ├── EditableProps
│ │ │ │ │ └── index.js
│ │ │ │ ├── ElementTypes
│ │ │ │ │ └── index.js
│ │ │ │ ├── Hydration
│ │ │ │ │ └── index.js
│ │ │ │ ├── Iframe
│ │ │ │ │ └── index.js
│ │ │ │ ├── InspectableElements
│ │ │ │ │ ├── Contexts.js
│ │ │ │ │ ├── CustomHooks.js
│ │ │ │ │ ├── CustomObject.js
│ │ │ │ │ ├── InspectableElements.js
│ │ │ │ │ ├── NestedProps.js
│ │ │ │ │ ├── SimpleValues.js
│ │ │ │ │ ├── UnserializableProps.js
│ │ │ │ │ └── index.js
│ │ │ │ ├── InteractionTracing
│ │ │ │ │ └── index.js
│ │ │ │ ├── PriorityLevels
│ │ │ │ │ └── index.js
│ │ │ │ ├── ReactNativeWeb
│ │ │ │ │ └── index.js
│ │ │ │ ├── SuspenseTree
│ │ │ │ │ └── index.js
│ │ │ │ ├── ToDoList
│ │ │ │ │ ├── List.css
│ │ │ │ │ ├── List.js
│ │ │ │ │ ├── ListItem.css
│ │ │ │ │ ├── ListItem.js
│ │ │ │ │ └── index.js
│ │ │ │ ├── Toggle
│ │ │ │ │ └── index.js
│ │ │ │ ├── console.js
│ │ │ │ ├── index.js
│ │ │ │ └── styles.css
│ │ │ └── devtools.js
│ │ └── webpack.config.js
│ ├── react-devtools
│ │ ├── CHANGELOG.md
│ │ ├── OVERVIEW.md
│ │ ├── README.md
│ │ ├── app.html
│ │ ├── app.js
│ │ ├── bin.js
│ │ ├── icons
│ │ │ └── icon128.png
│ │ ├── index.js
│ │ └── package.json
│ ├── react-dom
│ │ ├── README.md
│ │ ├── index.fb.js
│ │ ├── index.js
│ │ ├── npm
│ │ │ ├── index.js
│ │ │ ├── profiling.js
│ │ │ ├── server.browser.js
│ │ │ ├── server.js
│ │ │ ├── server.node.js
│ │ │ ├── test-utils.js
│ │ │ ├── unstable-fizz.browser.js
│ │ │ ├── unstable-fizz.js
│ │ │ ├── unstable-fizz.node.js
│ │ │ └── unstable-native-dependencies.js
│ │ ├── package.json
│ │ ├── server.browser.js
│ │ ├── server.js
│ │ ├── server.node.js
│ │ ├── src
│ │ │ ├── __tests__
│ │ │ │ ├── CSSPropertyOperations-test.js
│ │ │ │ ├── DOMPropertyOperations-test.js
│ │ │ │ ├── EventPluginHub-test.js
│ │ │ │ ├── ReactBrowserEventEmitter-test.internal.js
│ │ │ │ ├── ReactChildReconciler-test.js
│ │ │ │ ├── ReactComponent-test.js
│ │ │ │ ├── ReactComponentLifeCycle-test.js
│ │ │ │ ├── ReactCompositeComponent-test.js
│ │ │ │ ├── ReactCompositeComponentDOMMinimalism-test.js
│ │ │ │ ├── ReactCompositeComponentNestedState-test.js
│ │ │ │ ├── ReactCompositeComponentState-test.js
│ │ │ │ ├── ReactDOM-test.js
│ │ │ │ ├── ReactDOMAttribute-test.js
│ │ │ │ ├── ReactDOMComponent-test.js
│ │ │ │ ├── ReactDOMComponentTree-test.js
│ │ │ │ ├── ReactDOMEventListener-test.js
│ │ │ │ ├── ReactDOMFiber-test.js
│ │ │ │ ├── ReactDOMFiberAsync-test.internal.js
│ │ │ │ ├── ReactDOMFizzServerBrowser-test.js
│ │ │ │ ├── ReactDOMFizzServerNode-test.js
│ │ │ │ ├── ReactDOMHooks-test.js
│ │ │ │ ├── ReactDOMIframe-test.js
│ │ │ │ ├── ReactDOMInput-test.js
│ │ │ │ ├── ReactDOMInvalidARIAHook-test.js
│ │ │ │ ├── ReactDOMOption-test.js
│ │ │ │ ├── ReactDOMRoot-test.js
│ │ │ │ ├── ReactDOMSVG-test.js
│ │ │ │ ├── ReactDOMSelect-test.js
│ │ │ │ ├── ReactDOMSelection-test.internal.js
│ │ │ │ ├── ReactDOMServerIntegrationAttributes-test.js
│ │ │ │ ├── ReactDOMServerIntegrationBasic-test.js
│ │ │ │ ├── ReactDOMServerIntegrationCheckbox-test.js
│ │ │ │ ├── ReactDOMServerIntegrationClassContextType-test.js
│ │ │ │ ├── ReactDOMServerIntegrationElements-test.js
│ │ │ │ ├── ReactDOMServerIntegrationFragment-test.js
│ │ │ │ ├── ReactDOMServerIntegrationHooks-test.internal.js
│ │ │ │ ├── ReactDOMServerIntegrationInput-test.js
│ │ │ │ ├── ReactDOMServerIntegrationLegacyContext-test.js
│ │ │ │ ├── ReactDOMServerIntegrationLegacyContextDisabled-test.internal.js
│ │ │ │ ├── ReactDOMServerIntegrationModes-test.js
│ │ │ │ ├── ReactDOMServerIntegrationNewContext-test.js
│ │ │ │ ├── ReactDOMServerIntegrationReconnecting-test.js
│ │ │ │ ├── ReactDOMServerIntegrationRefs-test.js
│ │ │ │ ├── ReactDOMServerIntegrationSelect-test.js
│ │ │ │ ├── ReactDOMServerIntegrationSpecialTypes-test.js
│ │ │ │ ├── ReactDOMServerIntegrationTextarea-test.js
│ │ │ │ ├── ReactDOMServerIntegrationUntrustedURL-test.internal.js
│ │ │ │ ├── ReactDOMServerIntegrationUserInteraction-test.js
│ │ │ │ ├── ReactDOMServerLifecycles-test.js
│ │ │ │ ├── ReactDOMServerPartialHydration-test.internal.js
│ │ │ │ ├── ReactDOMServerSelectiveHydration-test.internal.js
│ │ │ │ ├── ReactDOMServerSuspense-test.internal.js
│ │ │ │ ├── ReactDOMShorthandCSSPropertyCollision-test.internal.js
│ │ │ │ ├── ReactDOMSuspensePlaceholder-test.js
│ │ │ │ ├── ReactDOMTextComponent-test.js
│ │ │ │ ├── ReactDOMTextarea-test.js
│ │ │ │ ├── ReactDOMserverIntegrationProgress-test.js
│ │ │ │ ├── ReactDeprecationWarnings-test.internal.js
│ │ │ │ ├── ReactEmptyComponent-test.js
│ │ │ │ ├── ReactErrorBoundaries-test.internal.js
│ │ │ │ ├── ReactErrorLoggingRecovery-test.js
│ │ │ │ ├── ReactEventIndependence-test.js
│ │ │ │ ├── ReactFunctionComponent-test.js
│ │ │ │ ├── ReactIdentity-test.js
│ │ │ │ ├── ReactLegacyContextDisabled-test.internal.js
│ │ │ │ ├── ReactLegacyErrorBoundaries-test.internal.js
│ │ │ │ ├── ReactMockedComponent-test.js
│ │ │ │ ├── ReactMount-test.js
│ │ │ │ ├── ReactMountDestruction-test.js
│ │ │ │ ├── ReactMultiChild-test.js
│ │ │ │ ├── ReactMultiChildReconcile-test.js
│ │ │ │ ├── ReactMultiChildText-test.js
│ │ │ │ ├── ReactRenderDocument-test.js
│ │ │ │ ├── ReactServerRendering-test.js
│ │ │ │ ├── ReactServerRenderingBrowser-test.js
│ │ │ │ ├── ReactServerRenderingHydration-test.js
│ │ │ │ ├── ReactTestUtils-test.js
│ │ │ │ ├── ReactTestUtilsAct-test.js
│ │ │ │ ├── ReactTestUtilsActUnmockedScheduler-test.js
│ │ │ │ ├── ReactTreeTraversal-test.js
│ │ │ │ ├── ReactUnmockedSchedulerWarning-test.internal.js
│ │ │ │ ├── ReactUnmockedSchedulerWarning-test.js
│ │ │ │ ├── ReactUpdates-test.js
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── ReactTestUtils-test.js.snap
│ │ │ │ ├── escapeTextForBrowser-test.js
│ │ │ │ ├── findDOMNode-test.js
│ │ │ │ ├── multiple-copies-of-react-test.js
│ │ │ │ ├── quoteAttributeValueForBrowser-test.js
│ │ │ │ ├── refs-destruction-test.js
│ │ │ │ ├── refs-test.js
│ │ │ │ ├── renderSubtreeIntoContainer-test.js
│ │ │ │ ├── utils
│ │ │ │ │ └── ReactDOMServerIntegrationTestUtils.js
│ │ │ │ └── validateDOMNesting-test.js
│ │ │ ├── client
│ │ │ │ ├── DOMPropertyOperations.js
│ │ │ │ ├── ReactDOM.js
│ │ │ │ ├── ReactDOMClientInjection.js
│ │ │ │ ├── ReactDOMComponent.js
│ │ │ │ ├── ReactDOMComponentTree.js
│ │ │ │ ├── ReactDOMFB.js
│ │ │ │ ├── ReactDOMHostConfig.js
│ │ │ │ ├── ReactDOMInput.js
│ │ │ │ ├── ReactDOMOption.js
│ │ │ │ ├── ReactDOMSelect.js
│ │ │ │ ├── ReactDOMSelection.js
│ │ │ │ ├── ReactDOMTextarea.js
│ │ │ │ ├── ReactInputSelection.js
│ │ │ │ ├── ToStringValue.js
│ │ │ │ ├── __tests__
│ │ │ │ │ ├── dangerouslySetInnerHTML-test.js
│ │ │ │ │ ├── getNodeForCharacterOffset-test.js
│ │ │ │ │ └── trustedTypes-test.internal.js
│ │ │ │ ├── getActiveElement.js
│ │ │ │ ├── getNodeForCharacterOffset.js
│ │ │ │ ├── inputValueTracking.js
│ │ │ │ ├── setAttribute.js
│ │ │ │ ├── setInnerHTML.js
│ │ │ │ ├── setTextContent.js
│ │ │ │ └── validateDOMNesting.js
│ │ │ ├── events
│ │ │ │ ├── BeforeInputEventPlugin.js
│ │ │ │ ├── ChangeEventPlugin.js
│ │ │ │ ├── DOMEventPluginOrder.js
│ │ │ │ ├── DOMEventResponderSystem.js
│ │ │ │ ├── DOMTopLevelEventTypes.js
│ │ │ │ ├── EnterLeaveEventPlugin.js
│ │ │ │ ├── EventListener.js
│ │ │ │ ├── FallbackCompositionState.js
│ │ │ │ ├── ReactBrowserEventEmitter.js
│ │ │ │ ├── ReactDOMEventListener.js
│ │ │ │ ├── ReactDOMEventReplaying.js
│ │ │ │ ├── SelectEventPlugin.js
│ │ │ │ ├── SimpleEventPlugin.js
│ │ │ │ ├── SyntheticAnimationEvent.js
│ │ │ │ ├── SyntheticClipboardEvent.js
│ │ │ │ ├── SyntheticCompositionEvent.js
│ │ │ │ ├── SyntheticDragEvent.js
│ │ │ │ ├── SyntheticFocusEvent.js
│ │ │ │ ├── SyntheticInputEvent.js
│ │ │ │ ├── SyntheticKeyboardEvent.js
│ │ │ │ ├── SyntheticMouseEvent.js
│ │ │ │ ├── SyntheticPointerEvent.js
│ │ │ │ ├── SyntheticTouchEvent.js
│ │ │ │ ├── SyntheticTransitionEvent.js
│ │ │ │ ├── SyntheticUIEvent.js
│ │ │ │ ├── SyntheticWheelEvent.js
│ │ │ │ ├── __tests__
│ │ │ │ │ ├── BeforeInputEventPlugin-test.js
│ │ │ │ │ ├── ChangeEventPlugin-test.internal.js
│ │ │ │ │ ├── DOMEventResponderSystem-test.internal.js
│ │ │ │ │ ├── EnterLeaveEventPlugin-test.js
│ │ │ │ │ ├── SelectEventPlugin-test.js
│ │ │ │ │ ├── SimpleEventPlugin-test.internal.js
│ │ │ │ │ ├── SyntheticClipboardEvent-test.js
│ │ │ │ │ ├── SyntheticEvent-test.js
│ │ │ │ │ ├── SyntheticKeyboardEvent-test.js
│ │ │ │ │ ├── SyntheticMouseEvent-test.js
│ │ │ │ │ ├── SyntheticWheelEvent-test.js
│ │ │ │ │ └── getEventKey-test.js
│ │ │ │ ├── checkPassiveEvents.js
│ │ │ │ ├── forks
│ │ │ │ │ └── EventListener-www.js
│ │ │ │ ├── getEventCharCode.js
│ │ │ │ ├── getEventKey.js
│ │ │ │ ├── getEventModifierState.js
│ │ │ │ ├── getEventTarget.js
│ │ │ │ ├── getVendorPrefixedEventName.js
│ │ │ │ └── isEventSupported.js
│ │ │ ├── server
│ │ │ │ ├── DOMMarkupOperations.js
│ │ │ │ ├── ReactDOMFizzServerBrowser.js
│ │ │ │ ├── ReactDOMFizzServerFormatConfig.js
│ │ │ │ ├── ReactDOMFizzServerNode.js
│ │ │ │ ├── ReactDOMNodeStreamRenderer.js
│ │ │ │ ├── ReactDOMServerBrowser.js
│ │ │ │ ├── ReactDOMServerNode.js
│ │ │ │ ├── ReactDOMStringRenderer.js
│ │ │ │ ├── ReactPartialRenderer.js
│ │ │ │ ├── ReactPartialRendererContext.js
│ │ │ │ ├── ReactPartialRendererHooks.js
│ │ │ │ ├── ReactThreadIDAllocator.js
│ │ │ │ ├── escapeTextForBrowser.js
│ │ │ │ └── quoteAttributeValueForBrowser.js
│ │ │ ├── shared
│ │ │ │ ├── CSSProperty.js
│ │ │ │ ├── CSSPropertyOperations.js
│ │ │ │ ├── CSSShorthandProperty.js
│ │ │ │ ├── DOMNamespaces.js
│ │ │ │ ├── DOMProperty.js
│ │ │ │ ├── HTMLNodeType.js
│ │ │ │ ├── ReactControlledValuePropTypes.js
│ │ │ │ ├── ReactDOMInvalidARIAHook.js
│ │ │ │ ├── ReactDOMNullInputValuePropHook.js
│ │ │ │ ├── ReactDOMUnknownPropertyHook.js
│ │ │ │ ├── assertValidProps.js
│ │ │ │ ├── checkReact.js
│ │ │ │ ├── createMicrosoftUnsafeLocalFunction.js
│ │ │ │ ├── dangerousStyleValue.js
│ │ │ │ ├── hyphenateStyleName.js
│ │ │ │ ├── isCustomComponent.js
│ │ │ │ ├── omittedCloseTags.js
│ │ │ │ ├── possibleStandardNames.js
│ │ │ │ ├── sanitizeURL.js
│ │ │ │ ├── validAriaProperties.js
│ │ │ │ ├── voidElementTags.js
│ │ │ │ └── warnValidStyle.js
│ │ │ ├── test-utils
│ │ │ │ ├── ReactTestUtils.js
│ │ │ │ └── ReactTestUtilsAct.js
│ │ │ └── unstable-native-dependencies
│ │ │ │ └── ReactDOMUnstableNativeDependencies.js
│ │ ├── test-utils.js
│ │ ├── unstable-fizz.browser.js
│ │ ├── unstable-fizz.js
│ │ ├── unstable-fizz.node.js
│ │ └── unstable-native-dependencies.js
│ ├── react-interactions
│ │ ├── README.md
│ │ ├── accessibility
│ │ │ ├── README.md
│ │ │ ├── docs
│ │ │ │ ├── FocusControl.md
│ │ │ │ ├── FocusManager.md
│ │ │ │ └── TabbableScope.md
│ │ │ ├── focus-control.js
│ │ │ ├── focus-list.js
│ │ │ ├── focus-manager.js
│ │ │ ├── focus-table.js
│ │ │ ├── src
│ │ │ │ ├── FocusControl.js
│ │ │ │ ├── FocusList.js
│ │ │ │ ├── FocusManager.js
│ │ │ │ ├── FocusTable.js
│ │ │ │ ├── TabbableScope.js
│ │ │ │ └── __tests__
│ │ │ │ │ ├── FocusList-test.internal.js
│ │ │ │ │ ├── FocusManager-test.internal.js
│ │ │ │ │ ├── FocusTable-test.internal.js
│ │ │ │ │ └── TabbableScope-test.internal.js
│ │ │ └── tabbable-scope.js
│ │ ├── events
│ │ │ ├── README.md
│ │ │ ├── context-menu.js
│ │ │ ├── docs
│ │ │ │ ├── ContextMenu.md
│ │ │ │ ├── Focus.md
│ │ │ │ ├── FocusWithin.md
│ │ │ │ ├── Hover.md
│ │ │ │ └── Press.md
│ │ │ ├── drag.js
│ │ │ ├── focus.js
│ │ │ ├── hover.js
│ │ │ ├── input.js
│ │ │ ├── keyboard.js
│ │ │ ├── press-legacy.js
│ │ │ ├── press.js
│ │ │ ├── scroll.js
│ │ │ ├── src
│ │ │ │ ├── dom
│ │ │ │ │ ├── ContextMenu.js
│ │ │ │ │ ├── Drag.js
│ │ │ │ │ ├── Focus.js
│ │ │ │ │ ├── Hover.js
│ │ │ │ │ ├── Input.js
│ │ │ │ │ ├── Keyboard.js
│ │ │ │ │ ├── Press.js
│ │ │ │ │ ├── PressLegacy.js
│ │ │ │ │ ├── Scroll.js
│ │ │ │ │ ├── Swipe.js
│ │ │ │ │ ├── Tap.js
│ │ │ │ │ ├── __tests__
│ │ │ │ │ │ ├── ContextMenu-test.internal.js
│ │ │ │ │ │ ├── Drag-test.internal.js
│ │ │ │ │ │ ├── Focus-test.internal.js
│ │ │ │ │ │ ├── FocusWithin-test.internal.js
│ │ │ │ │ │ ├── Hover-test.internal.js
│ │ │ │ │ │ ├── Input-test.internal.js
│ │ │ │ │ │ ├── Keyboard-test.internal.js
│ │ │ │ │ │ ├── MixedResponders-test-internal.js
│ │ │ │ │ │ ├── Press-test.internal.js
│ │ │ │ │ │ ├── PressLegacy-test.internal.js
│ │ │ │ │ │ ├── Scroll-test.internal.js
│ │ │ │ │ │ └── Tap-test.internal.js
│ │ │ │ │ ├── shared
│ │ │ │ │ │ └── index.js
│ │ │ │ │ └── testing-library
│ │ │ │ │ │ ├── domEnvironment.js
│ │ │ │ │ │ ├── domEventSequences.js
│ │ │ │ │ │ ├── domEvents.js
│ │ │ │ │ │ └── index.js
│ │ │ │ └── rn
│ │ │ │ │ └── Press.js
│ │ │ ├── swipe.js
│ │ │ └── tap.js
│ │ ├── npm
│ │ │ ├── drag.js
│ │ │ ├── focus.js
│ │ │ ├── hover.js
│ │ │ ├── input.js
│ │ │ ├── keyboard.js
│ │ │ ├── press-legacy.js
│ │ │ ├── press.js
│ │ │ ├── scroll.js
│ │ │ ├── swipe.js
│ │ │ └── tap.js
│ │ └── package.json
│ ├── react-is
│ │ ├── README.md
│ │ ├── index.js
│ │ ├── npm
│ │ │ └── index.js
│ │ ├── package.json
│ │ └── src
│ │ │ ├── ReactIs.js
│ │ │ └── __tests__
│ │ │ └── ReactIs-test.js
│ ├── react-native-renderer
│ │ ├── fabric.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src
│ │ │ ├── NativeMethodsMixin.js
│ │ │ ├── NativeMethodsMixinUtils.js
│ │ │ ├── ReactFabric.js
│ │ │ ├── ReactFabricComponentTree.js
│ │ │ ├── ReactFabricEventEmitter.js
│ │ │ ├── ReactFabricEventResponderSystem.js
│ │ │ ├── ReactFabricGlobalResponderHandler.js
│ │ │ ├── ReactFabricHostConfig.js
│ │ │ ├── ReactFabricInjection.js
│ │ │ ├── ReactNativeAttributePayload.js
│ │ │ ├── ReactNativeBridgeEventPlugin.js
│ │ │ ├── ReactNativeComponent.js
│ │ │ ├── ReactNativeComponentTree.js
│ │ │ ├── ReactNativeEventEmitter.js
│ │ │ ├── ReactNativeEventPluginOrder.js
│ │ │ ├── ReactNativeFiberHostComponent.js
│ │ │ ├── ReactNativeFiberInspector.js
│ │ │ ├── ReactNativeGlobalResponderHandler.js
│ │ │ ├── ReactNativeHostConfig.js
│ │ │ ├── ReactNativeInjection.js
│ │ │ ├── ReactNativeInjectionShared.js
│ │ │ ├── ReactNativeRenderer.js
│ │ │ ├── ReactNativeRendererSharedExports.js
│ │ │ ├── ReactNativeTypes.js
│ │ │ ├── __mocks__
│ │ │ └── react-native
│ │ │ │ └── Libraries
│ │ │ │ └── ReactPrivate
│ │ │ │ ├── BatchedBridge.js
│ │ │ │ ├── ExceptionsManager.js
│ │ │ │ ├── InitializeNativeFabricUIManager.js
│ │ │ │ ├── Platform.js
│ │ │ │ ├── RCTEventEmitter.js
│ │ │ │ ├── ReactFiberErrorDialog.js
│ │ │ │ ├── ReactNativePrivateInitializeCore.js
│ │ │ │ ├── ReactNativePrivateInterface.js
│ │ │ │ ├── ReactNativeViewConfigRegistry.js
│ │ │ │ ├── TextInputState.js
│ │ │ │ ├── UIManager.js
│ │ │ │ ├── deepDiffer.js
│ │ │ │ ├── deepFreezeAndThrowOnMutationInDev.js
│ │ │ │ └── flattenStyle.js
│ │ │ └── __tests__
│ │ │ ├── ReactFabric-test.internal.js
│ │ │ ├── ReactFabricAndNative-test.internal.js
│ │ │ ├── ReactNativeAttributePayload-test.js
│ │ │ ├── ReactNativeError-test.internal.js
│ │ │ ├── ReactNativeEvents-test.internal.js
│ │ │ ├── ReactNativeMount-test.internal.js
│ │ │ ├── __snapshots__
│ │ │ ├── ReactFabric-test.internal.js.snap
│ │ │ ├── ReactNativeEvents-test.internal.js.snap
│ │ │ └── ReactNativeMount-test.internal.js.snap
│ │ │ └── createReactNativeComponentClass-test.internal.js
│ ├── react-noop-renderer
│ │ ├── README.md
│ │ ├── index.js
│ │ ├── npm
│ │ │ ├── index.js
│ │ │ ├── persistent.js
│ │ │ └── server.js
│ │ ├── package.json
│ │ ├── persistent.js
│ │ ├── server.js
│ │ └── src
│ │ │ ├── ReactNoop.js
│ │ │ ├── ReactNoopPersistent.js
│ │ │ ├── ReactNoopServer.js
│ │ │ └── createReactNoop.js
│ ├── react-reconciler
│ │ ├── README.md
│ │ ├── index.js
│ │ ├── inline-typed.js
│ │ ├── inline.art.js
│ │ ├── inline.dom-browser.js
│ │ ├── inline.dom.js
│ │ ├── inline.fabric.js
│ │ ├── inline.fire.js
│ │ ├── inline.native.js
│ │ ├── inline.test.js
│ │ ├── npm
│ │ │ ├── index.js
│ │ │ ├── persistent.js
│ │ │ └── reflection.js
│ │ ├── package.json
│ │ ├── persistent.js
│ │ ├── reflection.js
│ │ └── src
│ │ │ ├── ReactCapturedValue.js
│ │ │ ├── ReactChildFiber.js
│ │ │ ├── ReactCurrentFiber.js
│ │ │ ├── ReactDebugFiberPerf.js
│ │ │ ├── ReactFiber.js
│ │ │ ├── ReactFiberBeginWork.js
│ │ │ ├── ReactFiberClassComponent.js
│ │ │ ├── ReactFiberCommitWork.js
│ │ │ ├── ReactFiberCompleteWork.js
│ │ │ ├── ReactFiberContext.js
│ │ │ ├── ReactFiberDevToolsHook.js
│ │ │ ├── ReactFiberErrorDialog.js
│ │ │ ├── ReactFiberErrorLogger.js
│ │ │ ├── ReactFiberEvents.js
│ │ │ ├── ReactFiberExpirationTime.js
│ │ │ ├── ReactFiberFundamental.js
│ │ │ ├── ReactFiberHooks.js
│ │ │ ├── ReactFiberHostConfig.js
│ │ │ ├── ReactFiberHostContext.js
│ │ │ ├── ReactFiberHotReloading.js
│ │ │ ├── ReactFiberHydrationContext.js
│ │ │ ├── ReactFiberInstrumentation.js
│ │ │ ├── ReactFiberLazyComponent.js
│ │ │ ├── ReactFiberNewContext.js
│ │ │ ├── ReactFiberReconciler.js
│ │ │ ├── ReactFiberRoot.js
│ │ │ ├── ReactFiberScope.js
│ │ │ ├── ReactFiberStack.js
│ │ │ ├── ReactFiberSuspenseComponent.js
│ │ │ ├── ReactFiberSuspenseConfig.js
│ │ │ ├── ReactFiberSuspenseContext.js
│ │ │ ├── ReactFiberThrow.js
│ │ │ ├── ReactFiberTreeReflection.js
│ │ │ ├── ReactFiberUnwindWork.js
│ │ │ ├── ReactFiberWorkLoop.js
│ │ │ ├── ReactHookEffectTags.js
│ │ │ ├── ReactProfilerTimer.js
│ │ │ ├── ReactStrictModeWarnings.js
│ │ │ ├── ReactTypeOfMode.js
│ │ │ ├── ReactUpdateQueue.js
│ │ │ ├── SchedulerWithReactIntegration.js
│ │ │ ├── __tests__
│ │ │ ├── ErrorBoundaryReconciliation-test.internal.js
│ │ │ ├── ReactBatchedMode-test.internal.js
│ │ │ ├── ReactDisableSchedulerTimeoutBasedOnReactExpirationTime-test.internal.js
│ │ │ ├── ReactExpiration-test.internal.js
│ │ │ ├── ReactFiberFundamental-test.internal.js
│ │ │ ├── ReactFiberHostContext-test.internal.js
│ │ │ ├── ReactFragment-test.js
│ │ │ ├── ReactHooks-test.internal.js
│ │ │ ├── ReactHooksWithNoopRenderer-test.internal.js
│ │ │ ├── ReactIncremental-test.internal.js
│ │ │ ├── ReactIncrementalErrorHandling-test.internal.js
│ │ │ ├── ReactIncrementalErrorLogging-test.js
│ │ │ ├── ReactIncrementalErrorReplay-test.internal.js
│ │ │ ├── ReactIncrementalErrorReplay-test.js
│ │ │ ├── ReactIncrementalPerf-test.internal.js
│ │ │ ├── ReactIncrementalReflection-test.internal.js
│ │ │ ├── ReactIncrementalScheduling-test.internal.js
│ │ │ ├── ReactIncrementalSideEffects-test.internal.js
│ │ │ ├── ReactIncrementalTriangle-test.internal.js
│ │ │ ├── ReactIncrementalUpdates-test.internal.js
│ │ │ ├── ReactIncrementalUpdatesMinimalism-test.js
│ │ │ ├── ReactLazy-test.internal.js
│ │ │ ├── ReactMemo-test.internal.js
│ │ │ ├── ReactNewContext-test.internal.js
│ │ │ ├── ReactNoopRendererAct-test.js
│ │ │ ├── ReactPersistent-test.js
│ │ │ ├── ReactPersistentUpdatesMinimalism-test.js
│ │ │ ├── ReactSchedulerIntegration-test.internal.js
│ │ │ ├── ReactScope-test.internal.js
│ │ │ ├── ReactSuspense-test.internal.js
│ │ │ ├── ReactSuspenseCallback-test.internal.js
│ │ │ ├── ReactSuspenseFuzz-test.internal.js
│ │ │ ├── ReactSuspenseList-test.internal.js
│ │ │ ├── ReactSuspensePlaceholder-test.internal.js
│ │ │ ├── ReactSuspenseWithNoopRenderer-test.internal.js
│ │ │ ├── ReactTopLevelFragment-test.js
│ │ │ ├── ReactTopLevelText-test.js
│ │ │ ├── ReactTracing-test.internal.js
│ │ │ └── __snapshots__
│ │ │ │ ├── ReactHooks-test.internal.js.snap
│ │ │ │ └── ReactIncrementalPerf-test.internal.js.snap
│ │ │ ├── forks
│ │ │ ├── ReactFiberErrorDialog.native.js
│ │ │ ├── ReactFiberErrorDialog.www.js
│ │ │ ├── ReactFiberHostConfig.art.js
│ │ │ ├── ReactFiberHostConfig.custom.js
│ │ │ ├── ReactFiberHostConfig.dom-browser.js
│ │ │ ├── ReactFiberHostConfig.dom.js
│ │ │ ├── ReactFiberHostConfig.fabric.js
│ │ │ ├── ReactFiberHostConfig.native.js
│ │ │ └── ReactFiberHostConfig.test.js
│ │ │ └── maxSigned31BitInt.js
│ ├── react-refresh
│ │ ├── README.md
│ │ ├── babel.js
│ │ ├── npm
│ │ │ ├── babel.js
│ │ │ └── runtime.js
│ │ ├── package.json
│ │ ├── runtime.js
│ │ └── src
│ │ │ ├── ReactFreshBabelPlugin.js
│ │ │ ├── ReactFreshRuntime.js
│ │ │ └── __tests__
│ │ │ ├── ReactFresh-test.js
│ │ │ ├── ReactFreshBabelPlugin-test.js
│ │ │ ├── ReactFreshIntegration-test.js
│ │ │ ├── ReactFreshMultipleRenderer-test.internal.js
│ │ │ └── __snapshots__
│ │ │ └── ReactFreshBabelPlugin-test.js.snap
│ ├── react-stream
│ │ ├── README.md
│ │ ├── index.js
│ │ ├── inline-typed.js
│ │ ├── inline.dom-browser.js
│ │ ├── inline.dom.js
│ │ ├── npm
│ │ │ └── index.js
│ │ ├── package.json
│ │ └── src
│ │ │ ├── ReactFizzFormatConfig.js
│ │ │ ├── ReactFizzHostConfig.js
│ │ │ ├── ReactFizzHostConfigBrowser.js
│ │ │ ├── ReactFizzHostConfigNode.js
│ │ │ ├── ReactFizzStreamer.js
│ │ │ ├── __tests__
│ │ │ └── ReactServer-test.js
│ │ │ └── forks
│ │ │ ├── ReactFizzFormatConfig.custom.js
│ │ │ ├── ReactFizzFormatConfig.dom-browser.js
│ │ │ ├── ReactFizzFormatConfig.dom.js
│ │ │ ├── ReactFizzHostConfig.custom.js
│ │ │ ├── ReactFizzHostConfig.dom-browser.js
│ │ │ └── ReactFizzHostConfig.dom.js
│ ├── react-test-renderer
│ │ ├── README.md
│ │ ├── index.js
│ │ ├── npm
│ │ │ ├── index.js
│ │ │ └── shallow.js
│ │ ├── package.json
│ │ ├── shallow.js
│ │ └── src
│ │ │ ├── ReactShallowRenderer.js
│ │ │ ├── ReactTestHostConfig.js
│ │ │ ├── ReactTestRenderer.js
│ │ │ ├── ReactTestRendererAct.js
│ │ │ └── __tests__
│ │ │ ├── ReactShallowRenderer-test.js
│ │ │ ├── ReactShallowRendererHooks-test.js
│ │ │ ├── ReactShallowRendererMemo-test.js
│ │ │ ├── ReactTestRenderer-test.internal.js
│ │ │ ├── ReactTestRenderer-test.js
│ │ │ ├── ReactTestRendererAct-test.js
│ │ │ ├── ReactTestRendererAsync-test.js
│ │ │ └── ReactTestRendererTraversal-test.js
│ ├── react
│ │ ├── README.md
│ │ ├── index.js
│ │ ├── npm
│ │ │ └── index.js
│ │ ├── package.json
│ │ └── src
│ │ │ ├── IsSomeRendererActing.js
│ │ │ ├── React.js
│ │ │ ├── ReactBaseClasses.js
│ │ │ ├── ReactBatchConfig.js
│ │ │ ├── ReactChildren.js
│ │ │ ├── ReactContext.js
│ │ │ ├── ReactCreateRef.js
│ │ │ ├── ReactCurrentBatchConfig.js
│ │ │ ├── ReactCurrentDispatcher.js
│ │ │ ├── ReactCurrentOwner.js
│ │ │ ├── ReactDebugCurrentFrame.js
│ │ │ ├── ReactElement.js
│ │ │ ├── ReactElementValidator.js
│ │ │ ├── ReactHooks.js
│ │ │ ├── ReactLazy.js
│ │ │ ├── ReactNoopUpdateQueue.js
│ │ │ ├── ReactSharedInternals.js
│ │ │ ├── __tests__
│ │ │ ├── ReactChildren-test.js
│ │ │ ├── ReactClassEquivalence-test.js
│ │ │ ├── ReactCoffeeScriptClass-test.coffee
│ │ │ ├── ReactContextValidator-test.js
│ │ │ ├── ReactCreateRef-test.js
│ │ │ ├── ReactDOMTracing-test.internal.js
│ │ │ ├── ReactES6Class-test.js
│ │ │ ├── ReactElement-test.js
│ │ │ ├── ReactElementClone-test.js
│ │ │ ├── ReactElementJSX-test.internal.js
│ │ │ ├── ReactElementValidator-test.internal.js
│ │ │ ├── ReactJSXElement-test.js
│ │ │ ├── ReactJSXElementValidator-test.js
│ │ │ ├── ReactProfiler-test.internal.js
│ │ │ ├── ReactProfilerDOM-test.internal.js
│ │ │ ├── ReactProfilerDevToolsIntegration-test.internal.js
│ │ │ ├── ReactPureComponent-test.js
│ │ │ ├── ReactStrictMode-test.internal.js
│ │ │ ├── ReactStrictMode-test.js
│ │ │ ├── ReactTypeScriptClass-test.ts
│ │ │ ├── __snapshots__
│ │ │ │ └── ReactProfiler-test.internal.js.snap
│ │ │ ├── createReactClassIntegration-test.internal.js
│ │ │ ├── createReactClassIntegration-test.js
│ │ │ ├── forwardRef-test.internal.js
│ │ │ ├── forwardRef-test.js
│ │ │ ├── onlyChild-test.js
│ │ │ └── testDefinitions
│ │ │ │ ├── PropTypes.d.ts
│ │ │ │ ├── React.d.ts
│ │ │ │ └── ReactDOM.d.ts
│ │ │ ├── forks
│ │ │ ├── ReactCurrentDispatcher.www.js
│ │ │ ├── ReactCurrentOwner.www.js
│ │ │ └── ReactSharedInternals.umd.js
│ │ │ ├── forwardRef.js
│ │ │ └── memo.js
│ ├── scheduler
│ │ ├── README.md
│ │ ├── index.js
│ │ ├── npm
│ │ │ ├── index.js
│ │ │ ├── tracing-profiling.js
│ │ │ ├── tracing.js
│ │ │ ├── umd
│ │ │ │ ├── scheduler-tracing.development.js
│ │ │ │ ├── scheduler-tracing.production.min.js
│ │ │ │ ├── scheduler-tracing.profiling.min.js
│ │ │ │ ├── scheduler.development.js
│ │ │ │ ├── scheduler.production.min.js
│ │ │ │ └── scheduler.profiling.min.js
│ │ │ └── unstable_mock.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── Scheduler.js
│ │ │ ├── SchedulerFeatureFlags.js
│ │ │ ├── SchedulerHostConfig.js
│ │ │ ├── SchedulerMinHeap.js
│ │ │ ├── SchedulerPriorities.js
│ │ │ ├── SchedulerProfiling.js
│ │ │ ├── Tracing.js
│ │ │ ├── TracingSubscriptions.js
│ │ │ ├── __tests__
│ │ │ │ ├── Scheduler-test.js
│ │ │ │ ├── SchedulerBrowser-test.internal.js
│ │ │ │ ├── SchedulerNoDOM-test.js
│ │ │ │ ├── SchedulerProfiling-test.js
│ │ │ │ ├── SchedulerRAFOld-test.internal.js
│ │ │ │ ├── SchedulerUMDBundle-test.internal.js
│ │ │ │ ├── Tracing-test.internal.js
│ │ │ │ ├── Tracing-test.js
│ │ │ │ └── TracingSubscriptions-test.internal.js
│ │ │ └── forks
│ │ │ │ ├── SchedulerFeatureFlags.www.js
│ │ │ │ ├── SchedulerHostConfig.default.js
│ │ │ │ └── SchedulerHostConfig.mock.js
│ │ ├── tracing.js
│ │ └── unstable_mock.js
│ ├── shared
│ │ ├── ExecutionEnvironment.js
│ │ ├── HostConfigWithNoHydration.js
│ │ ├── HostConfigWithNoMutation.js
│ │ ├── HostConfigWithNoPersistence.js
│ │ ├── ReactDOMTypes.js
│ │ ├── ReactElementType.js
│ │ ├── ReactError.js
│ │ ├── ReactErrorProd.js
│ │ ├── ReactErrorUtils.js
│ │ ├── ReactFeatureFlags.js
│ │ ├── ReactInstanceMap.js
│ │ ├── ReactLazyComponent.js
│ │ ├── ReactPortal.js
│ │ ├── ReactRootTags.js
│ │ ├── ReactSharedInternals.js
│ │ ├── ReactSideEffectTags.js
│ │ ├── ReactSymbols.js
│ │ ├── ReactTreeTraversal.js
│ │ ├── ReactTypes.js
│ │ ├── ReactVersion.js
│ │ ├── ReactWorkTags.js
│ │ ├── __tests__
│ │ │ ├── ReactDOMFrameScheduling-test.js
│ │ │ ├── ReactError-test.internal.js
│ │ │ ├── ReactErrorProd-test.internal.js
│ │ │ ├── ReactErrorUtils-test.internal.js
│ │ │ ├── ReactSymbols-test.internal.js
│ │ │ └── describeComponentFrame-test.js
│ │ ├── createEventResponder.js
│ │ ├── createFundamentalComponent.js
│ │ ├── createScope.js
│ │ ├── describeComponentFrame.js
│ │ ├── endsWith.js
│ │ ├── enqueueTask.js
│ │ ├── forks
│ │ │ ├── ReactFeatureFlags.native-fb.js
│ │ │ ├── ReactFeatureFlags.native-oss.js
│ │ │ ├── ReactFeatureFlags.persistent.js
│ │ │ ├── ReactFeatureFlags.readonly.js
│ │ │ ├── ReactFeatureFlags.test-renderer.js
│ │ │ ├── ReactFeatureFlags.test-renderer.www.js
│ │ │ ├── ReactFeatureFlags.www.js
│ │ │ ├── Scheduler.umd.js
│ │ │ ├── SchedulerTracing.umd.js
│ │ │ ├── invokeGuardedCallbackImpl.www.js
│ │ │ ├── lowPriorityWarningWithoutStack.www.js
│ │ │ ├── object-assign.umd.js
│ │ │ └── warningWithoutStack.www.js
│ │ ├── getComponentName.js
│ │ ├── hasBadMapPolyfill.js
│ │ ├── invariant.js
│ │ ├── invokeGuardedCallbackImpl.js
│ │ ├── isTextInputElement.js
│ │ ├── isValidElementType.js
│ │ ├── lowPriorityWarning.js
│ │ ├── lowPriorityWarningWithoutStack.js
│ │ ├── objectIs.js
│ │ ├── package.json
│ │ ├── shallowEqual.js
│ │ ├── warning.js
│ │ └── warningWithoutStack.js
│ └── use-subscription
│ │ ├── README.md
│ │ ├── index.js
│ │ ├── npm
│ │ └── index.js
│ │ ├── package.json
│ │ └── src
│ │ ├── __tests__
│ │ └── useSubscription-test.internal.js
│ │ └── useSubscription.js
├── scripts
│ ├── authors
│ ├── babel
│ │ ├── __tests__
│ │ │ ├── transform-prevent-infinite-loops-test.js
│ │ │ └── wrap-warning-with-env-check-test.js
│ │ ├── transform-object-assign-require.js
│ │ ├── transform-prevent-infinite-loops.js
│ │ └── wrap-warning-with-env-check.js
│ ├── bench
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── benchmark.js
│ │ ├── benchmarks
│ │ │ ├── hacker-news
│ │ │ │ ├── benchmark.js
│ │ │ │ ├── build.js
│ │ │ │ ├── generate.js
│ │ │ │ ├── grayarrow.gif
│ │ │ │ ├── index.html
│ │ │ │ ├── logo.png
│ │ │ │ ├── style.css
│ │ │ │ └── top-stories.js
│ │ │ ├── pe-class-components
│ │ │ │ ├── benchmark.js
│ │ │ │ ├── build.js
│ │ │ │ └── index.html
│ │ │ ├── pe-functional-components
│ │ │ │ ├── benchmark.js
│ │ │ │ ├── build.js
│ │ │ │ └── index.html
│ │ │ └── pe-no-components
│ │ │ │ ├── benchmark.js
│ │ │ │ ├── build.js
│ │ │ │ └── index.html
│ │ ├── build.js
│ │ ├── package.json
│ │ ├── runner.js
│ │ ├── server.js
│ │ ├── stats.js
│ │ └── yarn.lock
│ ├── circleci
│ │ ├── add_build_info_json.sh
│ │ ├── bench.sh
│ │ ├── check_license.sh
│ │ ├── check_minified_errors.sh
│ │ ├── check_modules.sh
│ │ ├── pack_and_store_artifact.sh
│ │ ├── set_up_github_keys.sh
│ │ ├── test_coverage.sh
│ │ ├── test_print_warnings.sh
│ │ ├── update_package_versions.sh
│ │ └── upload_build.sh
│ ├── error-codes
│ │ ├── README.md
│ │ ├── Types.js
│ │ ├── __tests__
│ │ │ ├── __snapshots__
│ │ │ │ └── transform-error-messages.js.snap
│ │ │ ├── invertObject-test.js
│ │ │ └── transform-error-messages.js
│ │ ├── codes.json
│ │ ├── extract-errors.js
│ │ ├── invertObject.js
│ │ └── transform-error-messages.js
│ ├── eslint-rules
│ │ ├── README.md
│ │ ├── __tests__
│ │ │ ├── no-primitive-constructors-test.internal.js
│ │ │ ├── no-to-warn-dev-within-to-throw-test.internal.js
│ │ │ └── warning-and-invariant-args-test.internal.js
│ │ ├── index.js
│ │ ├── no-primitive-constructors.js
│ │ ├── no-to-warn-dev-within-to-throw.js
│ │ ├── package.json
│ │ └── warning-and-invariant-args.js
│ ├── eslint
│ │ └── index.js
│ ├── flow
│ │ ├── config
│ │ │ └── flowconfig
│ │ ├── createFlowConfigs.js
│ │ ├── environment.js
│ │ ├── react-devtools.js
│ │ ├── react-native-host-hooks.js
│ │ └── runFlow.js
│ ├── git
│ │ └── pre-commit
│ ├── jest
│ │ ├── config.base.js
│ │ ├── config.build-devtools.js
│ │ ├── config.build.js
│ │ ├── config.source-persistent.js
│ │ ├── config.source.js
│ │ ├── dont-run-jest-directly.js
│ │ ├── matchers
│ │ │ ├── __tests__
│ │ │ │ └── toWarnDev-test.js
│ │ │ ├── interactionTracingMatchers.js
│ │ │ ├── profilerMatchers.js
│ │ │ ├── reactTestMatchers.js
│ │ │ ├── schedulerTestMatchers.js
│ │ │ └── toWarnDev.js
│ │ ├── noHaste.js
│ │ ├── preprocessor.js
│ │ ├── setupEnvironment.js
│ │ ├── setupHostConfigs.js
│ │ ├── setupTests.build.js
│ │ ├── setupTests.js
│ │ ├── setupTests.persistent.js
│ │ ├── shouldIgnoreConsoleError.js
│ │ ├── spec-equivalence-reporter
│ │ │ └── setupTests.js
│ │ └── typescript
│ │ │ ├── jest.d.ts
│ │ │ └── preprocessor.js
│ ├── perf-counters
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── binding.gyp
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src
│ │ │ ├── hardware-counter.cpp
│ │ │ ├── hardware-counter.h
│ │ │ ├── jsc-perf.cpp
│ │ │ ├── perf-counters.cpp
│ │ │ ├── portability.h
│ │ │ ├── thread-local.cpp
│ │ │ └── thread-local.h
│ ├── prettier
│ │ └── index.js
│ ├── print-warnings
│ │ ├── README.md
│ │ └── print-warnings.js
│ ├── release
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── ci-add-build-info-json.js
│ │ ├── ci-update-package-versions.js
│ │ ├── create-canary-commands
│ │ │ ├── add-build-info-json.js
│ │ │ ├── build-artifacts.js
│ │ │ ├── confirm-automated-testing.js
│ │ │ ├── copy-repo-to-temp-directory.js
│ │ │ ├── npm-pack-and-unpack.js
│ │ │ └── update-version-numbers.js
│ │ ├── create-canary.js
│ │ ├── package.json
│ │ ├── prepare-canary-commands
│ │ │ ├── check-environment-variables.js
│ │ │ ├── download-build-artifacts.js
│ │ │ ├── get-latest-master-build-number.js
│ │ │ └── parse-params.js
│ │ ├── prepare-canary.js
│ │ ├── prepare-stable-commands
│ │ │ ├── check-out-packages.js
│ │ │ ├── confirm-stable-version-numbers.js
│ │ │ ├── get-latest-canary-version.js
│ │ │ ├── guess-stable-version-numbers.js
│ │ │ ├── parse-params.js
│ │ │ └── update-stable-version-numbers.js
│ │ ├── prepare-stable.js
│ │ ├── publish-commands
│ │ │ ├── check-npm-permissions.js
│ │ │ ├── confirm-skipped-packages.js
│ │ │ ├── confirm-version-and-tags.js
│ │ │ ├── download-error-codes-from-ci.js
│ │ │ ├── parse-params.js
│ │ │ ├── print-follow-up-instructions.js
│ │ │ ├── prompt-for-otp.js
│ │ │ ├── publish-to-npm.js
│ │ │ ├── update-stable-version-numbers.js
│ │ │ ├── validate-skip-packages.js
│ │ │ └── validate-tags.js
│ │ ├── publish.js
│ │ ├── shared-commands
│ │ │ ├── print-prerelease-summary.js
│ │ │ ├── test-packaging-fixture.js
│ │ │ └── test-tracing-fixture.js
│ │ ├── snapshot-test.js
│ │ ├── snapshot-test.snapshot
│ │ ├── theme.js
│ │ ├── utils.js
│ │ └── yarn.lock
│ ├── rollup
│ │ ├── build.js
│ │ ├── bundles.js
│ │ ├── consolidateBundleSizes.js
│ │ ├── forks.js
│ │ ├── modules.js
│ │ ├── packaging.js
│ │ ├── plugins
│ │ │ ├── closure-plugin.js
│ │ │ ├── sizes-plugin.js
│ │ │ ├── strip-unused-imports.js
│ │ │ └── use-forks-plugin.js
│ │ ├── shims
│ │ │ ├── facebook-www
│ │ │ │ ├── ReactBrowserEventEmitter_DO_NOT_USE.js
│ │ │ │ ├── ReactDOMComponentTree_DO_NOT_USE.js
│ │ │ │ ├── ReactInstanceMap_DO_NOT_USE.js
│ │ │ │ ├── findDOMNode.js
│ │ │ │ └── renderSubtreeIntoContainer_DO_NOT_USE.js
│ │ │ └── react-native
│ │ │ │ ├── NativeMethodsMixin.js
│ │ │ │ ├── ReactFabric.js
│ │ │ │ ├── ReactFeatureFlags.js
│ │ │ │ ├── ReactNative.js
│ │ │ │ ├── ReactNativeViewConfigRegistry.js
│ │ │ │ └── createReactNativeComponentClass.js
│ │ ├── stats.js
│ │ ├── sync.js
│ │ ├── utils.js
│ │ ├── validate
│ │ │ ├── eslintignore
│ │ │ ├── eslintrc.cjs.js
│ │ │ ├── eslintrc.fb.js
│ │ │ ├── eslintrc.rn.js
│ │ │ ├── eslintrc.umd.js
│ │ │ └── index.js
│ │ └── wrappers.js
│ ├── shared
│ │ ├── __tests__
│ │ │ └── evalToString-test.js
│ │ ├── evalToString.js
│ │ ├── inlinedHostConfigs.js
│ │ ├── listChangedFiles.js
│ │ └── pathsByLanguageVersion.js
│ └── tasks
│ │ ├── danger.js
│ │ ├── eslint.js
│ │ ├── flow-ci.js
│ │ ├── flow.js
│ │ ├── linc.js
│ │ └── version-check.js
└── yarn.lock
├── serviceWorker.js
└── setupTests.js
/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled class file
2 | *.class
3 | /node_modules
4 | /.DS_Store
5 | # Log file
6 | *.log
7 |
8 | # BlueJ files
9 | *.ctxt
10 |
11 | # Mobile Tools for Java (J2ME)
12 | .mtj.tmp/
13 |
14 | # Package Files #
15 | *.jar
16 | *.war
17 | *.nar
18 | *.ear
19 | *.zip
20 | *.tar.gz
21 | *.rar
22 |
23 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
24 | hs_err_pid*
25 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # ReactSourceCodeAnalyze
2 | React 源码分析项目
3 |
--------------------------------------------------------------------------------
/source-code-demo/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # production
12 | /build
13 |
14 | # misc
15 | .DS_Store
16 | .env.local
17 | .env.development.local
18 | .env.test.local
19 | .env.production.local
20 |
21 | npm-debug.log*
22 | yarn-debug.log*
23 | yarn-error.log*
24 |
--------------------------------------------------------------------------------
/source-code-demo/config/jest/cssTransform.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | // This is a custom Jest transformer turning style imports into empty objects.
4 | // http://facebook.github.io/jest/docs/en/webpack.html
5 |
6 | module.exports = {
7 | process() {
8 | return 'module.exports = {};';
9 | },
10 | getCacheKey() {
11 | // The output is always the same.
12 | return 'cssTransform';
13 | },
14 | };
15 |
--------------------------------------------------------------------------------
/source-code-demo/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fchangjun/ReactSourceCodeAnalyze/b1dbf2b6e635dc9ee3478b6f403978ef7efd1e9b/source-code-demo/public/favicon.ico
--------------------------------------------------------------------------------
/source-code-demo/public/logo192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fchangjun/ReactSourceCodeAnalyze/b1dbf2b6e635dc9ee3478b6f403978ef7efd1e9b/source-code-demo/public/logo192.png
--------------------------------------------------------------------------------
/source-code-demo/public/logo512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fchangjun/ReactSourceCodeAnalyze/b1dbf2b6e635dc9ee3478b6f403978ef7efd1e9b/source-code-demo/public/logo512.png
--------------------------------------------------------------------------------
/source-code-demo/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React App",
3 | "name": "Create React App Sample",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | },
10 | {
11 | "src": "logo192.png",
12 | "type": "image/png",
13 | "sizes": "192x192"
14 | },
15 | {
16 | "src": "logo512.png",
17 | "type": "image/png",
18 | "sizes": "512x512"
19 | }
20 | ],
21 | "start_url": ".",
22 | "display": "standalone",
23 | "theme_color": "#000000",
24 | "background_color": "#ffffff"
25 | }
26 |
--------------------------------------------------------------------------------
/source-code-demo/public/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/source-code-demo/src/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { render } from '@testing-library/react';
3 | import App from './App';
4 |
5 | test('renders learn react link', () => {
6 | const { getByText } = render(
If you're seeing this message, it means you haven't generated the bundle file for this example. Try running:
10 | 11 |
12 | npm install
13 | npm run build
14 |
15 |
16 | then reload the page.
17 |{description}
} 17 | 18 | {children} 19 |chrome://extensions/
ReactDevTools
)about:debugging
manifest.json
file inside of the extracted extension folder (ReactDevTools
)
18 | This page doesn’t appear to be using React.
19 |
20 | If this seems wrong, follow the troubleshooting instructions.
21 |
18 | This page is using the production build of React. ✅
19 |
20 | Open the developer tools, and "Components" and "Profiler" tabs will appear to the right.
21 |
{children}
; 21 | } 22 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-devtools-shell/src/app/styles.css: -------------------------------------------------------------------------------- 1 | body { 2 | /* GitHub.com frontend fonts */ 3 | font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, 4 | sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol; 5 | font-size: 14px; 6 | line-height: 1.5; 7 | } 8 | 9 | h1 { 10 | font-size: 1.5rem; 11 | font-weight: bold; 12 | margin-bottom: 0.5rem; 13 | } 14 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-devtools/icons/icon128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fchangjun/ReactSourceCodeAnalyze/b1dbf2b6e635dc9ee3478b6f403978ef7efd1e9b/source-code-demo/src/react/packages/react-devtools/icons/icon128.png -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-devtools/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | const {connectToDevTools} = require('react-devtools-core/backend'); 11 | 12 | // Connect immediately with default options. 13 | // If you need more control, use `react-devtools-core` directly instead of `react-devtools`. 14 | connectToDevTools(); 15 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/index.fb.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | 'use strict'; 9 | 10 | const ReactDOMFB = require('./src/client/ReactDOMFB'); 11 | 12 | // TODO: decide on the top-level export form. 13 | // This is hacky but makes it work with both Rollup and Jest. 14 | module.exports = ReactDOMFB.default || ReactDOMFB; 15 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | const ReactDOM = require('./src/client/ReactDOM'); 13 | 14 | // TODO: decide on the top-level export form. 15 | // This is hacky but makes it work with both Rollup and Jest. 16 | module.exports = ReactDOM.default || ReactDOM; 17 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/npm/server.browser.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/react-dom-server.browser.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/react-dom-server.browser.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/npm/server.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = require('./server.node'); 4 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/npm/server.node.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/react-dom-server.node.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/react-dom-server.node.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/npm/test-utils.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/react-dom-test-utils.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/react-dom-test-utils.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/npm/unstable-fizz.browser.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/react-dom-unstable-fizz.browser.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/react-dom-unstable-fizz.browser.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/npm/unstable-fizz.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = require('./unstable-fizz.node'); 4 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/npm/unstable-fizz.node.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/react-dom-unstable-fizz.node.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/react-dom-unstable-fizz.node.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/npm/unstable-native-dependencies.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/react-dom-unstable-native-dependencies.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/react-dom-unstable-native-dependencies.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/server.browser.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | const ReactDOMServer = require('./src/server/ReactDOMServerBrowser'); 13 | 14 | // TODO: decide on the top-level export form. 15 | // This is hacky but makes it work with both Rollup and Jest 16 | module.exports = ReactDOMServer.default || ReactDOMServer; 17 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/server.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | module.exports = require('./server.node'); 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/server.node.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | const ReactDOMServer = require('./src/server/ReactDOMServerNode'); 13 | 14 | // TODO: decide on the top-level export form. 15 | // This is hacky but makes it work with both Rollup and Jest 16 | module.exports = ReactDOMServer.default || ReactDOMServer; 17 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/src/client/getActiveElement.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | export default function getActiveElement(doc: ?Document): ?Element { 11 | doc = doc || (typeof document !== 'undefined' ? document : undefined); 12 | if (typeof doc === 'undefined') { 13 | return null; 14 | } 15 | try { 16 | return doc.activeElement || doc.body; 17 | } catch (e) { 18 | return doc.body; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/src/events/SyntheticCompositionEvent.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | import SyntheticEvent from 'legacy-events/SyntheticEvent'; 9 | 10 | /** 11 | * @interface Event 12 | * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents 13 | */ 14 | const SyntheticCompositionEvent = SyntheticEvent.extend({ 15 | data: null, 16 | }); 17 | 18 | export default SyntheticCompositionEvent; 19 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/src/events/SyntheticDragEvent.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | import SyntheticMouseEvent from './SyntheticMouseEvent'; 9 | 10 | /** 11 | * @interface DragEvent 12 | * @see http://www.w3.org/TR/DOM-Level-3-Events/ 13 | */ 14 | const SyntheticDragEvent = SyntheticMouseEvent.extend({ 15 | dataTransfer: null, 16 | }); 17 | 18 | export default SyntheticDragEvent; 19 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/src/events/SyntheticFocusEvent.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | import SyntheticUIEvent from './SyntheticUIEvent'; 9 | 10 | /** 11 | * @interface FocusEvent 12 | * @see http://www.w3.org/TR/DOM-Level-3-Events/ 13 | */ 14 | const SyntheticFocusEvent = SyntheticUIEvent.extend({ 15 | relatedTarget: null, 16 | }); 17 | 18 | export default SyntheticFocusEvent; 19 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/src/events/SyntheticInputEvent.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | import SyntheticEvent from 'legacy-events/SyntheticEvent'; 9 | 10 | /** 11 | * @interface Event 12 | * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105 13 | * /#events-inputevents 14 | */ 15 | const SyntheticInputEvent = SyntheticEvent.extend({ 16 | data: null, 17 | }); 18 | 19 | export default SyntheticInputEvent; 20 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/src/events/SyntheticUIEvent.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | import SyntheticEvent from 'legacy-events/SyntheticEvent'; 9 | 10 | const SyntheticUIEvent = SyntheticEvent.extend({ 11 | view: null, 12 | detail: null, 13 | }); 14 | 15 | export default SyntheticUIEvent; 16 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/src/shared/HTMLNodeType.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | /** 11 | * HTML nodeType values that represent the type of the node 12 | */ 13 | 14 | export const ELEMENT_NODE = 1; 15 | export const TEXT_NODE = 3; 16 | export const COMMENT_NODE = 8; 17 | export const DOCUMENT_NODE = 9; 18 | export const DOCUMENT_FRAGMENT_NODE = 11; 19 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/src/shared/checkReact.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | import React from 'react'; 11 | import invariant from 'shared/invariant'; 12 | 13 | invariant( 14 | React, 15 | 'ReactDOM was loaded before React. Make sure you load ' + 16 | 'the React package before loading ReactDOM.', 17 | ); 18 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/src/shared/voidElementTags.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | import omittedCloseTags from './omittedCloseTags'; 9 | 10 | // For HTML, certain tags cannot have children. This has the same purpose as 11 | // `omittedCloseTags` except that `menuitem` should still have its closing tag. 12 | 13 | const voidElementTags = { 14 | menuitem: true, 15 | ...omittedCloseTags, 16 | }; 17 | 18 | export default voidElementTags; 19 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/test-utils.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | const ReactTestUtils = require('./src/test-utils/ReactTestUtils'); 13 | 14 | // TODO: decide on the top-level export form. 15 | // This is hacky but makes it work with both Rollup and Jest. 16 | module.exports = ReactTestUtils.default || ReactTestUtils; 17 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/unstable-fizz.browser.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | const ReactDOMFizzServerBrowser = require('./src/server/ReactDOMFizzServerBrowser'); 13 | 14 | // TODO: decide on the top-level export form. 15 | // This is hacky but makes it work with both Rollup and Jest 16 | module.exports = ReactDOMFizzServerBrowser.default || ReactDOMFizzServerBrowser; 17 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/unstable-fizz.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | module.exports = require('./unstable-fizz.node'); 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/unstable-fizz.node.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | const ReactDOMFizzServerNode = require('./src/server/ReactDOMFizzServerNode'); 13 | 14 | // TODO: decide on the top-level export form. 15 | // This is hacky but makes it work with both Rollup and Jest 16 | module.exports = ReactDOMFizzServerNode.default || ReactDOMFizzServerNode; 17 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-dom/unstable-native-dependencies.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | module.exports = require('./src/unstable-native-dependencies/ReactDOMUnstableNativeDependencies'); 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/README.md: -------------------------------------------------------------------------------- 1 | # `react-interactions` 2 | 3 | This package is experimental. It is intended for use with the experimental React 4 | flags for internal testing. -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/accessibility/focus-control.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | module.exports = require('./src/FocusControl'); 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/accessibility/focus-list.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | module.exports = require('./src/FocusList'); 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/accessibility/focus-manager.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | module.exports = require('./src/FocusManager'); 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/accessibility/focus-table.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | module.exports = require('./src/FocusTable'); 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/accessibility/tabbable-scope.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | module.exports = require('./src/TabbableScope'); 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/events/context-menu.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | module.exports = require('./src/dom/ContextMenu'); 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/events/drag.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | module.exports = require('./src/dom/Drag'); 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/events/focus.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | module.exports = require('./src/dom/Focus'); 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/events/hover.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | module.exports = require('./src/dom/Hover'); 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/events/input.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | module.exports = require('./src/dom/Input'); 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/events/keyboard.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | module.exports = require('./src/dom/Keyboard'); 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/events/press-legacy.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | module.exports = require('./src/dom/PressLegacy'); 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/events/press.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | module.exports = require('./src/dom/Press'); 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/events/scroll.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | module.exports = require('./src/dom/Scroll'); 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/events/swipe.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | module.exports = require('./src/dom/Swipe'); 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/events/tap.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | module.exports = require('./src/dom/Tap'); 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/npm/drag.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/react-interactions-events/drag.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/react-interactions-events/drag.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/npm/focus.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/react-interactions-events/focus.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/react-interactions-events/focus.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/npm/hover.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/react-interactions-events/hover.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/react-interactions-events/hover.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/npm/input.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/react-interactions-events/input.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/react-interactions-events/input.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/npm/keyboard.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/react-interactions-events/keyboard.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/react-interactions-events/keyboard.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/npm/press-legacy.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/react-interactions-events/press-legacy.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/react-interactions-events/press-legacy.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/npm/press.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/react-interactions-events/press.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/react-interactions-events/press.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/npm/scroll.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/react-interactions-events/scroll.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/react-interactions-events/scroll.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/npm/swipe.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/react-interactions-events/swipe.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/react-interactions-events/swipe.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-interactions/npm/tap.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/react-interactions-events/tap.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/react-interactions-events/tap.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-is/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | export * from './src/ReactIs'; 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-is/npm/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/react-is.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/react-is.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-native-renderer/fabric.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | const ReactFabric = require('./src/ReactFabric'); 13 | 14 | // TODO: decide on the top-level export form. 15 | // This is hacky but makes it work with both Rollup and Jest. 16 | module.exports = ReactFabric.default || ReactFabric; 17 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-native-renderer/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | const ReactNativeRenderer = require('./src/ReactNativeRenderer'); 13 | 14 | // TODO: decide on the top-level export form. 15 | // This is hacky but makes it work with both Rollup and Jest. 16 | module.exports = ReactNativeRenderer.default || ReactNativeRenderer; 17 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-native-renderer/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-native-renderer", 3 | "version": "16.0.0", 4 | "private": true, 5 | "repository": { 6 | "type" : "git", 7 | "url" : "https://github.com/facebook/react.git", 8 | "directory": "packages/react-native-renderer" 9 | }, 10 | "dependencies": { 11 | "object-assign": "^4.1.1", 12 | "prop-types": "^15.6.2", 13 | "scheduler": "^0.11.0" 14 | }, 15 | "peerDependencies": { 16 | "react": "^16.0.0" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-native-renderer/src/ReactNativeEventPluginOrder.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | const ReactNativeEventPluginOrder = [ 11 | 'ResponderEventPlugin', 12 | 'ReactNativeBridgeEventPlugin', 13 | ]; 14 | 15 | export default ReactNativeEventPluginOrder; 16 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-native-renderer/src/__mocks__/react-native/Libraries/ReactPrivate/BatchedBridge.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | 'use strict'; 9 | 10 | const BatchedBridge = { 11 | registerCallableModule: jest.fn(), 12 | }; 13 | 14 | module.exports = BatchedBridge; 15 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-native-renderer/src/__mocks__/react-native/Libraries/ReactPrivate/ExceptionsManager.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | 'use strict'; 9 | 10 | module.exports = { 11 | handleException: jest.fn(), 12 | }; 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-native-renderer/src/__mocks__/react-native/Libraries/ReactPrivate/Platform.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 'use strict'; 8 | 9 | module.exports = { 10 | OS: 'ios', 11 | }; 12 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-native-renderer/src/__mocks__/react-native/Libraries/ReactPrivate/RCTEventEmitter.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | 'use strict'; 9 | 10 | const RCTEventEmitter = { 11 | register: jest.fn(), 12 | }; 13 | 14 | module.exports = RCTEventEmitter; 15 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-native-renderer/src/__mocks__/react-native/Libraries/ReactPrivate/ReactFiberErrorDialog.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow strict 8 | */ 9 | 10 | module.exports = { 11 | showErrorDialog: jest.fn(), 12 | }; 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-native-renderer/src/__mocks__/react-native/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow strict 8 | */ 9 | 10 | 'use strict'; 11 | 12 | // Noop 13 | 14 | // TODO #10932517: Move all initialization callers back into react-native 15 | 16 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-native-renderer/src/__mocks__/react-native/Libraries/ReactPrivate/TextInputState.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | 'use strict'; 9 | 10 | // Mock of the Native Hooks 11 | // TODO: Should this move into the components themselves? E.g. focusable 12 | 13 | const TextInputState = {}; 14 | 15 | module.exports = TextInputState; 16 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-native-renderer/src/__mocks__/react-native/Libraries/ReactPrivate/deepFreezeAndThrowOnMutationInDev.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | 'use strict'; 9 | 10 | // TODO: move into react or fbjs 11 | 12 | const deepFreezeAndThrowOnMutationInDev = function() {}; 13 | 14 | module.exports = deepFreezeAndThrowOnMutationInDev; 15 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-native-renderer/src/__mocks__/react-native/Libraries/ReactPrivate/flattenStyle.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | 'use strict'; 9 | 10 | // TODO: Move flattenStyle into react 11 | 12 | const flattenStyle = function() {}; 13 | 14 | module.exports = flattenStyle; 15 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-native-renderer/src/__tests__/__snapshots__/ReactNativeEvents-test.internal.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`fails if unknown/unsupported event types are dispatched 1`] = ` 4 | "hello
0bye
"`; 4 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-reconciler/src/forks/ReactFiberHostConfig.art.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | export * from 'react-art/src/ReactARTHostConfig'; 11 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-reconciler/src/forks/ReactFiberHostConfig.dom-browser.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | export * from 'react-dom/src/client/ReactDOMHostConfig'; 11 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-reconciler/src/forks/ReactFiberHostConfig.dom.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | export * from 'react-dom/src/client/ReactDOMHostConfig'; 11 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-reconciler/src/forks/ReactFiberHostConfig.fabric.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | export * from 'react-native-renderer/src/ReactFabricHostConfig'; 11 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-reconciler/src/forks/ReactFiberHostConfig.native.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | export * from 'react-native-renderer/src/ReactNativeHostConfig'; 11 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-reconciler/src/forks/ReactFiberHostConfig.test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | export * from 'react-test-renderer/src/ReactTestHostConfig'; 11 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-reconciler/src/maxSigned31BitInt.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | // Max 31 bit integer. The max integer size in V8 for 32-bit systems. 11 | // Math.pow(2, 30) - 1 12 | // 0b111111111111111111111111111111 13 | export default 1073741823; 14 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-refresh/README.md: -------------------------------------------------------------------------------- 1 | # react-refresh 2 | 3 | This is an experimental package for hot reloading. 4 | 5 | **Its API is not as stable as that of React, React Native, or React DOM, and does not follow the common versioning scheme.** 6 | 7 | **Use it at your own risk.** 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-refresh/babel.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | 'use strict'; 9 | 10 | const ReactFreshBabelPlugin = require('./src/ReactFreshBabelPlugin'); 11 | 12 | // This is hacky but makes it work with both Rollup and Jest. 13 | module.exports = ReactFreshBabelPlugin.default || ReactFreshBabelPlugin; 14 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-refresh/npm/babel.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/react-refresh-babel.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/react-refresh-babel.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-refresh/npm/runtime.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/react-refresh-runtime.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/react-refresh-runtime.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-refresh/runtime.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | 'use strict'; 9 | 10 | const ReactFreshRuntime = require('./src/ReactFreshRuntime'); 11 | 12 | // This is hacky but makes it work with both Rollup and Jest. 13 | module.exports = ReactFreshRuntime.default || ReactFreshRuntime; 14 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-stream/inline.dom-browser.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | // This file intentionally does *not* have the Flow annotation. 9 | // Don't add it. See `./inline-typed.js` for an explanation. 10 | 11 | export * from './src/ReactFizzStreamer'; 12 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-stream/inline.dom.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | // This file intentionally does *not* have the Flow annotation. 9 | // Don't add it. See `./inline-typed.js` for an explanation. 10 | 11 | export * from './src/ReactFizzStreamer'; 12 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-stream/npm/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/react-stream.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/react-stream.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-stream/src/forks/ReactFizzFormatConfig.dom-browser.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | export * from 'react-dom/src/server/ReactDOMFizzServerFormatConfig'; 11 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-stream/src/forks/ReactFizzFormatConfig.dom.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | export * from 'react-dom/src/server/ReactDOMFizzServerFormatConfig'; 11 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-stream/src/forks/ReactFizzHostConfig.dom-browser.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | export * from '../ReactFizzHostConfigBrowser'; 11 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-stream/src/forks/ReactFizzHostConfig.dom.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | export * from '../ReactFizzHostConfigNode'; 11 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-test-renderer/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | const ReactTestRenderer = require('./src/ReactTestRenderer'); 13 | 14 | // TODO: decide on the top-level export form. 15 | // This is hacky but makes it work with both Rollup and Jest. 16 | module.exports = ReactTestRenderer.default || ReactTestRenderer; 17 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-test-renderer/npm/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/react-test-renderer.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/react-test-renderer.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-test-renderer/npm/shallow.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/react-test-renderer-shallow.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/react-test-renderer-shallow.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react-test-renderer/shallow.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | const ReactShallowRenderer = require('./src/ReactShallowRenderer'); 13 | 14 | // TODO: decide on the top-level export form. 15 | // This is hacky but makes it work with both Rollup and Jest. 16 | module.exports = ReactShallowRenderer.default || ReactShallowRenderer; 17 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | const React = require('./src/React'); 13 | console.log('源码测试',React) 14 | // TODO: decide on the top-level export form. 15 | // This is hacky but makes it work with both Rollup and Jest. 16 | module.exports = React.default || React; 17 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react/npm/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/react.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/react.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react/src/IsSomeRendererActing.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | /** 11 | * Used by act() to track whether you're inside an act() scope. 12 | */ 13 | 14 | const IsSomeRendererActing = { 15 | current: (false: boolean), 16 | }; 17 | export default IsSomeRendererActing; 18 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react/src/ReactCreateRef.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * @flow 7 | */ 8 | 9 | import type {RefObject} from 'shared/ReactTypes'; 10 | 11 | // an immutable object with a single mutable value 12 | export function createRef(): RefObject { 13 | const refObject = { 14 | current: null, 15 | }; 16 | if (__DEV__) { 17 | Object.seal(refObject); 18 | } 19 | return refObject; 20 | } 21 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react/src/ReactCurrentDispatcher.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | import type {Dispatcher} from 'react-reconciler/src/ReactFiberHooks'; 11 | 12 | /** 13 | * Keeps track of the current dispatcher. 14 | */ 15 | const ReactCurrentDispatcher = { 16 | /** 17 | * @internal 18 | * @type {ReactComponent} 19 | */ 20 | current: (null: null | Dispatcher), 21 | }; 22 | 23 | export default ReactCurrentDispatcher; 24 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react/src/__tests__/testDefinitions/PropTypes.d.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | /** 9 | * TypeScript Definition File for React. 10 | * 11 | * Full type definitions are not yet officially supported. These are mostly 12 | * just helpers for the unit test. 13 | */ 14 | 15 | declare module 'prop-types' { 16 | export let string : any; 17 | } 18 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react/src/forks/ReactCurrentDispatcher.www.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | export default require('ReactCurrentDispatcher'); 9 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/react/src/forks/ReactCurrentOwner.www.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | export default require('ReactCurrentOwner'); 9 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/scheduler/README.md: -------------------------------------------------------------------------------- 1 | # `scheduler` 2 | 3 | This is a package for cooperative scheduling in a browser environment. It is currently used internally by React, but we plan to make it more generic. 4 | 5 | The public API for this package is not yet finalized. 6 | 7 | ### Thanks 8 | 9 | The React team thanks [Anton Podviaznikov](https://podviaznikov.com/) for donating the `scheduler` package name. 10 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/scheduler/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | 'use strict'; 9 | 10 | export * from './src/Scheduler'; 11 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/scheduler/npm/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/scheduler.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/scheduler.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/scheduler/npm/tracing-profiling.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/scheduler-tracing.profiling.min.js'); 5 | } else { 6 | module.exports = require('./cjs/scheduler-tracing.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/scheduler/npm/tracing.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/scheduler-tracing.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/scheduler-tracing.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/scheduler/npm/unstable_mock.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/scheduler-unstable_mock.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/scheduler-unstable_mock.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/scheduler/src/SchedulerFeatureFlags.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | */ 8 | 9 | export const enableSchedulerDebugging = false; 10 | export const enableIsInputPending = false; 11 | export const enableMessageLoopImplementation = true; 12 | export const enableProfiling = __PROFILE__; 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/scheduler/src/SchedulerHostConfig.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | throw new Error('This module must be shimmed by a specific build.'); 11 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/scheduler/src/SchedulerPriorities.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | export type PriorityLevel = 0 | 1 | 2 | 3 | 4 | 5; 11 | 12 | // TODO: Use symbols? 13 | export const NoPriority = 0; 14 | export const ImmediatePriority = 1; 15 | export const UserBlockingPriority = 2; 16 | export const NormalPriority = 3; 17 | export const LowPriority = 4; 18 | export const IdlePriority = 5; 19 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/scheduler/src/forks/SchedulerFeatureFlags.www.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | */ 8 | 9 | export const { 10 | enableIsInputPending, 11 | enableSchedulerDebugging, 12 | enableProfiling: enableProfilingFeatureFlag, 13 | } = require('SchedulerFeatureFlags'); 14 | 15 | export const enableProfiling = __PROFILE__ && enableProfilingFeatureFlag; 16 | export const enableMessageLoopImplementation = true; 17 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/scheduler/tracing.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | export * from './src/Tracing'; 13 | export * from './src/TracingSubscriptions'; 14 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/scheduler/unstable_mock.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | 'use strict'; 9 | 10 | export * from './src/Scheduler'; 11 | 12 | export { 13 | unstable_flushAllWithoutAsserting, 14 | unstable_flushNumberOfYields, 15 | unstable_flushExpired, 16 | unstable_clearYields, 17 | unstable_flushUntilNextPaint, 18 | unstable_flushAll, 19 | unstable_yieldValue, 20 | unstable_advanceTime, 21 | } from './src/SchedulerHostConfig.js'; 22 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/shared/ExecutionEnvironment.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | export const canUseDOM: boolean = !!( 11 | typeof window !== 'undefined' && 12 | typeof window.document !== 'undefined' && 13 | typeof window.document.createElement !== 'undefined' 14 | ); 15 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/shared/ReactError.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | */ 8 | 9 | // Do not require this module directly! Use normal `invariant` calls with 10 | // template literal strings. The messages will be converted to ReactError during 11 | // build, and in production they will be minified. 12 | 13 | function ReactError(error) { 14 | error.name = 'Invariant Violation'; 15 | return error; 16 | } 17 | 18 | export default ReactError; 19 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/shared/ReactRootTags.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | export type RootTag = 0 | 1 | 2; 11 | 12 | export const LegacyRoot = 0; 13 | export const BatchedRoot = 1; 14 | export const ConcurrentRoot = 2; 15 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/shared/ReactVersion.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | 'use strict'; 9 | 10 | // TODO: this is special because it gets imported during build. 11 | module.exports = '16.8.6'; 12 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/shared/endsWith.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | export default function endsWith(subject: string, search: string): boolean { 11 | const length = subject.length; 12 | return subject.substring(length - search.length, length) === search; 13 | } 14 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/shared/forks/ReactFeatureFlags.readonly.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | // This is only used by bundle tests so they can *read* the default feature flags. 9 | // It lets us determine whether we're running in Fire mode without making tests internal. 10 | const ReactFeatureFlags = require('../ReactFeatureFlags'); 11 | // Forbid writes because this wouldn't work with bundle tests. 12 | module.exports = Object.freeze({...ReactFeatureFlags}); 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/shared/forks/lowPriorityWarningWithoutStack.www.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | // This "lowPriorityWarning" is an external module 9 | export default require('lowPriorityWarning'); 10 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/shared/forks/object-assign.umd.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | import React from 'react'; 11 | 12 | const ReactInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; 13 | 14 | export default ReactInternals.assign; 15 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/shared/forks/warningWithoutStack.www.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | export default require('warning'); 9 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/shared/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "name": "shared", 4 | "version": "0.0.0" 5 | } 6 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/use-subscription/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 10 | 'use strict'; 11 | 12 | export * from './src/useSubscription'; 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/use-subscription/npm/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./cjs/use-subscription.production.min.js'); 5 | } else { 6 | module.exports = require('./cjs/use-subscription.development.js'); 7 | } 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/packages/use-subscription/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "use-subscription", 3 | "description": "Reusable hooks", 4 | "version": "1.0.0", 5 | "repository": { 6 | "type": "git", 7 | "url": "https://github.com/facebook/react.git", 8 | "directory": "packages/use-subscription" 9 | }, 10 | "files": [ 11 | "LICENSE", 12 | "README.md", 13 | "build-info.json", 14 | "index.js", 15 | "cjs/" 16 | ], 17 | "peerDependencies": { 18 | "react": "^16.8.0" 19 | }, 20 | "devDependencies": { 21 | "rxjs": "^5.5.6" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /source-code-demo/src/react/scripts/authors: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | # Generate an AUTHORS file based on the output of git shortlog. It uses ABC 4 | # order, strips out leading spaces and numbers, then filters out specific 5 | # authors. 6 | 7 | git shortlog -se \ 8 | | perl -spe 's/^\s+\d+\s+//' \ 9 | | sed -e '/^CommitSyncScript.*$/d' \ 10 | > AUTHORS 11 | -------------------------------------------------------------------------------- /source-code-demo/src/react/scripts/bench/.gitignore: -------------------------------------------------------------------------------- 1 | react-dom.production.min.js 2 | react.production.min.js 3 | -------------------------------------------------------------------------------- /source-code-demo/src/react/scripts/bench/benchmarks/hacker-news/build.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const {join} = require('path'); 4 | 5 | async function build(reactPath, asyncCopyTo) { 6 | // copy the UMD bundles 7 | await asyncCopyTo( 8 | join(reactPath, 'build', 'dist', 'react.production.min.js'), 9 | join(__dirname, 'react.production.min.js') 10 | ); 11 | await asyncCopyTo( 12 | join(reactPath, 'build', 'dist', 'react-dom.production.min.js'), 13 | join(__dirname, 'react-dom.production.min.js') 14 | ); 15 | } 16 | 17 | module.exports = build; 18 | -------------------------------------------------------------------------------- /source-code-demo/src/react/scripts/bench/benchmarks/hacker-news/grayarrow.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fchangjun/ReactSourceCodeAnalyze/b1dbf2b6e635dc9ee3478b6f403978ef7efd1e9b/source-code-demo/src/react/scripts/bench/benchmarks/hacker-news/grayarrow.gif -------------------------------------------------------------------------------- /source-code-demo/src/react/scripts/bench/benchmarks/hacker-news/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fchangjun/ReactSourceCodeAnalyze/b1dbf2b6e635dc9ee3478b6f403978ef7efd1e9b/source-code-demo/src/react/scripts/bench/benchmarks/hacker-news/logo.png -------------------------------------------------------------------------------- /source-code-demo/src/react/scripts/bench/benchmarks/pe-class-components/build.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const {join} = require('path'); 4 | 5 | async function build(reactPath, asyncCopyTo) { 6 | // copy the UMD bundles 7 | await asyncCopyTo( 8 | join(reactPath, 'build', 'dist', 'react.production.min.js'), 9 | join(__dirname, 'react.production.min.js') 10 | ); 11 | await asyncCopyTo( 12 | join(reactPath, 'build', 'dist', 'react-dom.production.min.js'), 13 | join(__dirname, 'react-dom.production.min.js') 14 | ); 15 | } 16 | 17 | module.exports = build; 18 | -------------------------------------------------------------------------------- /source-code-demo/src/react/scripts/bench/benchmarks/pe-functional-components/build.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const {join} = require('path'); 4 | 5 | async function build(reactPath, asyncCopyTo) { 6 | // copy the UMD bundles 7 | await asyncCopyTo( 8 | join(reactPath, 'build', 'dist', 'react.production.min.js'), 9 | join(__dirname, 'react.production.min.js') 10 | ); 11 | await asyncCopyTo( 12 | join(reactPath, 'build', 'dist', 'react-dom.production.min.js'), 13 | join(__dirname, 'react-dom.production.min.js') 14 | ); 15 | } 16 | 17 | module.exports = build; 18 | -------------------------------------------------------------------------------- /source-code-demo/src/react/scripts/bench/benchmarks/pe-no-components/build.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const {join} = require('path'); 4 | 5 | async function build(reactPath, asyncCopyTo) { 6 | // copy the UMD bundles 7 | await asyncCopyTo( 8 | join(reactPath, 'build', 'dist', 'react.production.min.js'), 9 | join(__dirname, 'react.production.min.js') 10 | ); 11 | await asyncCopyTo( 12 | join(reactPath, 'build', 'dist', 'react-dom.production.min.js'), 13 | join(__dirname, 'react-dom.production.min.js') 14 | ); 15 | } 16 | 17 | module.exports = build; 18 | -------------------------------------------------------------------------------- /source-code-demo/src/react/scripts/bench/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-benchmark", 3 | "version": "0.0.1", 4 | "main": "runner.js", 5 | "scripts": { 6 | "start": "node runner.js" 7 | }, 8 | "dependencies": { 9 | "chalk": "^2.1.0", 10 | "chrome-launcher": "^0.10.5", 11 | "cli-table": "^0.3.1", 12 | "http-server": "^0.10.0", 13 | "http2": "^3.3.6", 14 | "lighthouse": "^3.2.1", 15 | "mime": "^1.3.6", 16 | "minimist": "^1.2.0", 17 | "ncp": "^2.0.0", 18 | "nodegit": "^0.18.3", 19 | "rimraf": "^2.6.1", 20 | "stats-analysis": "^2.0.0" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /source-code-demo/src/react/scripts/circleci/add_build_info_json.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | node ./scripts/release/ci-add-build-info-json.js 6 | -------------------------------------------------------------------------------- /source-code-demo/src/react/scripts/circleci/bench.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | npm run bench -------------------------------------------------------------------------------- /source-code-demo/src/react/scripts/circleci/check_license.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Make sure we don't introduce accidental references to PATENTS. 6 | EXPECTED='scripts/circleci/check_license.sh' 7 | ACTUAL=$(git grep -l PATENTS) 8 | 9 | if [ "$EXPECTED" != "$ACTUAL" ]; then 10 | echo "PATENTS crept into some new files?" 11 | diff -u <(echo "$EXPECTED") <(echo "$ACTUAL") || true 12 | exit 1 13 | fi 14 | -------------------------------------------------------------------------------- /source-code-demo/src/react/scripts/circleci/check_minified_errors.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Ensure errors are minified in production 4 | 5 | OUT=$(git --no-pager grep -n --untracked --no-exclude-standard 'FIXME (minify-errors-in-prod)' -- './build/*') 6 | 7 | if [ "$OUT" != "" ]; then 8 | echo "$OUT"; 9 | echo -e "\n"; 10 | echo "Detected an unminified error message in the production build. User-facing errors message must have a corresponding error code in scripts/error-codes/codes.json." 11 | exit 1 12 | fi 13 | 14 | exit 0 15 | -------------------------------------------------------------------------------- /source-code-demo/src/react/scripts/circleci/check_modules.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Make sure we don't introduce accidental @providesModule annotations. 6 | EXPECTED='scripts/rollup/wrappers.js' 7 | ACTUAL=$(git grep -l @providesModule -- './*.js' ':!scripts/rollup/shims/*.js') 8 | 9 | # Colors 10 | red=$'\e[1;31m' 11 | end=$'\e[0m' 12 | 13 | if [ "$EXPECTED" != "$ACTUAL" ]; then 14 | printf "%s\n" "${red}ERROR: @providesModule crept into some new files?${end}" 15 | diff -u <(echo "$EXPECTED") <(echo "$ACTUAL") || true 16 | exit 1 17 | fi 18 | -------------------------------------------------------------------------------- /source-code-demo/src/react/scripts/circleci/pack_and_store_artifact.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Compress build directory into a single tarball for easy download 6 | tar -zcvf ./build.tgz ./build 7 | 8 | # NPM pack all modules to ensure we archive the correct set of files 9 | cd ./build/node_modules 10 | for dir in ./* ; do 11 | npm pack "$dir" 12 | done 13 | 14 | # Compress packed modules into a single tarball for easy download by the publish script 15 | tar -zcvf ../../node_modules.tgz ./*.tgz 16 | -------------------------------------------------------------------------------- /source-code-demo/src/react/scripts/circleci/set_up_github_keys.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if [ -n "$GITHUB_TOKEN" ]; then 6 | 7 | GH_PAGES_DIR=$(pwd)/../react-gh-pages 8 | echo "machine github.com login reactjs-bot password $GITHUB_TOKEN" >~/.netrc 9 | git config --global user.name "Circle CI" 10 | git config --global user.email "circle@reactjs.org" 11 | 12 | fi 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/scripts/circleci/test_coverage.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | yarn test --coverage --maxWorkers=2 6 | if [ -z "$CI_PULL_REQUEST" ]; then 7 | ./node_modules/.bin/coveralls < ./coverage/lcov.info 8 | fi 9 | 10 | # TODO: should we also track prod code coverage somehow? 11 | # yarn test-prod --coverage 12 | -------------------------------------------------------------------------------- /source-code-demo/src/react/scripts/circleci/test_print_warnings.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | WARNINGS=$(node scripts/print-warnings/print-warnings.js) 6 | echo "$WARNINGS" 7 | test ! -z "$WARNINGS" 8 | -------------------------------------------------------------------------------- /source-code-demo/src/react/scripts/circleci/update_package_versions.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | node ./scripts/release/ci-update-package-versions.js 6 | -------------------------------------------------------------------------------- /source-code-demo/src/react/scripts/error-codes/Types.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | * 7 | * @flow 8 | */ 9 | 'use strict'; 10 | 11 | /*:: export type ErrorMap = { [id: string]: string; }; */ 12 | 13 | -------------------------------------------------------------------------------- /source-code-demo/src/react/scripts/eslint-rules/README.md: -------------------------------------------------------------------------------- 1 | # Custom ESLint Rules 2 | 3 | This is a dummy npm package that allows us to treat it as an `eslint-plugin`. It's not actually published, nor are the rules here useful for users of React. If you want to lint your React code, try