Adapted to my own coding style and able to read
prototypes defined without defineProperty syntax