diff options
Diffstat (limited to 'utils/platforms/rhino/bootstrap.js')
-rwxr-xr-x | utils/platforms/rhino/bootstrap.js | 61 |
1 files changed, 7 insertions, 54 deletions
diff --git a/utils/platforms/rhino/bootstrap.js b/utils/platforms/rhino/bootstrap.js index d993810..4c19cb6 100755 --- a/utils/platforms/rhino/bootstrap.js +++ b/utils/platforms/rhino/bootstrap.js @@ -34,61 +34,12 @@ }; var read = function (path) { - var path = new java.io.File(path); - - if (!path.isFile()) - throw new Error(path + ' does not exist.'); - - var stream = new java.io.FileInputStream(path); + var path = new java.io.File(path), + stream = new java.io.FileInputStream(path); try { - - var length = 1025; - var index = 0; - var total = 0; - var buffer; - var buffers = []; - - do { - if (buffer === undefined) - buffer = java.lang.reflect.Array.newInstance(java.lang.Byte.TYPE, length); - var read = stream.read(buffer, index, buffer.length - index); - if (read < 0) - break; - index += read; - total += read; - if (index >= buffer.length) { - buffers.push(buffer); - buffer = undefined; - index = 0; - length *= 2; - } - //print("read="+read+" index="+index+" total="+total+" length="+length+" buffers.length="+buffers.length); - } while (read > 0); - - var resultBuffer, resultLength; - if (buffers.length === 1 && index === 0) { - resultBuffer = buffers[0]; - resultLength = resultBuffer.length; - } else { - resultBuffer = java.lang.reflect.Array.newInstance(java.lang.Byte.TYPE, total), - resultLength = 0; - for (var i = 0; i < buffers.length; i++) { - var buf = buffers[i]; - java.lang.System.arraycopy(buf, 0, resultBuffer, resultLength, buf.length); - resultLength += buf.length; - } - if (index > 0) { - java.lang.System.arraycopy(buffer, 0, resultBuffer, resultLength, index); - resultLength += index; - } - } - - if (total != resultLength || total !== resultBuffer.length) - throw new Error("IO.read sanity check failed: total="+total+" resultLength="+resultLength+" resultBuffer.length="+resultBuffer.length); - - var result = String(new java.lang.String(resultBuffer, 'UTF-8')); - return result; - + var buffer = java.lang.reflect.Array.newInstance(java.lang.Byte.TYPE, path.length()); + stream.read(buffer); + return String(new java.lang.String(buffer, "UTF-8")); } finally { stream.close(); } @@ -129,12 +80,14 @@ var debug = +String(Packages.java.lang.System.getenv("NARWHAL_DEBUG")); var verbose = +String(Packages.java.lang.System.getenv("NARWHAL_VERBOSE")); + var os = String(Packages.java.lang.System.getProperty("os.name")); narwhal({ global: global, evalGlobal: evalGlobal, platform: 'rhino', platforms: ['rhino', 'default'], + os: os, print: print, fs: { read: read, |