react-native/jest
Janic Duplessis 36033bd0ed Use babel runtime instead of relying on global babelHelpers and regenerator (#198)
Summary:
**Summary**

The RN transformer currently relies on the enviroment providing babelHelpers and regeneratorRuntime as globals by using 'babel-external-helpers'. This wasn't really a problem before since helpers were stable and we could maintain our copy easily but it seems like there are more now with babel 7 and it makes sense to include only those used by the app.

This is exactly what babel/transform-runtime does. It will alias all helpers and calls to regeneratorRuntime to files in the babel/runtime package.

This will solve issues like this https://github.com/facebook/react-native/issues/20150 caused by missing babelHelpers. This solution also avoids bloating babelHelpers to fix OSS issues like the one linked before.

**Test plan**

- Updated tests so they all pass.
- Tested that it actually works by applying the changes locally in an RN app.
- Added a test for async functions, to make sure regenerator is aliased properly and doesn't depend on the global.
- Made sure require-test.js still fails if the require implementation contains babel helpers (by adding an empty class in the file).
Pull Request resolved: https://github.com/facebook/metro/pull/198

Reviewed By: mjesun

Differential Revision: D8833903

Pulled By: rafeca

fbshipit-source-id: 7081f769f288ab358ba89ae8ee72a513bb12e225
2018-09-21 16:17:40 -07:00
..
__tests__ Update copyright headers to yearless format 2018-09-11 15:33:07 -07:00
MockNativeMethods.js Update copyright headers to yearless format 2018-09-11 15:33:07 -07:00
assetFileTransformer.js Update copyright headers to yearless format 2018-09-11 15:33:07 -07:00
hasteImpl.js Update copyright headers to yearless format 2018-09-11 15:33:07 -07:00
mockComponent.js Update copyright headers to yearless format 2018-09-11 15:33:07 -07:00
preprocessor.js Use babel runtime instead of relying on global babelHelpers and regenerator (#198) 2018-09-21 16:17:40 -07:00
setup.js Update copyright headers to yearless format 2018-09-11 15:33:07 -07:00