diff options
-rw-r--r-- | src/jsifier.js | 10 | ||||
-rw-r--r-- | src/parseTools.js | 12 |
2 files changed, 12 insertions, 10 deletions
diff --git a/src/jsifier.js b/src/jsifier.js index 4af1223a..3f7698ef 100644 --- a/src/jsifier.js +++ b/src/jsifier.js @@ -528,7 +528,7 @@ function JSify(data, functionsOnly, givenFunctions, givenGlobalVariables) { }); } makeFuncLineActor('store', function(item) { - var value = indexizeFunctions(finalizeLLVMParameter(item.value)); + var value = finalizeLLVMParameter(item.value); if (pointingLevels(item.pointerType) == 1) { value = parseNumerical(value, removePointing(item.pointerType)); } @@ -544,7 +544,7 @@ function JSify(data, functionsOnly, givenFunctions, givenGlobalVariables) { if (item.pointer.intertype == 'value') { return makeSetValue(item.ident, 0, value, item.valueType); } else { - return makeSetValue(0, indexizeFunctions(finalizeLLVMParameter(item.pointer)), value, item.valueType); + return makeSetValue(0, finalizeLLVMParameter(item.pointer), value, item.valueType); } break; default: @@ -644,7 +644,7 @@ function JSify(data, functionsOnly, givenFunctions, givenGlobalVariables) { } ret += 'return'; if (item.value) { - ret += ' ' + indexizeFunctions(finalizeLLVMParameter(item.value)); + ret += ' ' + finalizeLLVMParameter(item.value); } return ret + ';'; }); @@ -688,10 +688,10 @@ function JSify(data, functionsOnly, givenFunctions, givenGlobalVariables) { var params = item.params; function makeOne(i) { if (i === params.length-1) { - return indexizeFunctions(finalizeLLVMParameter(params[i].value)); + return finalizeLLVMParameter(params[i].value); } return '__lastLabel__ == ' + getLabelId(params[i].label) + ' ? ' + - indexizeFunctions(finalizeLLVMParameter(params[i].value)) + ' : (' + makeOne(i+1) + ')'; + finalizeLLVMParameter(params[i].value) + ' : (' + makeOne(i+1) + ')'; } return makeOne(0); }); diff --git a/src/parseTools.js b/src/parseTools.js index 39537ab2..530bf54b 100644 --- a/src/parseTools.js +++ b/src/parseTools.js @@ -1040,19 +1040,21 @@ function handleOverflow(text, bits) { // From parseLLVMSegment function finalizeLLVMParameter(param) { + var ret; if (isNumber(param)) { return param; } else if (typeof param === 'string') { - return toNiceIdentCarefully(param); + ret = toNiceIdentCarefully(param); } else if (param.intertype in PARSABLE_LLVM_FUNCTIONS) { - return finalizeLLVMFunctionCall(param); + ret = finalizeLLVMFunctionCall(param); } else if (param.intertype == 'value') { - return parseNumerical(param.ident); + ret = parseNumerical(param.ident); } else if (param.intertype == 'structvalue') { - return param.values.map(finalizeLLVMParameter); + ret = param.values.map(finalizeLLVMParameter); } else { throw 'invalid llvm parameter: ' + param.intertype; } + return indexizeFunctions(ret); } function makeSignOp(value, type, op) { @@ -1104,7 +1106,7 @@ function isSignedOp(op, variant) { function processMathop(item) { with(item) { for (var i = 1; i <= 4; i++) { if (item['param'+i]) { - item['ident'+i] = indexizeFunctions(finalizeLLVMParameter(item['param'+i])); + item['ident'+i] = finalizeLLVMParameter(item['param'+i]); if (!isNumber(item['ident'+i])) { item['ident'+i] = '(' + item['ident'+i] + ')'; // we may have nested expressions. So enforce the order of operations we want } |