Some simple code to turn a JavaScript module into non-Mozilla-specific code (e.g., if porting to the browser). The use of eval() will probably not be of concern because it is only being used on the EXPORTED_SYMBOLS
array which should not depend on user input.
function importModule (thatObj) { thatObj = thatObj || window; var EXPORTED_SYMBOLS = [ // Put the symbols here ]; // Your code here... // At the end of your code: (assuming neither 'i' nor 'thatObj' is being exported!) for (var i=0; i < EXPORTED_SYMBOLS.length; i++) {thatObj[EXPORTED_SYMBOLS[i]] = eval(EXPORTED_SYMBOLS[i]);} }
or for one-time-only usage of a module:
(function (thatObj) { thatObj = thatObj || window; var EXPORTED_SYMBOLS = [ // Put the symbols here ]; // Your code here... // At the end of your code: (assuming neither 'i' nor 'thatObj' is being exported!) for (var i=0; i < EXPORTED_SYMBOLS.length; i++) {thatObj[EXPORTED_SYMBOLS[i]] = eval(EXPORTED_SYMBOLS[i]);} })(); // Can put an object argument here