diff options
-rw-r--r-- | src/jsifier.js | 7 | ||||
-rw-r--r-- | src/parseTools.js | 5 |
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'; |