Any good reason why ```hasBooleanValue``` isn't checked here as well for falsey values? Is that an inherent behavior for properties perhaps.