aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2011-11-10 15:21:37 -0800
committerAlon Zakai <alonzakai@gmail.com>2011-11-10 15:21:37 -0800
commitaa7abd7828d1618b7303ec9a49e9501daf2f78ff (patch)
tree27eb858025076f7375caece5df01c2513320aa66 /src
parent27a31b4e4661e8ca95e4c3e28743a1d8abd64d0b (diff)
i64 fix for printing the very largest values
Diffstat (limited to 'src')
-rw-r--r--src/library.js2
-rw-r--r--src/parseTools.js2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/library.js b/src/library.js
index 4bb74001..624e8550 100644
--- a/src/library.js
+++ b/src/library.js
@@ -2209,7 +2209,7 @@ LibraryManager.library = {
} else if (type == 'i64') {
ret = [{{{ makeGetValue('varargs', 'argIndex', 'i32', undefined, undefined, true) }}},
{{{ makeGetValue('varargs', 'argIndex+4', 'i32', undefined, undefined, true) }}}];
- ret = ret[0] + ret[1]*Math.pow(2, 32); // XXX - loss of precision
+ ret = unSign(ret[0], 32) + unSign(ret[1], 32)*Math.pow(2, 32); // XXX - loss of precision
#endif
} else {
ret = {{{ makeGetValue('varargs', 'argIndex', 'i32', undefined, undefined, true) }}};
diff --git a/src/parseTools.js b/src/parseTools.js
index 7fde34fb..39e76307 100644
--- a/src/parseTools.js
+++ b/src/parseTools.js
@@ -581,7 +581,7 @@ function parseI64Constant(str) {
}
function subtract(v, w) { // v -= w. we assume v >= w
- while (v.length > w.length) w.push(0);
+ while (v.length > w.length) w.splice(0, 0, 0);
for (var i = 0; i < v.length; i++) {
v[i] -= w[i];
if (v[i] < 0) {