aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xemscripten.py4
-rw-r--r--src/jsifier.js2
-rw-r--r--src/parseTools.js1
3 files changed, 4 insertions, 3 deletions
diff --git a/emscripten.py b/emscripten.py
index ceb81e62..3222e12f 100755
--- a/emscripten.py
+++ b/emscripten.py
@@ -354,10 +354,10 @@ var asmPre = (function(env, buffer) {
var ret = STACKTOP;
STACKTOP = (STACKTOP + size)|0;
STACKTOP = ((STACKTOP + 3)>>2)<<2;
- return ret;
+ return ret|0;
}
function stackSave() {
- return STACKTOP;
+ return STACKTOP|0;
}
function stackRestore(top) {
top = top|0;
diff --git a/src/jsifier.js b/src/jsifier.js
index 7e66d426..b51fc1dd 100644
--- a/src/jsifier.js
+++ b/src/jsifier.js
@@ -1076,7 +1076,7 @@ function JSify(data, functionsOnly, givenFunctions) {
}
ret += 'return';
if (item.value) {
- ret += ' ' + finalizeLLVMParameter(item.value);
+ ret += ' ' + asmCoercion(finalizeLLVMParameter(item.value), item.type);
}
return ret + ';';
});
diff --git a/src/parseTools.js b/src/parseTools.js
index 91242861..13839d17 100644
--- a/src/parseTools.js
+++ b/src/parseTools.js
@@ -995,6 +995,7 @@ function asmInitializer(type, impl) {
}
function asmCoercion(value, type) {
+ if (!ASM_JS) return value;
if (isIntImplemented(type)) {
return '((' + value + ')|0)';
} else {