Das ganze Programm "pur" ...

Das Programm sieht ohne meine schlauen Kommentare wie folgt aus:

/*
 * Demo-Skript für Berechnung der Mandelbrotmenge
 * von speerchen, www.speerchen.de
 */
function demo() {

    bildElement = document.getElementById('fraktal');
    if (bildElement.getContext('2d')) {
        bild = bildElement.getContext('2d');
    } else {
        alert("Die erforderliche Grafikfunktion ist im Browser leider nicht vorhanden.");
    }
    
    /*
     * Breite des Bildes in Pixel
     */
    var breite = 320;
    
    /*
     * Höhe des Bildes in Pixel
     */
    var hoehe = 240;
    
    /*
     * Linke Kante der Grundfigur
     */
    var intervallLinks = -3.0;
    
    /*
     * Untere Kante der Grundfigur
     */
    var intervallUnten = -1.875;
    
    /*
     * Breite der Grundfigur
     */
    var intervallBreite = 5.0;
    
    /*
     * Höhe der Grundfigur
     */
    var intervallHoehe = 3.75;
    
    /*
     * Maximale Rekursionstiefe
     */
    var grenzeRekursion = 50;
    
    /*
     * Betragsgrenze für Rekursion
     */
    var grenzeBetrag = 4.0;
    
    /*
     * Quadrat der Betragsgrenze für Rekursion
     */
    var grenzeBetragQuadrat = grenzeBetrag * grenzeBetrag;
    
    /*
     * Farbtabelle
     */
    var farben = new Array("rgb(0,0,0)",
            "rgb(0,0,64)", "rgb(0,0,85)", "rgb(0,0,106)", "rgb(0,0,127)", "rgb(0,0,148)",
            "rgb(0,0,170)", "rgb(0,0,191)", "rgb(0,0,212)", "rgb(0,0,233)", "rgb(0,0,255)",
            "rgb(6,6,249)", "rgb(12,12,243)", "rgb(19,19,236)", "rgb(25,25,230)", "rgb(31,31,224)",
            "rgb(38,38,218)", "rgb(44,44,211)", "rgb(51,51,204)", "rgb(57,57,198)", "rgb(63,63,192)",
            "rgb(70,70,185)", "rgb(76,76,179)", "rgb(82,82,173)", "rgb(89,89,166)", "rgb(95,95,160)",
            "rgb(102,102,153)", "rgb(108,108,147)", "rgb(114,114,141)", "rgb(121,121,134)", "rgb(127,127,128)",
            "rgb(133,133,122)", "rgb(140,140,115)", "rgb(146,146,109)", "rgb(153,153,102)", "rgb(159,159,96)",
            "rgb(165,165,90)", "rgb(172,172,83)", "rgb(178,178,77)", "rgb(184,184,71)", "rgb(191,191,64)",
            "rgb(197,197,58)", "rgb(204,204,51)", "rgb(210,210,45)", "rgb(216,216,39)", "rgb(223,223,32)",
            "rgb(229,229,26)", "rgb(235,235,20)", "rgb(242,242,13)", "rgb(248,248,7)", "rgb(0,0,0)");

    
    /*
     * Bildaufbau
     */
    for (var pixelY = 0; pixelY < hoehe; pixelY++)  {
        var y = intervallUnten + intervallHoehe * pixelY / hoehe;
        for (var pixelX = 0; pixelX < breite; pixelX++)  {
            var x = intervallLinks + intervallBreite * pixelX / breite;
            var zaehler = 0;
            var gliedX = 0;
            var gliedY = 0;
            var gliedXQuadrat = 0;
            var gliedYQuadrat = 0;
            do {
                var hilfX = gliedX * gliedY;
                gliedX = gliedXQuadrat - gliedYQuadrat + x;
                gliedY = hilfX + hilfX + y;
                gliedXQuadrat = gliedX * gliedX;
                gliedYQuadrat = gliedY * gliedY;
                zaehler++;
            } while (zaehler < grenzeRekursion
                    && gliedXQuadrat + gliedYQuadrat < grenzeBetragQuadrat);
            bild.fillStyle = farben[zaehler];
            bild.fillRect(pixelX, hoehe - pixelY,1,1);
        }
    }
}