1.1 --- a/micropython/ast.py Tue Apr 26 19:34:07 2011 +0200
1.2 +++ b/micropython/ast.py Sat Apr 30 23:36:09 2011 +0200
1.3 @@ -827,20 +827,25 @@
1.4 self._visitPrint(node, "_printnl")
1.5
1.6 def visitRaise(self, node):
1.7 - # NOTE: expr1 only => instance provided
1.8 - self.dispatch(node.expr1)
1.9 +
1.10 + if node.expr1 is not None:
1.11 +
1.12 + # NOTE: expr1 only => instance provided
1.13
1.14 - if node.expr2 is not None:
1.15 - temp = self.optimiser.optimise_temp_storage()
1.16 + self.dispatch(node.expr1)
1.17 +
1.18 + if node.expr2 is not None:
1.19 + temp = self.optimiser.optimise_temp_storage()
1.20
1.21 - self.dispatch(node.expr2)
1.22 - temp_arg = self.optimiser.optimise_temp_storage()
1.23 + self.dispatch(node.expr2)
1.24 + temp_arg = self.optimiser.optimise_temp_storage()
1.25 +
1.26 + self._generateInvocation(temp, (temp_arg,))
1.27
1.28 - self._generateInvocation(temp, (temp_arg,))
1.29 + self.discard_temp(temp_arg)
1.30
1.31 - self.discard_temp(temp_arg)
1.32 + self.new_op(StoreException())
1.33
1.34 - self.new_op(StoreException())
1.35 self.new_op(RaiseException())
1.36
1.37 def visitReturn(self, node):