diff options
author | Johannes Ewald <mail@johannesewald.de> | 2015-01-17 18:08:45 +0300 |
---|---|---|
committer | Johannes Ewald <mail@johannesewald.de> | 2015-01-17 18:08:45 +0300 |
commit | a23473b537cb55733389a9639b8f7fe88e0d8f92 (patch) | |
tree | f318a4e95d492876e9f95313f5524c48bdb7ab7e | |
parent | 79aac24c118799f39300ac18d8fc71c83eb6a527 (diff) | |
parent | 15dc51b720825bb1a10e2d26343187e132de80ce (diff) |
Merge pull request #36 from claydotio/you-dont-even-want-to-know-how-long-this-took-to-find
Ignore invalid variable names during injection of global params
-rw-r--r-- | lib/getImportGlobalsSrc.js | 9 | ||||
-rw-r--r-- | test/getImportGlobalsSrc.test.js | 6 |
2 files changed, 12 insertions, 3 deletions
diff --git a/lib/getImportGlobalsSrc.js b/lib/getImportGlobalsSrc.js index 10dfe87..3c29c56 100644 --- a/lib/getImportGlobalsSrc.js +++ b/lib/getImportGlobalsSrc.js @@ -26,10 +26,15 @@ function getImportGlobalsSrc(ignore) { continue; } value = globalObj[key]; - src += "var " + key + " = global." + key + "; "; + + // key may be an invalid variable name (e.g. 'a-b') + try { + eval("var " + key + ";"); + src += "var " + key + " = global." + key + "; "; + } catch(e) {} } return src; } -module.exports = getImportGlobalsSrc;
\ No newline at end of file +module.exports = getImportGlobalsSrc; diff --git a/test/getImportGlobalsSrc.test.js b/test/getImportGlobalsSrc.test.js index 7e2043b..ab9e946 100644 --- a/test/getImportGlobalsSrc.test.js +++ b/test/getImportGlobalsSrc.test.js @@ -17,11 +17,15 @@ describe("getImportGlobalsSrc", function () { global.exports = exports;
global.require = require;
+ // Also make sure it ignores invalid variable names
+ global['a-b'] = true;
+
src = getImportGlobalsSrc();
delete global.module;
delete global.exports;
delete global.require;
+ delete global['a-b'];
expectedGlobals = Object.keys(global);
@@ -63,4 +67,4 @@ describe("getImportGlobalsSrc", function () { expect(actualGlobals).to.eql(expectedGlobals);
expect(actualGlobals.length).to.be.above(1);
});
-});
\ No newline at end of file +});
|