diff --git a/lib/module.js b/lib/module.js index 1d9e5d1d56..67a95f0757 100644 --- a/lib/module.js +++ b/lib/module.js @@ -359,6 +359,7 @@ Module.prototype.load = function(filename) { Module.prototype.require = function(path) { + assert(typeof path === 'string', 'path must be a string'); assert(path, 'missing path'); return Module._load(path, this); }; diff --git a/test/simple/test-module-loading.js b/test/simple/test-module-loading.js index eadd6679c6..8a70f214c9 100644 --- a/test/simple/test-module-loading.js +++ b/test/simple/test-module-loading.js @@ -295,3 +295,12 @@ process.on('exit', function() { // #1440 Loading files with a byte order marker. assert.equal(42, require('../fixtures/utf8-bom.js')); assert.equal(42, require('../fixtures/utf8-bom.json')); + +// require() must take string, and must be truthy +assert.throws(function() { + require({ foo: 'bar' }); +}, 'path must be a string'); + +assert.throws(function() { + require(false); +}, 'missing path');