test invalid buffers, set bytesRead = 0, and return undefined
instead of throwing, return undefined in invalid (too short) buffers
correct usage notes