test for absolute paths and do not try and join if absolute. Fixes #2375

This commit is contained in:
Luke Page
2015-01-11 16:31:32 +00:00
parent 8ea1e880f2
commit dff4540f5b

View File

@@ -18,19 +18,23 @@ FileManager.prototype.supportsSync = function(filename, currentDirectory, option
FileManager.prototype.loadFile = function(filename, currentDirectory, options, environment, callback) {
var fullFilename,
data,
isAbsoluteFilename = this.isPathAbsolute(filename),
filenamesTried = [];
options = options || {};
var paths = [currentDirectory];
var paths = isAbsoluteFilename ? [""] : [currentDirectory];
if (options.paths) paths.push.apply(paths, options.paths);
if (paths.indexOf('.') === -1) paths.push('.');
if (!isAbsoluteFilename && paths.indexOf('.') === -1) { paths.push('.'); }
if (options.syncImport) {
var err, result;
for (var i = 0; i < paths.length; i++) {
try {
fullFilename = path.join(paths[i], filename);
fullFilename = filename;
if (paths[i]) {
fullFilename = path.join(paths[i], fullFilename);
}
filenamesTried.push(fullFilename);
fs.statSync(fullFilename);
break;
@@ -55,7 +59,10 @@ FileManager.prototype.loadFile = function(filename, currentDirectory, options, e
return new PromiseConstructor(function(fulfill, reject) {
(function tryPathIndex(i) {
if (i < paths.length) {
fullFilename = path.join(paths[i], filename);
fullFilename = filename;
if (paths[i]) {
fullFilename = path.join(paths[i], fullFilename);
}
fs.stat(fullFilename, function (err) {
if (err) {
filenamesTried.push(fullFilename);