summaryrefslogtreecommitdiff
path: root/src/wasm-binary.h
diff options
context:
space:
mode:
authorDouglas Crosher <info@jsstats.com>2016-01-16 12:32:34 +1100
committerDouglas Crosher <info@jsstats.com>2016-01-18 00:06:50 +1100
commit0c78665777e244741bfe6e2ab30fedded96354bd (patch)
tree537ca686d4a94346981e5cddad639071a420b4b5 /src/wasm-binary.h
parent74b3798652f65fbbbe94b9aac2cb4f0fb8ccea09 (diff)
downloadbinaryen-0c78665777e244741bfe6e2ab30fedded96354bd.tar.gz
binaryen-0c78665777e244741bfe6e2ab30fedded96354bd.tar.bz2
binaryen-0c78665777e244741bfe6e2ab30fedded96354bd.zip
The break operation may have a value, and must with the v8 encoding.
Diffstat (limited to 'src/wasm-binary.h')
-rw-r--r--src/wasm-binary.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/wasm-binary.h b/src/wasm-binary.h
index 6b2e960d4..0b8663497 100644
--- a/src/wasm-binary.h
+++ b/src/wasm-binary.h
@@ -607,6 +607,11 @@ public:
abort();
}
if (curr->condition) recurse(curr->condition);
+ if (curr->value) {
+ recurse(curr->value);
+ } else {
+ o << int8_t(BinaryConsts::Nop);
+ }
}
void visitSwitch(Switch *curr) {
if (debug) std::cerr << "zz node: Switch" << std::endl;
@@ -1267,6 +1272,7 @@ public:
auto offset = getInt8();
curr->name = breakStack[breakStack.size() - 1 - offset];
if (code == BinaryConsts::BrIf) readExpression(curr->condition);
+ readExpression(curr->value);
}
void visitSwitch(Switch *curr) {
if (debug) std::cerr << "zz node: Switch" << std::endl;