diff options
author | Alon Zakai <alonzakai@gmail.com> | 2011-07-01 07:51:10 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2011-07-01 07:51:10 -0700 |
commit | 1c1d291964d025845228e5e8b985aec066bf79d2 (patch) | |
tree | c187be177043d0cec12d8f730d8b98ea6da56d1b /src/jsifier.js | |
parent | 7d8e65edda5d330787c35a3d9f9aef3ba660d2c2 (diff) |
handle complex expressions in br. fixes issue 39
Diffstat (limited to 'src/jsifier.js')
-rw-r--r-- | src/jsifier.js | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/jsifier.js b/src/jsifier.js index 7784c1ab..1b83b991 100644 --- a/src/jsifier.js +++ b/src/jsifier.js @@ -606,14 +606,15 @@ function JSify(data, functionsOnly, givenFunctions, givenGlobalVariables) { makeFuncLineActor('branch', function(item) { if (item.stolen) return ';'; // We will appear where we were stolen to - if (!item.ident) { + if (!item.condition) { return makeBranch(item.label, item.currLabelId); } else { + var condition = finalizeLLVMParameter(item.condition); var labelTrue = makeBranch(item.labelTrue, item.currLabelId); var labelFalse = makeBranch(item.labelFalse, item.currLabelId); if (labelTrue == ';' && labelFalse == ';') return ';'; - var head = 'if (' + item.ident + ') { '; - var head2 = 'if (!(' + item.ident + ')) { '; + var head = 'if (' + condition + ') { '; + var head2 = 'if (!(' + condition + ')) { '; var else_ = ' } else { '; var tail = ' }'; if (labelTrue == ';') { |