> `unit` is not part of the prototype so `hasOwnProperty` works so is there any downside (perf maybe?) 

Correct, the `hasOwnProperty` call is much more expensive than using `typeof ... "undefined"` and since we know `unit` won't be a prototype property, we shouldn't use the mechanism for checking on those types of proeprties

> also, what about if (!unit in this)

Same reason, it's a perf blackhole.

To be fair, this isn't a hot path, but I'd rather use the right tool, if you kn