diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler.js | 7 | ||||
-rw-r--r-- | src/shell.js | 7 |
2 files changed, 10 insertions, 4 deletions
diff --git a/src/compiler.js b/src/compiler.js index c39927e7..29ae47dd 100644 --- a/src/compiler.js +++ b/src/compiler.js @@ -29,11 +29,14 @@ if (ENVIRONMENT_IS_NODE) { }; var nodeFS = require('fs'); + var nodePath = require('path'); read = function(filename) { + filename = nodePath['normalize'](filename); var ret = nodeFS['readFileSync'](filename).toString(); - if (!ret && filename[0] != '/') { - filename = __dirname.split('/').slice(0, -1).join('/') + '/src/' + filename; + // The path is absolute if the normalized version is the same as the resolved. + if (!ret && filename != nodePath['resolve'](filename)) { + filename = path.join(__dirname, '..', 'src', filename); ret = nodeFS['readFileSync'](filename).toString(); } return ret; diff --git a/src/shell.js b/src/shell.js index 5b6419c0..55f96194 100644 --- a/src/shell.js +++ b/src/shell.js @@ -24,11 +24,14 @@ if (ENVIRONMENT_IS_NODE) { }; var nodeFS = require('fs'); + var nodePath = require('path'); Module['read'] = function(filename) { + filename = nodePath['normalize'](filename); var ret = nodeFS['readFileSync'](filename).toString(); - if (!ret && filename[0] != '/') { - filename = __dirname.split('/').slice(0, -1).join('/') + '/src/' + filename; + // The path is absolute if the normalized version is the same as the resolved. + if (!ret && filename != nodePath['resolve'](filename)) { + filename = path.join(__dirname, '..', 'src', filename); ret = nodeFS['readFileSync'](filename).toString(); } return ret; |