wasmate: check expression stack is empty when emiting op.
diff --git a/prototype-wasmate/wasmate.py b/prototype-wasmate/wasmate.py
index f0f9103..3314a00 100755
--- a/prototype-wasmate/wasmate.py
+++ b/prototype-wasmate/wasmate.py
@@ -429,10 +429,12 @@
 
         if len([x for x in args if x.startswith('$push')]) != 0:
             self.expr_stack.append(line)
-        elif len(args) > 0 and args[0].endswith('=') and args[0] != '$discard=':
-            assert args[0][0] == '$', args[0]
-            out.write_line('(set_local ' + args[0][1:-1] + ' ' + line + ')')
         else:
+            if self.expr_stack:
+                error("internal error - tried to emit an op with a dirty expression stack")
+            if len(args) > 0 and args[0].endswith('=') and args[0] != '$discard=':
+                assert args[0][0] == '$', args[0]
+                line = '(set_local ' + args[0][1:-1] + ' ' + line + ')'
             out.write_line(line)
 
     def handle_dot_globl(self, args):