object-keys
An Object.keys replacement, in case Object.keys is not available. From https://github.com/es-shims/es5-shim
is-accessor-descriptor
Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.
is-data-descriptor
Returns true if a value has the characteristics of a valid JavaScript data descriptor.
for-in
Iterate over the own and inherited enumerable properties of an object, and return an object with properties that evaluate to true from the callback. Exit early by returning `false`. JavaScript/Node.js