JsLoveR,
 Спасибо. Я нашел немного другой, он по скорости чуть чуть быстрее:  
function setLine (x1, y1, x2, y2) {
    var x = x1,
        y = y1;
    var dx = Math.abs(x2-x1),
        dy = Math.abs(y2-y1);
    var sx = (x2-x1)>0?1:((x2-x1)==0?0:-1);
    var sy = (y2-y1)>0?1:((y2-y1)==0?0:-1);
    var tx, ty;
    var z, scount, count, dcount;
    if (dx>=dy) {
        tx = sx; ty = 0;
    } else {
        z=dx; dx=dy; dy=z;
        tx=0; ty=sy;
    }
    scount = 2*dy;
    count = scount-dx;
    dcount = count-dx;
    for(;;) {
        dx -= 1;
        if (dx < -1){
            break;
        }
        setPixel(x, y);
        if (count >= 0) {
            x+=sx;
            y+=sy;
            count += dcount;
        } else {
            x+=tx;
            y+=ty;
            count += scount;
        }
    }
}