diff options
Diffstat (limited to 'src/node.js')
-rw-r--r-- | src/node.js | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/node.js b/src/node.js index 466387169b..848c39d119 100644 --- a/src/node.js +++ b/src/node.js @@ -74,7 +74,7 @@ } else if (process._eval != null) { // User passed '-e' or '--eval' arguments to Node. - evalScript('eval'); + evalScript('[eval]'); } else if (process.argv[1]) { // make process.argv[1] into a full path var path = NativeModule.require('path'); @@ -355,7 +355,19 @@ var module = new Module(name); module.filename = path.join(cwd, name); module.paths = Module._nodeModulePaths(cwd); - var result = module._compile('return eval(process._eval)', name); + var script = process._eval; + if (!Module._contextLoad) { + var body = script; + script = 'global.__filename = ' + JSON.stringify(name) + ';\n' + + 'global.exports = exports;\n' + + 'global.module = module;\n' + + 'global.__dirname = __dirname;\n' + + 'global.require = require;\n' + + 'return require("vm").runInThisContext(' + + JSON.stringify(body) + ', ' + + JSON.stringify(name) + ', true);\n'; + } + var result = module._compile(script, name + '-wrapper'); if (process._print_eval) console.log(result); } |