aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChad Austin <caustin@gmail.com>2012-08-14 13:27:52 -0700
committerChad Austin <chad@chadaustin.me>2012-09-25 16:30:42 -0700
commit0bd9bff496b894af1e211a830df5cce4c80dcfd5 (patch)
tree9b28da0fff215cd19ca50cf4964fafa429b5b74f /src
parentac36f1a7237e1e804d7f07bed4226a3f5a3320d8 (diff)
Support loading emscripten argument filenames with relative paths
Diffstat (limited to 'src')
-rw-r--r--src/compiler.js21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/compiler.js b/src/compiler.js
index 89da32d5..ab5e6acf 100644
--- a/src/compiler.js
+++ b/src/compiler.js
@@ -31,15 +31,20 @@ 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();
- // 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();
+ function find(filename) {
+ var prefixes = [__dirname, process.cwd()];
+ for (var i = 0; i < prefixes.length; ++i) {
+ var combined = nodePath.join(prefixes[i], filename);
+ if (nodeFS.existsSync(combined)) {
+ return combined;
+ }
}
- return ret;
+ return filename;
+ }
+
+ read = function(filename) {
+ var absolute = find(filename);
+ return nodeFS['readFileSync'](absolute).toString();
};
load = function(f) {