Add null-checking to DescriptionBuilder

Originated from #954
Why do you think it may be more efficient? I implemented it in this way to avoid second loop. Anyway I agree that side effects is a deal breaker here.