From 15dc51b720825bb1a10e2d26343187e132de80ce Mon Sep 17 00:00:00 2001 From: Zolmeister Date: Fri, 16 Jan 2015 03:26:03 -0800 Subject: ignore invalid variable names during injection of global params --- lib/getImportGlobalsSrc.js | 9 +++++++-- 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 +}); -- cgit v1.2.3