`node.properties.existing` has prototypes that follow the node's prototype chain, so `for...in` would require checking each property with `hasOwnProperty` and discarding ones from the prototypes. In the previous version, `model_properties` was a locally-constructed plain object that didn't have any enumerable properties on its prototype.

That behavior of `for...in` can be surprising, so it may be a good idea to stop using it altogether. But summoning the array of keys and using a callback function would make the simple case noisier.