BREAKING: Add regenerator-runtime on demand, based on the files
Summary: Adding a Babel plugin that will analyze the file looking for any potential candidate to use `regenerator-runtime`, and if so, will inject dynamically the module. The module is injected per file, so we avoid polluting the global environment. The plugin is also able to inject the `require` call beforehand, so that the inliner can pick them and inline them. The Babel plugin is part of `react-native-babel-preset`, so as long as you are using this preset you are safe. If not, you should include the specific transformer into your list of plugins, as `react-native-babel-preset/transforms/transform-regenerator-runtime-insertion.js`. Reviewed By: davidaurelio Differential Revision: D5388655 fbshipit-source-id: dc403f3d5e2d807529eb8569a85c45fec36a6a3e
This commit is contained in:
parent
d1c9746902
commit
3103258ca0
|
@ -138,15 +138,6 @@ defineProperty(global, 'Set', () => require('Set'), true);
|
||||||
// ERROR: Event loop not supported.
|
// ERROR: Event loop not supported.
|
||||||
defineProperty(global, 'Promise', () => require('Promise'));
|
defineProperty(global, 'Promise', () => require('Promise'));
|
||||||
|
|
||||||
// Set up regenerator.
|
|
||||||
defineProperty(global, 'regeneratorRuntime', () => {
|
|
||||||
// The require just sets up the global, so make sure when we first
|
|
||||||
// invoke it the global does not exist
|
|
||||||
delete global.regeneratorRuntime;
|
|
||||||
require('regenerator-runtime/runtime');
|
|
||||||
return global.regeneratorRuntime;
|
|
||||||
});
|
|
||||||
|
|
||||||
// Set up timers
|
// Set up timers
|
||||||
const defineLazyTimer = name => {
|
const defineLazyTimer = name => {
|
||||||
defineProperty(global, name, () => require('JSTimers')[name]);
|
defineProperty(global, name, () => require('JSTimers')[name]);
|
||||||
|
|
|
@ -163,11 +163,11 @@ const THUMB_URLS = [
|
||||||
require('./Thumbnails/victory.png'),
|
require('./Thumbnails/victory.png'),
|
||||||
];
|
];
|
||||||
|
|
||||||
const LOREM_IPSUM = 'Lorem ipsum dolor sit amet, ius ad pertinax oportere accommodare, an vix \
|
const LOREM_IPSUM = 'Lorem ipsum dolor sit amet, ius ad pertinax oportere accommodare, an vix ' +
|
||||||
civibus corrumpit referrentur. Te nam case ludus inciderint, te mea facilisi adipiscing. Sea id \
|
'civibus corrumpit referrentur. Te nam case ludus inciderint, te mea facilisi adipiscing. Sea id ' +
|
||||||
integre luptatum. In tota sale consequuntur nec. Erat ocurreret mei ei. Eu paulo sapientem \
|
'integre luptatum. In tota sale consequuntur nec. Erat ocurreret mei ei. Eu paulo sapientem ' +
|
||||||
vulputate est, vel an accusam intellegam interesset. Nam eu stet pericula reprimique, ea vim illud \
|
'vulputate est, vel an accusam intellegam interesset. Nam eu stet pericula reprimique, ea vim illud ' +
|
||||||
modus, putant invidunt reprehendunt ne qui.';
|
'modus, putant invidunt reprehendunt ne qui.';
|
||||||
|
|
||||||
/* eslint no-bitwise: 0 */
|
/* eslint no-bitwise: 0 */
|
||||||
function hashCode(str: string): number {
|
function hashCode(str: string): number {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "babel-preset-react-native",
|
"name": "babel-preset-react-native",
|
||||||
"version": "2.0.0",
|
"version": "2.1.0",
|
||||||
"description": "Babel preset for React Native applications",
|
"description": "Babel preset for React Native applications",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"repository": "https://github.com/facebook/react-native/tree/master/babel-preset",
|
"repository": "https://github.com/facebook/react-native/tree/master/babel-preset",
|
||||||
|
|
|
@ -150,7 +150,7 @@
|
||||||
"babel-polyfill": "^6.20.0",
|
"babel-polyfill": "^6.20.0",
|
||||||
"babel-preset-es2015-node": "^6.1.1",
|
"babel-preset-es2015-node": "^6.1.1",
|
||||||
"babel-preset-fbjs": "^2.1.4",
|
"babel-preset-fbjs": "^2.1.4",
|
||||||
"babel-preset-react-native": "^2.0.0",
|
"babel-preset-react-native": "^2.1.0",
|
||||||
"babel-register": "^6.24.1",
|
"babel-register": "^6.24.1",
|
||||||
"babel-runtime": "^6.23.0",
|
"babel-runtime": "^6.23.0",
|
||||||
"babel-traverse": "^6.24.1",
|
"babel-traverse": "^6.24.1",
|
||||||
|
|
Loading…
Reference in New Issue