aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
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) {