The render function ends with a call to gl.finish(), which should block until the GPU actually finishes rendering. It's a crude way to measure performance but it's probably good enough for this.
Been developing WebGL for years. I've never seen any difference in performance with gl.finish() and without vsync. I would expect some difference because the JS code wouldn't be running in parallel with gl.finish().
The only way I have been able to measure performance is to look at the FPS without vsync (chrome --disable-gpu-vsync).