diff options
author | Alon Zakai <alonzakai@gmail.com> | 2011-11-10 15:21:37 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2011-11-10 15:21:37 -0800 |
commit | aa7abd7828d1618b7303ec9a49e9501daf2f78ff (patch) | |
tree | 27eb858025076f7375caece5df01c2513320aa66 /src | |
parent | 27a31b4e4661e8ca95e4c3e28743a1d8abd64d0b (diff) |
i64 fix for printing the very largest values
Diffstat (limited to 'src')
-rw-r--r-- | src/library.js | 2 | ||||
-rw-r--r-- | src/parseTools.js | 2 |
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) { |