jshint conformance
whitespace
assume isEmpty means no enumerable properties