diff options
author | Ben Noordhuis <info@bnoordhuis.nl> | 2015-11-25 22:27:29 +0100 |
---|---|---|
committer | Ben Noordhuis <info@bnoordhuis.nl> | 2015-11-30 23:58:27 +0100 |
commit | ee72ee753118f2576bfd1ccf58fb2ff651e8bfb0 (patch) | |
tree | c9d04821f0dca4b994a3d74011ae3f806aa861c6 /lib/module.js | |
parent | f4f1e89bf19dc0518050e4b44ecb0e3cff178023 (diff) | |
download | android-node-v8-ee72ee753118f2576bfd1ccf58fb2ff651e8bfb0.tar.gz android-node-v8-ee72ee753118f2576bfd1ccf58fb2ff651e8bfb0.tar.bz2 android-node-v8-ee72ee753118f2576bfd1ccf58fb2ff651e8bfb0.zip |
module,repl: remove repl require() hack
Remove a hack that was introduced in commit bb6d468d from November 2010.
This is groundwork for a follow-up commit that makes it possible to use
internal modules in lib/repl.js.
PR-URL: https://github.com/nodejs/node/pull/4026
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'lib/module.js')
-rw-r--r-- | lib/module.js | 43 |
1 files changed, 8 insertions, 35 deletions
diff --git a/lib/module.js b/lib/module.js index 8b9b59551e..6a4cd885a3 100644 --- a/lib/module.js +++ b/lib/module.js @@ -274,17 +274,6 @@ Module._load = function(request, parent, isMain) { debug('Module._load REQUEST %s parent: %s', request, parent.id); } - // REPL is a special case, because it needs the real require. - if (request === 'internal/repl' || request === 'repl') { - if (Module._cache[request]) { - return Module._cache[request]; - } - var replModule = new Module(request); - replModule._compile(NativeModule.getSource(request), `${request}.js`); - NativeModule._cache[request] = replModule; - return replModule.exports; - } - var filename = Module._resolveFilename(request, parent); var cachedModule = Module._cache[filename]; @@ -376,27 +365,9 @@ var resolvedArgv; // the file. // Returns exception, if any. Module.prototype._compile = function(content, filename) { - var self = this; // remove shebang content = content.replace(shebangRe, ''); - function require(path) { - return self.require(path); - } - - require.resolve = function(request) { - return Module._resolveFilename(request, self); - }; - - require.main = process.mainModule; - - // Enable support to add extra extension types - require.extensions = Module._extensions; - - require.cache = Module._cache; - - var dirname = path.dirname(filename); - // create wrapper function var wrapper = Module.wrap(content); @@ -421,8 +392,10 @@ Module.prototype._compile = function(content, filename) { global.v8debug.Debug.setBreakPoint(compiledWrapper, 0, 0); } } - var args = [self.exports, require, self, filename, dirname]; - return compiledWrapper.apply(self.exports, args); + const dirname = path.dirname(filename); + const require = internalModule.makeRequireFunction.call(this); + const args = [this.exports, require, this, filename, dirname]; + return compiledWrapper.apply(this.exports, args); }; @@ -488,10 +461,10 @@ Module._initPaths = function() { Module.globalPaths = modulePaths.slice(0); }; -// bootstrap repl -Module.requireRepl = function() { - return Module._load('internal/repl', '.'); -}; +// TODO(bnoordhuis) Unused, remove in the future. +Module.requireRepl = internalUtil.deprecate(function() { + return NativeModule.require('internal/repl'); +}, 'Module.requireRepl is deprecated.'); Module._preloadModules = function(requests) { if (!Array.isArray(requests)) |