diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-01-18 17:55:07 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-01-18 17:55:07 -0800 |
commit | 991e5c6a3ee144c6ee6193208446f28ce9def60d (patch) | |
tree | 616b165dc5afc728a24a7be6dbadf0ff17508dc6 | |
parent | 409a9af718b22f4642b5132f47f2db34130cabbd (diff) |
fix unrelooped code for asm
-rw-r--r-- | src/jsifier.js | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/jsifier.js b/src/jsifier.js index f767b6ce..08b6d4f6 100644 --- a/src/jsifier.js +++ b/src/jsifier.js @@ -734,12 +734,13 @@ function JSify(data, functionsOnly, givenFunctions) { if (func.setjmpTable) { ret += 'try { '; } - ret += 'switch(label) {\n'; + ret += 'switch(' + asmCoercion('label', 'i32') + ') {\n'; ret += block.labels.map(function(label) { return indent + ' case ' + getLabelId(label.ident) + ': ' + (SHOW_LABELS ? '// ' + getOriginalLabelId(label.ident) : '') + '\n' + getLabelLines(label, indent + ' '); }).join('\n'); - ret += '\n' + indent + ' default: assert(0, "bad label: " + label);\n' + indent + '}'; + if (ASSERTIONS) ret += '\n' + indent + ' default: assert(0, "bad label: " + label);\n'; + ret += indent + '}'; if (func.setjmpTable) { ret += ' } catch(e) { if (!e.longjmp || !(e.id in mySetjmpIds)) throw(e); setjmpTable[setjmpLabels[e.id]](e.value) }'; } |