diff options
author | Alon Zakai <alonzakai@gmail.com> | 2011-09-08 17:28:52 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2011-09-08 17:28:52 -0700 |
commit | 541ea2f893c17470342f303fca8d9169c7f48ce9 (patch) | |
tree | 4af7365bc1dff3d637ee0bbbd2ebbc56b412aa8e | |
parent | 8088f52fba9cbc9c8a9d89f7939bd8df7e7225df (diff) |
expose branch condition to analysis; fixes ta2 bug with test_if
-rw-r--r-- | src/analyzer.js | 2 | ||||
-rw-r--r-- | src/intertyper.js | 2 | ||||
-rw-r--r-- | src/jsifier.js | 4 |
3 files changed, 4 insertions, 4 deletions
diff --git a/src/analyzer.js b/src/analyzer.js index bcab0fad..9d542e2c 100644 --- a/src/analyzer.js +++ b/src/analyzer.js @@ -595,7 +595,7 @@ function analyzer(data) { var remarkableLabel = func.labelsDict[remarkableLabelId]; assert(remarkableLabel); var lastLine = remarkableLabel.lines.slice(-1)[0]; - if (lastLine.value) { + if (lastLine.intertype === 'assign') { lastLine.value.currLabelId = remarkableLabelId; } else { lastLine.currLabelId = remarkableLabelId; diff --git a/src/intertyper.js b/src/intertyper.js index ea6b6019..280b8a3f 100644 --- a/src/intertyper.js +++ b/src/intertyper.js @@ -780,7 +780,7 @@ function intertyper(data, parseFunctions, baseLineNum) { var commaIndex = findTokenText(item, ','); return [{ intertype: 'branch', - condition: parseLLVMSegment(item.tokens.slice(1, commaIndex)), + value: parseLLVMSegment(item.tokens.slice(1, commaIndex)), labelTrue: toNiceIdent(item.tokens[commaIndex+2].text), labelFalse: toNiceIdent(item.tokens[commaIndex+5].text), lineNum: item.lineNum diff --git a/src/jsifier.js b/src/jsifier.js index d75be5c6..3c2340ce 100644 --- a/src/jsifier.js +++ b/src/jsifier.js @@ -654,10 +654,10 @@ function JSify(data, functionsOnly, givenFunctions, givenGlobalVariables) { makeFuncLineActor('branch', function(item) { if (item.stolen) return ';'; // We will appear where we were stolen to - if (!item.condition) { + if (!item.value) { return makeBranch(item.label, item.currLabelId); } else { - var condition = finalizeLLVMParameter(item.condition); + var condition = finalizeLLVMParameter(item.value); var labelTrue = makeBranch(item.labelTrue, item.currLabelId); var labelFalse = makeBranch(item.labelFalse, item.currLabelId); if (labelTrue == ';' && labelFalse == ';') return ';'; |