function getOwnPropertyNames( value ) {
	return keys( Object( value ) );
}
Returns an array of an object's own enumerable and non-enumerable property names.

## Notes

-   In contrast to the built-in `Object.getOwnPropertyNames()`, this function returns an empty array if provided `undefined` or `null`, rather than throwing an error.
-   In environments lacking support for `Object.getOwnPropertyNames()`, property descriptors are unavailable, and thus all properties can be safely assumed to be enumerable. Hence, we can defer to calling `Object.keys`, which retrieves all own enumerable property names.

@private
@param {*} value - input object
@returns {Array} a list of own property names

@example
var obj = {
    'beep': 'boop',
    'foo': 3.14
};

var keys = getOwnPropertyNames( obj );
// e.g., returns [ 'beep', 'foo' ]