diff options
Diffstat (limited to 'src/passes/Vacuum.cpp')
-rw-r--r-- | src/passes/Vacuum.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/passes/Vacuum.cpp b/src/passes/Vacuum.cpp index dfede6d25..863d78f14 100644 --- a/src/passes/Vacuum.cpp +++ b/src/passes/Vacuum.cpp @@ -20,6 +20,7 @@ #include <wasm.h> #include <pass.h> +#include <ast_utils.h> namespace wasm { @@ -41,6 +42,13 @@ struct Vacuum : public WalkerPass<PostWalker<Vacuum, Visitor<Vacuum>>> { if (skip > 0) { list.resize(size - skip); } + if (!curr->name.is()) { + if (list.size() == 1) { + replaceCurrent(list[0]); + } else if (list.size() == 0) { + ExpressionManipulator::nop(curr); + } + } } }; |