“Why doesn’t webGL preserve previous drawings?

I have a small drawing application where each time the mouse moves, the new coordinates are fed into a buffer in WebGL. I assumed that when I call gl.drawArrays, I only need to draw the new points, not the old ones, because they were rendered previously. However, the old points disappear even though I haven’t called gl.clear. Why is this happening?

// every time feed new points
gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer)
gl.bufferSubData(gl.ARRAY_BUFFER, index, new Float32Array(points))


// only draw new Points
gl.drawArrays(gl.POINTS, lastDrawnPoints, newPoints.length / 2)