aboutsummaryrefslogtreecommitdiff
path: root/src/shell.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/shell.js')
-rw-r--r--src/shell.js19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/shell.js b/src/shell.js
index 8c37bf5b..c8f3644a 100644
--- a/src/shell.js
+++ b/src/shell.js
@@ -24,17 +24,20 @@ if (ENVIRONMENT_IS_NODE) {
var nodeFS = require('fs');
var nodePath = require('path');
- Module['read'] = function(filename) {
+ Module['read'] = function(filename, binary) {
filename = nodePath['normalize'](filename);
- var ret = nodeFS['readFileSync'](filename).toString();
+ var ret = nodeFS['readFileSync'](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();
+ ret = nodeFS['readFileSync'](filename);
}
+ if (ret && !binary) ret = ret.toString();
return ret;
};
+ Module['readBinary'] = function(filename) { return Module['read'](filename, true) };
+
Module['load'] = function(f) {
globalEval(read(f));
};
@@ -48,12 +51,10 @@ if (ENVIRONMENT_IS_SHELL) {
Module['print'] = print;
if (typeof printErr != 'undefined') Module['printErr'] = printErr; // not present in v8 or older sm
- // Polyfill over SpiderMonkey/V8 differences
- if (typeof read != 'undefined') {
- Module['read'] = read;
- } else {
- Module['read'] = function(f) { snarf(f) };
- }
+ Module['read'] = read;
+ Module['readBinary'] = function(f) {
+ return read(f, 'binary');
+ };
if (!Module['arguments']) {
if (typeof scriptArgs != 'undefined') {