Use `this` rather than `global` in prelude

Summary: in new-style builds, the prelude is not wrapped into an IIFE, so `global` is not available. Since the bundle as a whole is not running in strict mode, we can access the global object with `this`.

Reviewed By: jeanlauliac

Differential Revision: D5051731

fbshipit-source-id: 4003b5e57ba8626e38e68e92d5778c2c59ca69a5
This commit is contained in:
David Aurelio 2017-05-12 09:42:09 -07:00 committed by Facebook Github Bot
parent 0a4ce80868
commit e1306565db
2 changed files with 3 additions and 3 deletions

View File

@ -97,6 +97,6 @@ function* concat<T>(...iterables: Array<Iterable<T>>): Iterable<T> {
function prelude(optimize) { function prelude(optimize) {
return virtualModule( return virtualModule(
`var __DEV__=${String(!optimize)},` + `var __DEV__=${String(!optimize)},` +
'__BUNDLE_START_TIME__=global.nativePerformanceNow?global.nativePerformanceNow():Date.now();' '__BUNDLE_START_TIME__=this.nativePerformanceNow?nativePerformanceNow():Date.now();'
); );
} }

View File

@ -29,7 +29,7 @@ describe('build setup', () => {
dependencies: [], dependencies: [],
file: { file: {
code: 'var __DEV__=true,__BUNDLE_START_TIME__=' + code: 'var __DEV__=true,__BUNDLE_START_TIME__=' +
'global.nativePerformanceNow?global.nativePerformanceNow():Date.now();', 'this.nativePerformanceNow?nativePerformanceNow():Date.now();',
path: '', path: '',
type: 'script', type: 'script',
}, },
@ -43,7 +43,7 @@ describe('build setup', () => {
const [prelude] = result.modules; const [prelude] = result.modules;
expect(prelude.file.code) expect(prelude.file.code)
.toEqual('var __DEV__=false,__BUNDLE_START_TIME__=' + .toEqual('var __DEV__=false,__BUNDLE_START_TIME__=' +
'global.nativePerformanceNow?global.nativePerformanceNow():Date.now();'); 'this.nativePerformanceNow?nativePerformanceNow():Date.now();');
done(); done();
}); });
}); });