1.1 --- a/micropython/ast.py Sat Nov 07 02:36:33 2009 +0100
1.2 +++ b/micropython/ast.py Mon Nov 16 00:34:47 2009 +0100
1.3 @@ -507,6 +507,10 @@
1.4 self._visitName(node, self.name_store_instructions)
1.5 self.set_source()
1.6
1.7 + # Add any attribute usage guards.
1.8 +
1.9 + self._generateGuards(node)
1.10 +
1.11 visitAssTuple = visitAssList
1.12
1.13 def visitAugAssign(self, node):
1.14 @@ -629,8 +633,17 @@
1.15 self.new_op(CheckExtra(nparams))
1.16 self.new_op(StoreTemp(nparams))
1.17
1.18 + # Add any attribute usage guards.
1.19 +
1.20 + if self.optimiser.should_optimise_accesses_by_attribute_usage() and hasattr(node, "_attrnames"):
1.21 + self._generateGuards(node)
1.22 +
1.23 + # Visit the actual code.
1.24 +
1.25 self.dispatch(node.code)
1.26
1.27 + # Add a return statement where one is not already produced.
1.28 +
1.29 if not isinstance(self.last_op(), Return):
1.30 self.dispatch(compiler.ast.Name("None"))
1.31 self.new_op(StoreResult())