La función clearRect no borra el lienzo

Estoy usando este script en el cuerpoonmousemove función:

function lineDraw() {
    // Get the context and the canvas:
    var canvas = document.getElementById("myCanvas");
    var context = canvas.getContext("2d");
    // Clear the last canvas
    context.clearRect(0, 0, canvas.width, canvas.height);
    // Draw the line:
    context.moveTo(0, 0);
    context.lineTo(event.clientX, event.clientY);
    context.stroke();
}

Se supone que debe limpiar el lienzo cada vez que muevo el mouse y dibujar una nueva línea, pero no funciona correctamente. Estoy tratando de resolverlo sin usar jQuery, escuchas del mouse o algo similar.

Aquí hay una demostración:https://jsfiddle.net/0y4wf31k/

Respuestas a la pregunta(3)

Su respuesta a la pregunta