summaryrefslogtreecommitdiff
path: root/src/node.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/node.js')
-rw-r--r--src/node.js16
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);
}