Skip to content

Commit 48c5d5d

Browse files
committed
Fix modules that declare a global variable
1 parent 5d95e25 commit 48c5d5d

File tree

1 file changed

+16
-3
lines changed
  • packages/app/src/sandbox/eval/loaders

1 file changed

+16
-3
lines changed

packages/app/src/sandbox/eval/loaders/eval.js

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ const requestFrame = (() => {
1515
};
1616
})();
1717

18+
const hasGlobalDeclaration = /^const global/m;
19+
1820
/* eslint-disable no-unused-vars */
1921
export default function(
2022
code: string,
@@ -32,14 +34,25 @@ export default function(
3234

3335
const allGlobals = {
3436
require,
35-
module: asUMD ? undefined : module,
36-
exports: asUMD ? undefined : exports,
37+
module,
38+
exports,
3739
process,
3840
setImmediate: requestFrame,
39-
global: asUMD ? undefined : global,
41+
global,
4042
...globals,
4143
};
4244

45+
if (asUMD) {
46+
delete allGlobals.module;
47+
delete allGlobals.exports;
48+
delete allGlobals.global;
49+
}
50+
51+
const a = performance.now();
52+
if (hasGlobalDeclaration.test(code)) {
53+
delete allGlobals.global;
54+
}
55+
4356
const allGlobalKeys = Object.keys(allGlobals);
4457
const globalsCode = allGlobalKeys.length ? allGlobalKeys.join(', ') : '';
4558
const globalsValues = allGlobalKeys.map(k => allGlobals[k]);

0 commit comments

Comments
 (0)