CodeTools::AST << {
OptionalParameter < Node { node_type optprm field name, field value map_local: |scope| scope.new_local(self.name) bytecode: |g| { done_label = g.new_label g.state.scope.search_local(self.name).get_bytecode(g) g.goto_if_not_undefined(done_label) self.value.bytecode(g) g.state.scope.search_local(self.name).set_bytecode(g) g.pop done_label.set! } }
}