Skip to content

Commit b032b85

Browse files
cvxdevongovett
authored andcommitted
Remove eval usage. Fixes CSP cases. (#1133)
1 parent a36b912 commit b032b85

6 files changed

Lines changed: 18 additions & 3 deletions

File tree

ā€Žsrc/builtins/hmr-runtime.jsā€Ž

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
var OVERLAY_ID = '__parcel__error__overlay__';
22

3-
var global = (1, eval)('this');
43
var OldModule = module.bundle.Module;
54

65
function Module(moduleName) {

ā€Žsrc/builtins/prelude.jsā€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ parcelRequire = (function (modules, cache, entry, globalName) {
4545

4646
var module = cache[name] = new newRequire.Module(name);
4747

48-
modules[name][0].call(module.exports, localRequire, module, module.exports);
48+
modules[name][0].call(module.exports, localRequire, module, module.exports, this);
4949
}
5050

5151
return cache[name].exports;

ā€Žsrc/visitors/globals.jsā€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const VARS = {
77
asset.addDependency('process');
88
return 'var process = require("process");';
99
},
10-
global: () => 'var global = (1,eval)("this");',
10+
global: () => 'var global = arguments[3];',
1111
__dirname: asset =>
1212
`var __dirname = ${JSON.stringify(Path.dirname(asset.name))};`,
1313
__filename: asset => `var __filename = ${JSON.stringify(asset.name)};`,
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
const global = {};
2+
module.exports = function () {
3+
return !!global.document;
4+
};
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"name": "parcel-test-global-redeclare",
3+
"private": true,
4+
"browserslist": ["last 2 Chrome versions"]
5+
}

ā€Žtest/javascript.jsā€Ž

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,6 +376,13 @@ describe('javascript', function() {
376376
});
377377
});
378378

379+
it('should handle re-declaration of the global constant', async function() {
380+
let b = await bundle(__dirname + '/integration/global-redeclare/index.js');
381+
382+
let output = run(b);
383+
assert.deepEqual(output(), false);
384+
});
385+
379386
it('should insert environment variables', async function() {
380387
let b = await bundle(__dirname + '/integration/env/index.js');
381388

0 commit comments

Comments
Ā (0)
⚔