From 7465cf911ab944aece1463bc22c96f050751d9a2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Felix=20B=C3=B6hm?= Date: Wed, 16 Jan 2013 19:53:16 +0100 Subject: [PATCH] module: assert that require() is called with a string as requested in #4577 --- lib/module.js | 1 + test/simple/test-module-loading.js | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/lib/module.js b/lib/module.js index 1d9e5d1..67a95f0 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 eadd667..8a70f21 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'); -- 2.7.4