diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-03-07 21:25:14 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-03-07 21:25:14 -0800 |
commit | bc74a6478aa229abf6dbf7269e67aeeb570e7554 (patch) | |
tree | f24fd1e1ed75184abd5d2710a93a4b9a889a3d94 /src/wasm.h | |
parent | 8efa11fbb9ff8cfd8bacc9d16642e13e2bbac9b4 (diff) | |
parent | 9407880de631fb4e9f8caa0c746e4d39f40be91d (diff) | |
download | binaryen-bc74a6478aa229abf6dbf7269e67aeeb570e7554.tar.gz binaryen-bc74a6478aa229abf6dbf7269e67aeeb570e7554.tar.bz2 binaryen-bc74a6478aa229abf6dbf7269e67aeeb570e7554.zip |
Merge pull request #231 from WebAssembly/spec-updates
Spec updates
Diffstat (limited to 'src/wasm.h')
-rw-r--r-- | src/wasm.h | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/src/wasm.h b/src/wasm.h index ba9d7de3d..6cbe93e3b 100644 --- a/src/wasm.h +++ b/src/wasm.h @@ -842,20 +842,14 @@ public: class Switch : public Expression { public: - Switch() : Expression(SwitchId) {} - - struct Case { - Name name; - Expression *body; - Case() {} - Case(Name name, Expression *body) : name(name), body(body) {} - }; + Switch() : Expression(SwitchId), condition(nullptr), value(nullptr) { + type = unreachable; + } - Name name; - Expression *value; std::vector<Name> targets; Name default_; - std::vector<Case> cases; + Expression *condition; + Expression *value; }; class CallBase : public Expression { @@ -1288,10 +1282,8 @@ struct ChildWalker : public WasmWalkerBase<ChildWalker<ParentType>> { parent.walk(curr->value); } void visitSwitch(Switch *curr) { - parent.walk(curr->value); - for (auto& case_ : curr->cases) { - parent.walk(case_.body); - } + parent.walk(curr->condition); + if (curr->value) parent.walk(curr->value); } void visitCall(Call *curr) { ExpressionList& list = curr->operands; |