aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/jsifier.js7
-rw-r--r--src/parseTools.js5
2 files changed, 11 insertions, 1 deletions
diff --git a/src/jsifier.js b/src/jsifier.js
index 5df6b357..a8161862 100644
--- a/src/jsifier.js
+++ b/src/jsifier.js
@@ -1128,7 +1128,12 @@ function JSify(data, functionsOnly, givenFunctions) {
});
makeFuncLineActor('landingpad', function(item) {
var catchTypeArray = item.catchables.map(finalizeLLVMParameter).join(',');
- return '___cxa_find_matching_catch('+ makeGetValue('_llvm_eh_exception.buf', '0', 'void*') +',' + makeGetValue('_llvm_eh_exception.buf', QUANTUM_SIZE, 'void*') + ',[' + catchTypeArray +'])';
+ var ret = '___cxa_find_matching_catch('+ makeGetValue('_llvm_eh_exception.buf', '0', 'void*') +',' + makeGetValue('_llvm_eh_exception.buf', QUANTUM_SIZE, 'void*') + ',[' + catchTypeArray +'])';
+ if (USE_TYPED_ARRAYS == 2) {
+ ret = makeVarDef(item.assignTo) + '$0 = ' + ret + '; ' + item.assignTo + '$1 = tempRet0;';
+ item.assignTo = null;
+ }
+ return ret;
});
makeFuncLineActor('load', function(item) {
var value = finalizeLLVMParameter(item.pointer);
diff --git a/src/parseTools.js b/src/parseTools.js
index 132e6e96..70692ac3 100644
--- a/src/parseTools.js
+++ b/src/parseTools.js
@@ -965,6 +965,11 @@ function getHeapOffset(offset, type) {
}
}
+function makeVarDef(js) {
+ if (!ASM_JS) js = 'var ' + js;
+ return js;
+}
+
function asmInitializer(type, impl) {
if (isIntImplemented(type)) {// || (impl && impl == 'VAR_EMULATED')) {
return '0';