From 4e744be6eecc86be2db87b7804a8bebedf4329b3 Mon Sep 17 00:00:00 2001 From: Brian Vaughn Date: Wed, 5 Sep 2018 11:16:43 -0700 Subject: [PATCH] Added react-dom/profiling entry point to NPM package (#13570) --- packages/react-dom/npm/profiling.js | 38 +++++++++++++++++++++++++++++ packages/react-dom/package.json | 1 + 2 files changed, 39 insertions(+) create mode 100644 packages/react-dom/npm/profiling.js diff --git a/packages/react-dom/npm/profiling.js b/packages/react-dom/npm/profiling.js new file mode 100644 index 0000000000..91f89f07ff --- /dev/null +++ b/packages/react-dom/npm/profiling.js @@ -0,0 +1,38 @@ +'use strict'; + +function checkDCE() { + /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */ + if ( + typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' || + typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function' + ) { + return; + } + if (process.env.NODE_ENV !== 'production') { + // This branch is unreachable because this function is only called + // in production, but the condition is true only in development. + // Therefore if the branch is still here, dead code elimination wasn't + // properly applied. + // Don't change the message. React DevTools relies on it. Also make sure + // this message doesn't occur elsewhere in this function, or it will cause + // a false positive. + throw new Error('^_^'); + } + try { + // Verify that the code above has been dead code eliminated (DCE'd). + __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE); + } catch (err) { + // DevTools shouldn't crash React, no matter what. + // We should still report in case we break this code. + console.error(err); + } +} + +if (process.env.NODE_ENV === 'production') { + // DCE check should happen before ReactDOM bundle executes so that + // DevTools can report bad minification during injection. + checkDCE(); + module.exports = require('./cjs/react-dom.profiling.min.js'); +} else { + module.exports = require('./cjs/react-dom.development.js'); +} diff --git a/packages/react-dom/package.json b/packages/react-dom/package.json index 31f29f85ad..4b5186d148 100644 --- a/packages/react-dom/package.json +++ b/packages/react-dom/package.json @@ -25,6 +25,7 @@ "LICENSE", "README.md", "index.js", + "profiling.js", "server.js", "server.browser.js", "server.node.js",