Skip to content

Commit

Permalink
src: fix preload when used with prior flags
Browse files Browse the repository at this point in the history
Fixes: nodejs/node#1691
PR-URL: nodejs/node#1694
Reviewed-By: Ali Ijaz Sheikh <[email protected]>
Reviewed-By: Trevor Norris <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
  • Loading branch information
yosuke-furukawa authored and andrewdeandrade committed Jun 3, 2015
1 parent 25af46e commit e5484bc
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 9 deletions.
21 changes: 12 additions & 9 deletions src/node.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,24 +82,17 @@
delete process.env.NODE_UNIQUE_ID;
}

// Load any preload modules
if (process._preload_modules) {
var Module = NativeModule.require('module');
process._preload_modules.forEach(function(module) {
Module._load(module);
});
}

if (process._eval != null) {
// User passed '-e' or '--eval' arguments to Node.
startup.preloadModules();
evalScript('[eval]');
} else if (process.argv[1]) {
// make process.argv[1] into a full path
var path = NativeModule.require('path');
process.argv[1] = path.resolve(process.argv[1]);

var Module = NativeModule.require('module');

startup.preloadModules();
if (global.v8debug &&
process.execArgv.some(function(arg) {
return arg.match(/^--debug-brk(=[0-9]*)?$/);
Expand Down Expand Up @@ -857,6 +850,16 @@
};
};

// Load preload modules
startup.preloadModules = function() {
if (process._preload_modules) {
var Module = NativeModule.require('module');
process._preload_modules.forEach(function(module) {
Module._load(module);
});
}
};

// Below you find a minimal module system, which is used to load the node
// core modules found in lib/*.js. All core modules are compiled into the
// node binary, so they can be loaded faster.
Expand Down
12 changes: 12 additions & 0 deletions test/parallel/test-preload.js
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,15 @@ child_process.exec(nodeBinary + ' '
if (err) throw err;
assert.ok(/worker terminated with code 43/.test(stdout));
});

// https://github.com/iojs/io.js/issues/1691
var originalCwd = process.cwd();
process.chdir(path.join(__dirname, '../fixtures/'));
child_process.exec(nodeBinary + ' '
+ '--expose_debug_as=v8debug '
+ '--require ' + fixture('cluster-preload.js') + ' '
+ 'cluster-preload-test.js',
function(err, stdout, stderr) {
if (err) throw err;
assert.ok(/worker terminated with code 43/.test(stdout));
});

0 comments on commit e5484bc

Please sign in to comment.