summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/wasm-interpreter.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h
index 3b645595e..336ef1b3b 100644
--- a/src/wasm-interpreter.h
+++ b/src/wasm-interpreter.h
@@ -188,7 +188,11 @@ private:
Flow flow = visit(curr->condition);
if (flow.breaking()) return flow;
NOTE_EVAL1(flow.value);
- if (flow.value.geti32()) return visit(curr->ifTrue);
+ if (flow.value.geti32()) {
+ Flow flow = visit(curr->ifTrue);
+ if (!flow.breaking() && !curr->ifFalse) flow.value = Literal(); // if_else returns a value, but if does not
+ return flow;
+ }
if (curr->ifFalse) return visit(curr->ifFalse);
return Flow();
}