Improve object property detection

Testing (!valueObject.[attr]) will return a falsy value if valueObject.[attr] has a
falsy value, such as '0'. See:
http://www.sitepoint.com/javascript-truthy-falsy/

(Fixes #3)