может это такая защита? проверяет изменился ли метод к примеру
WebSocket.prototype.send.toString() вернет строку "function send() { [native code]}"
а если сделать подмену - то будет твой код
попробуй поменяй и toString у него, и сам String и еще где-нибудь...