Clone Error instances to preserve instances of subclasses of Error

If we're dealing with an instance of a subclass of Error, we can't just make a
new Error, otherwise we lose that class information. Instead, we can clone the
original instance.
How is this reduce different than just iterating over the property names? It looks like you're basically using it as a for each, unless I'm reading it wrong