mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-01 22:41:28 +08:00
Fix polyfillLazyGlobal to work with allowTopLevelThis = false
Summary:
`polyfillLazyGlobal` used a top level this which get stripped by babel `transform-es2015-modules-commonjs` with the default config. This is mainly an issues for people not using the react native babel preset.
This also replaces a few GLOBAL with global for consistency with the rest of the file.
**Test plan**
Tested that there was an error when using `['transform-es2015-modules-commonjs', { strict: true, allowTopLevelThis: false }]` in the babel config and that it was fixed after applying my changes.
Fixes #7700
Closes https://github.com/facebook/react-native/pull/7971
Differential Revision: D3427675
Pulled By: javache
fbshipit-source-id: 48f258b0db1bf21185193bd56df453ced9242e64
This commit is contained in:
committed by
Facebook Github Bot 5
parent
df46891dfe
commit
f9e26b327b
@@ -20,7 +20,7 @@
|
||||
*/
|
||||
|
||||
/* eslint strict: 0 */
|
||||
/* globals GLOBAL: true, window: true */
|
||||
/* globals window: true */
|
||||
|
||||
require('regenerator-runtime/runtime');
|
||||
|
||||
@@ -33,10 +33,10 @@ if (typeof window === 'undefined') {
|
||||
}
|
||||
|
||||
function setUpProcess() {
|
||||
GLOBAL.process = GLOBAL.process || {};
|
||||
GLOBAL.process.env = GLOBAL.process.env || {};
|
||||
if (!GLOBAL.process.env.NODE_ENV) {
|
||||
GLOBAL.process.env.NODE_ENV = __DEV__ ? 'development' : 'production';
|
||||
global.process = global.process || {};
|
||||
global.process.env = global.process.env || {};
|
||||
if (!global.process.env.NODE_ENV) {
|
||||
global.process.env.NODE_ENV = __DEV__ ? 'development' : 'production';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -102,10 +102,10 @@ function polyfillLazyGlobal(name, valueFn, scope = global) {
|
||||
configurable: true,
|
||||
enumerable: enumerable !== false,
|
||||
get() {
|
||||
return (this[name] = valueFn());
|
||||
return (global[name] = valueFn());
|
||||
},
|
||||
set(value) {
|
||||
Object.defineProperty(this, name, {
|
||||
Object.defineProperty(global, name, {
|
||||
configurable: true,
|
||||
enumerable: enumerable !== false,
|
||||
writable: writable !== false,
|
||||
|
||||
Reference in New Issue
Block a user