aboutsummaryrefslogtreecommitdiff
path: root/src/parseTools.js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-12-06 12:17:58 -0800
committerAlon Zakai <alonzakai@gmail.com>2012-12-07 14:23:24 -0800
commit813866b1951389b2c80c2c4e4bf2f5546c3be1dc (patch)
tree16b5a068211cb8d0ed19c4df390423aa5290d12b /src/parseTools.js
parentd1d33362df70a31e7248e2fda0eb4bad0fe58390 (diff)
fix non-legalized structural returns and invokes
Diffstat (limited to 'src/parseTools.js')
-rw-r--r--src/parseTools.js15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/parseTools.js b/src/parseTools.js
index 19913949..337225e5 100644
--- a/src/parseTools.js
+++ b/src/parseTools.js
@@ -1572,10 +1572,17 @@ function makeLLVMStruct(values) {
}
function makeStructuralReturn(values) {
- var i = 0;
- return 'return (' + values.slice(1).map(function(value) {
- return 'tempRet' + (i++) + ' = ' + value;
- }).concat([values[0]]).join(',') + ')';
+ if (USE_TYPED_ARRAYS == 2) {
+ var i = 0;
+ return 'return (' + values.slice(1).map(function(value) {
+ return 'tempRet' + (i++) + ' = ' + value;
+ }).concat([values[0]]).join(',') + ')';
+ } else {
+ var i = 0;
+ return 'return { ' + values.map(function(value) {
+ return 'f' + (i++) + ': ' + value;
+ }).join(', ') + ' }';
+ }
}
// From parseLLVMSegment