Protótipo de evento JavaScript no IE8

Eu estou tentando adicionar um método para o protótipo de evento. Para chamar / definirpreventDefault() ou, no IE-speakreturnValue = false e - se desejadostopPropagation() / cancelBubble = true;. Eu pensei que o código abaixo teria sido suficiente.

Event = Event || window.Event;
//^^ makes the fiddle work on IE8 ^^
if(!(Event.prototype.stopEvent))
{
    Event.prototype.stopEvent = function(propagate)
    {
        "use strict";
        propagate = (propagate ? true : false);
        if (this.preventDefault)
        {
            this.preventDefault();
            if (propagate === false)
            {
                this.stopPropagation();
            }
        }
        else
        {
            this.returnValue = false;
            this.cancelBubble = !propagate;
        }
        return this;
    };
}

O que parece funcionarcomo você pode ver aqui. Este violino mostraOK no IE8, firefox e chrome. Embora, quando eu adiciono isso ao meu script, o IE8 quebra na primeira linha, dizendo'Evento é indefinido'. Saindo fora"use strict"; não faz diferença alguma.

Relutantemente, também tentei isso:

if (typeof Event === 'undefined')
{
    var Event = window.Event || window.event;//FFS IE :-(
}

Mas sem sucesso:Error: 'Event.prototype' is null or not an object, então eu tenho mais uma linha. A coisa é, todo o método do protótipo é uma cópia do meu script, mas o que eu estou negligenciando aqui? Alguma idéia / sugestões?
obrigado

PS: Eu gosto do Pure JavaScript, então, por favor, não sugira jQuery, prototypejs, dojo, ... como uma solução. Acabei de me livrar do jQuery. (Eu gosto de jQuery, mas não há necessidade para isso neste caso)

Atualizar

As coisas pioraram, receio. eu encontreiesta referência do MSDN. A página inteira lida com protótipos do elemento DOM. É bastante justo dizer que eles estão disponíveis e podem ser usados ​​no IE8 (até certo ponto). Nesta página, esse código chamou minha atenção:

Event.prototype.stopPropagation = function ()
{
  this.cancelBubble = true;
};
Event.prototype.preventDefault = function ()
{
  this.returnValue = false;
};

Pode ser encontrado ~ 3 / 4ths da página abaixo, na seção intitulada"Powerful Scenarios". Isto é, na minha opinião, exatamente a mesma coisa que eu quero fazer, mas o que é mais: se eu tentar esse código via jsfiddle, ele nem funciona, enquanto meu jsfiddle (com meu código) funcionou no IE8. Esta é apenas as últimas linhas de um trecho, mas, tanto quanto eu posso trabalhar, essas poucas linhas de código devem funcionar muito bem. Eu os alterei da seguinte forma:

Event.prototype.stopPropagation = function ()
{
    if (this.stopPropagation)
    {
        return this.stopPropagation();
    }
    this.cancelBubble = true;
};
Event.prototype.preventDefault = function ()
{
    if (this.preventDefault)
    {
        return this.preventDefault();
    }
    this.returnValue = false;
};

questionAnswers(2)

yourAnswerToTheQuestion