return Module._load('internal/repl', '.');
};
+Module._preloadModules = function(requests) {
+ if (!Array.isArray(requests))
+ return;
+
+ // Preloaded modules have a dummy parent module which is deemed to exist
+ // in the current working directory. This seeds the search path for
+ // preloaded modules.
+ var parent = new Module('internal/preload', null);
+ parent.paths = Module._nodeModulePaths(process.cwd());
+ requests.forEach(function(request) {
+ Module._load(request, parent, false);
+ });
+};
+
Module._initPaths();
// backwards compatibility
// Load preload modules
startup.preloadModules = function() {
if (process._preload_modules) {
- var Module = NativeModule.require('module');
- process._preload_modules.forEach(function(module) {
- Module._load(module);
- });
+ NativeModule.require('module')._preloadModules(process._preload_modules);
}
};
+var assert = require('assert');
+
+// https://github.com/nodejs/io.js/issues/1803
+// this module is used as a preload module. It should have a parent with the
+// module search paths initialized from the current working directory
+assert.ok(module.parent);
+var expectedPaths = require('module')._nodeModulePaths(process.cwd());
+assert.deepEqual(module.parent.paths, expectedPaths);
+
var cluster = require('cluster');
cluster.isMaster || process.exit(42 + cluster.worker.id); // +42 to distinguish
// from exit(1) for other random reasons