From 73ce9568389189e7b5c45ac0cadadd06e6111d9e Mon Sep 17 00:00:00 2001 From: David Aurelio Date: Fri, 12 May 2017 09:42:09 -0700 Subject: [PATCH] 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 --- packages/metro-bundler/src/ModuleGraph/ModuleGraph.js | 2 +- .../src/ModuleGraph/__tests__/ModuleGraph-test.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/metro-bundler/src/ModuleGraph/ModuleGraph.js b/packages/metro-bundler/src/ModuleGraph/ModuleGraph.js index cce7ff8a..ac660b5e 100644 --- a/packages/metro-bundler/src/ModuleGraph/ModuleGraph.js +++ b/packages/metro-bundler/src/ModuleGraph/ModuleGraph.js @@ -97,6 +97,6 @@ function* concat(...iterables: Array>): Iterable { function prelude(optimize) { return virtualModule( `var __DEV__=${String(!optimize)},` + - '__BUNDLE_START_TIME__=global.nativePerformanceNow?global.nativePerformanceNow():Date.now();' + '__BUNDLE_START_TIME__=this.nativePerformanceNow?nativePerformanceNow():Date.now();' ); } diff --git a/packages/metro-bundler/src/ModuleGraph/__tests__/ModuleGraph-test.js b/packages/metro-bundler/src/ModuleGraph/__tests__/ModuleGraph-test.js index d9a9108a..bc91a412 100644 --- a/packages/metro-bundler/src/ModuleGraph/__tests__/ModuleGraph-test.js +++ b/packages/metro-bundler/src/ModuleGraph/__tests__/ModuleGraph-test.js @@ -29,7 +29,7 @@ describe('build setup', () => { dependencies: [], file: { code: 'var __DEV__=true,__BUNDLE_START_TIME__=' + - 'global.nativePerformanceNow?global.nativePerformanceNow():Date.now();', + 'this.nativePerformanceNow?nativePerformanceNow():Date.now();', path: '', type: 'script', }, @@ -43,7 +43,7 @@ describe('build setup', () => { const [prelude] = result.modules; expect(prelude.file.code) .toEqual('var __DEV__=false,__BUNDLE_START_TIME__=' + - 'global.nativePerformanceNow?global.nativePerformanceNow():Date.now();'); + 'this.nativePerformanceNow?nativePerformanceNow():Date.now();'); done(); }); });